@liiift-studio/sanity-font-manager 2.3.8 → 2.3.10

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/dist/index.js CHANGED
@@ -30,6 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  var index_exports = {};
31
31
  __export(index_exports, {
32
32
  BatchUploadFonts: () => BatchUploadFonts,
33
+ DISCOUNT_REQUIREMENT_TYPES: () => DISCOUNT_REQUIREMENT_TYPES,
34
+ DISCOUNT_REQUIREMENT_TYPES_OBJECT: () => DISCOUNT_REQUIREMENT_TYPES_OBJECT,
33
35
  FontScriptUploaderComponent: () => FontScriptUploaderComponent,
34
36
  GenerateCollectionsPairsComponent: () => GenerateCollectionsPairsComponent,
35
37
  HtmlDescription: () => HtmlDescription,
@@ -2970,6 +2972,10 @@ var SCRIPTS = (process.env.SANITY_STUDIO_SCRIPTS || "").split(",").map((script)
2970
2972
  var SCRIPTS_OBJECT = SCRIPTS.map((script) => {
2971
2973
  return { title: script[0].toUpperCase() + script.slice(1), value: script };
2972
2974
  });
2975
+ var DISCOUNT_REQUIREMENT_TYPES = (process.env.SANITY_STUDIO_DISCOUNT_REQ_TYPES || "").split(",").map((type) => type.trim()).filter(Boolean);
2976
+ var DISCOUNT_REQUIREMENT_TYPES_OBJECT = DISCOUNT_REQUIREMENT_TYPES.map((type) => {
2977
+ return { title: type[0].toUpperCase() + type.slice(1), value: type };
2978
+ });
2973
2979
 
2974
2980
  // src/components/UploadScriptsComponent.jsx
2975
2981
  var UploadScriptsComponent = (props) => {
@@ -6660,7 +6666,7 @@ var fontsFilter = async ({ getClient, document, parent }) => {
6660
6666
  const typefaceName = document.title;
6661
6667
  const fonts = await client.fetch('*[_type == "font" && lower(typefaceName) == lower($typefaceName)]', { typefaceName });
6662
6668
  const relatedItemsFiltered = fonts.map((f) => f._id).filter(Boolean);
6663
- const existingItems = parent.map((f) => f._ref).filter(Boolean);
6669
+ const existingItems = (parent || []).map((f) => f._ref).filter(Boolean);
6664
6670
  return {
6665
6671
  filter: "!(_id in $existingItems) && (_id in $relatedItemsFiltered)",
6666
6672
  params: { existingItems, relatedItemsFiltered }
@@ -6669,7 +6675,7 @@ var fontsFilter = async ({ getClient, document, parent }) => {
6669
6675
  var variableFontsFilter = async ({ getClient, document, parent }) => {
6670
6676
  const client = getClient({ apiVersion: "2022-11-09" });
6671
6677
  const typefaceName = document.title;
6672
- const existingItems = parent.map((f) => f._ref).filter(Boolean);
6678
+ const existingItems = (parent || []).map((f) => f._ref).filter(Boolean);
6673
6679
  const fonts = await client.fetch('*[_type == "font" && typefaceName == $typefaceName && variableFont == true]', { typefaceName });
6674
6680
  const relatedItemsFiltered = fonts.map((f) => f._id).filter(Boolean);
6675
6681
  return {
@@ -6682,7 +6688,7 @@ var subfamilyPreferredStyleFilter = async ({ getClient, document, parent }) => {
6682
6688
  const typefaceName = document.title;
6683
6689
  const fonts = await client.fetch('*[_type == "font" && typefaceName == $typefaceName && variableFont == false]', { typefaceName });
6684
6690
  const relatedItemsFiltered = fonts.map((f) => f._id).filter(Boolean);
6685
- const existingItems = parent.fonts.map((f) => f._ref).filter(Boolean);
6691
+ const existingItems = (parent.fonts || []).map((f) => f._ref).filter(Boolean);
6686
6692
  return {
6687
6693
  filter: "(_id in $existingItems) && (_id in $relatedItemsFiltered)",
6688
6694
  params: { existingItems, relatedItemsFiltered }
@@ -6751,7 +6757,7 @@ function createStylesField({
6751
6757
  preview: {
6752
6758
  select: { title: "title", fonts: "fonts" },
6753
6759
  prepare({ title, fonts }) {
6754
- return { title, subtitle: `${Object.keys(fonts || {}).length} fonts` };
6760
+ return { title, subtitle: `${(fonts || []).length} fonts` };
6755
6761
  }
6756
6762
  }
6757
6763
  } : {}
@@ -6833,8 +6839,8 @@ function createStylesField({
6833
6839
  name: "regenerateSubfamilies",
6834
6840
  type: "string",
6835
6841
  hidden: ({ parent }) => {
6836
- var _a, _b, _c, _d;
6837
- return ((_b = (_a = parent == null ? void 0 : parent.styles) == null ? void 0 : _a.subfamilies) == null ? void 0 : _b.length) === 0 || ((_d = (_c = parent == null ? void 0 : parent.styles) == null ? void 0 : _c.fonts) == null ? void 0 : _d.length) === 0;
6842
+ var _a, _b;
6843
+ return !((_a = parent == null ? void 0 : parent.subfamilies) == null ? void 0 : _a.length) || !((_b = parent == null ? void 0 : parent.fonts) == null ? void 0 : _b.length);
6838
6844
  },
6839
6845
  description: "Regenerates subfamily groups based on the fonts in this typeface.",
6840
6846
  components: { input: RegenerateSubfamiliesComponent }
@@ -6877,6 +6883,8 @@ function createStylesField({
6877
6883
  // Annotate the CommonJS export names for ESM import in node:
6878
6884
  0 && (module.exports = {
6879
6885
  BatchUploadFonts,
6886
+ DISCOUNT_REQUIREMENT_TYPES,
6887
+ DISCOUNT_REQUIREMENT_TYPES_OBJECT,
6880
6888
  FontScriptUploaderComponent,
6881
6889
  GenerateCollectionsPairsComponent,
6882
6890
  HtmlDescription,
package/dist/index.mjs CHANGED
@@ -2884,6 +2884,10 @@ var SCRIPTS = (process.env.SANITY_STUDIO_SCRIPTS || "").split(",").map((script)
2884
2884
  var SCRIPTS_OBJECT = SCRIPTS.map((script) => {
2885
2885
  return { title: script[0].toUpperCase() + script.slice(1), value: script };
2886
2886
  });
2887
+ var DISCOUNT_REQUIREMENT_TYPES = (process.env.SANITY_STUDIO_DISCOUNT_REQ_TYPES || "").split(",").map((type) => type.trim()).filter(Boolean);
2888
+ var DISCOUNT_REQUIREMENT_TYPES_OBJECT = DISCOUNT_REQUIREMENT_TYPES.map((type) => {
2889
+ return { title: type[0].toUpperCase() + type.slice(1), value: type };
2890
+ });
2887
2891
 
2888
2892
  // src/components/UploadScriptsComponent.jsx
2889
2893
  var UploadScriptsComponent = (props) => {
@@ -6574,7 +6578,7 @@ var fontsFilter = async ({ getClient, document, parent }) => {
6574
6578
  const typefaceName = document.title;
6575
6579
  const fonts = await client.fetch('*[_type == "font" && lower(typefaceName) == lower($typefaceName)]', { typefaceName });
6576
6580
  const relatedItemsFiltered = fonts.map((f) => f._id).filter(Boolean);
6577
- const existingItems = parent.map((f) => f._ref).filter(Boolean);
6581
+ const existingItems = (parent || []).map((f) => f._ref).filter(Boolean);
6578
6582
  return {
6579
6583
  filter: "!(_id in $existingItems) && (_id in $relatedItemsFiltered)",
6580
6584
  params: { existingItems, relatedItemsFiltered }
@@ -6583,7 +6587,7 @@ var fontsFilter = async ({ getClient, document, parent }) => {
6583
6587
  var variableFontsFilter = async ({ getClient, document, parent }) => {
6584
6588
  const client = getClient({ apiVersion: "2022-11-09" });
6585
6589
  const typefaceName = document.title;
6586
- const existingItems = parent.map((f) => f._ref).filter(Boolean);
6590
+ const existingItems = (parent || []).map((f) => f._ref).filter(Boolean);
6587
6591
  const fonts = await client.fetch('*[_type == "font" && typefaceName == $typefaceName && variableFont == true]', { typefaceName });
6588
6592
  const relatedItemsFiltered = fonts.map((f) => f._id).filter(Boolean);
6589
6593
  return {
@@ -6596,7 +6600,7 @@ var subfamilyPreferredStyleFilter = async ({ getClient, document, parent }) => {
6596
6600
  const typefaceName = document.title;
6597
6601
  const fonts = await client.fetch('*[_type == "font" && typefaceName == $typefaceName && variableFont == false]', { typefaceName });
6598
6602
  const relatedItemsFiltered = fonts.map((f) => f._id).filter(Boolean);
6599
- const existingItems = parent.fonts.map((f) => f._ref).filter(Boolean);
6603
+ const existingItems = (parent.fonts || []).map((f) => f._ref).filter(Boolean);
6600
6604
  return {
6601
6605
  filter: "(_id in $existingItems) && (_id in $relatedItemsFiltered)",
6602
6606
  params: { existingItems, relatedItemsFiltered }
@@ -6665,7 +6669,7 @@ function createStylesField({
6665
6669
  preview: {
6666
6670
  select: { title: "title", fonts: "fonts" },
6667
6671
  prepare({ title, fonts }) {
6668
- return { title, subtitle: `${Object.keys(fonts || {}).length} fonts` };
6672
+ return { title, subtitle: `${(fonts || []).length} fonts` };
6669
6673
  }
6670
6674
  }
6671
6675
  } : {}
@@ -6747,8 +6751,8 @@ function createStylesField({
6747
6751
  name: "regenerateSubfamilies",
6748
6752
  type: "string",
6749
6753
  hidden: ({ parent }) => {
6750
- var _a, _b, _c, _d;
6751
- return ((_b = (_a = parent == null ? void 0 : parent.styles) == null ? void 0 : _a.subfamilies) == null ? void 0 : _b.length) === 0 || ((_d = (_c = parent == null ? void 0 : parent.styles) == null ? void 0 : _c.fonts) == null ? void 0 : _d.length) === 0;
6754
+ var _a, _b;
6755
+ return !((_a = parent == null ? void 0 : parent.subfamilies) == null ? void 0 : _a.length) || !((_b = parent == null ? void 0 : parent.fonts) == null ? void 0 : _b.length);
6752
6756
  },
6753
6757
  description: "Regenerates subfamily groups based on the fonts in this typeface.",
6754
6758
  components: { input: RegenerateSubfamiliesComponent }
@@ -6790,6 +6794,8 @@ function createStylesField({
6790
6794
  }
6791
6795
  export {
6792
6796
  BatchUploadFonts,
6797
+ DISCOUNT_REQUIREMENT_TYPES,
6798
+ DISCOUNT_REQUIREMENT_TYPES_OBJECT,
6793
6799
  FontScriptUploaderComponent,
6794
6800
  GenerateCollectionsPairsComponent,
6795
6801
  HtmlDescription,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liiift-studio/sanity-font-manager",
3
- "version": "2.3.8",
3
+ "version": "2.3.10",
4
4
  "description": "Sanity Studio plugin — full font management suite with batch upload, format conversion, metadata extraction, CSS generation, collection/pair generation, and script variant support. Supports Sanity v3, v4, and v5.",
5
5
  "license": "MIT",
6
6
  "author": "Liiift Studio",
package/src/index.js CHANGED
@@ -28,7 +28,7 @@ export { default as generateFontFile } from './utils/generateFontFile.js';
28
28
  export { default as generateSubset } from './utils/generateSubset.js';
29
29
  export { default as parseVariableFontInstances } from './utils/parseVariableFontInstances.js';
30
30
  export { getEmptyFontKit } from './utils/getEmptyFontKit.js';
31
- export { SCRIPTS, SCRIPTS_OBJECT, HtmlDescription } from './utils/utils.js';
31
+ export { SCRIPTS, SCRIPTS_OBJECT, HtmlDescription, DISCOUNT_REQUIREMENT_TYPES, DISCOUNT_REQUIREMENT_TYPES_OBJECT } from './utils/utils.js';
32
32
 
33
33
  // Font processing utilities
34
34
  export {
@@ -11,7 +11,7 @@ const fontsFilter = async ({ getClient, document, parent }) => {
11
11
  const typefaceName = document.title;
12
12
  const fonts = await client.fetch('*[_type == "font" && lower(typefaceName) == lower($typefaceName)]', { typefaceName });
13
13
  const relatedItemsFiltered = fonts.map(f => f._id).filter(Boolean);
14
- const existingItems = parent.map(f => f._ref).filter(Boolean);
14
+ const existingItems = (parent || []).map(f => f._ref).filter(Boolean);
15
15
  return {
16
16
  filter: '!(_id in $existingItems) && (_id in $relatedItemsFiltered)',
17
17
  params: { existingItems, relatedItemsFiltered },
@@ -22,7 +22,7 @@ const fontsFilter = async ({ getClient, document, parent }) => {
22
22
  const variableFontsFilter = async ({ getClient, document, parent }) => {
23
23
  const client = getClient({ apiVersion: '2022-11-09' });
24
24
  const typefaceName = document.title;
25
- const existingItems = parent.map(f => f._ref).filter(Boolean);
25
+ const existingItems = (parent || []).map(f => f._ref).filter(Boolean);
26
26
  const fonts = await client.fetch('*[_type == "font" && typefaceName == $typefaceName && variableFont == true]', { typefaceName });
27
27
  const relatedItemsFiltered = fonts.map(f => f._id).filter(Boolean);
28
28
  return {
@@ -37,7 +37,7 @@ const subfamilyPreferredStyleFilter = async ({ getClient, document, parent }) =>
37
37
  const typefaceName = document.title;
38
38
  const fonts = await client.fetch('*[_type == "font" && typefaceName == $typefaceName && variableFont == false]', { typefaceName });
39
39
  const relatedItemsFiltered = fonts.map(f => f._id).filter(Boolean);
40
- const existingItems = parent.fonts.map(f => f._ref).filter(Boolean);
40
+ const existingItems = (parent.fonts || []).map(f => f._ref).filter(Boolean);
41
41
  return {
42
42
  filter: '(_id in $existingItems) && (_id in $relatedItemsFiltered)',
43
43
  params: { existingItems, relatedItemsFiltered },
@@ -126,7 +126,7 @@ export function createStylesField({
126
126
  preview: {
127
127
  select: { title: 'title', fonts: 'fonts' },
128
128
  prepare({ title, fonts }) {
129
- return { title, subtitle: `${Object.keys(fonts || {}).length} fonts` };
129
+ return { title, subtitle: `${(fonts || []).length} fonts` };
130
130
  },
131
131
  },
132
132
  } : {}),
@@ -208,7 +208,7 @@ export function createStylesField({
208
208
  title: 'Regenerate Subfamilies',
209
209
  name: 'regenerateSubfamilies',
210
210
  type: 'string',
211
- hidden: ({ parent }) => parent?.styles?.subfamilies?.length === 0 || parent?.styles?.fonts?.length === 0,
211
+ hidden: ({ parent }) => !parent?.subfamilies?.length || !parent?.fonts?.length,
212
212
  description: 'Regenerates subfamily groups based on the fonts in this typeface.',
213
213
  components: { input: RegenerateSubfamiliesComponent },
214
214
  }),
@@ -14,3 +14,11 @@ export const SCRIPTS = (process.env.SANITY_STUDIO_SCRIPTS || '').split(',').map(
14
14
  export const SCRIPTS_OBJECT = SCRIPTS.map((script) => {
15
15
  return {title: script[0].toUpperCase() + script.slice(1), value: script}
16
16
  });
17
+
18
+ /** Discount requirement types — comma-separated SANITY_STUDIO_DISCOUNT_REQ_TYPES env var */
19
+ export const DISCOUNT_REQUIREMENT_TYPES = (process.env.SANITY_STUDIO_DISCOUNT_REQ_TYPES || '').split(',').map((type) => type.trim()).filter(Boolean);
20
+
21
+ /** DISCOUNT_REQUIREMENT_TYPES as Sanity select option objects */
22
+ export const DISCOUNT_REQUIREMENT_TYPES_OBJECT = DISCOUNT_REQUIREMENT_TYPES.map((type) => {
23
+ return {title: type[0].toUpperCase() + type.slice(1), value: type}
24
+ });