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 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 v5 or v6.** For Sanity Studio v3/v4, use [v2.x](https://github.com/waspeer/sanity-plugin-iconify/tree/v2).
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 _sanity_icons = require("@sanity/icons");
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: 300 * 1e3
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)(_sanity_icons.TrashIcon, {}),
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, _sanity_ui.useToast)();
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)(_sanity_ui.Popover, {
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
- space: 2,
361
+ gap: 2,
357
362
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconifyCombobox, {
358
363
  selectedIcon,
359
- onSelect: (0, react.useCallback)((icon) => {
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; // Total number of icons.
10
- total?: number; // Version string.
11
- version?: string; // Author information.
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; // Link to author's website or icon set website.
16
+ name: string;
17
+ // Link to author's website or icon set website.
15
18
  url?: string;
16
- }; // License
19
+ };
20
+ // License
17
21
  license: {
18
22
  // Human readable license.
19
- title: string; // SPDX license identifier.
20
- spdx?: string; // License URL.
23
+ title: string;
24
+ // SPDX license identifier.
25
+ spdx?: string;
26
+ // License URL.
21
27
  url?: string;
22
- }; // Array of icons that should be used for samples in icon sets list.
23
- samples?: string[]; // Icon grid: number or array of numbers.
24
- height?: number | number[]; // Display height for samples: 16 - 24
25
- displayHeight?: number; // Category on Iconify collections list.
26
- category?: string; // List of tags to group similar icon sets.
27
- tags?: string[]; // Palette status. True if icons have predefined color scheme, false if icons use currentColor.
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; // If true, icon set should not appear in icon sets list.
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; // Total number of icons.
10
- total?: number; // Version string.
11
- version?: string; // Author information.
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; // Link to author's website or icon set website.
16
+ name: string;
17
+ // Link to author's website or icon set website.
15
18
  url?: string;
16
- }; // License
19
+ };
20
+ // License
17
21
  license: {
18
22
  // Human readable license.
19
- title: string; // SPDX license identifier.
20
- spdx?: string; // License URL.
23
+ title: string;
24
+ // SPDX license identifier.
25
+ spdx?: string;
26
+ // License URL.
21
27
  url?: string;
22
- }; // Array of icons that should be used for samples in icon sets list.
23
- samples?: string[]; // Icon grid: number or array of numbers.
24
- height?: number | number[]; // Display height for samples: 16 - 24
25
- displayHeight?: number; // Category on Iconify collections list.
26
- category?: string; // List of tags to group similar icon sets.
27
- tags?: string[]; // Palette status. True if icons have predefined color scheme, false if icons use currentColor.
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; // If true, icon set should not appear in icon sets list.
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, Popover, Stack, Text, TextInput, ThemeProvider, useToast } from "@sanity/ui";
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: 300 * 1e3
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
- space: 2,
337
+ gap: 2,
333
338
  children: [/* @__PURE__ */ jsx(IconifyCombobox, {
334
339
  selectedIcon,
335
- onSelect: useCallback((icon) => {
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": "4.0.2",
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.3",
69
- "@sanity/icons": "^3.7.4",
68
+ "@iconify/utils": "^3.1.4",
69
+ "@sanity/icons": "^5.2.1",
70
70
  "@sanity/incompatible-plugin": "^1.0.5",
71
- "@sanity/ui": "^3.2.0",
72
- "@tanstack/react-query": "^5.101.0",
71
+ "@tanstack/react-query": "^5.101.4",
73
72
  "change-case": "^5.4.4",
74
- "downshift": "^9.3.6",
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.0.2",
80
- "@commitlint/config-conventional": "^21.0.2",
81
- "@iconify/json": "^2.2.486",
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.61.0",
84
- "@release-it/conventional-changelog": "^11.0.1",
82
+ "@playwright/test": "^1.62.1",
83
+ "@release-it/conventional-changelog": "^12.0.0",
85
84
  "@sanity/plugin-kit": "^4.0.20",
86
- "@tanstack/eslint-plugin-query": "^5.101.0",
87
- "@tanstack/react-query-devtools": "^5.101.0",
88
- "@types/react": "^19.2.17",
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.1",
91
- "@vitest/ui": "^4.1.9",
90
+ "@vitejs/plugin-react": "^6.0.5",
91
+ "@vitest/ui": "^4.1.10",
92
92
  "@waspeer/config": "^3.0.0",
93
- "eslint": "^10.1.0",
94
- "lefthook": "^2.1.9",
95
- "npm-run-all2": "^9.0.2",
96
- "prettier": "^3.8.4",
97
- "publint": "^0.3.18",
98
- "react": "^19.2.7",
99
- "react-dom": "^19.2.7",
100
- "react-is": "^19.2.7",
101
- "release-it": "^20.2.0",
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.0.0",
104
- "tsdown": "^0.22.2",
105
- "tsx": "^4.22.4",
106
- "typescript": "^6.0.2",
107
- "vite": "^8.0.2",
108
- "vitest": "^4.1.9"
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": "^5.0.0-0 || ^6.0.0-0",
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, useToast } from '@sanity/ui';
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';
@@ -1,4 +1,4 @@
1
- import { TrashIcon } from '@sanity/icons';
1
+ import { TrashIcon } from '@sanity/icons/Trash';
2
2
  import { Button, Card } from '@sanity/ui';
3
3
 
4
4
  // ------------ //
@@ -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 space={2}>
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';