@sanity/cli 7.15.0 → 7.16.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.
Files changed (138) hide show
  1. package/README.md +88 -1
  2. package/dist/actions/build/shouldAutoUpdate.js +28 -5
  3. package/dist/actions/build/shouldAutoUpdate.js.map +1 -1
  4. package/dist/actions/deploy/deployApp.js +4 -8
  5. package/dist/actions/deploy/deployApp.js.map +1 -1
  6. package/dist/actions/deploy/deployChecks.js +49 -31
  7. package/dist/actions/deploy/deployChecks.js.map +1 -1
  8. package/dist/actions/deploy/deployRunner.js +1 -1
  9. package/dist/actions/deploy/deployRunner.js.map +1 -1
  10. package/dist/actions/deploy/deployStudio.js +12 -10
  11. package/dist/actions/deploy/deployStudio.js.map +1 -1
  12. package/dist/actions/deploy/deploymentPlan.js +2 -2
  13. package/dist/actions/deploy/deploymentPlan.js.map +1 -1
  14. package/dist/actions/deploy/resolveDeployTarget.js +13 -13
  15. package/dist/actions/deploy/resolveDeployTarget.js.map +1 -1
  16. package/dist/actions/init/bootstrapLocalTemplate.js +2 -3
  17. package/dist/actions/init/bootstrapLocalTemplate.js.map +1 -1
  18. package/dist/actions/init/createAppCliConfig.js.map +1 -1
  19. package/dist/actions/init/createCliConfig.js.map +1 -1
  20. package/dist/actions/init/initNextJs.js +1 -1
  21. package/dist/actions/init/initNextJs.js.map +1 -1
  22. package/dist/actions/init/initStudio.js +10 -6
  23. package/dist/actions/init/initStudio.js.map +1 -1
  24. package/dist/actions/init/templates/appSanityUi.js +1 -1
  25. package/dist/actions/init/templates/appSanityUi.js.map +1 -1
  26. package/dist/actions/init/templates/getStarted.js +2 -2
  27. package/dist/actions/init/templates/getStarted.js.map +1 -1
  28. package/dist/actions/init/templates/nextjs/schemaTypes/blog.js +4 -4
  29. package/dist/actions/init/templates/nextjs/schemaTypes/blog.js.map +1 -1
  30. package/dist/actions/init/templates/shopify.js +2 -2
  31. package/dist/actions/init/templates/shopify.js.map +1 -1
  32. package/dist/actions/init/templates/shopifyOnline.js +2 -2
  33. package/dist/actions/init/templates/shopifyOnline.js.map +1 -1
  34. package/dist/actions/manifest/extractCoreAppManifest.js +7 -7
  35. package/dist/actions/manifest/extractCoreAppManifest.js.map +1 -1
  36. package/dist/actions/scaffold/createFrontend.js +107 -0
  37. package/dist/actions/scaffold/createFrontend.js.map +1 -0
  38. package/dist/actions/scaffold/scaffoldProject.js +202 -0
  39. package/dist/actions/scaffold/scaffoldProject.js.map +1 -0
  40. package/dist/actions/telemetry/resolveConsent.js +4 -2
  41. package/dist/actions/telemetry/resolveConsent.js.map +1 -1
  42. package/dist/commands/backups/list.js +1 -1
  43. package/dist/commands/backups/list.js.map +1 -1
  44. package/dist/commands/datasets/copy.js +5 -3
  45. package/dist/commands/datasets/copy.js.map +1 -1
  46. package/dist/commands/documents/query.js +5 -4
  47. package/dist/commands/documents/query.js.map +1 -1
  48. package/dist/commands/migrations/list.js +1 -1
  49. package/dist/commands/migrations/list.js.map +1 -1
  50. package/dist/commands/migrations/run.js +1 -1
  51. package/dist/commands/migrations/run.js.map +1 -1
  52. package/dist/commands/new.js +309 -0
  53. package/dist/commands/new.js.map +1 -0
  54. package/dist/commands/organizations/list.js +1 -1
  55. package/dist/commands/organizations/list.js.map +1 -1
  56. package/dist/commands/projects/unclaimed.js +205 -0
  57. package/dist/commands/projects/unclaimed.js.map +1 -0
  58. package/dist/commands/tokens/list.js +1 -1
  59. package/dist/commands/tokens/list.js.map +1 -1
  60. package/dist/commands/users/list.js +5 -1
  61. package/dist/commands/users/list.js.map +1 -1
  62. package/dist/exports/invokeSanityCli/commandPolicies/mcpPolicy.js +4 -0
  63. package/dist/exports/invokeSanityCli/commandPolicies/mcpPolicy.js.map +1 -1
  64. package/dist/exports/invokeSanityCli/index.d.ts +5 -9
  65. package/dist/exports/invokeSanityCli/index.js +47 -20
  66. package/dist/exports/invokeSanityCli/index.js.map +1 -1
  67. package/dist/exports/runtime.d.ts +12 -0
  68. package/dist/exports/runtime.js.map +1 -1
  69. package/dist/services/mintProject.js +91 -0
  70. package/dist/services/mintProject.js.map +1 -0
  71. package/dist/services/projects.js +19 -0
  72. package/dist/services/projects.js.map +1 -1
  73. package/dist/services/telemetry.js +4 -0
  74. package/dist/services/telemetry.js.map +1 -1
  75. package/dist/util/formatClaimDeadline.js +15 -0
  76. package/dist/util/formatClaimDeadline.js.map +1 -0
  77. package/dist/util/mintProjectConstants.js +6 -0
  78. package/dist/util/mintProjectConstants.js.map +1 -0
  79. package/dist/util/newCommandSplash.js +27 -0
  80. package/dist/util/newCommandSplash.js.map +1 -0
  81. package/dist/util/packageManager/installPackages.js +57 -28
  82. package/dist/util/packageManager/installPackages.js.map +1 -1
  83. package/dist/util/unclaimedProjects.js +105 -0
  84. package/dist/util/unclaimedProjects.js.map +1 -0
  85. package/oclif.manifest.json +150 -41
  86. package/package.json +7 -7
  87. package/templates/get-started/plugins/sanity-plugin-tutorial/GetStartedTutorial.tsx +1 -1
  88. package/templates/shopify/components/inputs/CollectionHidden.tsx +1 -1
  89. package/templates/shopify/components/inputs/ProductHidden.tsx +1 -1
  90. package/templates/shopify/components/inputs/ProductVariantHidden.tsx +1 -1
  91. package/templates/shopify/components/inputs/ProxyString.tsx +1 -1
  92. package/templates/shopify/components/media/ShopifyDocumentStatus.tsx +3 -1
  93. package/templates/shopify/constants.ts +3 -1
  94. package/templates/shopify/plugins/customDocumentActions/shopifyDelete.tsx +1 -1
  95. package/templates/shopify/plugins/customDocumentActions/shopifyLink.ts +1 -1
  96. package/templates/shopify/schemaTypes/documents/collection.tsx +1 -1
  97. package/templates/shopify/schemaTypes/documents/colorTheme.tsx +1 -1
  98. package/templates/shopify/schemaTypes/documents/page.ts +1 -1
  99. package/templates/shopify/schemaTypes/documents/product.tsx +1 -1
  100. package/templates/shopify/schemaTypes/documents/productVariant.tsx +1 -1
  101. package/templates/shopify/schemaTypes/objects/collection/collectionGroupType.ts +1 -1
  102. package/templates/shopify/schemaTypes/objects/hotspot/imageWithProductHotspotsType.ts +1 -1
  103. package/templates/shopify/schemaTypes/objects/link/linkEmailType.tsx +1 -1
  104. package/templates/shopify/schemaTypes/objects/link/linkExternalType.tsx +1 -1
  105. package/templates/shopify/schemaTypes/objects/link/linkInternalType.tsx +1 -1
  106. package/templates/shopify/schemaTypes/objects/link/linkProductType.tsx +1 -1
  107. package/templates/shopify/schemaTypes/objects/module/accordionType.ts +1 -1
  108. package/templates/shopify/schemaTypes/objects/module/callToActionType.tsx +2 -1
  109. package/templates/shopify/schemaTypes/objects/module/calloutType.ts +1 -1
  110. package/templates/shopify/schemaTypes/objects/module/collectionReferenceType.tsx +1 -1
  111. package/templates/shopify/schemaTypes/objects/module/gridType.ts +1 -1
  112. package/templates/shopify/schemaTypes/objects/module/imageFeatureType.ts +1 -1
  113. package/templates/shopify/schemaTypes/objects/module/imageFeaturesType.tsx +1 -1
  114. package/templates/shopify/schemaTypes/objects/module/instagramType.ts +1 -1
  115. package/templates/shopify/schemaTypes/objects/module/productFeaturesType.tsx +1 -1
  116. package/templates/shopify/schemaTypes/objects/module/productReferenceType.tsx +1 -1
  117. package/templates/shopify/schemaTypes/objects/shopify/collectionRuleType.tsx +1 -1
  118. package/templates/shopify/schemaTypes/objects/shopify/optionType.tsx +1 -1
  119. package/templates/shopify/schemaTypes/objects/shopify/productWithVariantType.tsx +1 -1
  120. package/templates/shopify/schemaTypes/singletons/homeType.ts +1 -1
  121. package/templates/shopify/schemaTypes/singletons/settingsType.ts +5 -1
  122. package/templates/shopify/structure/pageStructure.ts +1 -1
  123. package/templates/shopify/structure/productStructure.ts +1 -1
  124. package/templates/shopify-online-storefront/components/inputs/CollectionHidden.tsx +1 -1
  125. package/templates/shopify-online-storefront/components/inputs/ProductHidden.tsx +1 -1
  126. package/templates/shopify-online-storefront/components/inputs/ProductVariantHidden.tsx +1 -1
  127. package/templates/shopify-online-storefront/components/inputs/ProxyString.tsx +1 -1
  128. package/templates/shopify-online-storefront/components/media/ShopifyDocumentStatus.tsx +3 -1
  129. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyDelete.tsx +1 -1
  130. package/templates/shopify-online-storefront/plugins/shopifyDocumentActions/shopifyLink.ts +1 -1
  131. package/templates/shopify-online-storefront/schemaTypes/documents/collection.tsx +1 -1
  132. package/templates/shopify-online-storefront/schemaTypes/documents/product.tsx +1 -1
  133. package/templates/shopify-online-storefront/schemaTypes/documents/productVariant.tsx +1 -1
  134. package/templates/shopify-online-storefront/schemaTypes/objects/accordion.ts +1 -1
  135. package/templates/shopify-online-storefront/schemaTypes/objects/callout.ts +1 -1
  136. package/templates/shopify-online-storefront/schemaTypes/objects/option.ts +1 -1
  137. package/templates/shopify-online-storefront/schemaTypes/objects/shopifyCollectionRule.tsx +1 -1
  138. package/templates/shopify-online-storefront/structure/productStructure.ts +1 -1
@@ -1141,6 +1141,76 @@
1141
1141
  "manage.js"
1142
1142
  ]
1143
1143
  },
1144
+ "new": {
1145
+ "aliases": [],
1146
+ "args": {
1147
+ "projectName": {
1148
+ "description": "Display name for the new project",
1149
+ "name": "projectName",
1150
+ "required": false
1151
+ }
1152
+ },
1153
+ "description": "Sets up two folders here: ./sanity, a Studio where you write and edit your\ncontent, and ./web, a Next.js website that reads it. Both are already\nconnected to your new project, so you can start them straight away. Use\n--no-scaffold if you just want the project and nothing else.\n\nThe project is real and works immediately, but it is only yours for 72 hours.\nClaim it with a Sanity account before the deadline and everything you have\nbuilt stays exactly as it is. Claiming is free and takes about a minute. Miss\nthe deadline and the project and its content are deleted.\n\nTwo things to keep private: the claim link, because anyone who opens it\nbecomes the owner, and the access token saved in ./sanity/.env.local and\n./web/.env.local, because it can read and change everything in the project.\nKeep both env files out of git, and never put the token in code that runs in\nthe browser.\n\nFetch https://sanity.new for full instructions, or point your AI agent at it.",
1154
+ "examples": [
1155
+ {
1156
+ "command": "<%= config.bin %> <%= command.id %>",
1157
+ "description": "Create a project with a Studio and a website"
1158
+ },
1159
+ {
1160
+ "command": "<%= config.bin %> <%= command.id %> \"My New Project\"",
1161
+ "description": "Create a project called \"My New Project\""
1162
+ },
1163
+ {
1164
+ "command": "<%= config.bin %> <%= command.id %> --yes",
1165
+ "description": "Create a project without being asked anything"
1166
+ },
1167
+ {
1168
+ "command": "<%= config.bin %> <%= command.id %> --no-scaffold",
1169
+ "description": "Create the project only, with no Studio or website"
1170
+ },
1171
+ {
1172
+ "command": "<%= config.bin %> <%= command.id %> --json",
1173
+ "description": "Create a project and print its details as JSON"
1174
+ }
1175
+ ],
1176
+ "flags": {
1177
+ "json": {
1178
+ "description": "Format output as json.",
1179
+ "helpGroup": "GLOBAL",
1180
+ "name": "json",
1181
+ "allowNo": false,
1182
+ "type": "boolean"
1183
+ },
1184
+ "scaffold": {
1185
+ "description": "Set up a Studio in ./sanity and a Next.js website in ./web (on by default)",
1186
+ "name": "scaffold",
1187
+ "allowNo": true,
1188
+ "type": "boolean"
1189
+ },
1190
+ "yes": {
1191
+ "char": "y",
1192
+ "description": "Skip prompts and use defaults (project: \"My Sanity project\")",
1193
+ "name": "yes",
1194
+ "allowNo": false,
1195
+ "type": "boolean"
1196
+ }
1197
+ },
1198
+ "hasDynamicHelp": false,
1199
+ "hiddenAliases": [],
1200
+ "id": "new",
1201
+ "pluginAlias": "@sanity/cli",
1202
+ "pluginName": "@sanity/cli",
1203
+ "pluginType": "core",
1204
+ "strict": true,
1205
+ "summary": "Create a Sanity project without an account, and claim it within 72 hours to keep it.",
1206
+ "enableJsonFlag": true,
1207
+ "isESM": true,
1208
+ "relativePath": [
1209
+ "dist",
1210
+ "commands",
1211
+ "new.js"
1212
+ ]
1213
+ },
1144
1214
  "preview": {
1145
1215
  "aliases": [],
1146
1216
  "args": {
@@ -2743,7 +2813,6 @@
2743
2813
  },
2744
2814
  "api-version": {
2745
2815
  "description": "API version to use (defaults to 2025-08-15)",
2746
- "env": "SANITY_CLI_QUERY_API_VERSION",
2747
2816
  "name": "api-version",
2748
2817
  "hasDynamicHelp": false,
2749
2818
  "multiple": false,
@@ -3409,6 +3478,45 @@
3409
3478
  "logs.js"
3410
3479
  ]
3411
3480
  },
3481
+ "manifest:extract": {
3482
+ "aliases": [],
3483
+ "args": {},
3484
+ "description": "Extract studio configuration as JSON manifest files.\n\nNote: This command is experimental and subject to change. It is currently intended for use with Create only.",
3485
+ "examples": [
3486
+ {
3487
+ "command": "<%= config.bin %> <%= command.id %>",
3488
+ "description": "Extracts manifests"
3489
+ },
3490
+ {
3491
+ "command": "<%= config.bin %> <%= command.id %> --path /public/static",
3492
+ "description": "Extracts manifests into /public/static"
3493
+ }
3494
+ ],
3495
+ "flags": {
3496
+ "path": {
3497
+ "description": "Optional path to specify destination directory of the manifest files",
3498
+ "name": "path",
3499
+ "default": "dist/static",
3500
+ "hasDynamicHelp": false,
3501
+ "multiple": false,
3502
+ "type": "option"
3503
+ }
3504
+ },
3505
+ "hasDynamicHelp": false,
3506
+ "hiddenAliases": [],
3507
+ "id": "manifest:extract",
3508
+ "pluginAlias": "@sanity/cli",
3509
+ "pluginName": "@sanity/cli",
3510
+ "pluginType": "core",
3511
+ "strict": true,
3512
+ "isESM": true,
3513
+ "relativePath": [
3514
+ "dist",
3515
+ "commands",
3516
+ "manifest",
3517
+ "extract.js"
3518
+ ]
3519
+ },
3412
3520
  "mcp:configure": {
3413
3521
  "aliases": [],
3414
3522
  "args": {},
@@ -4413,6 +4521,46 @@
4413
4521
  "list.js"
4414
4522
  ]
4415
4523
  },
4524
+ "projects:unclaimed": {
4525
+ "aliases": [],
4526
+ "args": {},
4527
+ "description": "Recover details for unclaimed projects created on this machine",
4528
+ "examples": [
4529
+ {
4530
+ "command": "<%= config.bin %> <%= command.id %>",
4531
+ "description": "List locally recorded unclaimed projects"
4532
+ },
4533
+ {
4534
+ "command": "<%= config.bin %> <%= command.id %> --project-id abc123",
4535
+ "description": "Show recovery details for one project"
4536
+ }
4537
+ ],
4538
+ "flags": {
4539
+ "project-id": {
4540
+ "description": "Project ID to recover",
4541
+ "name": "project-id",
4542
+ "hasDynamicHelp": false,
4543
+ "multiple": false,
4544
+ "type": "option"
4545
+ }
4546
+ },
4547
+ "hasDynamicHelp": false,
4548
+ "hiddenAliases": [
4549
+ "project:unclaimed"
4550
+ ],
4551
+ "id": "projects:unclaimed",
4552
+ "pluginAlias": "@sanity/cli",
4553
+ "pluginName": "@sanity/cli",
4554
+ "pluginType": "core",
4555
+ "strict": true,
4556
+ "isESM": true,
4557
+ "relativePath": [
4558
+ "dist",
4559
+ "commands",
4560
+ "projects",
4561
+ "unclaimed.js"
4562
+ ]
4563
+ },
4416
4564
  "schemas:delete": {
4417
4565
  "aliases": [],
4418
4566
  "args": {},
@@ -5274,45 +5422,6 @@
5274
5422
  "list.js"
5275
5423
  ]
5276
5424
  },
5277
- "manifest:extract": {
5278
- "aliases": [],
5279
- "args": {},
5280
- "description": "Extract studio configuration as JSON manifest files.\n\nNote: This command is experimental and subject to change. It is currently intended for use with Create only.",
5281
- "examples": [
5282
- {
5283
- "command": "<%= config.bin %> <%= command.id %>",
5284
- "description": "Extracts manifests"
5285
- },
5286
- {
5287
- "command": "<%= config.bin %> <%= command.id %> --path /public/static",
5288
- "description": "Extracts manifests into /public/static"
5289
- }
5290
- ],
5291
- "flags": {
5292
- "path": {
5293
- "description": "Optional path to specify destination directory of the manifest files",
5294
- "name": "path",
5295
- "default": "dist/static",
5296
- "hasDynamicHelp": false,
5297
- "multiple": false,
5298
- "type": "option"
5299
- }
5300
- },
5301
- "hasDynamicHelp": false,
5302
- "hiddenAliases": [],
5303
- "id": "manifest:extract",
5304
- "pluginAlias": "@sanity/cli",
5305
- "pluginName": "@sanity/cli",
5306
- "pluginType": "core",
5307
- "strict": true,
5308
- "isESM": true,
5309
- "relativePath": [
5310
- "dist",
5311
- "commands",
5312
- "manifest",
5313
- "extract.js"
5314
- ]
5315
- },
5316
5425
  "datasets:alias:create": {
5317
5426
  "aliases": [],
5318
5427
  "args": {
@@ -5830,5 +5939,5 @@
5830
5939
  ]
5831
5940
  }
5832
5941
  },
5833
- "version": "7.15.0"
5942
+ "version": "7.16.0"
5834
5943
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/cli",
3
- "version": "7.15.0",
3
+ "version": "7.16.0",
4
4
  "description": "Sanity CLI tool for managing Sanity projects and organizations",
5
5
  "keywords": [
6
6
  "cli",
@@ -62,7 +62,7 @@
62
62
  "@oclif/core": "^4.11.14",
63
63
  "@oclif/plugin-help": "^6.2.53",
64
64
  "@oclif/plugin-not-found": "^3.2.88",
65
- "@sanity/client": "^7.23.2",
65
+ "@sanity/client": "^7.25.0",
66
66
  "@sanity/codegen": "^7.0.3",
67
67
  "@sanity/descriptors": "^1.3.0",
68
68
  "@sanity/export": "^6.2.0",
@@ -123,13 +123,13 @@
123
123
  "which": "^6.0.1",
124
124
  "yaml": "^2.9.0",
125
125
  "zod": "^4.4.3",
126
- "@sanity/cli-core": "^2.7.0",
127
- "@sanity/cli-build": "^5.1.0",
128
- "@sanity/workbench-cli": "^1.8.0"
126
+ "@sanity/cli-core": "^2.8.0",
127
+ "@sanity/workbench-cli": "^1.9.0",
128
+ "@sanity/cli-build": "^5.1.0"
129
129
  },
130
130
  "devDependencies": {
131
131
  "@eslint/compat": "^2.1.0",
132
- "@sanity/pkg-utils": "^11.0.9",
132
+ "@sanity/pkg-utils": "^11.0.17",
133
133
  "@sanity/ui": "^3.5.0",
134
134
  "@swc/cli": "^0.8.1",
135
135
  "@swc/core": "^1.15.43",
@@ -159,8 +159,8 @@
159
159
  "typescript": "^6.0.3",
160
160
  "vitest": "^4.1.10",
161
161
  "@repo/package.config": "0.0.1",
162
+ "@sanity/cli-test": "9.0.0",
162
163
  "@repo/tsconfig": "3.70.0",
163
- "@sanity/cli-test": "8.0.0",
164
164
  "@sanity/eslint-config-cli": "1.1.3"
165
165
  },
166
166
  "peerDependencies": {
@@ -11,7 +11,7 @@ import {
11
11
  useElementSize,
12
12
  useTheme,
13
13
  } from '@sanity/ui'
14
- import {CloseIcon} from '@sanity/icons'
14
+ import {CloseIcon} from '@sanity/icons/Close'
15
15
  import {css, styled} from 'styled-components'
16
16
 
17
17
  const BlueColor = css`
@@ -1,4 +1,4 @@
1
- import {WarningOutlineIcon} from '@sanity/icons'
1
+ import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'
2
2
  import {StringFieldProps} from 'sanity'
3
3
  import {Box, Card, Flex, Stack, Text} from '@sanity/ui'
4
4
 
@@ -1,4 +1,4 @@
1
- import {WarningOutlineIcon} from '@sanity/icons'
1
+ import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'
2
2
  import {StringFieldProps, useFormValue} from 'sanity'
3
3
  import {Box, Card, Flex, Stack, Text} from '@sanity/ui'
4
4
  import {productUrl} from '../../utils/shopifyUrls'
@@ -1,4 +1,4 @@
1
- import {WarningOutlineIcon} from '@sanity/icons'
1
+ import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'
2
2
  import {Box, Card, Flex, Stack, Text} from '@sanity/ui'
3
3
 
4
4
  export default function ProductVariantHiddenInput() {
@@ -1,4 +1,4 @@
1
- import {LockIcon} from '@sanity/icons'
1
+ import {LockIcon} from '@sanity/icons/Lock'
2
2
  import {Box, Text, TextInput, Tooltip} from '@sanity/ui'
3
3
  import {StringInputProps, useFormValue, SanityDocument, StringSchemaType} from 'sanity'
4
4
  import get from 'lodash.get'
@@ -1,4 +1,6 @@
1
- import {CloseIcon, ImageIcon, LinkRemovedIcon} from '@sanity/icons'
1
+ import {CloseIcon} from '@sanity/icons/Close'
2
+ import {ImageIcon} from '@sanity/icons/Image'
3
+ import {LinkRemovedIcon} from '@sanity/icons/LinkRemoved'
2
4
  import React, {forwardRef, useState} from 'react'
3
5
 
4
6
  type Props = {
@@ -1,7 +1,9 @@
1
1
  // Currency code (ISO 4217) to use when displaying prices in the studio
2
2
 
3
3
  import ShopifyIcon from './components/icons/Shopify'
4
- import {ColorWheelIcon, ComposeIcon, SearchIcon} from '@sanity/icons'
4
+ import {ColorWheelIcon} from '@sanity/icons/ColorWheel'
5
+ import {ComposeIcon} from '@sanity/icons/Compose'
6
+ import {SearchIcon} from '@sanity/icons/Search'
5
7
 
6
8
  // https://en.wikipedia.org/wiki/ISO_4217
7
9
  export const DEFAULT_CURRENCY_CODE = 'USD'
@@ -1,5 +1,5 @@
1
1
  import React, {useState} from 'react'
2
- import {TrashIcon} from '@sanity/icons'
2
+ import {TrashIcon} from '@sanity/icons/Trash'
3
3
  import {Stack, Text, useToast} from '@sanity/ui'
4
4
  import {
5
5
  type DocumentActionDescription,
@@ -1,4 +1,4 @@
1
- import {EarthGlobeIcon} from '@sanity/icons'
1
+ import {EarthGlobeIcon} from '@sanity/icons/EarthGlobe'
2
2
  import {collectionUrl, productUrl, productVariantUrl} from '../../utils/shopifyUrls'
3
3
  import {type DocumentActionDescription} from 'sanity'
4
4
  import type {ShopifyDocument, ShopifyDocumentActionProps} from './types'
@@ -1,5 +1,5 @@
1
1
  import {defineArrayMember, defineField, defineType} from 'sanity'
2
- import {PackageIcon} from '@sanity/icons'
2
+ import {PackageIcon} from '@sanity/icons/Package'
3
3
  import {getExtension} from '@sanity/asset-utils'
4
4
  import pluralize from 'pluralize-esm'
5
5
  import CollectionHiddenInput from '../../components/inputs/CollectionHidden'
@@ -1,4 +1,4 @@
1
- import {IceCreamIcon} from '@sanity/icons'
1
+ import {IceCreamIcon} from '@sanity/icons/IceCream'
2
2
  import {defineField, defineType} from 'sanity'
3
3
 
4
4
  import ColorTheme from '../../components/media/ColorTheme'
@@ -1,4 +1,4 @@
1
- import {DocumentIcon} from '@sanity/icons'
1
+ import {DocumentIcon} from '@sanity/icons/Document'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  import {validateSlug} from '../../utils/validateSlug'
@@ -1,4 +1,4 @@
1
- import {TagIcon} from '@sanity/icons'
1
+ import {TagIcon} from '@sanity/icons/Tag'
2
2
  import pluralize from 'pluralize-esm'
3
3
  import ProductHiddenInput from '../../components/inputs/ProductHidden'
4
4
  import ShopifyDocumentStatus from '../../components/media/ShopifyDocumentStatus'
@@ -1,4 +1,4 @@
1
- import {CopyIcon} from '@sanity/icons'
1
+ import {CopyIcon} from '@sanity/icons/Copy'
2
2
  import {defineField, defineType} from 'sanity'
3
3
 
4
4
  import ProductVariantHiddenInput from '../../components/inputs/ProductVariantHidden'
@@ -1,4 +1,4 @@
1
- import {PackageIcon} from '@sanity/icons'
1
+ import {PackageIcon} from '@sanity/icons/Package'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const collectionGroupType = defineField({
@@ -1,4 +1,4 @@
1
- import {ImageIcon} from '@sanity/icons'
1
+ import {ImageIcon} from '@sanity/icons/Image'
2
2
  import pluralize from 'pluralize-esm'
3
3
  import {defineField} from 'sanity'
4
4
 
@@ -1,4 +1,4 @@
1
- import {EnvelopeIcon} from '@sanity/icons'
1
+ import {EnvelopeIcon} from '@sanity/icons/Envelope'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const linkEmailType = defineField({
@@ -1,4 +1,4 @@
1
- import {EarthGlobeIcon} from '@sanity/icons'
1
+ import {EarthGlobeIcon} from '@sanity/icons/EarthGlobe'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const linkExternalType = defineField({
@@ -1,4 +1,4 @@
1
- import {LinkIcon} from '@sanity/icons'
1
+ import {LinkIcon} from '@sanity/icons/Link'
2
2
  import {defineField} from 'sanity'
3
3
  import {PAGE_REFERENCES} from '../../../constants'
4
4
 
@@ -1,4 +1,4 @@
1
- import {TagIcon} from '@sanity/icons'
1
+ import {TagIcon} from '@sanity/icons/Tag'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const linkProductType = defineField({
@@ -1,4 +1,4 @@
1
- import {StackCompactIcon} from '@sanity/icons'
1
+ import {StackCompactIcon} from '@sanity/icons/StackCompact'
2
2
  import pluralize from 'pluralize-esm'
3
3
  import {defineField} from 'sanity'
4
4
 
@@ -1,4 +1,5 @@
1
- import {BlockElementIcon, ImageIcon} from '@sanity/icons'
1
+ import {BlockElementIcon} from '@sanity/icons/BlockElement'
2
+ import {ImageIcon} from '@sanity/icons/Image'
2
3
  import {defineArrayMember, defineField} from 'sanity'
3
4
 
4
5
  export const callToActionType = defineField({
@@ -1,4 +1,4 @@
1
- import {BulbOutlineIcon} from '@sanity/icons'
1
+ import {BulbOutlineIcon} from '@sanity/icons/BulbOutline'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const calloutType = defineField({
@@ -1,4 +1,4 @@
1
- import {PackageIcon} from '@sanity/icons'
1
+ import {PackageIcon} from '@sanity/icons/Package'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  import ShopifyDocumentStatus from '../../../components/media/ShopifyDocumentStatus'
@@ -1,4 +1,4 @@
1
- import {ThLargeIcon} from '@sanity/icons'
1
+ import {ThLargeIcon} from '@sanity/icons/ThLarge'
2
2
  import pluralize from 'pluralize-esm'
3
3
  import {defineArrayMember, defineField} from 'sanity'
4
4
 
@@ -1,4 +1,4 @@
1
- import {ImageIcon} from '@sanity/icons'
1
+ import {ImageIcon} from '@sanity/icons/Image'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  const VARIANTS = [
@@ -1,4 +1,4 @@
1
- import {ImageIcon} from '@sanity/icons'
1
+ import {ImageIcon} from '@sanity/icons/Image'
2
2
  import pluralize from 'pluralize-esm'
3
3
  import {defineField} from 'sanity'
4
4
 
@@ -1,4 +1,4 @@
1
- import {UserIcon} from '@sanity/icons'
1
+ import {UserIcon} from '@sanity/icons/User'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const instagramType = defineField({
@@ -1,4 +1,4 @@
1
- import {TagIcon} from '@sanity/icons'
1
+ import {TagIcon} from '@sanity/icons/Tag'
2
2
  import pluralize from 'pluralize-esm'
3
3
  import {defineField} from 'sanity'
4
4
 
@@ -1,4 +1,4 @@
1
- import {TagIcon} from '@sanity/icons'
1
+ import {TagIcon} from '@sanity/icons/Tag'
2
2
 
3
3
  import {defineField} from 'sanity'
4
4
 
@@ -1,4 +1,4 @@
1
- import {FilterIcon} from '@sanity/icons'
1
+ import {FilterIcon} from '@sanity/icons/Filter'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const collectionRuleType = defineField({
@@ -1,4 +1,4 @@
1
- import {SunIcon} from '@sanity/icons'
1
+ import {SunIcon} from '@sanity/icons/Sun'
2
2
  import {defineField} from 'sanity'
3
3
 
4
4
  export const optionType = defineField({
@@ -1,4 +1,4 @@
1
- import {TagIcon} from '@sanity/icons'
1
+ import {TagIcon} from '@sanity/icons/Tag'
2
2
  import pluralize from 'pluralize-esm'
3
3
 
4
4
  import {defineField} from 'sanity'
@@ -1,4 +1,4 @@
1
- import {HomeIcon} from '@sanity/icons'
1
+ import {HomeIcon} from '@sanity/icons/Home'
2
2
  import {defineArrayMember, defineField} from 'sanity'
3
3
  import {GROUPS} from '../../constants'
4
4
 
@@ -1,4 +1,8 @@
1
- import {CogIcon, ControlsIcon, ErrorOutlineIcon, MenuIcon, SearchIcon} from '@sanity/icons'
1
+ import {CogIcon} from '@sanity/icons/Cog'
2
+ import {ControlsIcon} from '@sanity/icons/Controls'
3
+ import {ErrorOutlineIcon} from '@sanity/icons/ErrorOutline'
4
+ import {MenuIcon} from '@sanity/icons/Menu'
5
+ import {SearchIcon} from '@sanity/icons/Search'
2
6
  import {defineType, defineField} from 'sanity'
3
7
 
4
8
  const TITLE = 'Settings'
@@ -1,4 +1,4 @@
1
- import {DocumentsIcon} from '@sanity/icons'
1
+ import {DocumentsIcon} from '@sanity/icons/Documents'
2
2
  import {ListItemBuilder} from 'sanity/structure'
3
3
  import defineStructure from '../utils/defineStructure'
4
4
 
@@ -1,4 +1,4 @@
1
- import {InfoOutlineIcon} from '@sanity/icons'
1
+ import {InfoOutlineIcon} from '@sanity/icons/InfoOutline'
2
2
  import {ListItemBuilder} from 'sanity/structure'
3
3
  import defineStructure from '../utils/defineStructure'
4
4
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import {WarningOutlineIcon} from '@sanity/icons'
2
+ import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'
3
3
  import {Box, Card, Flex, Stack, Text} from '@sanity/ui'
4
4
 
5
5
  export default function CollectionHiddenInput() {
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import {WarningOutlineIcon} from '@sanity/icons'
2
+ import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'
3
3
  import {type StringFieldProps, useFormValue} from 'sanity'
4
4
  import {Box, Card, Flex, Stack, Text} from '@sanity/ui'
5
5
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import {WarningOutlineIcon} from '@sanity/icons'
2
+ import {WarningOutlineIcon} from '@sanity/icons/WarningOutline'
3
3
  import {Box, Card, Flex, Stack, Text} from '@sanity/ui'
4
4
 
5
5
  export default function ProductVariantHiddenInput() {
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import {LockIcon} from '@sanity/icons'
2
+ import {LockIcon} from '@sanity/icons/Lock'
3
3
  import {Box, Text, TextInput, Tooltip} from '@sanity/ui'
4
4
  import {
5
5
  type SanityDocument,
@@ -1,5 +1,7 @@
1
1
  import React from 'react'
2
- import {CloseIcon, ImageIcon, LinkRemovedIcon} from '@sanity/icons'
2
+ import {CloseIcon} from '@sanity/icons/Close'
3
+ import {ImageIcon} from '@sanity/icons/Image'
4
+ import {LinkRemovedIcon} from '@sanity/icons/LinkRemoved'
3
5
  import {forwardRef, useState} from 'react'
4
6
 
5
7
  type Props = {
@@ -1,5 +1,5 @@
1
1
  import React, {useState} from 'react'
2
- import {TrashIcon} from '@sanity/icons'
2
+ import {TrashIcon} from '@sanity/icons/Trash'
3
3
  import {Stack, Text, useToast} from '@sanity/ui'
4
4
  import {
5
5
  type DocumentActionDescription,
@@ -1,4 +1,4 @@
1
- import {EarthGlobeIcon} from '@sanity/icons'
1
+ import {EarthGlobeIcon} from '@sanity/icons/EarthGlobe'
2
2
  import {type DocumentActionDescription} from 'sanity'
3
3
  import {collectionUrl, productUrl, productVariantUrl} from '../../utils/shopifyUrls'
4
4
  import type {ShopifyDocument, ShopifyDocumentActionProps} from './types'
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import {defineField, defineType} from 'sanity'
3
- import {PackageIcon} from '@sanity/icons'
3
+ import {PackageIcon} from '@sanity/icons/Package'
4
4
  import pluralize from 'pluralize-esm'
5
5
  import CollectionHiddenInput from '../../components/inputs/CollectionHidden'
6
6
  import ShopifyIcon from '../../components/icons/Shopify'
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import {TagIcon} from '@sanity/icons'
2
+ import {TagIcon} from '@sanity/icons/Tag'
3
3
  import {defineField, defineType} from 'sanity'
4
4
  import pluralize from 'pluralize-esm'
5
5
  import ShopifyIcon from '../../components/icons/Shopify'