@liiift-studio/sanity-font-manager 2.3.2 → 2.3.4

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/components/BatchUploadFonts.jsx
2
- import React4, { useCallback, useState as useState2, useMemo as useMemo2, useRef, useEffect } from "react";
2
+ import React5, { useCallback, useState as useState2, useMemo as useMemo2, useRef, useEffect } from "react";
3
3
  import { Card, Box as Box2, Flex as Flex3, Grid, Text as Text4, Label, Switch, Button as Button2, Spinner, Tooltip, Stack as Stack2 } from "@sanity/ui";
4
4
  import { ControlsIcon, InfoOutlineIcon, TrashIcon, UploadIcon, WarningOutlineIcon } from "@sanity/icons";
5
5
  import { useFormValue as useFormValue2 } from "sanity";
@@ -1378,17 +1378,17 @@ var updateFontPrices = async ({
1378
1378
  };
1379
1379
 
1380
1380
  // src/components/StatusDisplay.jsx
1381
- import React from "react";
1381
+ import React2 from "react";
1382
1382
  import { Flex, Text } from "@sanity/ui";
1383
1383
  var StatusDisplay = ({ status, error, action }) => {
1384
- return /* @__PURE__ */ React.createElement(Flex, { paddingTop: 1, paddingBottom: 3, align: "center", justify: "space-between" }, /* @__PURE__ */ React.createElement(Flex, { align: "center", gap: 2 }, /* @__PURE__ */ React.createElement(Text, { size: 1 }, "Status:"), /* @__PURE__ */ React.createElement(Text, { size: 1, style: { color: error ? "red" : "green" } }, status)), action && action);
1384
+ return /* @__PURE__ */ React2.createElement(Flex, { paddingTop: 1, paddingBottom: 3, align: "center", justify: "space-between" }, /* @__PURE__ */ React2.createElement(Flex, { align: "center", gap: 2 }, /* @__PURE__ */ React2.createElement(Text, { size: 1 }, "Status:"), /* @__PURE__ */ React2.createElement(Text, { size: 1, style: { color: error ? "red" : "green" } }, status)), action && action);
1385
1385
  };
1386
1386
  var StatusDisplay_default = StatusDisplay;
1387
1387
 
1388
1388
  // src/components/PriceInput.jsx
1389
- import React2 from "react";
1389
+ import React3 from "react";
1390
1390
  import { Flex as Flex2, Text as Text2 } from "@sanity/ui";
1391
- var PriceInput = ({ inputPrice, handleInputChange }) => /* @__PURE__ */ React2.createElement(Flex2, { align: "center", gap: 2 }, /* @__PURE__ */ React2.createElement(Text2, { size: 1, muted: true }, "Price:"), /* @__PURE__ */ React2.createElement(Text2, { size: 1, muted: true }, "$"), /* @__PURE__ */ React2.createElement(
1391
+ var PriceInput = ({ inputPrice, handleInputChange }) => /* @__PURE__ */ React3.createElement(Flex2, { align: "center", gap: 2 }, /* @__PURE__ */ React3.createElement(Text2, { size: 1, muted: true }, "Price:"), /* @__PURE__ */ React3.createElement(Text2, { size: 1, muted: true }, "$"), /* @__PURE__ */ React3.createElement(
1392
1392
  "input",
1393
1393
  {
1394
1394
  value: inputPrice,
@@ -1396,11 +1396,11 @@ var PriceInput = ({ inputPrice, handleInputChange }) => /* @__PURE__ */ React2.c
1396
1396
  type: "number",
1397
1397
  style: { textAlign: "end", padding: "5px", maxWidth: "75px" }
1398
1398
  }
1399
- ), /* @__PURE__ */ React2.createElement(Text2, { size: 1, muted: true }, "per style"));
1399
+ ), /* @__PURE__ */ React3.createElement(Text2, { size: 1, muted: true }, "per style"));
1400
1400
  var PriceInput_default = PriceInput;
1401
1401
 
1402
1402
  // src/components/RegenerateSubfamiliesComponent.jsx
1403
- import React3, { useState } from "react";
1403
+ import React4, { useState } from "react";
1404
1404
  import { nanoid as nanoid5 } from "nanoid";
1405
1405
  import { Button, Text as Text3, Stack, Box } from "@sanity/ui";
1406
1406
  import { useFormValue } from "sanity";
@@ -1416,7 +1416,7 @@ var RegenerateSubfamiliesComponent = () => {
1416
1416
  const handleClick = () => {
1417
1417
  regenerateSubfamilies({ title, stylesObject, slug, doc_id, client, setStatus, setReady, setError });
1418
1418
  };
1419
- return /* @__PURE__ */ React3.createElement(React3.Fragment, null, status && /* @__PURE__ */ React3.createElement(Box, { padding: 3, style: { borderRadius: "4px", marginBottom: "10px" } }, /* @__PURE__ */ React3.createElement(Text3, { size: 1, style: { color: error ? "red" : "green" } }, status)), /* @__PURE__ */ React3.createElement(Button, { mode: "ghost", tone: "primary", width: "fill", padding: 3, onClick: handleClick, disabled: !ready }, /* @__PURE__ */ React3.createElement(Stack, { space: 2 }, /* @__PURE__ */ React3.createElement(Text3, { align: "center" }, "Regenerate Subfamilies"))));
1419
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, status && /* @__PURE__ */ React4.createElement(Box, { padding: 3, style: { borderRadius: "4px", marginBottom: "10px" } }, /* @__PURE__ */ React4.createElement(Text3, { size: 1, style: { color: error ? "red" : "green" } }, status)), /* @__PURE__ */ React4.createElement(Button, { mode: "ghost", tone: "primary", width: "fill", padding: 3, onClick: handleClick, disabled: !ready }, /* @__PURE__ */ React4.createElement(Stack, { space: 2 }, /* @__PURE__ */ React4.createElement(Text3, { align: "center" }, "Regenerate Subfamilies"))));
1420
1420
  };
1421
1421
  var regenerateSubfamilies = async ({ title, stylesObject, slug, doc_id, client, setStatus, setReady, setError }) => {
1422
1422
  try {
@@ -1818,17 +1818,17 @@ var BatchUploadFonts = () => {
1818
1818
  setError(false);
1819
1819
  setStatus("ready");
1820
1820
  };
1821
- const renderTooltipLabel = (label, description) => /* @__PURE__ */ React4.createElement(
1821
+ const renderTooltipLabel = (label, description) => /* @__PURE__ */ React5.createElement(
1822
1822
  Tooltip,
1823
1823
  {
1824
- content: /* @__PURE__ */ React4.createElement(Box2, { padding: 2, style: { maxWidth: 260 } }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, style: { lineHeight: 1.6 } }, description)),
1824
+ content: /* @__PURE__ */ React5.createElement(Box2, { padding: 2, style: { maxWidth: 260 } }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, style: { lineHeight: 1.6 } }, description)),
1825
1825
  placement: "top",
1826
1826
  portal: true
1827
1827
  },
1828
- /* @__PURE__ */ React4.createElement(Flex3, { align: "center", gap: 1, style: { cursor: "default" } }, /* @__PURE__ */ React4.createElement(Label, null, label), /* @__PURE__ */ React4.createElement(InfoOutlineIcon, { style: { opacity: 0.5, display: "block" } }))
1828
+ /* @__PURE__ */ React5.createElement(Flex3, { align: "center", gap: 1, style: { cursor: "default" } }, /* @__PURE__ */ React5.createElement(Label, null, label), /* @__PURE__ */ React5.createElement(InfoOutlineIcon, { style: { opacity: 0.5, display: "block" } }))
1829
1829
  );
1830
- const renderProcessing = () => /* @__PURE__ */ React4.createElement(Stack2, { space: 3, paddingY: 2 }, /* @__PURE__ */ React4.createElement(Flex3, { align: "center", gap: 3 }, /* @__PURE__ */ React4.createElement(Spinner, null), /* @__PURE__ */ React4.createElement(Text4, { size: 1, muted: true }, status)), /* @__PURE__ */ React4.createElement(Card, { tone: "caution", border: true, radius: 2, padding: 2 }, /* @__PURE__ */ React4.createElement(Flex3, { align: "center", justify: "space-between", gap: 2 }, /* @__PURE__ */ React4.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React4.createElement(WarningOutlineIcon, { style: { flexShrink: 0 } }), /* @__PURE__ */ React4.createElement(Text4, { size: 1, weight: "semibold" }, "Do not close or reload this tab")), /* @__PURE__ */ React4.createElement(Text4, { size: 1, muted: true, style: { flexShrink: 0 } }, formatElapsed(elapsedSeconds)))));
1831
- const renderDropZone = () => /* @__PURE__ */ React4.createElement(
1830
+ const renderProcessing = () => /* @__PURE__ */ React5.createElement(Stack2, { space: 3, paddingY: 2 }, /* @__PURE__ */ React5.createElement(Flex3, { align: "center", gap: 3 }, /* @__PURE__ */ React5.createElement(Spinner, null), /* @__PURE__ */ React5.createElement(Text4, { size: 1, muted: true }, status)), /* @__PURE__ */ React5.createElement(Card, { tone: "caution", border: true, radius: 2, padding: 2 }, /* @__PURE__ */ React5.createElement(Flex3, { align: "center", justify: "space-between", gap: 2 }, /* @__PURE__ */ React5.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(WarningOutlineIcon, { style: { flexShrink: 0 } }), /* @__PURE__ */ React5.createElement(Text4, { size: 1, weight: "semibold" }, "Do not close or reload this tab")), /* @__PURE__ */ React5.createElement(Text4, { size: 1, muted: true, style: { flexShrink: 0 } }, formatElapsed(elapsedSeconds)))));
1831
+ const renderDropZone = () => /* @__PURE__ */ React5.createElement(
1832
1832
  Box2,
1833
1833
  {
1834
1834
  onDragEnter: handleDragEnter,
@@ -1845,7 +1845,7 @@ var BatchUploadFonts = () => {
1845
1845
  cursor: "default"
1846
1846
  }
1847
1847
  },
1848
- /* @__PURE__ */ React4.createElement(
1848
+ /* @__PURE__ */ React5.createElement(
1849
1849
  "input",
1850
1850
  {
1851
1851
  ref: fileInputRef,
@@ -1856,7 +1856,7 @@ var BatchUploadFonts = () => {
1856
1856
  onChange: handleFileSelect
1857
1857
  }
1858
1858
  ),
1859
- /* @__PURE__ */ React4.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, muted: true }, isDragging ? "Release to add files" : "Drop font files here"), /* @__PURE__ */ React4.createElement(Flex3, { justify: "center" }, /* @__PURE__ */ React4.createElement(
1859
+ /* @__PURE__ */ React5.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, muted: true }, isDragging ? "Release to add files" : "Drop font files here"), /* @__PURE__ */ React5.createElement(Flex3, { justify: "center" }, /* @__PURE__ */ React5.createElement(
1860
1860
  Button2,
1861
1861
  {
1862
1862
  mode: "ghost",
@@ -1873,7 +1873,7 @@ var BatchUploadFonts = () => {
1873
1873
  );
1874
1874
  const renderFileList = () => {
1875
1875
  const sorted = sortFilesByType(pendingFiles);
1876
- return /* @__PURE__ */ React4.createElement(Stack2, { space: 2 }, /* @__PURE__ */ React4.createElement(Flex3, { align: "center", justify: "space-between" }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, muted: true }, pendingFiles.length, " file", pendingFiles.length === 1 ? "" : "s", " selected"), /* @__PURE__ */ React4.createElement(
1876
+ return /* @__PURE__ */ React5.createElement(Stack2, { space: 2 }, /* @__PURE__ */ React5.createElement(Flex3, { align: "center", justify: "space-between" }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, muted: true }, pendingFiles.length, " file", pendingFiles.length === 1 ? "" : "s", " selected"), /* @__PURE__ */ React5.createElement(
1877
1877
  Button2,
1878
1878
  {
1879
1879
  mode: "bleed",
@@ -1883,16 +1883,16 @@ var BatchUploadFonts = () => {
1883
1883
  text: "Clear all",
1884
1884
  onClick: () => setPendingFiles([])
1885
1885
  }
1886
- )), /* @__PURE__ */ React4.createElement(Box2, { style: { maxHeight: "260px", overflowY: "auto", display: "flex", flexDirection: "column", gap: "4px" } }, sorted.map((file, i) => {
1886
+ )), /* @__PURE__ */ React5.createElement(Box2, { style: { maxHeight: "260px", overflowY: "auto", display: "flex", flexDirection: "column", gap: "4px" } }, sorted.map((file, i) => {
1887
1887
  const ext = file.name.split(".").pop().toUpperCase();
1888
- return /* @__PURE__ */ React4.createElement(Card, { key: `${file.name}-${file.size}-${i}`, border: true, radius: 1, paddingX: 2, paddingY: 2 }, /* @__PURE__ */ React4.createElement(Flex3, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React4.createElement(Flex3, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React4.createElement(
1888
+ return /* @__PURE__ */ React5.createElement(Card, { key: `${file.name}-${file.size}-${i}`, border: true, radius: 1, paddingX: 2, paddingY: 2 }, /* @__PURE__ */ React5.createElement(Flex3, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(Flex3, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React5.createElement(
1889
1889
  Text4,
1890
1890
  {
1891
1891
  size: 0,
1892
1892
  style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0 }
1893
1893
  },
1894
1894
  ext
1895
- ), /* @__PURE__ */ React4.createElement(Box2, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React4.createElement(Text4, { size: 1 }, file.name))), /* @__PURE__ */ React4.createElement(
1895
+ ), /* @__PURE__ */ React5.createElement(Box2, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React5.createElement(Text4, { size: 1 }, file.name))), /* @__PURE__ */ React5.createElement(
1896
1896
  Button2,
1897
1897
  {
1898
1898
  mode: "bleed",
@@ -1902,7 +1902,7 @@ var BatchUploadFonts = () => {
1902
1902
  onClick: () => handleRemoveFile(file)
1903
1903
  }
1904
1904
  )));
1905
- })), /* @__PURE__ */ React4.createElement(
1905
+ })), /* @__PURE__ */ React5.createElement(
1906
1906
  Box2,
1907
1907
  {
1908
1908
  onDragEnter: handleDragEnter,
@@ -1918,7 +1918,7 @@ var BatchUploadFonts = () => {
1918
1918
  transition: "border-color 0.12s, background 0.12s"
1919
1919
  }
1920
1920
  },
1921
- /* @__PURE__ */ React4.createElement(
1921
+ /* @__PURE__ */ React5.createElement(
1922
1922
  "input",
1923
1923
  {
1924
1924
  ref: fileInputRef,
@@ -1929,7 +1929,7 @@ var BatchUploadFonts = () => {
1929
1929
  onChange: handleFileSelect
1930
1930
  }
1931
1931
  ),
1932
- /* @__PURE__ */ React4.createElement(Flex3, { align: "center", justify: "center", gap: 2 }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, muted: true }, isDragging ? "Release to add" : "Drop more files or"), /* @__PURE__ */ React4.createElement(
1932
+ /* @__PURE__ */ React5.createElement(Flex3, { align: "center", justify: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, muted: true }, isDragging ? "Release to add" : "Drop more files or"), /* @__PURE__ */ React5.createElement(
1933
1933
  Button2,
1934
1934
  {
1935
1935
  mode: "bleed",
@@ -1943,7 +1943,7 @@ var BatchUploadFonts = () => {
1943
1943
  }
1944
1944
  }
1945
1945
  ))
1946
- ), /* @__PURE__ */ React4.createElement(
1946
+ ), /* @__PURE__ */ React5.createElement(
1947
1947
  Button2,
1948
1948
  {
1949
1949
  mode: "ghost",
@@ -1955,12 +1955,12 @@ var BatchUploadFonts = () => {
1955
1955
  }
1956
1956
  ));
1957
1957
  };
1958
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, title && title !== "" && slug && slug !== "" && /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(
1958
+ return /* @__PURE__ */ React5.createElement(React5.Fragment, null, title && title !== "" && slug && slug !== "" && /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(
1959
1959
  StatusDisplay_default,
1960
1960
  {
1961
1961
  status,
1962
1962
  error,
1963
- action: /* @__PURE__ */ React4.createElement(
1963
+ action: /* @__PURE__ */ React5.createElement(
1964
1964
  Button2,
1965
1965
  {
1966
1966
  mode: showUtilities ? "default" : "ghost",
@@ -1973,7 +1973,7 @@ var BatchUploadFonts = () => {
1973
1973
  }
1974
1974
  )
1975
1975
  }
1976
- ), /* @__PURE__ */ React4.createElement(Card, { border: true, padding: 2, shadow: 1, radius: 2 }, showUtilities ? /* @__PURE__ */ React4.createElement(Stack2, { space: 4, marginTop: 2 }, /* @__PURE__ */ React4.createElement(Stack2, { space: 2 }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Regenerate Subfamilies"), /* @__PURE__ */ React4.createElement(RegenerateSubfamiliesComponent, null)), /* @__PURE__ */ React4.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Rename Fonts (name table, Full Name)"), /* @__PURE__ */ React4.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React4.createElement(
1976
+ ), /* @__PURE__ */ React5.createElement(Card, { border: true, padding: 2, shadow: 1, radius: 2 }, showUtilities ? /* @__PURE__ */ React5.createElement(Stack2, { space: 4, marginTop: 2 }, /* @__PURE__ */ React5.createElement(Stack2, { space: 2 }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Regenerate Subfamilies"), /* @__PURE__ */ React5.createElement(RegenerateSubfamiliesComponent, null)), /* @__PURE__ */ React5.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Rename Fonts (name table, Full Name)"), /* @__PURE__ */ React5.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(
1977
1977
  Switch,
1978
1978
  {
1979
1979
  checked: preserveShortenedNames,
@@ -1982,7 +1982,7 @@ var BatchUploadFonts = () => {
1982
1982
  ), renderTooltipLabel(
1983
1983
  "Preserve shortened names",
1984
1984
  'Abbreviations in font names are kept as-is (e.g. "XNarrow" stays "XNarrow", "Bd" stays "Bd").'
1985
- )), ready === "rename" ? renderProcessing() : /* @__PURE__ */ React4.createElement(Button2, { mode: "ghost", tone: "primary", text: "Rename Existing Fonts", style: { width: "100%" }, onClick: handleRenameExistingFonts, disabled: ready !== true })), /* @__PURE__ */ React4.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Update Font Prices"), ready === "price" ? renderProcessing() : /* @__PURE__ */ React4.createElement(Stack2, { space: 2 }, /* @__PURE__ */ React4.createElement(PriceInput_default, { inputPrice, handleInputChange }), /* @__PURE__ */ React4.createElement(Button2, { mode: "ghost", tone: "primary", text: "Update All Font Prices", style: { width: "100%" }, onClick: handleChangeFontPrice, disabled: ready !== true }))), /* @__PURE__ */ React4.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React4.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Regenerate CSS"), /* @__PURE__ */ React4.createElement(Text4, { size: 1, muted: true, style: { lineHeight: 1.6 } }, "Rebuilds the CSS @font-face files for all fonts in the typeface fonts list."), ready === "css" ? renderProcessing() : /* @__PURE__ */ React4.createElement(Button2, { mode: "ghost", tone: "primary", text: "Regenerate CSS Files", style: { width: "100%" }, onClick: handleRegenerateCssFiles, disabled: ready !== true }))) : ready ? /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(Grid, { columns: [2], gap: 4, marginTop: 1, marginBottom: 1 }, /* @__PURE__ */ React4.createElement(Box2, null, /* @__PURE__ */ React4.createElement(PriceInput_default, { inputPrice, handleInputChange })), /* @__PURE__ */ React4.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React4.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React4.createElement(
1985
+ )), ready === "rename" ? renderProcessing() : /* @__PURE__ */ React5.createElement(Button2, { mode: "ghost", tone: "primary", text: "Rename Existing Fonts", style: { width: "100%" }, onClick: handleRenameExistingFonts, disabled: ready !== true })), /* @__PURE__ */ React5.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Update Font Prices"), ready === "price" ? renderProcessing() : /* @__PURE__ */ React5.createElement(Stack2, { space: 2 }, /* @__PURE__ */ React5.createElement(PriceInput_default, { inputPrice, handleInputChange }), /* @__PURE__ */ React5.createElement(Button2, { mode: "ghost", tone: "primary", text: "Update All Font Prices", style: { width: "100%" }, onClick: handleChangeFontPrice, disabled: ready !== true }))), /* @__PURE__ */ React5.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React5.createElement(Text4, { size: 1, weight: "semibold", style: { lineHeight: 1.6 } }, "Regenerate CSS"), /* @__PURE__ */ React5.createElement(Text4, { size: 1, muted: true, style: { lineHeight: 1.6 } }, "Rebuilds the CSS @font-face files for all fonts in the typeface fonts list."), ready === "css" ? renderProcessing() : /* @__PURE__ */ React5.createElement(Button2, { mode: "ghost", tone: "primary", text: "Regenerate CSS Files", style: { width: "100%" }, onClick: handleRegenerateCssFiles, disabled: ready !== true }))) : ready ? /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(Grid, { columns: [2], gap: 4, marginTop: 1, marginBottom: 1 }, /* @__PURE__ */ React5.createElement(Box2, null, /* @__PURE__ */ React5.createElement(PriceInput_default, { inputPrice, handleInputChange })), /* @__PURE__ */ React5.createElement(Stack2, { space: 3 }, /* @__PURE__ */ React5.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(
1986
1986
  Switch,
1987
1987
  {
1988
1988
  checked: preserveShortenedNames,
@@ -1991,7 +1991,7 @@ var BatchUploadFonts = () => {
1991
1991
  ), renderTooltipLabel(
1992
1992
  "Preserve shortened names",
1993
1993
  'Abbreviations in font names are kept as-is (e.g. "XNarrow" stays "XNarrow", "Bd" stays "Bd").'
1994
- )), /* @__PURE__ */ React4.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React4.createElement(
1994
+ )), /* @__PURE__ */ React5.createElement(Flex3, { align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(
1995
1995
  Switch,
1996
1996
  {
1997
1997
  checked: preserveFileNames,
@@ -2000,11 +2000,11 @@ var BatchUploadFonts = () => {
2000
2000
  ), renderTooltipLabel(
2001
2001
  "Preserve file names",
2002
2002
  "Original filename capitalisation is used for asset naming instead of the normalised font title."
2003
- )))), /* @__PURE__ */ React4.createElement(Box2, { marginTop: 3 }, pendingFiles.length === 0 ? renderDropZone() : renderFileList())) : renderProcessing())));
2003
+ )))), /* @__PURE__ */ React5.createElement(Box2, { marginTop: 3 }, pendingFiles.length === 0 ? renderDropZone() : renderFileList())) : renderProcessing())));
2004
2004
  };
2005
2005
 
2006
2006
  // src/components/GenerateCollectionsPairsComponent.jsx
2007
- import React5, { useCallback as useCallback2, useState as useState3 } from "react";
2007
+ import React6, { useCallback as useCallback2, useState as useState3 } from "react";
2008
2008
  import { Stack as Stack3, Grid as Grid2, Flex as Flex4, Text as Text5, Button as Button3, Card as Card2, Spinner as Spinner2 } from "@sanity/ui";
2009
2009
  import { useFormValue as useFormValue3 } from "sanity";
2010
2010
  import slugify2 from "slugify";
@@ -2184,7 +2184,7 @@ var GenerateCollectionsPairsComponent = () => {
2184
2184
  setReady(true);
2185
2185
  }, [doc_id, title, slug, stylesObject, pairPrice, client, createSanityPair]);
2186
2186
  if (!title || !slug) return null;
2187
- return /* @__PURE__ */ React5.createElement(Stack3, { space: 2 }, /* @__PURE__ */ React5.createElement(StatusDisplay_default, { status, error: false }), /* @__PURE__ */ React5.createElement(Card2, { border: true, padding: 2, shadow: 1, radius: 2 }, ready ? /* @__PURE__ */ React5.createElement(Stack3, { space: 3 }, /* @__PURE__ */ React5.createElement(Grid2, { columns: [2], gap: 4, marginTop: 1, marginBottom: 1 }, /* @__PURE__ */ React5.createElement(Stack3, { space: 2 }, /* @__PURE__ */ React5.createElement(Text5, { size: 1, muted: true }, "Collection price / font"), /* @__PURE__ */ React5.createElement(Flex4, { align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(Text5, { size: 1, muted: true }, "$"), /* @__PURE__ */ React5.createElement(
2187
+ return /* @__PURE__ */ React6.createElement(Stack3, { space: 2 }, /* @__PURE__ */ React6.createElement(StatusDisplay_default, { status, error: false }), /* @__PURE__ */ React6.createElement(Card2, { border: true, padding: 2, shadow: 1, radius: 2 }, ready ? /* @__PURE__ */ React6.createElement(Stack3, { space: 3 }, /* @__PURE__ */ React6.createElement(Grid2, { columns: [2], gap: 4, marginTop: 1, marginBottom: 1 }, /* @__PURE__ */ React6.createElement(Stack3, { space: 2 }, /* @__PURE__ */ React6.createElement(Text5, { size: 1, muted: true }, "Collection price / font"), /* @__PURE__ */ React6.createElement(Flex4, { align: "center", gap: 2 }, /* @__PURE__ */ React6.createElement(Text5, { size: 1, muted: true }, "$"), /* @__PURE__ */ React6.createElement(
2188
2188
  "input",
2189
2189
  {
2190
2190
  value: collectionPrice,
@@ -2192,7 +2192,7 @@ var GenerateCollectionsPairsComponent = () => {
2192
2192
  type: "number",
2193
2193
  style: { textAlign: "end", padding: "5px", maxWidth: "75px" }
2194
2194
  }
2195
- ))), /* @__PURE__ */ React5.createElement(Stack3, { space: 2 }, /* @__PURE__ */ React5.createElement(Text5, { size: 1, muted: true }, "Pair price"), /* @__PURE__ */ React5.createElement(Flex4, { align: "center", gap: 2 }, /* @__PURE__ */ React5.createElement(Text5, { size: 1, muted: true }, "$"), /* @__PURE__ */ React5.createElement(
2195
+ ))), /* @__PURE__ */ React6.createElement(Stack3, { space: 2 }, /* @__PURE__ */ React6.createElement(Text5, { size: 1, muted: true }, "Pair price"), /* @__PURE__ */ React6.createElement(Flex4, { align: "center", gap: 2 }, /* @__PURE__ */ React6.createElement(Text5, { size: 1, muted: true }, "$"), /* @__PURE__ */ React6.createElement(
2196
2196
  "input",
2197
2197
  {
2198
2198
  value: pairPrice,
@@ -2200,11 +2200,11 @@ var GenerateCollectionsPairsComponent = () => {
2200
2200
  type: "number",
2201
2201
  style: { textAlign: "end", padding: "5px", maxWidth: "75px" }
2202
2202
  }
2203
- )))), /* @__PURE__ */ React5.createElement(Button3, { mode: "ghost", tone: "primary", text: "Generate Collections", style: { width: "100%" }, onClick: handleGenerateCollections }), /* @__PURE__ */ React5.createElement(Button3, { mode: "ghost", tone: "primary", text: "Generate Pairs", style: { width: "100%" }, onClick: handleGeneratePairs })) : /* @__PURE__ */ React5.createElement(Flex4, { align: "center", justify: "center", gap: 3, padding: 4 }, /* @__PURE__ */ React5.createElement(Spinner2, null), /* @__PURE__ */ React5.createElement(Text5, { muted: true, size: 1 }, status))));
2203
+ )))), /* @__PURE__ */ React6.createElement(Button3, { mode: "ghost", tone: "primary", text: "Generate Collections", style: { width: "100%" }, onClick: handleGenerateCollections }), /* @__PURE__ */ React6.createElement(Button3, { mode: "ghost", tone: "primary", text: "Generate Pairs", style: { width: "100%" }, onClick: handleGeneratePairs })) : /* @__PURE__ */ React6.createElement(Flex4, { align: "center", justify: "center", gap: 3, padding: 4 }, /* @__PURE__ */ React6.createElement(Spinner2, null), /* @__PURE__ */ React6.createElement(Text5, { muted: true, size: 1 }, status))));
2204
2204
  };
2205
2205
 
2206
2206
  // src/components/UpdateScriptsComponent.jsx
2207
- import React6, { useState as useState4, useCallback as useCallback3, useRef as useRef2, useEffect as useEffect2 } from "react";
2207
+ import React7, { useState as useState4, useCallback as useCallback3, useRef as useRef2, useEffect as useEffect2 } from "react";
2208
2208
  import { Stack as Stack4, Text as Text6, Button as Button4 } from "@sanity/ui";
2209
2209
  import { useFormValue as useFormValue4, set } from "sanity";
2210
2210
  var UpdateScriptsComponent = (props) => {
@@ -2247,7 +2247,7 @@ var UpdateScriptsComponent = (props) => {
2247
2247
  if (isReadyRef.current) onChange(set(newScripts));
2248
2248
  setMessage("Scripts updated");
2249
2249
  }, [onChange, fonts, client]);
2250
- return /* @__PURE__ */ React6.createElement(Stack4, { space: 3 }, /* @__PURE__ */ React6.createElement(
2250
+ return /* @__PURE__ */ React7.createElement(Stack4, { space: 3 }, /* @__PURE__ */ React7.createElement(
2251
2251
  Button4,
2252
2252
  {
2253
2253
  mode: "ghost",
@@ -2256,11 +2256,11 @@ var UpdateScriptsComponent = (props) => {
2256
2256
  text: "Update Scripts from Font Files",
2257
2257
  onClick: updateFromFonts
2258
2258
  }
2259
- ), message && /* @__PURE__ */ React6.createElement(Text6, { size: 1, style: { color: "green" } }, message), props.renderDefault(props));
2259
+ ), message && /* @__PURE__ */ React7.createElement(Text6, { size: 1, style: { color: "green" } }, message), props.renderDefault(props));
2260
2260
  };
2261
2261
 
2262
2262
  // src/components/SingleUploaderTool.jsx
2263
- import React7, { useState as useState5, useEffect as useEffect3, useCallback as useCallback4, useMemo as useMemo3 } from "react";
2263
+ import React8, { useState as useState5, useEffect as useEffect3, useCallback as useCallback4, useMemo as useMemo3 } from "react";
2264
2264
  import { Button as Button5, Grid as Grid3, Stack as Stack5, Flex as Flex5, Box as Box3, Text as Text7, Card as Card3 } from "@sanity/ui";
2265
2265
  import { TrashIcon as TrashIcon2, ControlsIcon as ControlsIcon2 } from "@sanity/icons";
2266
2266
  import { useFormValue as useFormValue5, set as set2, unset } from "sanity";
@@ -2804,26 +2804,26 @@ var SingleUploaderTool = (props) => {
2804
2804
  const formatUpper = format.toUpperCase();
2805
2805
  const hasFile = !!((_b2 = (_a2 = fileInput == null ? void 0 : fileInput[format]) == null ? void 0 : _a2.asset) == null ? void 0 : _b2._ref);
2806
2806
  const fileUrl = hasFile ? `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${fileInput[format].asset._ref.replace("file-", "").replace("-", ".")}` : null;
2807
- return /* @__PURE__ */ React7.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React7.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React7.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React7.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: hasFile ? 1 : 0.5 } }, formatUpper), hasFile ? /* @__PURE__ */ React7.createElement(Box3, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React7.createElement("a", { href: fileUrl, target: "_blank", rel: "noreferrer" }, (filenames == null ? void 0 : filenames[format]) || "File")) : /* @__PURE__ */ React7.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && /* @__PURE__ */ React7.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, buildSource && (fileInput == null ? void 0 : fileInput[buildSource]) && /* @__PURE__ */ React7.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: () => handleGenerateFontFile(format, fileInput[buildSource]), text: "Build" }), /* @__PURE__ */ React7.createElement(Button5, { as: "label", mode: "ghost", tone: "primary", fontSize: 1, padding: 2, style: { cursor: "pointer" } }, /* @__PURE__ */ React7.createElement(Text7, { size: 1 }, "Upload"), /* @__PURE__ */ React7.createElement("input", { ref, type: "file", hidden: true, onChange: (e) => handleUpload(e, format) })), hasFile && /* @__PURE__ */ React7.createElement(Button5, { mode: "bleed", tone: "critical", icon: TrashIcon2, padding: 2, onClick: () => handleDelete(format) }))));
2807
+ return /* @__PURE__ */ React8.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React8.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React8.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React8.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: hasFile ? 1 : 0.5 } }, formatUpper), hasFile ? /* @__PURE__ */ React8.createElement(Box3, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React8.createElement("a", { href: fileUrl, target: "_blank", rel: "noreferrer" }, (filenames == null ? void 0 : filenames[format]) || "File")) : /* @__PURE__ */ React8.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && /* @__PURE__ */ React8.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, buildSource && (fileInput == null ? void 0 : fileInput[buildSource]) && /* @__PURE__ */ React8.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: () => handleGenerateFontFile(format, fileInput[buildSource]), text: "Build" }), /* @__PURE__ */ React8.createElement(Button5, { as: "label", mode: "ghost", tone: "primary", fontSize: 1, padding: 2, style: { cursor: "pointer" } }, /* @__PURE__ */ React8.createElement(Text7, { size: 1 }, "Upload"), /* @__PURE__ */ React8.createElement("input", { ref, type: "file", hidden: true, onChange: (e) => handleUpload(e, format) })), hasFile && /* @__PURE__ */ React8.createElement(Button5, { mode: "bleed", tone: "critical", icon: TrashIcon2, padding: 2, onClick: () => handleDelete(format) }))));
2808
2808
  };
2809
2809
  const renderTopLevelAssetSection = (label, fieldName, assetRef, filename, onBuild) => {
2810
2810
  const hasFile = !!assetRef;
2811
2811
  const fileUrl = hasFile ? `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${assetRef.replace("file-", "").replace("-", ".")}` : null;
2812
- return /* @__PURE__ */ React7.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React7.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React7.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React7.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: hasFile ? 1 : 0.5 } }, label), hasFile ? /* @__PURE__ */ React7.createElement(Box3, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React7.createElement("a", { href: fileUrl, target: "_blank", rel: "noreferrer" }, filename || "File")) : /* @__PURE__ */ React7.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && /* @__PURE__ */ React7.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, onBuild && (fileInput == null ? void 0 : fileInput.woff2) && /* @__PURE__ */ React7.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: onBuild, text: "Build" }), /* @__PURE__ */ React7.createElement(Button5, { as: "label", mode: "ghost", tone: "primary", fontSize: 1, padding: 2, style: { cursor: "pointer" } }, /* @__PURE__ */ React7.createElement(Text7, { size: 1 }, "Upload"), /* @__PURE__ */ React7.createElement("input", { type: "file", hidden: true, onChange: (e) => handleUploadTopLevelFile(e, fieldName) })), hasFile && /* @__PURE__ */ React7.createElement(Button5, { mode: "bleed", tone: "critical", icon: TrashIcon2, padding: 2, onClick: () => handleDeleteTopLevel(fieldName) }))));
2812
+ return /* @__PURE__ */ React8.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React8.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React8.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React8.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: hasFile ? 1 : 0.5 } }, label), hasFile ? /* @__PURE__ */ React8.createElement(Box3, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React8.createElement("a", { href: fileUrl, target: "_blank", rel: "noreferrer" }, filename || "File")) : /* @__PURE__ */ React8.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && /* @__PURE__ */ React8.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, onBuild && (fileInput == null ? void 0 : fileInput.woff2) && /* @__PURE__ */ React8.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: onBuild, text: "Build" }), /* @__PURE__ */ React8.createElement(Button5, { as: "label", mode: "ghost", tone: "primary", fontSize: 1, padding: 2, style: { cursor: "pointer" } }, /* @__PURE__ */ React8.createElement(Text7, { size: 1 }, "Upload"), /* @__PURE__ */ React8.createElement("input", { type: "file", hidden: true, onChange: (e) => handleUploadTopLevelFile(e, fieldName) })), hasFile && /* @__PURE__ */ React8.createElement(Button5, { mode: "bleed", tone: "critical", icon: TrashIcon2, padding: 2, onClick: () => handleDeleteTopLevel(fieldName) }))));
2813
2813
  };
2814
2814
  const renderCssSection = () => {
2815
2815
  var _a2, _b2;
2816
2816
  const hasFile = !!((_b2 = (_a2 = fileInput == null ? void 0 : fileInput.css) == null ? void 0 : _a2.asset) == null ? void 0 : _b2._ref);
2817
2817
  const fileUrl = hasFile ? `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${fileInput.css.asset._ref.replace("file-", "").replace("-", ".")}` : null;
2818
- return /* @__PURE__ */ React7.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React7.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React7.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React7.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: hasFile ? 1 : 0.5 } }, "CSS"), hasFile ? /* @__PURE__ */ React7.createElement(Box3, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React7.createElement("a", { href: fileUrl, target: "_blank", rel: "noreferrer" }, (filenames == null ? void 0 : filenames.css) || "File")) : /* @__PURE__ */ React7.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && /* @__PURE__ */ React7.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, (fileInput == null ? void 0 : fileInput.woff2) && /* @__PURE__ */ React7.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: () => handleGenerateCssFile(), text: "Build" }), hasFile && /* @__PURE__ */ React7.createElement(Button5, { mode: "bleed", tone: "critical", icon: TrashIcon2, padding: 2, onClick: () => handleDelete("css") }))));
2818
+ return /* @__PURE__ */ React8.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React8.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React8.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React8.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: hasFile ? 1 : 0.5 } }, "CSS"), hasFile ? /* @__PURE__ */ React8.createElement(Box3, { style: { flex: 1, minWidth: 0, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" } }, /* @__PURE__ */ React8.createElement("a", { href: fileUrl, target: "_blank", rel: "noreferrer" }, (filenames == null ? void 0 : filenames.css) || "File")) : /* @__PURE__ */ React8.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && /* @__PURE__ */ React8.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, (fileInput == null ? void 0 : fileInput.woff2) && /* @__PURE__ */ React8.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: () => handleGenerateCssFile(), text: "Build" }), hasFile && /* @__PURE__ */ React8.createElement(Button5, { mode: "bleed", tone: "critical", icon: TrashIcon2, padding: 2, onClick: () => handleDelete("css") }))));
2819
2819
  };
2820
- const renderDataSection = () => /* @__PURE__ */ React7.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React7.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React7.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React7.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: (doc_metaData == null ? void 0 : doc_metaData.version) ? 1 : 0.5 } }, "DATA"), (doc_metaData == null ? void 0 : doc_metaData.version) ? /* @__PURE__ */ React7.createElement(Text7, { size: 1 }, "v", doc_metaData.version, " ", /* @__PURE__ */ React7.createElement(Text7, { as: "span", size: 1, muted: true }, "(", doc_metaData.genDate, ")")) : /* @__PURE__ */ React7.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && (fileInput == null ? void 0 : fileInput.ttf) && /* @__PURE__ */ React7.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, /* @__PURE__ */ React7.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: () => handleGenerateFontData(), text: "Build" }))));
2821
- return /* @__PURE__ */ React7.createElement(Stack5, { space: 2 }, /* @__PURE__ */ React7.createElement(
2820
+ const renderDataSection = () => /* @__PURE__ */ React8.createElement(Card3, { border: true, radius: 1, paddingX: 2, paddingY: 3 }, /* @__PURE__ */ React8.createElement(Flex5, { justify: "space-between", align: "center", gap: 2 }, /* @__PURE__ */ React8.createElement(Flex5, { gap: 3, align: "center", style: { flex: 1, minWidth: 0 } }, /* @__PURE__ */ React8.createElement(Text7, { size: 0, style: { fontFamily: "monospace", minWidth: "2.5rem", flexShrink: 0, opacity: (doc_metaData == null ? void 0 : doc_metaData.version) ? 1 : 0.5 } }, "DATA"), (doc_metaData == null ? void 0 : doc_metaData.version) ? /* @__PURE__ */ React8.createElement(Text7, { size: 1 }, "v", doc_metaData.version, " ", /* @__PURE__ */ React8.createElement(Text7, { as: "span", size: 1, muted: true }, "(", doc_metaData.genDate, ")")) : /* @__PURE__ */ React8.createElement(Text7, { size: 1, muted: true }, "\u2014")), status === "ready" && (fileInput == null ? void 0 : fileInput.ttf) && /* @__PURE__ */ React8.createElement(Flex5, { gap: 1, align: "center", style: { flexShrink: 0 } }, /* @__PURE__ */ React8.createElement(Button5, { mode: "ghost", tone: "primary", fontSize: 1, padding: 2, onClick: () => handleGenerateFontData(), text: "Build" }))));
2821
+ return /* @__PURE__ */ React8.createElement(Stack5, { space: 2 }, /* @__PURE__ */ React8.createElement(
2822
2822
  StatusDisplay_default,
2823
2823
  {
2824
2824
  status,
2825
2825
  error,
2826
- action: /* @__PURE__ */ React7.createElement(
2826
+ action: /* @__PURE__ */ React8.createElement(
2827
2827
  Button5,
2828
2828
  {
2829
2829
  mode: "bleed",
@@ -2835,7 +2835,7 @@ var SingleUploaderTool = (props) => {
2835
2835
  }
2836
2836
  )
2837
2837
  }
2838
- ), renderFontSection("ttf"), status === "ready" && (fileInput == null ? void 0 : fileInput.ttf) && /* @__PURE__ */ React7.createElement(Grid3, { columns: [1, 2], gap: 2 }, /* @__PURE__ */ React7.createElement(
2838
+ ), renderFontSection("ttf"), status === "ready" && (fileInput == null ? void 0 : fileInput.ttf) && /* @__PURE__ */ React8.createElement(Grid3, { columns: [1, 2], gap: 2 }, /* @__PURE__ */ React8.createElement(
2839
2839
  Button5,
2840
2840
  {
2841
2841
  mode: "ghost",
@@ -2844,7 +2844,7 @@ var SingleUploaderTool = (props) => {
2844
2844
  text: "Rebuild All from TTF",
2845
2845
  style: { width: "100%" }
2846
2846
  }
2847
- ), /* @__PURE__ */ React7.createElement(
2847
+ ), /* @__PURE__ */ React8.createElement(
2848
2848
  Button5,
2849
2849
  {
2850
2850
  mode: "ghost",
@@ -2864,11 +2864,11 @@ var SingleUploaderTool = (props) => {
2864
2864
  text: "Build Missing",
2865
2865
  style: { width: "100%" }
2866
2866
  }
2867
- )), renderFontSection("otf", "woff"), renderFontSection("woff", "ttf"), renderFontSection("woff2", "ttf"), showAdvanced && renderTopLevelAssetSection("WEB", "woff2_web", (_b = (_a = fileInput == null ? void 0 : fileInput.woff2_web) == null ? void 0 : _a.asset) == null ? void 0 : _b._ref, filenames == null ? void 0 : filenames.woff2_web, handleGenerateSubsetAndWeb), showAdvanced && renderTopLevelAssetSection("SUBSET", "woff2_subset", (_d = (_c = fileInput == null ? void 0 : fileInput.woff2_subset) == null ? void 0 : _c.asset) == null ? void 0 : _d._ref, filenames == null ? void 0 : filenames.woff2_subset, handleGenerateSubsetAndWeb), showAdvanced && renderFontSection("eot", "ttf"), showAdvanced && renderFontSection("svg", "ttf"), renderCssSection(), showAdvanced && renderDataSection(), status === "ready" && ((fileInput == null ? void 0 : fileInput.ttf) || (fileInput == null ? void 0 : fileInput.otf) || (fileInput == null ? void 0 : fileInput.woff) || (fileInput == null ? void 0 : fileInput.woff2)) && /* @__PURE__ */ React7.createElement(Button5, { mode: "ghost", tone: "critical", onClick: () => handleDeleteAll(), text: "Delete All", style: { width: "100%" } }));
2867
+ )), renderFontSection("otf", "woff"), renderFontSection("woff", "ttf"), renderFontSection("woff2", "ttf"), showAdvanced && renderTopLevelAssetSection("WEB", "woff2_web", (_b = (_a = fileInput == null ? void 0 : fileInput.woff2_web) == null ? void 0 : _a.asset) == null ? void 0 : _b._ref, filenames == null ? void 0 : filenames.woff2_web, handleGenerateSubsetAndWeb), showAdvanced && renderTopLevelAssetSection("SUBSET", "woff2_subset", (_d = (_c = fileInput == null ? void 0 : fileInput.woff2_subset) == null ? void 0 : _c.asset) == null ? void 0 : _d._ref, filenames == null ? void 0 : filenames.woff2_subset, handleGenerateSubsetAndWeb), showAdvanced && renderFontSection("eot", "ttf"), showAdvanced && renderFontSection("svg", "ttf"), renderCssSection(), showAdvanced && renderDataSection(), status === "ready" && ((fileInput == null ? void 0 : fileInput.ttf) || (fileInput == null ? void 0 : fileInput.otf) || (fileInput == null ? void 0 : fileInput.woff) || (fileInput == null ? void 0 : fileInput.woff2)) && /* @__PURE__ */ React8.createElement(Button5, { mode: "ghost", tone: "critical", onClick: () => handleDeleteAll(), text: "Delete All", style: { width: "100%" } }));
2868
2868
  };
2869
2869
 
2870
2870
  // src/components/UploadScriptsComponent.jsx
2871
- import React9, { useCallback as useCallback5, useEffect as useEffect4, useMemo as useMemo4, useState as useState6 } from "react";
2871
+ import React10, { useCallback as useCallback5, useEffect as useEffect4, useMemo as useMemo4, useState as useState6 } from "react";
2872
2872
  import { Button as Button6, Flex as Flex6, Grid as Grid4, Stack as Stack6, Text as Text8, TextInput, MenuButton, Menu, MenuItem, Select } from "@sanity/ui";
2873
2873
  import * as fontkit6 from "fontkit";
2874
2874
  import slugify3 from "slugify";
@@ -2876,7 +2876,7 @@ import { useFormValue as useFormValue6 } from "sanity";
2876
2876
  import { nanoid as nanoid7 } from "nanoid";
2877
2877
 
2878
2878
  // src/utils/utils.js
2879
- import React8 from "react";
2879
+ import React9 from "react";
2880
2880
  var HtmlDescription = ({ children }) => {
2881
2881
  return children || "";
2882
2882
  };
@@ -2890,8 +2890,8 @@ var UploadScriptsComponent = (props) => {
2890
2890
  const { elementProps: { ref } } = props;
2891
2891
  const client = useSanityClient();
2892
2892
  const [selectedScript, setSelectedScript] = useState6("");
2893
- const [status, setStatus] = React9.useState("");
2894
- const [ready, setReady] = React9.useState(true);
2893
+ const [status, setStatus] = React10.useState("");
2894
+ const [ready, setReady] = React10.useState(true);
2895
2895
  let doc_id = useFormValue6(["_id"]);
2896
2896
  const title = useFormValue6(["title"]);
2897
2897
  const slug = useFormValue6(["slug"]);
@@ -3213,26 +3213,26 @@ var UploadScriptsComponent = (props) => {
3213
3213
  }
3214
3214
  setReady(true);
3215
3215
  }, [title, slug, doc_id]);
3216
- return /* @__PURE__ */ React9.createElement(Stack6, null, !ready && /* @__PURE__ */ React9.createElement(Text8, null, /* @__PURE__ */ React9.createElement("br", null), status, /* @__PURE__ */ React9.createElement("br", null), /* @__PURE__ */ React9.createElement("br", null)), ready && /* @__PURE__ */ React9.createElement(Stack6, null, /* @__PURE__ */ React9.createElement(Grid4, { columns: !!(selectedScript && selectedScript !== "") ? 2 : 1, gap: 2 }, /* @__PURE__ */ React9.createElement(
3216
+ return /* @__PURE__ */ React10.createElement(Stack6, null, !ready && /* @__PURE__ */ React10.createElement(Text8, null, /* @__PURE__ */ React10.createElement("br", null), status, /* @__PURE__ */ React10.createElement("br", null), /* @__PURE__ */ React10.createElement("br", null)), ready && /* @__PURE__ */ React10.createElement(Stack6, null, /* @__PURE__ */ React10.createElement(Grid4, { columns: !!(selectedScript && selectedScript !== "") ? 2 : 1, gap: 2 }, /* @__PURE__ */ React10.createElement(
3217
3217
  Select,
3218
3218
  {
3219
3219
  id: "menu-button-example",
3220
3220
  onChange: (e) => setSelectedScript(e.target.value)
3221
3221
  },
3222
- /* @__PURE__ */ React9.createElement("option", { key: "script-none", value: "" }, " "),
3222
+ /* @__PURE__ */ React10.createElement("option", { key: "script-none", value: "" }, " "),
3223
3223
  SCRIPTS.map(
3224
3224
  (script, i) => {
3225
3225
  var _a;
3226
- return /* @__PURE__ */ React9.createElement("option", { key: "script-" + i, value: script }, ((_a = script[0]) == null ? void 0 : _a.toUpperCase()) + script.slice(1));
3226
+ return /* @__PURE__ */ React10.createElement("option", { key: "script-" + i, value: script }, ((_a = script[0]) == null ? void 0 : _a.toUpperCase()) + script.slice(1));
3227
3227
  }
3228
3228
  )
3229
- ), !!(selectedScript && selectedScript !== "") && /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement("label", { htmlFor: "upload-scripts-file" }, /* @__PURE__ */ React9.createElement(
3229
+ ), !!(selectedScript && selectedScript !== "") && /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement("label", { htmlFor: "upload-scripts-file" }, /* @__PURE__ */ React10.createElement(
3230
3230
  Button6,
3231
3231
  {
3232
3232
  style: { pointerEvents: "none" },
3233
3233
  text: "Upload (ttf/otf/woff/woff2/etc..)"
3234
3234
  }
3235
- )), /* @__PURE__ */ React9.createElement(
3235
+ )), /* @__PURE__ */ React10.createElement(
3236
3236
  "input",
3237
3237
  {
3238
3238
  ref,
@@ -3247,7 +3247,7 @@ var UploadScriptsComponent = (props) => {
3247
3247
  };
3248
3248
 
3249
3249
  // src/components/FontScriptUploaderComponent.jsx
3250
- import React10, { useState as useState7, useEffect as useEffect5, useCallback as useCallback6 } from "react";
3250
+ import React11, { useState as useState7, useEffect as useEffect5, useCallback as useCallback6 } from "react";
3251
3251
  import { Stack as Stack7, Flex as Flex7, Text as Text9, Button as Button7 } from "@sanity/ui";
3252
3252
  import { useFormValue as useFormValue7, set as set3, unset as unset2 } from "sanity";
3253
3253
  var FontScriptUploaderComponent = (props) => {
@@ -3456,17 +3456,17 @@ var FontScriptUploaderComponent = (props) => {
3456
3456
  }
3457
3457
  }
3458
3458
  }, [scriptFileInput]);
3459
- return /* @__PURE__ */ React10.createElement(Stack7, { space: 4 }, SCRIPTS && scriptFileInput && SCRIPTS.map((language, i) => {
3459
+ return /* @__PURE__ */ React11.createElement(Stack7, { space: 4 }, SCRIPTS && scriptFileInput && SCRIPTS.map((language, i) => {
3460
3460
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga;
3461
- return /* @__PURE__ */ React10.createElement(Stack7, { space: 2, key: "language-" + i, style: { borderBottom: "1px solid var(--card-border-color)", paddingBottom: 8 } }, /* @__PURE__ */ React10.createElement(Flex7, { gap: 2 }, /* @__PURE__ */ React10.createElement(Text9, { weight: "semibold" }, ((_a = language[0]) == null ? void 0 : _a.toUpperCase()) + language.slice(1)), message && message[language] && message[language] !== "" && /* @__PURE__ */ React10.createElement(Text9, { style: { color: "green" } }, message[language])), expanded[language] && /* @__PURE__ */ React10.createElement(Stack7, { space: 2 }, /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "TTF:\xA0", !((_d = (_c = (_b = scriptFileInput[language]) == null ? void 0 : _b.ttf) == null ? void 0 : _c.asset) == null ? void 0 : _d._ref) ? ((_e = filenames[language]) == null ? void 0 : _e.ttf) ? /* @__PURE__ */ React10.createElement("b", null, filenames[language].ttf) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_h = (_g = (_f = scriptFileInput[language]) == null ? void 0 : _f.ttf) == null ? void 0 : _g.asset) == null ? void 0 : _h._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_i = filenames[language]) == null ? void 0 : _i.ttf) ? /* @__PURE__ */ React10.createElement("b", null, filenames[language].ttf) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, /* @__PURE__ */ React10.createElement("label", null, /* @__PURE__ */ React10.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React10.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: (event) => handleUpload(event, language, "ttf") })), ((_j = value[language]) == null ? void 0 : _j.ttf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("ttf", language) }, "\xD7"))), status === "ready" && ((_k = value[language]) == null ? void 0 : _k.ttf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("all", value[language].ttf, language) }, "Regenerate Files from TTF"), /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "OTF:\xA0", !((_n = (_m = (_l = scriptFileInput[language]) == null ? void 0 : _l.otf) == null ? void 0 : _m.asset) == null ? void 0 : _n._ref) ? ((_o = filenames[language]) == null ? void 0 : _o.otf) ? /* @__PURE__ */ React10.createElement("b", null, (_p = filenames[language]) == null ? void 0 : _p.otf) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_s = (_r = (_q = scriptFileInput[language]) == null ? void 0 : _q.otf) == null ? void 0 : _r.asset) == null ? void 0 : _s._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_t = filenames[language]) == null ? void 0 : _t.otf) ? /* @__PURE__ */ React10.createElement("b", null, (_u = filenames[language]) == null ? void 0 : _u.otf) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, ((_v = value[language]) == null ? void 0 : _v.woff) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("otf", value[language].woff, language) }, "Build"), /* @__PURE__ */ React10.createElement("label", null, /* @__PURE__ */ React10.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React10.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "otf") })), ((_w = value[language]) == null ? void 0 : _w.otf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("otf", language) }, "\xD7"))), /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "WOFF:\xA0", !((_z = (_y = (_x = scriptFileInput[language]) == null ? void 0 : _x.woff) == null ? void 0 : _y.asset) == null ? void 0 : _z._ref) ? ((_A = filenames[language]) == null ? void 0 : _A.woff) ? /* @__PURE__ */ React10.createElement("b", null, (_B = filenames[language]) == null ? void 0 : _B.woff) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_E = (_D = (_C = scriptFileInput[language]) == null ? void 0 : _C.woff) == null ? void 0 : _D.asset) == null ? void 0 : _E._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_F = filenames[language]) == null ? void 0 : _F.woff) ? /* @__PURE__ */ React10.createElement("b", null, (_G = filenames[language]) == null ? void 0 : _G.woff) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, ((_H = value[language]) == null ? void 0 : _H.ttf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("woff", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React10.createElement("label", null, /* @__PURE__ */ React10.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React10.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "woff") })), ((_I = value[language]) == null ? void 0 : _I.woff) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("woff", language) }, "\xD7"))), /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "WOFF2:\xA0", !((_L = (_K = (_J = scriptFileInput[language]) == null ? void 0 : _J.woff2) == null ? void 0 : _K.asset) == null ? void 0 : _L._ref) ? ((_M = filenames[language]) == null ? void 0 : _M.woff2) ? /* @__PURE__ */ React10.createElement("b", null, (_N = filenames[language]) == null ? void 0 : _N.woff2) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_Q = (_P = (_O = scriptFileInput[language]) == null ? void 0 : _O.woff2) == null ? void 0 : _P.asset) == null ? void 0 : _Q._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_R = filenames[language]) == null ? void 0 : _R.woff2) ? /* @__PURE__ */ React10.createElement("b", null, (_S = filenames[language]) == null ? void 0 : _S.woff2) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, ((_T = value[language]) == null ? void 0 : _T.ttf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("woff2", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React10.createElement("label", null, /* @__PURE__ */ React10.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React10.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "woff2") })), ((_U = value[language]) == null ? void 0 : _U.woff2) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("woff2", language) }, "\xD7"))), /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "EOT:\xA0", !((_X = (_W = (_V = scriptFileInput[language]) == null ? void 0 : _V.eot) == null ? void 0 : _W.asset) == null ? void 0 : _X._ref) ? ((_Y = filenames[language]) == null ? void 0 : _Y.eot) ? /* @__PURE__ */ React10.createElement("b", null, (_Z = filenames[language]) == null ? void 0 : _Z.eot) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_aa = (_$ = (__ = scriptFileInput[language]) == null ? void 0 : __.eot) == null ? void 0 : _$.asset) == null ? void 0 : _aa._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_ba = filenames[language]) == null ? void 0 : _ba.eot) ? /* @__PURE__ */ React10.createElement("b", null, (_ca = filenames[language]) == null ? void 0 : _ca.eot) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, ((_da = value[language]) == null ? void 0 : _da.ttf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("eot", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React10.createElement("label", null, /* @__PURE__ */ React10.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React10.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "eot") })), ((_ea = value[language]) == null ? void 0 : _ea.eot) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("eot", language) }, "\xD7"))), /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "SVG:\xA0", !((_ha = (_ga = (_fa = scriptFileInput[language]) == null ? void 0 : _fa.svg) == null ? void 0 : _ga.asset) == null ? void 0 : _ha._ref) ? ((_ia = filenames[language]) == null ? void 0 : _ia.svg) ? /* @__PURE__ */ React10.createElement("b", null, (_ja = filenames[language]) == null ? void 0 : _ja.svg) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_ma = (_la = (_ka = scriptFileInput[language]) == null ? void 0 : _ka.svg) == null ? void 0 : _la.asset) == null ? void 0 : _ma._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_na = filenames[language]) == null ? void 0 : _na.svg) ? /* @__PURE__ */ React10.createElement("b", null, (_oa = filenames[language]) == null ? void 0 : _oa.svg) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, ((_pa = value[language]) == null ? void 0 : _pa.ttf) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("svg", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React10.createElement("label", null, /* @__PURE__ */ React10.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React10.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "svg") })), ((_qa = value[language]) == null ? void 0 : _qa.svg) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("svg", language) }, "\xD7"))), /* @__PURE__ */ React10.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React10.createElement(Text9, null, "CSS:\xA0", !((_ta = (_sa = (_ra = scriptFileInput[language]) == null ? void 0 : _ra.css) == null ? void 0 : _sa.asset) == null ? void 0 : _ta._ref) ? ((_ua = filenames[language]) == null ? void 0 : _ua.css) ? /* @__PURE__ */ React10.createElement("b", null, (_va = filenames[language]) == null ? void 0 : _va.css) : /* @__PURE__ */ React10.createElement("b", null, "Empty") : /* @__PURE__ */ React10.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_ya = (_xa = (_wa = scriptFileInput[language]) == null ? void 0 : _wa.css) == null ? void 0 : _xa.asset) == null ? void 0 : _ya._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_za = filenames[language]) == null ? void 0 : _za.css) ? /* @__PURE__ */ React10.createElement("b", null, (_Aa = filenames[language]) == null ? void 0 : _Aa.css) : /* @__PURE__ */ React10.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React10.createElement(Flex7, { gap: 1 }, ((_Ba = value[language]) == null ? void 0 : _Ba.woff2) && /* @__PURE__ */ React10.createElement(Button7, { mode: "default", onClick: () => handleGenerateCssFile(language) }, "Build"), ((_Ca = value[language]) == null ? void 0 : _Ca.css) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("css", language) }, "\xD7"))), status === "ready" && (((_Da = value[language]) == null ? void 0 : _Da.ttf) || ((_Ea = value[language]) == null ? void 0 : _Ea.otf) || ((_Fa = value[language]) == null ? void 0 : _Fa.woff) || ((_Ga = value[language]) == null ? void 0 : _Ga.woff2)) && /* @__PURE__ */ React10.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDeleteAll(language), style: { width: "100%" } }, "Delete All")));
3461
+ return /* @__PURE__ */ React11.createElement(Stack7, { space: 2, key: "language-" + i, style: { borderBottom: "1px solid var(--card-border-color)", paddingBottom: 8 } }, /* @__PURE__ */ React11.createElement(Flex7, { gap: 2 }, /* @__PURE__ */ React11.createElement(Text9, { weight: "semibold" }, ((_a = language[0]) == null ? void 0 : _a.toUpperCase()) + language.slice(1)), message && message[language] && message[language] !== "" && /* @__PURE__ */ React11.createElement(Text9, { style: { color: "green" } }, message[language])), expanded[language] && /* @__PURE__ */ React11.createElement(Stack7, { space: 2 }, /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "TTF:\xA0", !((_d = (_c = (_b = scriptFileInput[language]) == null ? void 0 : _b.ttf) == null ? void 0 : _c.asset) == null ? void 0 : _d._ref) ? ((_e = filenames[language]) == null ? void 0 : _e.ttf) ? /* @__PURE__ */ React11.createElement("b", null, filenames[language].ttf) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_h = (_g = (_f = scriptFileInput[language]) == null ? void 0 : _f.ttf) == null ? void 0 : _g.asset) == null ? void 0 : _h._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_i = filenames[language]) == null ? void 0 : _i.ttf) ? /* @__PURE__ */ React11.createElement("b", null, filenames[language].ttf) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, /* @__PURE__ */ React11.createElement("label", null, /* @__PURE__ */ React11.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React11.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: (event) => handleUpload(event, language, "ttf") })), ((_j = value[language]) == null ? void 0 : _j.ttf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("ttf", language) }, "\xD7"))), status === "ready" && ((_k = value[language]) == null ? void 0 : _k.ttf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("all", value[language].ttf, language) }, "Regenerate Files from TTF"), /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "OTF:\xA0", !((_n = (_m = (_l = scriptFileInput[language]) == null ? void 0 : _l.otf) == null ? void 0 : _m.asset) == null ? void 0 : _n._ref) ? ((_o = filenames[language]) == null ? void 0 : _o.otf) ? /* @__PURE__ */ React11.createElement("b", null, (_p = filenames[language]) == null ? void 0 : _p.otf) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_s = (_r = (_q = scriptFileInput[language]) == null ? void 0 : _q.otf) == null ? void 0 : _r.asset) == null ? void 0 : _s._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_t = filenames[language]) == null ? void 0 : _t.otf) ? /* @__PURE__ */ React11.createElement("b", null, (_u = filenames[language]) == null ? void 0 : _u.otf) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, ((_v = value[language]) == null ? void 0 : _v.woff) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("otf", value[language].woff, language) }, "Build"), /* @__PURE__ */ React11.createElement("label", null, /* @__PURE__ */ React11.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React11.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "otf") })), ((_w = value[language]) == null ? void 0 : _w.otf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("otf", language) }, "\xD7"))), /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "WOFF:\xA0", !((_z = (_y = (_x = scriptFileInput[language]) == null ? void 0 : _x.woff) == null ? void 0 : _y.asset) == null ? void 0 : _z._ref) ? ((_A = filenames[language]) == null ? void 0 : _A.woff) ? /* @__PURE__ */ React11.createElement("b", null, (_B = filenames[language]) == null ? void 0 : _B.woff) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_E = (_D = (_C = scriptFileInput[language]) == null ? void 0 : _C.woff) == null ? void 0 : _D.asset) == null ? void 0 : _E._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_F = filenames[language]) == null ? void 0 : _F.woff) ? /* @__PURE__ */ React11.createElement("b", null, (_G = filenames[language]) == null ? void 0 : _G.woff) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, ((_H = value[language]) == null ? void 0 : _H.ttf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("woff", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React11.createElement("label", null, /* @__PURE__ */ React11.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React11.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "woff") })), ((_I = value[language]) == null ? void 0 : _I.woff) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("woff", language) }, "\xD7"))), /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "WOFF2:\xA0", !((_L = (_K = (_J = scriptFileInput[language]) == null ? void 0 : _J.woff2) == null ? void 0 : _K.asset) == null ? void 0 : _L._ref) ? ((_M = filenames[language]) == null ? void 0 : _M.woff2) ? /* @__PURE__ */ React11.createElement("b", null, (_N = filenames[language]) == null ? void 0 : _N.woff2) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_Q = (_P = (_O = scriptFileInput[language]) == null ? void 0 : _O.woff2) == null ? void 0 : _P.asset) == null ? void 0 : _Q._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_R = filenames[language]) == null ? void 0 : _R.woff2) ? /* @__PURE__ */ React11.createElement("b", null, (_S = filenames[language]) == null ? void 0 : _S.woff2) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, ((_T = value[language]) == null ? void 0 : _T.ttf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("woff2", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React11.createElement("label", null, /* @__PURE__ */ React11.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React11.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "woff2") })), ((_U = value[language]) == null ? void 0 : _U.woff2) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("woff2", language) }, "\xD7"))), /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "EOT:\xA0", !((_X = (_W = (_V = scriptFileInput[language]) == null ? void 0 : _V.eot) == null ? void 0 : _W.asset) == null ? void 0 : _X._ref) ? ((_Y = filenames[language]) == null ? void 0 : _Y.eot) ? /* @__PURE__ */ React11.createElement("b", null, (_Z = filenames[language]) == null ? void 0 : _Z.eot) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_aa = (_$ = (__ = scriptFileInput[language]) == null ? void 0 : __.eot) == null ? void 0 : _$.asset) == null ? void 0 : _aa._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_ba = filenames[language]) == null ? void 0 : _ba.eot) ? /* @__PURE__ */ React11.createElement("b", null, (_ca = filenames[language]) == null ? void 0 : _ca.eot) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, ((_da = value[language]) == null ? void 0 : _da.ttf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("eot", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React11.createElement("label", null, /* @__PURE__ */ React11.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React11.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "eot") })), ((_ea = value[language]) == null ? void 0 : _ea.eot) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("eot", language) }, "\xD7"))), /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "SVG:\xA0", !((_ha = (_ga = (_fa = scriptFileInput[language]) == null ? void 0 : _fa.svg) == null ? void 0 : _ga.asset) == null ? void 0 : _ha._ref) ? ((_ia = filenames[language]) == null ? void 0 : _ia.svg) ? /* @__PURE__ */ React11.createElement("b", null, (_ja = filenames[language]) == null ? void 0 : _ja.svg) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_ma = (_la = (_ka = scriptFileInput[language]) == null ? void 0 : _ka.svg) == null ? void 0 : _la.asset) == null ? void 0 : _ma._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_na = filenames[language]) == null ? void 0 : _na.svg) ? /* @__PURE__ */ React11.createElement("b", null, (_oa = filenames[language]) == null ? void 0 : _oa.svg) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, ((_pa = value[language]) == null ? void 0 : _pa.ttf) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateFontFile("svg", value[language].ttf, language) }, "Build"), /* @__PURE__ */ React11.createElement("label", null, /* @__PURE__ */ React11.createElement(Button7, { as: "span", mode: "ghost" }, "Upload"), /* @__PURE__ */ React11.createElement("input", { ref, type: "file", style: { display: "none" }, onChange: async (event) => handleUpload(event, language, "svg") })), ((_qa = value[language]) == null ? void 0 : _qa.svg) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("svg", language) }, "\xD7"))), /* @__PURE__ */ React11.createElement(Flex7, { justify: "space-between", align: "center" }, /* @__PURE__ */ React11.createElement(Text9, null, "CSS:\xA0", !((_ta = (_sa = (_ra = scriptFileInput[language]) == null ? void 0 : _ra.css) == null ? void 0 : _sa.asset) == null ? void 0 : _ta._ref) ? ((_ua = filenames[language]) == null ? void 0 : _ua.css) ? /* @__PURE__ */ React11.createElement("b", null, (_va = filenames[language]) == null ? void 0 : _va.css) : /* @__PURE__ */ React11.createElement("b", null, "Empty") : /* @__PURE__ */ React11.createElement("a", { href: `https://cdn.sanity.io/files/${process.env.SANITY_STUDIO_PROJECT_ID}/${process.env.SANITY_STUDIO_DATASET}/${(_ya = (_xa = (_wa = scriptFileInput[language]) == null ? void 0 : _wa.css) == null ? void 0 : _xa.asset) == null ? void 0 : _ya._ref.replace("file-", "").replace("-", ".")}`, target: "_blank" }, ((_za = filenames[language]) == null ? void 0 : _za.css) ? /* @__PURE__ */ React11.createElement("b", null, (_Aa = filenames[language]) == null ? void 0 : _Aa.css) : /* @__PURE__ */ React11.createElement("b", null, "File"))), status === "ready" && /* @__PURE__ */ React11.createElement(Flex7, { gap: 1 }, ((_Ba = value[language]) == null ? void 0 : _Ba.woff2) && /* @__PURE__ */ React11.createElement(Button7, { mode: "default", onClick: () => handleGenerateCssFile(language) }, "Build"), ((_Ca = value[language]) == null ? void 0 : _Ca.css) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDelete("css", language) }, "\xD7"))), status === "ready" && (((_Da = value[language]) == null ? void 0 : _Da.ttf) || ((_Ea = value[language]) == null ? void 0 : _Ea.otf) || ((_Fa = value[language]) == null ? void 0 : _Fa.woff) || ((_Ga = value[language]) == null ? void 0 : _Ga.woff2)) && /* @__PURE__ */ React11.createElement(Button7, { mode: "ghost", tone: "critical", onClick: () => handleDeleteAll(language), style: { width: "100%" } }, "Delete All")));
3462
3462
  }));
3463
3463
  };
3464
3464
 
3465
3465
  // src/components/UploadButton.jsx
3466
- import React11, { forwardRef } from "react";
3466
+ import React12, { forwardRef } from "react";
3467
3467
  import { Button as Button8, Text as Text10 } from "@sanity/ui";
3468
3468
  var UploadButton = forwardRef(({ handleUpload }, ref) => {
3469
- return /* @__PURE__ */ React11.createElement(
3469
+ return /* @__PURE__ */ React12.createElement(
3470
3470
  Button8,
3471
3471
  {
3472
3472
  mode: "ghost",
@@ -3475,8 +3475,8 @@ var UploadButton = forwardRef(({ handleUpload }, ref) => {
3475
3475
  padding: 3,
3476
3476
  style: { position: "relative" }
3477
3477
  },
3478
- /* @__PURE__ */ React11.createElement(Text10, { align: "center" }, "Upload (ttf/otf/woff/woff2/etc...)"),
3479
- /* @__PURE__ */ React11.createElement(
3478
+ /* @__PURE__ */ React12.createElement(Text10, { align: "center" }, "Upload (ttf/otf/woff/woff2/etc...)"),
3479
+ /* @__PURE__ */ React12.createElement(
3480
3480
  "input",
3481
3481
  {
3482
3482
  ref,
@@ -3500,7 +3500,7 @@ UploadButton.displayName = "UploadButton";
3500
3500
  var UploadButton_default = UploadButton;
3501
3501
 
3502
3502
  // src/components/KeyValueInput.jsx
3503
- import React12, { useState as useState8, useCallback as useCallback7 } from "react";
3503
+ import React13, { useState as useState8, useCallback as useCallback7 } from "react";
3504
3504
  import { Button as Button9, Grid as Grid5, Stack as Stack8, TextInput as TextInput2 } from "@sanity/ui";
3505
3505
  import { AddIcon, ArrowDownIcon, ArrowUpIcon, TrashIcon as TrashIcon3 } from "@sanity/icons";
3506
3506
  import { set as set4 } from "sanity";
@@ -3536,33 +3536,33 @@ function KeyValueInput({ value = [], onChange }) {
3536
3536
  setPairs(updatedPairs);
3537
3537
  onChange(set4(updatedPairs));
3538
3538
  }, [pairs, onChange]);
3539
- return /* @__PURE__ */ React12.createElement(Stack8, { space: 3 }, pairs.map((pair, index) => /* @__PURE__ */ React12.createElement(Grid5, { className: "manualButtonWrap", columns: [2], key: index, gap: 0, style: { position: "relative" } }, /* @__PURE__ */ React12.createElement("div", { style: { position: "absolute", height: "100%", top: "0", left: "-10px", width: "min-content", transform: "translate(-100%, 0%)" } }, /* @__PURE__ */ React12.createElement("button", { className: "manualButton manualButtonUp", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveUp(index) }, /* @__PURE__ */ React12.createElement(ArrowUpIcon, null)), /* @__PURE__ */ React12.createElement("button", { className: "manualButton manualButtonDown", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveDown(index) }, /* @__PURE__ */ React12.createElement(ArrowDownIcon, null))), /* @__PURE__ */ React12.createElement(
3539
+ return /* @__PURE__ */ React13.createElement(Stack8, { space: 3 }, pairs.map((pair, index) => /* @__PURE__ */ React13.createElement(Grid5, { className: "manualButtonWrap", columns: [2], key: index, gap: 0, style: { position: "relative" } }, /* @__PURE__ */ React13.createElement("div", { style: { position: "absolute", height: "100%", top: "0", left: "-10px", width: "min-content", transform: "translate(-100%, 0%)" } }, /* @__PURE__ */ React13.createElement("button", { className: "manualButton manualButtonUp", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveUp(index) }, /* @__PURE__ */ React13.createElement(ArrowUpIcon, null)), /* @__PURE__ */ React13.createElement("button", { className: "manualButton manualButtonDown", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveDown(index) }, /* @__PURE__ */ React13.createElement(ArrowDownIcon, null))), /* @__PURE__ */ React13.createElement(
3540
3540
  TextInput2,
3541
3541
  {
3542
3542
  value: pair.key,
3543
3543
  onChange: (e) => handlePairChange(index, "key", e.target.value),
3544
3544
  placeholder: "Key"
3545
3545
  }
3546
- ), /* @__PURE__ */ React12.createElement("div", { style: { marginLeft: "-1px" } }, /* @__PURE__ */ React12.createElement(
3546
+ ), /* @__PURE__ */ React13.createElement("div", { style: { marginLeft: "-1px" } }, /* @__PURE__ */ React13.createElement(
3547
3547
  TextInput2,
3548
3548
  {
3549
3549
  value: pair.value,
3550
3550
  onChange: (e) => handlePairChange(index, "value", e.target.value),
3551
3551
  placeholder: "Value"
3552
3552
  }
3553
- )), /* @__PURE__ */ React12.createElement(
3553
+ )), /* @__PURE__ */ React13.createElement(
3554
3554
  "button",
3555
3555
  {
3556
3556
  className: "manualButton",
3557
3557
  onClick: () => handleRemovePair(index),
3558
3558
  style: { position: "absolute", top: "0", right: "-10px", transform: "translate(100%, 0%)" }
3559
3559
  },
3560
- /* @__PURE__ */ React12.createElement(TrashIcon3, null)
3561
- ))), /* @__PURE__ */ React12.createElement(Button9, { tone: "primary", onClick: handleAddPair, icon: AddIcon, text: "Add Row" }));
3560
+ /* @__PURE__ */ React13.createElement(TrashIcon3, null)
3561
+ ))), /* @__PURE__ */ React13.createElement(Button9, { tone: "primary", onClick: handleAddPair, icon: AddIcon, text: "Add Row" }));
3562
3562
  }
3563
3563
 
3564
3564
  // src/components/KeyValueReferenceInput.jsx
3565
- import React13, { useState as useState9, useCallback as useCallback8, useEffect as useEffect6 } from "react";
3565
+ import React14, { useState as useState9, useCallback as useCallback8, useEffect as useEffect6 } from "react";
3566
3566
  import { Button as Button10, Stack as Stack9, TextInput as TextInput3, Box as Box4, Card as Card4, Flex as Flex8, Text as Text11, Dialog, Menu as Menu2, MenuButton as MenuButton2, MenuItem as MenuItem2, Autocomplete } from "@sanity/ui";
3567
3567
  import { AddIcon as AddIcon2, ArrowDownIcon as ArrowDownIcon2, ArrowUpIcon as ArrowUpIcon2, TrashIcon as TrashIcon4, SyncIcon, EllipsisHorizontalIcon } from "@sanity/icons";
3568
3568
  import { set as set5, useFormValue as useFormValue8 } from "sanity";
@@ -3673,48 +3673,48 @@ function KeyValueReferenceInput(props) {
3673
3673
  const valueTitle = (valueField == null ? void 0 : valueField.title) || "Value";
3674
3674
  const keyPlaceholder = (keyField == null ? void 0 : keyField.placeholder) || "Enter key";
3675
3675
  const pickerLabel = referenceType || valueTitle.toLowerCase();
3676
- return /* @__PURE__ */ React13.createElement(Stack9, { space: 3 }, topActions && /* @__PURE__ */ React13.createElement(Box4, { paddingBottom: 2 }, topActions), /* @__PURE__ */ React13.createElement(Box4, null, /* @__PURE__ */ React13.createElement(Stack9, { space: 2 }, pairs.map((pair, index) => {
3676
+ return /* @__PURE__ */ React14.createElement(Stack9, { space: 3 }, topActions && /* @__PURE__ */ React14.createElement(Box4, { paddingBottom: 2 }, topActions), /* @__PURE__ */ React14.createElement(Box4, null, /* @__PURE__ */ React14.createElement(Stack9, { space: 2 }, pairs.map((pair, index) => {
3677
3677
  var _a2;
3678
- return /* @__PURE__ */ React13.createElement(Box4, { key: index, style: { position: "relative" } }, /* @__PURE__ */ React13.createElement("div", { style: { position: "absolute", height: "100%", top: "0", left: "-5px", width: "min-content", transform: "translate(-100%, 0%)" } }, /* @__PURE__ */ React13.createElement("button", { className: "manualButton manualButtonUp", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveUp(index) }, /* @__PURE__ */ React13.createElement(ArrowUpIcon2, null)), /* @__PURE__ */ React13.createElement("button", { className: "manualButton manualButtonDown", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveDown(index) }, /* @__PURE__ */ React13.createElement(ArrowDownIcon2, null))), /* @__PURE__ */ React13.createElement(Flex8, { gap: 2, align: "flex-start" }, /* @__PURE__ */ React13.createElement(Box4, { flex: 1 }, /* @__PURE__ */ React13.createElement(
3678
+ return /* @__PURE__ */ React14.createElement(Box4, { key: index, style: { position: "relative" } }, /* @__PURE__ */ React14.createElement("div", { style: { position: "absolute", height: "100%", top: "0", left: "-5px", width: "min-content", transform: "translate(-100%, 0%)" } }, /* @__PURE__ */ React14.createElement("button", { className: "manualButton manualButtonUp", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveUp(index) }, /* @__PURE__ */ React14.createElement(ArrowUpIcon2, null)), /* @__PURE__ */ React14.createElement("button", { className: "manualButton manualButtonDown", style: { fontSize: "15px", height: "50%" }, onClick: () => handleMoveDown(index) }, /* @__PURE__ */ React14.createElement(ArrowDownIcon2, null))), /* @__PURE__ */ React14.createElement(Flex8, { gap: 2, align: "flex-start" }, /* @__PURE__ */ React14.createElement(Box4, { flex: 1 }, /* @__PURE__ */ React14.createElement(
3679
3679
  TextInput3,
3680
3680
  {
3681
3681
  value: pair.key,
3682
3682
  onChange: (e) => handlePairChange(index, "key", e.target.value),
3683
3683
  placeholder: keyPlaceholder
3684
3684
  }
3685
- )), /* @__PURE__ */ React13.createElement(Box4, { flex: 1, style: { minHeight: "100%" } }, ((_a2 = pair.value) == null ? void 0 : _a2._ref) ? /* @__PURE__ */ React13.createElement(Card4, { className: "referenceCard", radius: 2, tone: "primary", style: { paddingLeft: "1rem", height: "fit-content" } }, /* @__PURE__ */ React13.createElement(Flex8, { align: "center", justify: "space-between" }, /* @__PURE__ */ React13.createElement(
3685
+ )), /* @__PURE__ */ React14.createElement(Box4, { flex: 1, style: { minHeight: "100%" } }, ((_a2 = pair.value) == null ? void 0 : _a2._ref) ? /* @__PURE__ */ React14.createElement(Card4, { className: "referenceCard", radius: 2, tone: "primary", style: { paddingLeft: "1rem", height: "fit-content" } }, /* @__PURE__ */ React14.createElement(Flex8, { align: "center", justify: "space-between" }, /* @__PURE__ */ React14.createElement(
3686
3686
  Text11,
3687
3687
  {
3688
3688
  size: 2,
3689
3689
  style: { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", maxWidth: "90%" }
3690
3690
  },
3691
3691
  referenceData[pair.value._ref] || "Loading..."
3692
- ), /* @__PURE__ */ React13.createElement(
3692
+ ), /* @__PURE__ */ React14.createElement(
3693
3693
  MenuButton2,
3694
3694
  {
3695
- button: /* @__PURE__ */ React13.createElement(Button10, { icon: EllipsisHorizontalIcon, mode: "bleed", title: "Options" }),
3695
+ button: /* @__PURE__ */ React14.createElement(Button10, { icon: EllipsisHorizontalIcon, mode: "bleed", title: "Options" }),
3696
3696
  id: `ref-options-${index}`,
3697
- menu: /* @__PURE__ */ React13.createElement(Menu2, null, /* @__PURE__ */ React13.createElement(MenuItem2, { tone: "critical", icon: TrashIcon4, text: "Remove", onClick: () => handlePairChange(index, "value", null) }), /* @__PURE__ */ React13.createElement(MenuItem2, { icon: SyncIcon, text: "Replace", onClick: () => openReferenceSelector(index) })),
3697
+ menu: /* @__PURE__ */ React14.createElement(Menu2, null, /* @__PURE__ */ React14.createElement(MenuItem2, { tone: "critical", icon: TrashIcon4, text: "Remove", onClick: () => handlePairChange(index, "value", null) }), /* @__PURE__ */ React14.createElement(MenuItem2, { icon: SyncIcon, text: "Replace", onClick: () => openReferenceSelector(index) })),
3698
3698
  popover: { portal: true, tone: "default", placement: "left" }
3699
3699
  }
3700
- ))) : /* @__PURE__ */ React13.createElement(
3700
+ ))) : /* @__PURE__ */ React14.createElement(
3701
3701
  Box4,
3702
3702
  {
3703
3703
  padding: 2,
3704
3704
  style: { minHeight: "100%", border: "1px dashed #ccc", borderRadius: "4px", display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer" },
3705
3705
  onClick: () => openReferenceSelector(index)
3706
3706
  },
3707
- /* @__PURE__ */ React13.createElement(Text11, { muted: true, size: 2 }, "Click to select a ", pickerLabel)
3708
- ))), /* @__PURE__ */ React13.createElement(
3707
+ /* @__PURE__ */ React14.createElement(Text11, { muted: true, size: 2 }, "Click to select a ", pickerLabel)
3708
+ ))), /* @__PURE__ */ React14.createElement(
3709
3709
  "button",
3710
3710
  {
3711
3711
  className: "manualButton",
3712
3712
  onClick: () => handleRemovePair(index),
3713
3713
  style: { position: "absolute", top: "0", right: "-7px", transform: "translate(100%, 0%)" }
3714
3714
  },
3715
- /* @__PURE__ */ React13.createElement(TrashIcon4, null)
3715
+ /* @__PURE__ */ React14.createElement(TrashIcon4, null)
3716
3716
  ));
3717
- }))), /* @__PURE__ */ React13.createElement(Button10, { tone: "primary", mode: "ghost", onClick: handleAddPair, icon: AddIcon2, text: `Add ${keyTitle}` }), isDialogOpen && /* @__PURE__ */ React13.createElement(
3717
+ }))), /* @__PURE__ */ React14.createElement(Button10, { tone: "primary", mode: "ghost", onClick: handleAddPair, icon: AddIcon2, text: `Add ${keyTitle}` }), isDialogOpen && /* @__PURE__ */ React14.createElement(
3718
3718
  Dialog,
3719
3719
  {
3720
3720
  header: `Select a ${pickerLabel}`,
@@ -3722,13 +3722,13 @@ function KeyValueReferenceInput(props) {
3722
3722
  onClose: closeDialog,
3723
3723
  width: 1
3724
3724
  },
3725
- /* @__PURE__ */ React13.createElement(Box4, { padding: 4 }, /* @__PURE__ */ React13.createElement(
3725
+ /* @__PURE__ */ React14.createElement(Box4, { padding: 4 }, /* @__PURE__ */ React14.createElement(
3726
3726
  Autocomplete,
3727
3727
  {
3728
3728
  id: "reference-autocomplete",
3729
3729
  options: referenceOptions,
3730
3730
  placeholder: `Search ${pickerLabel}s...`,
3731
- renderOption: (option) => /* @__PURE__ */ React13.createElement(Card4, { key: option.value, padding: 3, radius: 2, tone: "default", style: { cursor: "pointer" } }, /* @__PURE__ */ React13.createElement(Text11, { size: 2 }, option.title)),
3731
+ renderOption: (option) => /* @__PURE__ */ React14.createElement(Card4, { key: option.value, padding: 3, radius: 2, tone: "default", style: { cursor: "pointer" } }, /* @__PURE__ */ React14.createElement(Text11, { size: 2 }, option.title)),
3732
3732
  renderValue: (val) => {
3733
3733
  var _a2;
3734
3734
  return ((_a2 = referenceOptions.find((o) => o.value === val)) == null ? void 0 : _a2.title) || "";
@@ -3745,7 +3745,7 @@ function KeyValueReferenceInput(props) {
3745
3745
  }
3746
3746
 
3747
3747
  // src/components/VariableInstanceReferencesInput.jsx
3748
- import React14, { useState as useState10, useCallback as useCallback9 } from "react";
3748
+ import React15, { useState as useState10, useCallback as useCallback9 } from "react";
3749
3749
  import { Button as Button11, Flex as Flex9, Dialog as Dialog2, Box as Box5, Stack as Stack10, Text as Text12 } from "@sanity/ui";
3750
3750
  import { SyncIcon as SyncIcon2, DocumentTextIcon } from "@sanity/icons";
3751
3751
  import { set as set6, useFormValue as useFormValue9 } from "sanity";
@@ -3842,7 +3842,7 @@ function VariableInstanceReferencesInput(props) {
3842
3842
  setPendingAction(null);
3843
3843
  }, []);
3844
3844
  const showAutofill = !!((formDocument == null ? void 0 : formDocument.variableFont) && (formDocument == null ? void 0 : formDocument.variableInstances));
3845
- const topActions = showAutofill ? /* @__PURE__ */ React14.createElement(Flex9, { gap: 2 }, /* @__PURE__ */ React14.createElement(
3845
+ const topActions = showAutofill ? /* @__PURE__ */ React15.createElement(Flex9, { gap: 2 }, /* @__PURE__ */ React15.createElement(
3846
3846
  Button11,
3847
3847
  {
3848
3848
  tone: "primary",
@@ -3853,7 +3853,7 @@ function VariableInstanceReferencesInput(props) {
3853
3853
  disabled: isAutofilling,
3854
3854
  loading: isAutofilling
3855
3855
  }
3856
- ), /* @__PURE__ */ React14.createElement(
3856
+ ), /* @__PURE__ */ React15.createElement(
3857
3857
  Button11,
3858
3858
  {
3859
3859
  tone: "default",
@@ -3865,7 +3865,7 @@ function VariableInstanceReferencesInput(props) {
3865
3865
  loading: isAutofilling
3866
3866
  }
3867
3867
  )) : null;
3868
- return /* @__PURE__ */ React14.createElement(React14.Fragment, null, /* @__PURE__ */ React14.createElement(
3868
+ return /* @__PURE__ */ React15.createElement(React15.Fragment, null, /* @__PURE__ */ React15.createElement(
3869
3869
  KeyValueReferenceInput,
3870
3870
  {
3871
3871
  ...props,
@@ -3873,7 +3873,7 @@ function VariableInstanceReferencesInput(props) {
3873
3873
  fetchReferences,
3874
3874
  topActions
3875
3875
  }
3876
- ), showConfirmDialog && /* @__PURE__ */ React14.createElement(
3876
+ ), showConfirmDialog && /* @__PURE__ */ React15.createElement(
3877
3877
  Dialog2,
3878
3878
  {
3879
3879
  header: "Existing entries found",
@@ -3881,12 +3881,12 @@ function VariableInstanceReferencesInput(props) {
3881
3881
  onClose: handleConfirmCancel,
3882
3882
  width: 1
3883
3883
  },
3884
- /* @__PURE__ */ React14.createElement(Box5, { padding: 4 }, /* @__PURE__ */ React14.createElement(Stack10, { space: 4 }, /* @__PURE__ */ React14.createElement(Text12, null, "You already have ", value.length, " ", value.length === 1 ? "entry" : "entries", ". How would you like to proceed?"), /* @__PURE__ */ React14.createElement(Flex9, { gap: 2, justify: "flex-end" }, /* @__PURE__ */ React14.createElement(Button11, { text: "Cancel", mode: "ghost", onClick: handleConfirmCancel }), /* @__PURE__ */ React14.createElement(Button11, { text: "Merge (Add New)", tone: "primary", mode: "ghost", onClick: () => handleConfirmChoice("merge") }), /* @__PURE__ */ React14.createElement(Button11, { text: "Replace All", tone: "critical", onClick: () => handleConfirmChoice("replace") }))))
3884
+ /* @__PURE__ */ React15.createElement(Box5, { padding: 4 }, /* @__PURE__ */ React15.createElement(Stack10, { space: 4 }, /* @__PURE__ */ React15.createElement(Text12, null, "You already have ", value.length, " ", value.length === 1 ? "entry" : "entries", ". How would you like to proceed?"), /* @__PURE__ */ React15.createElement(Flex9, { gap: 2, justify: "flex-end" }, /* @__PURE__ */ React15.createElement(Button11, { text: "Cancel", mode: "ghost", onClick: handleConfirmCancel }), /* @__PURE__ */ React15.createElement(Button11, { text: "Merge (Add New)", tone: "primary", mode: "ghost", onClick: () => handleConfirmChoice("merge") }), /* @__PURE__ */ React15.createElement(Button11, { text: "Replace All", tone: "critical", onClick: () => handleConfirmChoice("replace") }))))
3885
3885
  ));
3886
3886
  }
3887
3887
 
3888
3888
  // src/components/PrimaryCollectionGeneratorTypeface.jsx
3889
- import React15, { useCallback as useCallback10, useState as useState11 } from "react";
3889
+ import React16, { useCallback as useCallback10, useState as useState11 } from "react";
3890
3890
  import { Stack as Stack11, Flex as Flex10, Text as Text13, Button as Button12, Card as Card5, Spinner as Spinner3 } from "@sanity/ui";
3891
3891
  import { useFormValue as useFormValue10 } from "sanity";
3892
3892
  import { nanoid as nanoid10 } from "nanoid";
@@ -3941,7 +3941,7 @@ var PrimaryCollectionGeneratorTypeface = () => {
3941
3941
  setReady(true);
3942
3942
  }, [docId, fonts, price, preferredStyle, styles, title, client]);
3943
3943
  if (!title || !fonts) return null;
3944
- return /* @__PURE__ */ React15.createElement(Stack11, { space: 2 }, /* @__PURE__ */ React15.createElement(StatusDisplay_default, { status, error: false }), /* @__PURE__ */ React15.createElement(Card5, { border: true, padding: 2, shadow: 1, radius: 2 }, ready ? /* @__PURE__ */ React15.createElement(Stack11, { space: 3 }, /* @__PURE__ */ React15.createElement(Flex10, { align: "center", gap: 2, marginTop: 1, marginBottom: 1 }, /* @__PURE__ */ React15.createElement(Text13, { size: 1, muted: true }, "Price"), /* @__PURE__ */ React15.createElement(Text13, { size: 1, muted: true }, "$"), /* @__PURE__ */ React15.createElement(
3944
+ return /* @__PURE__ */ React16.createElement(Stack11, { space: 2 }, /* @__PURE__ */ React16.createElement(StatusDisplay_default, { status, error: false }), /* @__PURE__ */ React16.createElement(Card5, { border: true, padding: 2, shadow: 1, radius: 2 }, ready ? /* @__PURE__ */ React16.createElement(Stack11, { space: 3 }, /* @__PURE__ */ React16.createElement(Flex10, { align: "center", gap: 2, marginTop: 1, marginBottom: 1 }, /* @__PURE__ */ React16.createElement(Text13, { size: 1, muted: true }, "Price"), /* @__PURE__ */ React16.createElement(Text13, { size: 1, muted: true }, "$"), /* @__PURE__ */ React16.createElement(
3945
3945
  "input",
3946
3946
  {
3947
3947
  value: price,
@@ -3949,7 +3949,7 @@ var PrimaryCollectionGeneratorTypeface = () => {
3949
3949
  type: "number",
3950
3950
  style: { textAlign: "end", padding: "5px", maxWidth: "75px" }
3951
3951
  }
3952
- ), /* @__PURE__ */ React15.createElement(Text13, { size: 1, muted: true }, "per full family")), /* @__PURE__ */ React15.createElement(
3952
+ ), /* @__PURE__ */ React16.createElement(Text13, { size: 1, muted: true }, "per full family")), /* @__PURE__ */ React16.createElement(
3953
3953
  Button12,
3954
3954
  {
3955
3955
  mode: "ghost",
@@ -3958,7 +3958,81 @@ var PrimaryCollectionGeneratorTypeface = () => {
3958
3958
  onClick: generateCollection,
3959
3959
  text: "Generate Full Family Collection"
3960
3960
  }
3961
- )) : /* @__PURE__ */ React15.createElement(Flex10, { align: "center", justify: "center", gap: 3, padding: 4 }, /* @__PURE__ */ React15.createElement(Spinner3, null), /* @__PURE__ */ React15.createElement(Text13, { muted: true, size: 1 }, status))));
3961
+ )) : /* @__PURE__ */ React16.createElement(Flex10, { align: "center", justify: "center", gap: 3, padding: 4 }, /* @__PURE__ */ React16.createElement(Spinner3, null), /* @__PURE__ */ React16.createElement(Text13, { muted: true, size: 1 }, status))));
3962
+ };
3963
+
3964
+ // src/components/SetOTF.jsx
3965
+ import { useState as useState12 } from "react";
3966
+ import { set as set7, useFormValue as useFormValue11 } from "sanity";
3967
+ import { Stack as Stack12, Button as Button13, Text as Text14 } from "@sanity/ui";
3968
+ var SetOTF = (props) => {
3969
+ var _a, _b;
3970
+ const { onChange, value = {} } = props;
3971
+ const client = useSanityClient();
3972
+ const stylesObject = useFormValue11(["styles"]);
3973
+ const [message, setMessage] = useState12("");
3974
+ const detect = async () => {
3975
+ var _a2, _b2, _c;
3976
+ if (!((_a2 = stylesObject == null ? void 0 : stylesObject.fonts) == null ? void 0 : _a2.length)) {
3977
+ setMessage("Error: No fonts found in styles. Please add at least one font first.");
3978
+ setTimeout(() => setMessage(""), 5e3);
3979
+ return;
3980
+ }
3981
+ const fontRef = (_b2 = stylesObject.fonts[0]) == null ? void 0 : _b2._ref;
3982
+ if (!fontRef) {
3983
+ setMessage("Error: Invalid font reference in styles.");
3984
+ setTimeout(() => setMessage(""), 5e3);
3985
+ return;
3986
+ }
3987
+ try {
3988
+ const font = await client.fetch('*[_type == "font" && _id == $id][0]', { id: fontRef });
3989
+ if (!font) {
3990
+ setMessage("Error: Could not find the referenced font.");
3991
+ setTimeout(() => setMessage(""), 5e3);
3992
+ return;
3993
+ }
3994
+ if (!((_c = font.opentypeFeatures) == null ? void 0 : _c.chars)) {
3995
+ setMessage(`Error: No OpenType feature data found in "${font.title || "this font"}". Generate font data first.`);
3996
+ setTimeout(() => setMessage(""), 5e3);
3997
+ return;
3998
+ }
3999
+ const features = [];
4000
+ Object.keys(value).forEach((key) => {
4001
+ var _a3;
4002
+ if (key !== "features" && ((_a3 = value[key]) == null ? void 0 : _a3.feature)) {
4003
+ const requiredFeatures = value[key].feature.split(" ");
4004
+ const approved = requiredFeatures.every((v) => font.opentypeFeatures.chars.includes(v));
4005
+ if (approved) features.push(key);
4006
+ }
4007
+ });
4008
+ onChange(set7({ ...value, features }));
4009
+ setMessage(`Features detected: ${features.length ? features.join(", ") : "none"}.`);
4010
+ setTimeout(() => setMessage(""), 5e3);
4011
+ } catch (err) {
4012
+ setMessage("Error detecting features. Check the console for details.");
4013
+ console.error("SetOTF detect error:", err);
4014
+ }
4015
+ };
4016
+ return /* @__PURE__ */ React.createElement(Stack12, { className: "openType" }, ((_a = value == null ? void 0 : value.features) == null ? void 0 : _a.length) > 0 && /* @__PURE__ */ React.createElement(Text14, { muted: true, size: 1, style: { marginBottom: "0.5rem" } }, "Number of features: ", value.features.length), !!((_b = stylesObject == null ? void 0 : stylesObject.fonts) == null ? void 0 : _b.length) && /* @__PURE__ */ React.createElement(
4017
+ Button13,
4018
+ {
4019
+ text: "Detect OTF",
4020
+ mode: "ghost",
4021
+ onClick: detect,
4022
+ style: { borderRadius: "0 3px 0 0", marginBottom: "1rem" }
4023
+ }
4024
+ ), !!message && /* @__PURE__ */ React.createElement(Text14, { muted: true, size: 1 }, /* @__PURE__ */ React.createElement("br", null), message, /* @__PURE__ */ React.createElement("br", null), /* @__PURE__ */ React.createElement("br", null)), props.renderDefault(props));
4025
+ };
4026
+
4027
+ // src/components/StyleCountInput.jsx
4028
+ import React17 from "react";
4029
+ import { Text as Text15 } from "@sanity/ui";
4030
+ import { useFormValue as useFormValue12 } from "sanity";
4031
+ var StyleCountInput = (props) => {
4032
+ const styles = useFormValue12(["styles", "fonts"]) || [];
4033
+ const vfStyles = useFormValue12(["styles", "variableFont"]) || [];
4034
+ const count = styles.length + vfStyles.length;
4035
+ return /* @__PURE__ */ React17.createElement(Text15, { size: 1 }, count);
3962
4036
  };
3963
4037
 
3964
4038
  // src/utils/getEmptyFontKit.js
@@ -4038,6 +4112,2159 @@ var readFontFile2 = (file) => {
4038
4112
  reader.readAsArrayBuffer(file);
4039
4113
  });
4040
4114
  };
4115
+
4116
+ // src/schema/openTypeField.js
4117
+ var openTypeField = {
4118
+ title: "Opentype",
4119
+ name: "openType",
4120
+ type: "object",
4121
+ group: "openType",
4122
+ hidden: false,
4123
+ components: { input: SetOTF },
4124
+ options: { collapsible: true },
4125
+ fields: [
4126
+ {
4127
+ title: "Features",
4128
+ name: "features",
4129
+ type: "array",
4130
+ of: [{ type: "string" }],
4131
+ options: {
4132
+ list: [
4133
+ { title: "All Alternates", value: "allAlternates" },
4134
+ { title: "All Caps", value: "allCaps" },
4135
+ { title: "Alternate Annotation", value: "alternateAnnotation" },
4136
+ { title: "Alternative Fractions", value: "alternativeFractions" },
4137
+ { title: "Capitals To Small Caps", value: "capitalsToSmallCaps" },
4138
+ { title: "Capitals to Petite Caps", value: "capitalsToPetiteCaps" },
4139
+ { title: "Case Sensitive Forms", value: "caseSensitiveForms" },
4140
+ { title: "Contextual Alternates", value: "contextualAlternates" },
4141
+ { title: "Contextual Ligatures", value: "contextualLigatures" },
4142
+ { title: "Contextual Swash", value: "contextualSwash" },
4143
+ { title: "Denominator", value: "denominator" },
4144
+ { title: "Discretionary Ligatures", value: "discretionaryLigatures" },
4145
+ { title: "Fractions", value: "fractions" },
4146
+ { title: "Glyph Decomposition", value: "glyphDecomposition" },
4147
+ { title: "Historical Forms", value: "historicalForms" },
4148
+ { title: "Historical Ligatures", value: "historicalLigatures" },
4149
+ { title: "Initial Form", value: "initialForm" },
4150
+ { title: "Isolated Form", value: "isolatedForm" },
4151
+ { title: "Justified Alternates", value: "justifiedAlternates" },
4152
+ { title: "Localized Forms", value: "localizedForms" },
4153
+ { title: "Mark Positioning", value: "markPositioning" },
4154
+ { title: "Mark Positioning via Subs", value: "markPositioningViaSubs" },
4155
+ { title: "Mark to Mark Positioning", value: "markToMarkPositioning" },
4156
+ { title: "Mathematical Greek", value: "mathematicalGreek" },
4157
+ { title: "Medial Form", value: "medialForm" },
4158
+ { title: "Numerator", value: "numerator" },
4159
+ { title: "Ordinals", value: "ordinals" },
4160
+ { title: "Ornaments", value: "ornaments" },
4161
+ { title: "Petite Caps", value: "petiteCaps" },
4162
+ { title: "Proportional Lining", value: "proportionalLining" },
4163
+ { title: "Proportional Oldstyle", value: "proportionalOldstyle" },
4164
+ { title: "Required Ligatures", value: "requiredLigatures" },
4165
+ { title: "Scientific Inferiors", value: "scientificInferiors" },
4166
+ { title: "Slashed Zero", value: "slashedZero" },
4167
+ { title: "Small Caps", value: "smallCaps" },
4168
+ { title: "Standard Ligatures", value: "standardLigatures" },
4169
+ { title: "Stylistic Alternates", value: "stylisticAlternates" },
4170
+ { title: "Subscript", value: "subscript" },
4171
+ { title: "Superscript", value: "superscript" },
4172
+ { title: "Swash", value: "swash" },
4173
+ { title: "Tabular Lining", value: "tabularLining" },
4174
+ { title: "Tabular Oldstyle", value: "tabularOldstyle" },
4175
+ { title: "Terminal Form", value: "terminalForm" },
4176
+ { title: "Titling Alternates", value: "titlingAlternates" },
4177
+ { title: "Unicase", value: "unicase" },
4178
+ { title: "All Stylistic Sets", value: "allStylisticSets" },
4179
+ { title: "Stylistic Set 1", value: "stylisticSet1" },
4180
+ { title: "Stylistic Set 2", value: "stylisticSet2" },
4181
+ { title: "Stylistic Set 3", value: "stylisticSet3" },
4182
+ { title: "Stylistic Set 4", value: "stylisticSet4" },
4183
+ { title: "Stylistic Set 5", value: "stylisticSet5" },
4184
+ { title: "Stylistic Set 6", value: "stylisticSet6" },
4185
+ { title: "Stylistic Set 7", value: "stylisticSet7" },
4186
+ { title: "Stylistic Set 8", value: "stylisticSet8" },
4187
+ { title: "Stylistic Set 9", value: "stylisticSet9" },
4188
+ { title: "Stylistic Set 10", value: "stylisticSet10" },
4189
+ { title: "Stylistic Set 11", value: "stylisticSet11" },
4190
+ { title: "Stylistic Set 12", value: "stylisticSet12" },
4191
+ { title: "Stylistic Set 13", value: "stylisticSet13" },
4192
+ { title: "Stylistic Set 14", value: "stylisticSet14" },
4193
+ { title: "Stylistic Set 15", value: "stylisticSet15" },
4194
+ { title: "Stylistic Set 16", value: "stylisticSet16" },
4195
+ { title: "Stylistic Set 17", value: "stylisticSet17" },
4196
+ { title: "Stylistic Set 18", value: "stylisticSet18" },
4197
+ { title: "Stylistic Set 19", value: "stylisticSet19" },
4198
+ { title: "Stylistic Set 20", value: "stylisticSet20" }
4199
+ ],
4200
+ layout: "checkbox"
4201
+ }
4202
+ },
4203
+ {
4204
+ title: "All Alternates",
4205
+ name: "allAlternates",
4206
+ type: "object",
4207
+ hidden: ({ parent }) => {
4208
+ var _a;
4209
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("allAlternates"));
4210
+ },
4211
+ fields: [
4212
+ {
4213
+ name: "title",
4214
+ type: "string",
4215
+ placeholder: "eg. All Alternates",
4216
+ initialValue: "All Alternates"
4217
+ },
4218
+ {
4219
+ name: "feature",
4220
+ type: "string",
4221
+ placeholder: "eg. aalt",
4222
+ initialValue: "aalt"
4223
+ },
4224
+ {
4225
+ title: "Custom Text",
4226
+ description: "Use the field below to input a word to highlight the feature.",
4227
+ name: "customText",
4228
+ hidden: true,
4229
+ type: "string",
4230
+ initialValue: ""
4231
+ }
4232
+ ]
4233
+ },
4234
+ {
4235
+ title: "All Caps",
4236
+ name: "allCaps",
4237
+ type: "object",
4238
+ hidden: ({ parent }) => {
4239
+ var _a;
4240
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("allCaps"));
4241
+ },
4242
+ fields: [
4243
+ {
4244
+ name: "title",
4245
+ type: "string",
4246
+ placeholder: "eg. allCaps",
4247
+ initialValue: "allCaps"
4248
+ },
4249
+ {
4250
+ name: "feature",
4251
+ type: "string",
4252
+ placeholder: "eg. case cpsp",
4253
+ initialValue: "case cpsp"
4254
+ },
4255
+ {
4256
+ title: "Custom Text",
4257
+ description: "Use the field below to input a word to highlight the feature.",
4258
+ name: "customText",
4259
+ hidden: true,
4260
+ type: "string",
4261
+ initialValue: ""
4262
+ }
4263
+ ]
4264
+ },
4265
+ {
4266
+ title: "Alternate Annotation",
4267
+ name: "alternateAnnotation",
4268
+ type: "object",
4269
+ hidden: ({ parent }) => {
4270
+ var _a;
4271
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("alternateAnnotation"));
4272
+ },
4273
+ fields: [
4274
+ {
4275
+ name: "title",
4276
+ type: "string",
4277
+ placeholder: "eg. Alternate Annotation",
4278
+ initialValue: "Alternate Annotation"
4279
+ },
4280
+ {
4281
+ name: "feature",
4282
+ type: "string",
4283
+ placeholder: "eg. nalt",
4284
+ initialValue: "nalt"
4285
+ },
4286
+ {
4287
+ title: "Custom Text",
4288
+ description: "Use the field below to input a word to highlight the feature.",
4289
+ name: "customText",
4290
+ hidden: true,
4291
+ type: "string",
4292
+ initialValue: ""
4293
+ }
4294
+ ]
4295
+ },
4296
+ {
4297
+ title: "Alternative Fractions",
4298
+ name: "alternativeFractions",
4299
+ type: "object",
4300
+ hidden: ({ parent }) => {
4301
+ var _a;
4302
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("alternativeFractions"));
4303
+ },
4304
+ fields: [
4305
+ {
4306
+ name: "title",
4307
+ type: "string",
4308
+ placeholder: "eg. Alternative Fractions",
4309
+ initialValue: "Alternative Fractions"
4310
+ },
4311
+ {
4312
+ name: "feature",
4313
+ type: "string",
4314
+ placeholder: "eg. afrc",
4315
+ initialValue: "afrc"
4316
+ },
4317
+ {
4318
+ title: "Custom Text",
4319
+ description: "Use the field below to input a word to highlight the feature.",
4320
+ name: "customText",
4321
+ hidden: true,
4322
+ type: "string",
4323
+ initialValue: ""
4324
+ }
4325
+ ]
4326
+ },
4327
+ {
4328
+ title: "Capitals To Small Caps",
4329
+ name: "capitalsToSmallCaps",
4330
+ type: "object",
4331
+ hidden: ({ parent }) => {
4332
+ var _a;
4333
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("capitalsToSmallCaps"));
4334
+ },
4335
+ fields: [
4336
+ {
4337
+ name: "title",
4338
+ type: "string",
4339
+ placeholder: "eg. Capitals to Small Caps",
4340
+ initialValue: "Capitals to Small Caps"
4341
+ },
4342
+ {
4343
+ name: "feature",
4344
+ type: "string",
4345
+ placeholder: "eg. c2sc",
4346
+ initialValue: "c2sc"
4347
+ },
4348
+ {
4349
+ title: "Custom Text",
4350
+ description: "Use the field below to input a word to highlight the feature.",
4351
+ name: "customText",
4352
+ hidden: true,
4353
+ type: "string",
4354
+ initialValue: ""
4355
+ }
4356
+ ]
4357
+ },
4358
+ {
4359
+ title: "Capitals to Petite Caps",
4360
+ name: "capitalsToPetiteCaps",
4361
+ type: "object",
4362
+ hidden: ({ parent }) => {
4363
+ var _a;
4364
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("capitalsToPetiteCaps"));
4365
+ },
4366
+ fields: [
4367
+ {
4368
+ name: "title",
4369
+ type: "string",
4370
+ placeholder: "eg. Capitals to Petite Caps",
4371
+ initialValue: "Capitals to Petite Caps"
4372
+ },
4373
+ {
4374
+ name: "feature",
4375
+ type: "string",
4376
+ placeholder: "eg. c2pc",
4377
+ initialValue: "c2pc"
4378
+ },
4379
+ {
4380
+ title: "Custom Text",
4381
+ description: "Use the field below to input a word to highlight the feature.",
4382
+ name: "customText",
4383
+ hidden: true,
4384
+ type: "string",
4385
+ initialValue: ""
4386
+ }
4387
+ ]
4388
+ },
4389
+ {
4390
+ title: "Case Sensitive Forms",
4391
+ name: "caseSensitiveForms",
4392
+ type: "object",
4393
+ hidden: ({ parent }) => {
4394
+ var _a;
4395
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("caseSensitiveForms"));
4396
+ },
4397
+ fields: [
4398
+ {
4399
+ name: "title",
4400
+ type: "string",
4401
+ placeholder: "eg. Case Sensitive Forms",
4402
+ initialValue: "Case Sensitive Forms"
4403
+ },
4404
+ {
4405
+ name: "feature",
4406
+ type: "string",
4407
+ placeholder: "eg. case",
4408
+ initialValue: "case"
4409
+ },
4410
+ {
4411
+ title: "Custom Text",
4412
+ description: "Use the field below to input a word to highlight the feature.",
4413
+ name: "customText",
4414
+ hidden: true,
4415
+ type: "string",
4416
+ initialValue: ""
4417
+ }
4418
+ ]
4419
+ },
4420
+ {
4421
+ title: "Contextual Alternates",
4422
+ name: "contextualAlternates",
4423
+ type: "object",
4424
+ hidden: ({ parent }) => {
4425
+ var _a;
4426
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("contextualAlternates"));
4427
+ },
4428
+ fields: [
4429
+ {
4430
+ name: "title",
4431
+ type: "string",
4432
+ placeholder: "eg. Contextual Alternates",
4433
+ initialValue: "Contextual Alternates"
4434
+ },
4435
+ {
4436
+ name: "feature",
4437
+ type: "string",
4438
+ placeholder: "eg. calt",
4439
+ initialValue: "calt"
4440
+ },
4441
+ {
4442
+ title: "Custom Text",
4443
+ description: "Use the field below to input a word to highlight the feature.",
4444
+ name: "customText",
4445
+ hidden: true,
4446
+ type: "string",
4447
+ initialValue: ""
4448
+ }
4449
+ ]
4450
+ },
4451
+ {
4452
+ title: "Contextual Ligatures",
4453
+ name: "contextualLigatures",
4454
+ type: "object",
4455
+ hidden: ({ parent }) => {
4456
+ var _a;
4457
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("contextualLigatures"));
4458
+ },
4459
+ fields: [
4460
+ {
4461
+ name: "title",
4462
+ type: "string",
4463
+ placeholder: "eg. Contextual Ligatures",
4464
+ initialValue: "Contextual Ligatures"
4465
+ },
4466
+ {
4467
+ name: "feature",
4468
+ type: "string",
4469
+ placeholder: "eg. clig",
4470
+ initialValue: "clig"
4471
+ },
4472
+ {
4473
+ title: "Custom Text",
4474
+ description: "Use the field below to input a word to highlight the feature.",
4475
+ name: "customText",
4476
+ hidden: true,
4477
+ type: "string",
4478
+ initialValue: ""
4479
+ }
4480
+ ]
4481
+ },
4482
+ {
4483
+ title: "Contextual Swash",
4484
+ name: "contextualSwash",
4485
+ type: "object",
4486
+ hidden: ({ parent }) => {
4487
+ var _a;
4488
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("contextualSwash"));
4489
+ },
4490
+ fields: [
4491
+ {
4492
+ name: "title",
4493
+ type: "string",
4494
+ placeholder: "eg. Contextual Swash",
4495
+ initialValue: "Contextual Swash"
4496
+ },
4497
+ {
4498
+ name: "feature",
4499
+ type: "string",
4500
+ placeholder: "eg. cswh",
4501
+ initialValue: "cswh"
4502
+ },
4503
+ {
4504
+ title: "Custom Text",
4505
+ description: "Use the field below to input a word to highlight the feature.",
4506
+ name: "customText",
4507
+ hidden: true,
4508
+ type: "string",
4509
+ initialValue: ""
4510
+ }
4511
+ ]
4512
+ },
4513
+ {
4514
+ title: "Denominator",
4515
+ name: "denominator",
4516
+ type: "object",
4517
+ hidden: ({ parent }) => {
4518
+ var _a;
4519
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("denominator"));
4520
+ },
4521
+ fields: [
4522
+ {
4523
+ name: "title",
4524
+ type: "string",
4525
+ placeholder: "eg. Denominator",
4526
+ initialValue: "Denominator"
4527
+ },
4528
+ {
4529
+ name: "feature",
4530
+ type: "string",
4531
+ placeholder: "eg. dnom",
4532
+ initialValue: "dnom"
4533
+ },
4534
+ {
4535
+ title: "Custom Text",
4536
+ description: "Use the field below to input a word to highlight the feature.",
4537
+ name: "customText",
4538
+ hidden: true,
4539
+ type: "string",
4540
+ initialValue: ""
4541
+ }
4542
+ ]
4543
+ },
4544
+ {
4545
+ title: "Discretionary Ligatures",
4546
+ name: "discretionaryLigatures",
4547
+ type: "object",
4548
+ hidden: ({ parent }) => {
4549
+ var _a;
4550
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("discretionaryLigatures"));
4551
+ },
4552
+ fields: [
4553
+ {
4554
+ name: "title",
4555
+ type: "string",
4556
+ placeholder: "eg. Discretionary Ligatures",
4557
+ initialValue: "Discretionary Ligatures"
4558
+ },
4559
+ {
4560
+ name: "feature",
4561
+ type: "string",
4562
+ placeholder: "eg. dlig",
4563
+ initialValue: "dlig"
4564
+ },
4565
+ {
4566
+ title: "Custom Text",
4567
+ description: "Use the field below to input a word to highlight the feature.",
4568
+ name: "customText",
4569
+ hidden: true,
4570
+ type: "string",
4571
+ initialValue: ""
4572
+ }
4573
+ ]
4574
+ },
4575
+ {
4576
+ title: "Fractions",
4577
+ name: "fractions",
4578
+ type: "object",
4579
+ hidden: ({ parent }) => {
4580
+ var _a;
4581
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("fractions"));
4582
+ },
4583
+ fields: [
4584
+ {
4585
+ name: "title",
4586
+ type: "string",
4587
+ placeholder: "eg. Fractions",
4588
+ initialValue: "Fractions"
4589
+ },
4590
+ {
4591
+ name: "feature",
4592
+ type: "string",
4593
+ placeholder: "eg. frac",
4594
+ initialValue: "frac"
4595
+ },
4596
+ {
4597
+ title: "Custom Text",
4598
+ description: "Use the field below to input a word to highlight the feature.",
4599
+ name: "customText",
4600
+ hidden: true,
4601
+ type: "string",
4602
+ initialValue: ""
4603
+ }
4604
+ ]
4605
+ },
4606
+ {
4607
+ title: "Glyph Decomposition",
4608
+ name: "glyphDecomposition",
4609
+ type: "object",
4610
+ hidden: ({ parent }) => {
4611
+ var _a;
4612
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("glyphDecomposition"));
4613
+ },
4614
+ fields: [
4615
+ {
4616
+ name: "title",
4617
+ type: "string",
4618
+ placeholder: "eg. Glyph Decomposition",
4619
+ initialValue: "Glyph Decomposition"
4620
+ },
4621
+ {
4622
+ name: "feature",
4623
+ type: "string",
4624
+ placeholder: "eg. ccmp",
4625
+ initialValue: "ccmp"
4626
+ },
4627
+ {
4628
+ title: "Custom Text",
4629
+ description: "Use the field below to input a word to highlight the feature.",
4630
+ name: "customText",
4631
+ hidden: true,
4632
+ type: "string",
4633
+ initialValue: ""
4634
+ }
4635
+ ]
4636
+ },
4637
+ {
4638
+ title: "Historical Forms",
4639
+ name: "historicalForms",
4640
+ type: "object",
4641
+ hidden: ({ parent }) => {
4642
+ var _a;
4643
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("historicalForms"));
4644
+ },
4645
+ fields: [
4646
+ {
4647
+ name: "title",
4648
+ type: "string",
4649
+ placeholder: "eg. Historical Forms",
4650
+ initialValue: "Historical Forms"
4651
+ },
4652
+ {
4653
+ name: "feature",
4654
+ type: "string",
4655
+ placeholder: "eg. hist",
4656
+ initialValue: "hist"
4657
+ },
4658
+ {
4659
+ title: "Custom Text",
4660
+ description: "Use the field below to input a word to highlight the feature.",
4661
+ name: "customText",
4662
+ hidden: true,
4663
+ type: "string",
4664
+ initialValue: ""
4665
+ }
4666
+ ]
4667
+ },
4668
+ {
4669
+ title: "Historical Ligatures",
4670
+ name: "historicalLigatures",
4671
+ type: "object",
4672
+ hidden: ({ parent }) => {
4673
+ var _a;
4674
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("historicalLigatures"));
4675
+ },
4676
+ fields: [
4677
+ {
4678
+ name: "title",
4679
+ type: "string",
4680
+ placeholder: "eg. Historical Ligatures",
4681
+ initialValue: "Historical Ligatures"
4682
+ },
4683
+ {
4684
+ name: "feature",
4685
+ type: "string",
4686
+ placeholder: "eg. hlig",
4687
+ initialValue: "hlig"
4688
+ },
4689
+ {
4690
+ title: "Custom Text",
4691
+ description: "Use the field below to input a word to highlight the feature.",
4692
+ name: "customText",
4693
+ hidden: true,
4694
+ type: "string",
4695
+ initialValue: ""
4696
+ }
4697
+ ]
4698
+ },
4699
+ {
4700
+ title: "Initial Form",
4701
+ name: "initialForm",
4702
+ type: "object",
4703
+ hidden: ({ parent }) => {
4704
+ var _a;
4705
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("initialForm"));
4706
+ },
4707
+ fields: [
4708
+ {
4709
+ name: "title",
4710
+ type: "string",
4711
+ placeholder: "eg. Initial Form",
4712
+ initialValue: "Initial Form"
4713
+ },
4714
+ {
4715
+ name: "feature",
4716
+ type: "string",
4717
+ placeholder: "eg. init",
4718
+ initialValue: "init"
4719
+ },
4720
+ {
4721
+ title: "Custom Text",
4722
+ description: "Use the field below to input a word to highlight the feature.",
4723
+ name: "customText",
4724
+ hidden: true,
4725
+ type: "string",
4726
+ initialValue: ""
4727
+ }
4728
+ ]
4729
+ },
4730
+ {
4731
+ title: "Isolated Form",
4732
+ name: "isolatedForm",
4733
+ type: "object",
4734
+ hidden: ({ parent }) => {
4735
+ var _a;
4736
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("isolatedForm"));
4737
+ },
4738
+ fields: [
4739
+ {
4740
+ name: "title",
4741
+ type: "string",
4742
+ placeholder: "eg. Isolated Form",
4743
+ initialValue: "Isolated Form"
4744
+ },
4745
+ {
4746
+ name: "feature",
4747
+ type: "string",
4748
+ placeholder: "eg. isol",
4749
+ initialValue: "isol"
4750
+ },
4751
+ {
4752
+ title: "Custom Text",
4753
+ description: "Use the field below to input a word to highlight the feature.",
4754
+ name: "customText",
4755
+ hidden: true,
4756
+ type: "string",
4757
+ initialValue: ""
4758
+ }
4759
+ ]
4760
+ },
4761
+ {
4762
+ title: "Justified Alternates",
4763
+ name: "justifiedAlternates",
4764
+ type: "object",
4765
+ hidden: ({ parent }) => {
4766
+ var _a;
4767
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("justifiedAlternates"));
4768
+ },
4769
+ fields: [
4770
+ {
4771
+ name: "title",
4772
+ type: "string",
4773
+ placeholder: "eg. Justification Alternates",
4774
+ initialValue: "Justification Alternates"
4775
+ },
4776
+ {
4777
+ name: "feature",
4778
+ type: "string",
4779
+ placeholder: "eg. jalt",
4780
+ initialValue: "jalt"
4781
+ },
4782
+ {
4783
+ title: "Custom Text",
4784
+ description: "Use the field below to input a word to highlight the feature.",
4785
+ name: "customText",
4786
+ hidden: true,
4787
+ type: "string",
4788
+ initialValue: ""
4789
+ }
4790
+ ]
4791
+ },
4792
+ {
4793
+ title: "Localized Forms",
4794
+ name: "localizedForms",
4795
+ type: "object",
4796
+ hidden: ({ parent }) => {
4797
+ var _a;
4798
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("localizedForms"));
4799
+ },
4800
+ fields: [
4801
+ {
4802
+ name: "title",
4803
+ type: "string",
4804
+ placeholder: "eg. Localized Forms",
4805
+ initialValue: "Localized Forms"
4806
+ },
4807
+ {
4808
+ name: "feature",
4809
+ type: "string",
4810
+ placeholder: "eg. locl",
4811
+ initialValue: "locl"
4812
+ },
4813
+ {
4814
+ title: "Custom Text",
4815
+ description: "Use the field below to input a word to highlight the feature.",
4816
+ name: "customText",
4817
+ hidden: true,
4818
+ type: "string",
4819
+ initialValue: ""
4820
+ }
4821
+ ]
4822
+ },
4823
+ {
4824
+ title: "Mark Positioning",
4825
+ name: "markPositioning",
4826
+ type: "object",
4827
+ hidden: ({ parent }) => {
4828
+ var _a;
4829
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("markPositioning"));
4830
+ },
4831
+ fields: [
4832
+ {
4833
+ name: "title",
4834
+ type: "string",
4835
+ placeholder: "eg. Mark Positioning",
4836
+ initialValue: "Mark Positioning"
4837
+ },
4838
+ {
4839
+ name: "feature",
4840
+ type: "string",
4841
+ placeholder: "eg. mark",
4842
+ initialValue: "mark"
4843
+ },
4844
+ {
4845
+ title: "Custom Text",
4846
+ description: "Use the field below to input a word to highlight the feature.",
4847
+ name: "customText",
4848
+ hidden: true,
4849
+ type: "string",
4850
+ initialValue: ""
4851
+ }
4852
+ ]
4853
+ },
4854
+ {
4855
+ title: "Mark Positioning via Subs",
4856
+ name: "markPositioningViaSubs",
4857
+ type: "object",
4858
+ hidden: ({ parent }) => {
4859
+ var _a;
4860
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("markPositioningViaSubs"));
4861
+ },
4862
+ fields: [
4863
+ {
4864
+ name: "title",
4865
+ type: "string",
4866
+ placeholder: "eg. Mark Positioning via Subs",
4867
+ initialValue: "Mark Positioning via Subs"
4868
+ },
4869
+ {
4870
+ name: "feature",
4871
+ type: "string",
4872
+ placeholder: "eg. mset",
4873
+ initialValue: "mset"
4874
+ },
4875
+ {
4876
+ title: "Custom Text",
4877
+ description: "Use the field below to input a word to highlight the feature.",
4878
+ name: "customText",
4879
+ hidden: true,
4880
+ type: "string",
4881
+ initialValue: ""
4882
+ }
4883
+ ]
4884
+ },
4885
+ {
4886
+ title: "Mark to Mark Positioning",
4887
+ name: "markToMarkPositioning",
4888
+ type: "object",
4889
+ hidden: ({ parent }) => {
4890
+ var _a;
4891
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("markToMarkPositioning"));
4892
+ },
4893
+ fields: [
4894
+ {
4895
+ name: "title",
4896
+ type: "string",
4897
+ placeholder: "eg. Mark to Mark Positioning",
4898
+ initialValue: "Mark to Mark Positioning"
4899
+ },
4900
+ {
4901
+ name: "feature",
4902
+ type: "string",
4903
+ placeholder: "eg. mkmk",
4904
+ initialValue: "mkmk"
4905
+ },
4906
+ {
4907
+ title: "Custom Text",
4908
+ description: "Use the field below to input a word to highlight the feature.",
4909
+ name: "customText",
4910
+ hidden: true,
4911
+ type: "string",
4912
+ initialValue: ""
4913
+ }
4914
+ ]
4915
+ },
4916
+ {
4917
+ title: "Mathematical Greek",
4918
+ name: "mathematicalGreek",
4919
+ type: "object",
4920
+ hidden: ({ parent }) => {
4921
+ var _a;
4922
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("mathematicalGreek"));
4923
+ },
4924
+ fields: [
4925
+ {
4926
+ name: "title",
4927
+ type: "string",
4928
+ placeholder: "eg. Mathematical Greek",
4929
+ initialValue: "Mathematical Greek"
4930
+ },
4931
+ {
4932
+ name: "feature",
4933
+ type: "string",
4934
+ placeholder: "eg. mgrk",
4935
+ initialValue: "mgrk"
4936
+ },
4937
+ {
4938
+ title: "Custom Text",
4939
+ description: "Use the field below to input a word to highlight the feature.",
4940
+ name: "customText",
4941
+ hidden: true,
4942
+ type: "string",
4943
+ initialValue: ""
4944
+ }
4945
+ ]
4946
+ },
4947
+ {
4948
+ title: "Medial Form",
4949
+ name: "medialForm",
4950
+ type: "object",
4951
+ hidden: ({ parent }) => {
4952
+ var _a;
4953
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("medialForm"));
4954
+ },
4955
+ fields: [
4956
+ {
4957
+ name: "title",
4958
+ type: "string",
4959
+ placeholder: "eg. Medial Form",
4960
+ initialValue: "Medial Form"
4961
+ },
4962
+ {
4963
+ name: "feature",
4964
+ type: "string",
4965
+ placeholder: "eg. medi",
4966
+ initialValue: "medi"
4967
+ },
4968
+ {
4969
+ title: "Custom Text",
4970
+ description: "Use the field below to input a word to highlight the feature.",
4971
+ name: "customText",
4972
+ hidden: true,
4973
+ type: "string",
4974
+ initialValue: ""
4975
+ }
4976
+ ]
4977
+ },
4978
+ {
4979
+ title: "Numerator",
4980
+ name: "numerator",
4981
+ type: "object",
4982
+ hidden: ({ parent }) => {
4983
+ var _a;
4984
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("numerator"));
4985
+ },
4986
+ fields: [
4987
+ {
4988
+ name: "title",
4989
+ type: "string",
4990
+ placeholder: "eg. Numerator",
4991
+ initialValue: "Numerator"
4992
+ },
4993
+ {
4994
+ name: "feature",
4995
+ type: "string",
4996
+ placeholder: "eg. numr",
4997
+ initialValue: "numr"
4998
+ },
4999
+ {
5000
+ title: "Custom Text",
5001
+ description: "Use the field below to input a word to highlight the feature.",
5002
+ name: "customText",
5003
+ hidden: true,
5004
+ type: "string",
5005
+ initialValue: ""
5006
+ }
5007
+ ]
5008
+ },
5009
+ {
5010
+ title: "Ordinals",
5011
+ name: "ordinals",
5012
+ type: "object",
5013
+ hidden: ({ parent }) => {
5014
+ var _a;
5015
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("ordinals"));
5016
+ },
5017
+ fields: [
5018
+ {
5019
+ name: "title",
5020
+ type: "string",
5021
+ placeholder: "eg. Ordinals",
5022
+ initialValue: "Ordinals"
5023
+ },
5024
+ {
5025
+ name: "feature",
5026
+ type: "string",
5027
+ placeholder: "eg. ordn",
5028
+ initialValue: "ordn"
5029
+ },
5030
+ {
5031
+ title: "Custom Text",
5032
+ description: "Use the field below to input a word to highlight the feature.",
5033
+ name: "customText",
5034
+ hidden: true,
5035
+ type: "string",
5036
+ initialValue: ""
5037
+ }
5038
+ ]
5039
+ },
5040
+ {
5041
+ title: "Ornaments",
5042
+ name: "ornaments",
5043
+ type: "object",
5044
+ hidden: ({ parent }) => {
5045
+ var _a;
5046
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("ornaments"));
5047
+ },
5048
+ fields: [
5049
+ {
5050
+ name: "title",
5051
+ type: "string",
5052
+ placeholder: "eg. Ornaments",
5053
+ initialValue: "Ornaments"
5054
+ },
5055
+ {
5056
+ name: "feature",
5057
+ type: "string",
5058
+ placeholder: "eg. ornm",
5059
+ initialValue: "ornm"
5060
+ },
5061
+ {
5062
+ title: "Custom Text",
5063
+ description: "Use the field below to input a word to highlight the feature.",
5064
+ name: "customText",
5065
+ hidden: true,
5066
+ type: "string",
5067
+ initialValue: ""
5068
+ }
5069
+ ]
5070
+ },
5071
+ {
5072
+ title: "Petite Caps",
5073
+ name: "petiteCaps",
5074
+ type: "object",
5075
+ hidden: ({ parent }) => {
5076
+ var _a;
5077
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("petiteCaps"));
5078
+ },
5079
+ fields: [
5080
+ {
5081
+ name: "title",
5082
+ type: "string",
5083
+ placeholder: "eg. Petite Caps",
5084
+ initialValue: "Petite Caps"
5085
+ },
5086
+ {
5087
+ name: "feature",
5088
+ type: "string",
5089
+ placeholder: "eg. pcap",
5090
+ initialValue: "pcap"
5091
+ },
5092
+ {
5093
+ title: "Custom Text",
5094
+ description: "Use the field below to input a word to highlight the feature.",
5095
+ name: "customText",
5096
+ hidden: true,
5097
+ type: "string",
5098
+ initialValue: ""
5099
+ }
5100
+ ]
5101
+ },
5102
+ {
5103
+ title: "Proportional Lining",
5104
+ name: "proportionalLining",
5105
+ type: "object",
5106
+ hidden: ({ parent }) => {
5107
+ var _a;
5108
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("proportionalLining"));
5109
+ },
5110
+ fields: [
5111
+ {
5112
+ name: "title",
5113
+ type: "string",
5114
+ placeholder: "eg. Proportional Lining",
5115
+ initialValue: "Proportional Lining"
5116
+ },
5117
+ {
5118
+ name: "feature",
5119
+ type: "string",
5120
+ placeholder: "eg. pnum lnum",
5121
+ initialValue: "pnum lnum"
5122
+ },
5123
+ {
5124
+ title: "Custom Text",
5125
+ description: "Use the field below to input a word to highlight the feature.",
5126
+ name: "customText",
5127
+ hidden: true,
5128
+ type: "string",
5129
+ initialValue: ""
5130
+ }
5131
+ ]
5132
+ },
5133
+ {
5134
+ title: "Proportional Oldstyle",
5135
+ name: "proportionalOldstyle",
5136
+ type: "object",
5137
+ hidden: ({ parent }) => {
5138
+ var _a;
5139
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("proportionalOldstyle"));
5140
+ },
5141
+ fields: [
5142
+ {
5143
+ name: "title",
5144
+ type: "string",
5145
+ placeholder: "eg. Proportional Oldstyle",
5146
+ initialValue: "Proportional Oldstyle"
5147
+ },
5148
+ {
5149
+ name: "feature",
5150
+ type: "string",
5151
+ placeholder: "eg. pnum onum",
5152
+ initialValue: "pnum onum"
5153
+ },
5154
+ {
5155
+ title: "Show on Glyph Grid",
5156
+ name: "glyphGrid",
5157
+ type: "boolean",
5158
+ initialValue: false
5159
+ },
5160
+ {
5161
+ title: "Custom Text",
5162
+ description: "Use the field below to input a word to highlight the feature.",
5163
+ name: "customText",
5164
+ hidden: true,
5165
+ type: "string",
5166
+ initialValue: ""
5167
+ }
5168
+ ]
5169
+ },
5170
+ {
5171
+ title: "Required Ligatures",
5172
+ name: "requiredLigatures",
5173
+ type: "object",
5174
+ hidden: ({ parent }) => {
5175
+ var _a;
5176
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("requiredLigatures"));
5177
+ },
5178
+ fields: [
5179
+ {
5180
+ name: "title",
5181
+ type: "string",
5182
+ placeholder: "eg. Required Ligatures",
5183
+ initialValue: "Required Ligatures"
5184
+ },
5185
+ {
5186
+ name: "feature",
5187
+ type: "string",
5188
+ placeholder: "eg. rlig",
5189
+ initialValue: "rlig"
5190
+ },
5191
+ {
5192
+ title: "Custom Text",
5193
+ description: "Use the field below to input a word to highlight the feature.",
5194
+ name: "customText",
5195
+ hidden: true,
5196
+ type: "string",
5197
+ initialValue: ""
5198
+ }
5199
+ ]
5200
+ },
5201
+ {
5202
+ title: "Scientific Inferiors",
5203
+ name: "scientificInferiors",
5204
+ type: "object",
5205
+ hidden: ({ parent }) => {
5206
+ var _a;
5207
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("scientificInferiors"));
5208
+ },
5209
+ fields: [
5210
+ {
5211
+ name: "title",
5212
+ type: "string",
5213
+ placeholder: "eg. Scientific Inferiors",
5214
+ initialValue: "Scientific Inferiors"
5215
+ },
5216
+ {
5217
+ name: "feature",
5218
+ type: "string",
5219
+ placeholder: "eg. sinf",
5220
+ initialValue: "sinf"
5221
+ },
5222
+ {
5223
+ title: "Custom Text",
5224
+ description: "Use the field below to input a word to highlight the feature.",
5225
+ name: "customText",
5226
+ hidden: true,
5227
+ type: "string",
5228
+ initialValue: ""
5229
+ }
5230
+ ]
5231
+ },
5232
+ {
5233
+ title: "Slashed Zero",
5234
+ name: "slashedZero",
5235
+ type: "object",
5236
+ hidden: ({ parent }) => {
5237
+ var _a;
5238
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("slashedZero"));
5239
+ },
5240
+ fields: [
5241
+ {
5242
+ name: "title",
5243
+ type: "string",
5244
+ placeholder: "eg. Slashed Zero",
5245
+ initialValue: "Slashed Zero"
5246
+ },
5247
+ {
5248
+ name: "feature",
5249
+ type: "string",
5250
+ placeholder: "eg. zero",
5251
+ initialValue: "zero"
5252
+ },
5253
+ {
5254
+ title: "Custom Text",
5255
+ description: "Use the field below to input a word to highlight the feature.",
5256
+ name: "customText",
5257
+ hidden: true,
5258
+ type: "string",
5259
+ initialValue: ""
5260
+ }
5261
+ ]
5262
+ },
5263
+ {
5264
+ title: "Small Caps",
5265
+ name: "smallCaps",
5266
+ type: "object",
5267
+ hidden: ({ parent }) => {
5268
+ var _a;
5269
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("smallCaps"));
5270
+ },
5271
+ fields: [
5272
+ {
5273
+ name: "title",
5274
+ type: "string",
5275
+ placeholder: "eg. smallCaps",
5276
+ initialValue: "Small Caps"
5277
+ },
5278
+ {
5279
+ name: "feature",
5280
+ type: "string",
5281
+ placeholder: "eg. smcp",
5282
+ initialValue: "smcp"
5283
+ },
5284
+ {
5285
+ title: "Custom Text",
5286
+ description: "Use the field below to input a word to highlight the feature.",
5287
+ name: "customText",
5288
+ hidden: true,
5289
+ type: "string",
5290
+ initialValue: ""
5291
+ }
5292
+ ]
5293
+ },
5294
+ {
5295
+ title: "Standard Ligatures",
5296
+ name: "standardLigatures",
5297
+ type: "object",
5298
+ hidden: ({ parent }) => {
5299
+ var _a;
5300
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("standardLigatures"));
5301
+ },
5302
+ fields: [
5303
+ {
5304
+ name: "title",
5305
+ type: "string",
5306
+ placeholder: "eg. StandardLigatures",
5307
+ initialValue: "StandardLigatures"
5308
+ },
5309
+ {
5310
+ name: "feature",
5311
+ type: "string",
5312
+ placeholder: "eg. liga",
5313
+ initialValue: "liga"
5314
+ },
5315
+ {
5316
+ title: "Custom Text",
5317
+ description: "Use the field below to input a word to highlight the feature.",
5318
+ name: "customText",
5319
+ hidden: true,
5320
+ type: "string",
5321
+ initialValue: ""
5322
+ }
5323
+ ]
5324
+ },
5325
+ {
5326
+ title: "Stylistic Alternates",
5327
+ name: "stylisticAlternates",
5328
+ type: "object",
5329
+ hidden: ({ parent }) => {
5330
+ var _a;
5331
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticAlternates"));
5332
+ },
5333
+ fields: [
5334
+ {
5335
+ name: "title",
5336
+ type: "string",
5337
+ placeholder: "eg. Stylistic Alternates",
5338
+ initialValue: "Stylistic Alternates"
5339
+ },
5340
+ {
5341
+ name: "feature",
5342
+ type: "string",
5343
+ placeholder: "eg. salt",
5344
+ initialValue: "salt"
5345
+ },
5346
+ {
5347
+ title: "Custom Text",
5348
+ description: "Use the field below to input a word to highlight the feature.",
5349
+ name: "customText",
5350
+ hidden: true,
5351
+ type: "string",
5352
+ initialValue: ""
5353
+ }
5354
+ ]
5355
+ },
5356
+ {
5357
+ title: "Subscript",
5358
+ name: "subscript",
5359
+ type: "object",
5360
+ hidden: ({ parent }) => {
5361
+ var _a;
5362
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("subscript"));
5363
+ },
5364
+ fields: [
5365
+ {
5366
+ name: "title",
5367
+ type: "string",
5368
+ placeholder: "eg. Subscript",
5369
+ initialValue: "Subscript"
5370
+ },
5371
+ {
5372
+ name: "feature",
5373
+ type: "string",
5374
+ placeholder: "eg. subs",
5375
+ initialValue: "subs"
5376
+ },
5377
+ {
5378
+ title: "Custom Text",
5379
+ description: "Use the field below to input a word to highlight the feature.",
5380
+ name: "customText",
5381
+ hidden: true,
5382
+ type: "string",
5383
+ initialValue: ""
5384
+ }
5385
+ ]
5386
+ },
5387
+ {
5388
+ title: "Superscript",
5389
+ name: "superscript",
5390
+ type: "object",
5391
+ hidden: ({ parent }) => {
5392
+ var _a;
5393
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("superscript"));
5394
+ },
5395
+ fields: [
5396
+ {
5397
+ name: "title",
5398
+ type: "string",
5399
+ placeholder: "eg. Superscript",
5400
+ initialValue: "Superscript"
5401
+ },
5402
+ {
5403
+ name: "feature",
5404
+ type: "string",
5405
+ placeholder: "eg. sups",
5406
+ initialValue: "sups"
5407
+ },
5408
+ {
5409
+ title: "Custom Text",
5410
+ description: "Use the field below to input a word to highlight the feature.",
5411
+ name: "customText",
5412
+ hidden: true,
5413
+ type: "string",
5414
+ initialValue: ""
5415
+ }
5416
+ ]
5417
+ },
5418
+ {
5419
+ title: "Swash",
5420
+ name: "swash",
5421
+ type: "object",
5422
+ hidden: ({ parent }) => {
5423
+ var _a;
5424
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("swash"));
5425
+ },
5426
+ fields: [
5427
+ {
5428
+ name: "title",
5429
+ type: "string",
5430
+ placeholder: "eg. Swash",
5431
+ initialValue: "Swash"
5432
+ },
5433
+ {
5434
+ name: "feature",
5435
+ type: "string",
5436
+ placeholder: "eg. swsh",
5437
+ initialValue: "swsh"
5438
+ },
5439
+ {
5440
+ title: "Custom Text",
5441
+ description: "Use the field below to input a word to highlight the feature.",
5442
+ name: "customText",
5443
+ hidden: true,
5444
+ type: "string",
5445
+ initialValue: ""
5446
+ }
5447
+ ]
5448
+ },
5449
+ {
5450
+ title: "Tabular Lining",
5451
+ name: "tabularLining",
5452
+ type: "object",
5453
+ hidden: ({ parent }) => {
5454
+ var _a;
5455
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("tabularLining"));
5456
+ },
5457
+ fields: [
5458
+ {
5459
+ name: "title",
5460
+ type: "string",
5461
+ placeholder: "eg. Tabular Lining",
5462
+ initialValue: "Tabular Lining"
5463
+ },
5464
+ {
5465
+ name: "feature",
5466
+ type: "string",
5467
+ placeholder: "eg. tnum lnum",
5468
+ initialValue: "tnum lnum"
5469
+ },
5470
+ {
5471
+ title: "Custom Text",
5472
+ description: "Use the field below to input a word to highlight the feature.",
5473
+ name: "customText",
5474
+ hidden: true,
5475
+ type: "string",
5476
+ initialValue: ""
5477
+ }
5478
+ ]
5479
+ },
5480
+ {
5481
+ title: "Tabular Oldstyle",
5482
+ name: "tabularOldstyle",
5483
+ type: "object",
5484
+ hidden: ({ parent }) => {
5485
+ var _a;
5486
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("tabularOldstyle"));
5487
+ },
5488
+ fields: [
5489
+ {
5490
+ name: "title",
5491
+ type: "string",
5492
+ placeholder: "eg. Tabular Oldstyle",
5493
+ initialValue: "Tabular Oldstyle"
5494
+ },
5495
+ {
5496
+ name: "feature",
5497
+ type: "string",
5498
+ placeholder: "eg. tnum onum",
5499
+ initialValue: "tnum onum"
5500
+ },
5501
+ {
5502
+ title: "Custom Text",
5503
+ description: "Use the field below to input a word to highlight the feature.",
5504
+ name: "customText",
5505
+ hidden: true,
5506
+ type: "string",
5507
+ initialValue: ""
5508
+ }
5509
+ ]
5510
+ },
5511
+ {
5512
+ title: "Terminal Form",
5513
+ name: "terminalForm",
5514
+ type: "object",
5515
+ hidden: ({ parent }) => {
5516
+ var _a;
5517
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("terminalForm"));
5518
+ },
5519
+ fields: [
5520
+ {
5521
+ name: "title",
5522
+ type: "string",
5523
+ placeholder: "eg. Terminal Form",
5524
+ initialValue: "Terminal Form"
5525
+ },
5526
+ {
5527
+ name: "feature",
5528
+ type: "string",
5529
+ placeholder: "eg. fina",
5530
+ initialValue: "fina"
5531
+ },
5532
+ {
5533
+ title: "Custom Text",
5534
+ description: "Use the field below to input a word to highlight the feature.",
5535
+ name: "customText",
5536
+ hidden: true,
5537
+ type: "string",
5538
+ initialValue: ""
5539
+ }
5540
+ ]
5541
+ },
5542
+ {
5543
+ title: "Titling Alternates",
5544
+ name: "titlingAlternates",
5545
+ type: "object",
5546
+ hidden: ({ parent }) => {
5547
+ var _a;
5548
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("titlingAlternates"));
5549
+ },
5550
+ fields: [
5551
+ {
5552
+ name: "title",
5553
+ type: "string",
5554
+ placeholder: "eg. Titling Alternates",
5555
+ initialValue: "Titling Alternates"
5556
+ },
5557
+ {
5558
+ name: "feature",
5559
+ type: "string",
5560
+ placeholder: "eg. titl",
5561
+ initialValue: "titl"
5562
+ },
5563
+ {
5564
+ title: "Custom Text",
5565
+ description: "Use the field below to input a word to highlight the feature.",
5566
+ name: "customText",
5567
+ hidden: true,
5568
+ type: "string",
5569
+ initialValue: ""
5570
+ }
5571
+ ]
5572
+ },
5573
+ {
5574
+ title: "Unicase",
5575
+ name: "unicase",
5576
+ type: "object",
5577
+ hidden: ({ parent }) => {
5578
+ var _a;
5579
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("unicase"));
5580
+ },
5581
+ fields: [
5582
+ {
5583
+ name: "title",
5584
+ type: "string",
5585
+ placeholder: "eg. Unicase",
5586
+ initialValue: "Unicase"
5587
+ },
5588
+ {
5589
+ name: "feature",
5590
+ type: "string",
5591
+ placeholder: "eg. unic",
5592
+ initialValue: "unic"
5593
+ },
5594
+ {
5595
+ title: "Custom Text",
5596
+ description: "Use the field below to input a word to highlight the feature.",
5597
+ name: "customText",
5598
+ hidden: true,
5599
+ type: "string",
5600
+ initialValue: ""
5601
+ }
5602
+ ]
5603
+ },
5604
+ {
5605
+ title: "All Stylistic Sets",
5606
+ name: "allStylisticSets",
5607
+ type: "object",
5608
+ hidden: ({ parent }) => {
5609
+ var _a;
5610
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("allStylisticSets"));
5611
+ },
5612
+ fields: [
5613
+ {
5614
+ name: "title",
5615
+ type: "string",
5616
+ placeholder: "eg. All Stylistic Sets",
5617
+ initialValue: "All Stylistic Sets"
5618
+ },
5619
+ {
5620
+ name: "feature",
5621
+ type: "string",
5622
+ placeholder: "eg. ss01 ss02 ss03 ss04 ss05 ss06 ss07 ss08 ss09 ss10 ss11 ss12 ss13 ss14 ss15 ss16 ss17 ss18 ss19 ss20",
5623
+ initialValue: "ss01 ss02 ss03 ss04 ss05 ss06 ss07 ss08 ss09 ss10 ss11 ss12 ss13 ss14 ss15 ss16 ss17 ss18 ss19 ss20"
5624
+ },
5625
+ {
5626
+ title: "Custom Text",
5627
+ description: "Use the field below to input a word to highlight the feature.",
5628
+ name: "customText",
5629
+ hidden: true,
5630
+ type: "string",
5631
+ initialValue: ""
5632
+ }
5633
+ ]
5634
+ },
5635
+ {
5636
+ title: "Stylistic Set 1",
5637
+ name: "stylisticSet1",
5638
+ type: "object",
5639
+ hidden: ({ parent }) => {
5640
+ var _a;
5641
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet1"));
5642
+ },
5643
+ fields: [
5644
+ {
5645
+ name: "title",
5646
+ type: "string",
5647
+ placeholder: "eg. Stylistic Set 1",
5648
+ initialValue: "Stylistic Set 1"
5649
+ },
5650
+ {
5651
+ name: "feature",
5652
+ type: "string",
5653
+ placeholder: "eg. ss01",
5654
+ initialValue: "ss01"
5655
+ },
5656
+ {
5657
+ title: "Custom Text",
5658
+ description: "Use the field below to input a word to highlight the feature.",
5659
+ name: "customText",
5660
+ hidden: true,
5661
+ type: "string",
5662
+ initialValue: ""
5663
+ }
5664
+ ]
5665
+ },
5666
+ {
5667
+ title: "Stylistic Set 2",
5668
+ name: "stylisticSet2",
5669
+ type: "object",
5670
+ hidden: ({ parent }) => {
5671
+ var _a;
5672
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet2"));
5673
+ },
5674
+ fields: [
5675
+ {
5676
+ name: "title",
5677
+ type: "string",
5678
+ placeholder: "eg. Stylistic Set 2",
5679
+ initialValue: "Stylistic Set 2"
5680
+ },
5681
+ {
5682
+ name: "feature",
5683
+ type: "string",
5684
+ placeholder: "eg. ss02",
5685
+ initialValue: "ss02"
5686
+ },
5687
+ {
5688
+ title: "Custom Text",
5689
+ description: "Use the field below to input a word to highlight the feature.",
5690
+ name: "customText",
5691
+ hidden: true,
5692
+ type: "string",
5693
+ initialValue: ""
5694
+ }
5695
+ ]
5696
+ },
5697
+ {
5698
+ title: "Stylistic Set 3",
5699
+ name: "stylisticSet3",
5700
+ type: "object",
5701
+ hidden: ({ parent }) => {
5702
+ var _a;
5703
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet3"));
5704
+ },
5705
+ fields: [
5706
+ {
5707
+ name: "title",
5708
+ type: "string",
5709
+ placeholder: "eg. Stylistic Set 3",
5710
+ initialValue: "Stylistic Set 3"
5711
+ },
5712
+ {
5713
+ name: "feature",
5714
+ type: "string",
5715
+ placeholder: "eg. ss03",
5716
+ initialValue: "ss03"
5717
+ },
5718
+ {
5719
+ title: "Custom Text",
5720
+ description: "Use the field below to input a word to highlight the feature.",
5721
+ name: "customText",
5722
+ hidden: true,
5723
+ type: "string",
5724
+ initialValue: ""
5725
+ }
5726
+ ]
5727
+ },
5728
+ {
5729
+ title: "Stylistic Set 4",
5730
+ name: "stylisticSet4",
5731
+ type: "object",
5732
+ hidden: ({ parent }) => {
5733
+ var _a;
5734
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet4"));
5735
+ },
5736
+ fields: [
5737
+ {
5738
+ name: "title",
5739
+ type: "string",
5740
+ placeholder: "eg. Stylistic Set 4",
5741
+ initialValue: "Stylistic Set 4"
5742
+ },
5743
+ {
5744
+ name: "feature",
5745
+ type: "string",
5746
+ placeholder: "eg. ss04",
5747
+ initialValue: "ss04"
5748
+ },
5749
+ {
5750
+ title: "Custom Text",
5751
+ description: "Use the field below to input a word to highlight the feature.",
5752
+ name: "customText",
5753
+ hidden: true,
5754
+ type: "string",
5755
+ initialValue: ""
5756
+ }
5757
+ ]
5758
+ },
5759
+ {
5760
+ title: "Stylistic Set 5",
5761
+ name: "stylisticSet5",
5762
+ type: "object",
5763
+ hidden: ({ parent }) => {
5764
+ var _a;
5765
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet5"));
5766
+ },
5767
+ fields: [
5768
+ {
5769
+ name: "title",
5770
+ type: "string",
5771
+ placeholder: "eg. Stylistic Set 5",
5772
+ initialValue: "Stylistic Set 5"
5773
+ },
5774
+ {
5775
+ name: "feature",
5776
+ type: "string",
5777
+ placeholder: "eg. ss05",
5778
+ initialValue: "ss05"
5779
+ },
5780
+ {
5781
+ title: "Custom Text",
5782
+ description: "Use the field below to input a word to highlight the feature.",
5783
+ name: "customText",
5784
+ hidden: true,
5785
+ type: "string",
5786
+ initialValue: ""
5787
+ }
5788
+ ]
5789
+ },
5790
+ {
5791
+ title: "Stylistic Set 6",
5792
+ name: "stylisticSet6",
5793
+ type: "object",
5794
+ hidden: ({ parent }) => {
5795
+ var _a;
5796
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet6"));
5797
+ },
5798
+ fields: [
5799
+ {
5800
+ name: "title",
5801
+ type: "string",
5802
+ placeholder: "eg. Stylistic Set 6",
5803
+ initialValue: "Stylistic Set 6"
5804
+ },
5805
+ {
5806
+ name: "feature",
5807
+ type: "string",
5808
+ placeholder: "eg. ss06",
5809
+ initialValue: "ss06"
5810
+ },
5811
+ {
5812
+ title: "Custom Text",
5813
+ description: "Use the field below to input a word to highlight the feature.",
5814
+ name: "customText",
5815
+ hidden: true,
5816
+ type: "string",
5817
+ initialValue: ""
5818
+ }
5819
+ ]
5820
+ },
5821
+ {
5822
+ title: "Stylistic Set 7",
5823
+ name: "stylisticSet7",
5824
+ type: "object",
5825
+ hidden: ({ parent }) => {
5826
+ var _a;
5827
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet7"));
5828
+ },
5829
+ fields: [
5830
+ {
5831
+ name: "title",
5832
+ type: "string",
5833
+ placeholder: "eg. Stylistic Set 7",
5834
+ initialValue: "Stylistic Set 7"
5835
+ },
5836
+ {
5837
+ name: "feature",
5838
+ type: "string",
5839
+ placeholder: "eg. ss07",
5840
+ initialValue: "ss07"
5841
+ },
5842
+ {
5843
+ title: "Custom Text",
5844
+ description: "Use the field below to input a word to highlight the feature.",
5845
+ name: "customText",
5846
+ hidden: true,
5847
+ type: "string",
5848
+ initialValue: ""
5849
+ }
5850
+ ]
5851
+ },
5852
+ {
5853
+ title: "Stylistic Set 8",
5854
+ name: "stylisticSet8",
5855
+ type: "object",
5856
+ hidden: ({ parent }) => {
5857
+ var _a;
5858
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet8"));
5859
+ },
5860
+ fields: [
5861
+ {
5862
+ name: "title",
5863
+ type: "string",
5864
+ placeholder: "eg. Stylistic Set 8",
5865
+ initialValue: "Stylistic Set 8"
5866
+ },
5867
+ {
5868
+ name: "feature",
5869
+ type: "string",
5870
+ placeholder: "eg. ss08",
5871
+ initialValue: "ss08"
5872
+ },
5873
+ {
5874
+ title: "Custom Text",
5875
+ description: "Use the field below to input a word to highlight the feature.",
5876
+ name: "customText",
5877
+ hidden: true,
5878
+ type: "string",
5879
+ initialValue: ""
5880
+ }
5881
+ ]
5882
+ },
5883
+ {
5884
+ title: "Stylistic Set 9",
5885
+ name: "stylisticSet9",
5886
+ type: "object",
5887
+ hidden: ({ parent }) => {
5888
+ var _a;
5889
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet9"));
5890
+ },
5891
+ fields: [
5892
+ {
5893
+ name: "title",
5894
+ type: "string",
5895
+ placeholder: "eg. Stylistic Set 9",
5896
+ initialValue: "Stylistic Set 9"
5897
+ },
5898
+ {
5899
+ name: "feature",
5900
+ type: "string",
5901
+ placeholder: "eg. ss09",
5902
+ initialValue: "ss09"
5903
+ },
5904
+ {
5905
+ title: "Custom Text",
5906
+ description: "Use the field below to input a word to highlight the feature.",
5907
+ name: "customText",
5908
+ hidden: true,
5909
+ type: "string",
5910
+ initialValue: ""
5911
+ }
5912
+ ]
5913
+ },
5914
+ {
5915
+ title: "Stylistic Set 10",
5916
+ name: "stylisticSet10",
5917
+ type: "object",
5918
+ hidden: ({ parent }) => {
5919
+ var _a;
5920
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet10"));
5921
+ },
5922
+ fields: [
5923
+ {
5924
+ name: "title",
5925
+ type: "string",
5926
+ placeholder: "eg. Stylistic Set10",
5927
+ initialValue: "Stylistic Set10"
5928
+ },
5929
+ {
5930
+ name: "feature",
5931
+ type: "string",
5932
+ placeholder: "eg. ss10",
5933
+ initialValue: "ss10"
5934
+ },
5935
+ {
5936
+ title: "Custom Text",
5937
+ description: "Use the field below to input a word to highlight the feature.",
5938
+ name: "customText",
5939
+ hidden: true,
5940
+ type: "string",
5941
+ initialValue: ""
5942
+ }
5943
+ ]
5944
+ },
5945
+ {
5946
+ title: "Stylistic Set 11",
5947
+ name: "stylisticSet11",
5948
+ type: "object",
5949
+ hidden: ({ parent }) => {
5950
+ var _a;
5951
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet11"));
5952
+ },
5953
+ fields: [
5954
+ {
5955
+ name: "title",
5956
+ type: "string",
5957
+ placeholder: "eg. Stylistic Set 11",
5958
+ initialValue: "Stylistic Set 11"
5959
+ },
5960
+ {
5961
+ name: "feature",
5962
+ type: "string",
5963
+ placeholder: "eg. ss11",
5964
+ initialValue: "ss11"
5965
+ },
5966
+ {
5967
+ title: "Custom Text",
5968
+ description: "Use the field below to input a word to highlight the feature.",
5969
+ name: "customText",
5970
+ hidden: true,
5971
+ type: "string",
5972
+ initialValue: ""
5973
+ }
5974
+ ]
5975
+ },
5976
+ {
5977
+ title: "Stylistic Set 12",
5978
+ name: "stylisticSet12",
5979
+ type: "object",
5980
+ hidden: ({ parent }) => {
5981
+ var _a;
5982
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet12"));
5983
+ },
5984
+ fields: [
5985
+ {
5986
+ name: "title",
5987
+ type: "string",
5988
+ placeholder: "eg. Stylistic Set 12",
5989
+ initialValue: "Stylistic Set 12"
5990
+ },
5991
+ {
5992
+ name: "feature",
5993
+ type: "string",
5994
+ placeholder: "eg. ss12",
5995
+ initialValue: "ss12"
5996
+ },
5997
+ {
5998
+ title: "Custom Text",
5999
+ description: "Use the field below to input a word to highlight the feature.",
6000
+ name: "customText",
6001
+ hidden: true,
6002
+ type: "string",
6003
+ initialValue: ""
6004
+ }
6005
+ ]
6006
+ },
6007
+ {
6008
+ title: "Stylistic Set 13",
6009
+ name: "stylisticSet13",
6010
+ type: "object",
6011
+ hidden: ({ parent }) => {
6012
+ var _a;
6013
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet13"));
6014
+ },
6015
+ fields: [
6016
+ {
6017
+ name: "title",
6018
+ type: "string",
6019
+ placeholder: "eg. Stylistic Set 13",
6020
+ initialValue: "Stylistic Set 13"
6021
+ },
6022
+ {
6023
+ name: "feature",
6024
+ type: "string",
6025
+ placeholder: "eg. ss13",
6026
+ initialValue: "ss13"
6027
+ },
6028
+ {
6029
+ title: "Custom Text",
6030
+ description: "Use the field below to input a word to highlight the feature.",
6031
+ name: "customText",
6032
+ hidden: true,
6033
+ type: "string",
6034
+ initialValue: ""
6035
+ }
6036
+ ]
6037
+ },
6038
+ {
6039
+ title: "Stylistic Set 14",
6040
+ name: "stylisticSet14",
6041
+ type: "object",
6042
+ hidden: ({ parent }) => {
6043
+ var _a;
6044
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet14"));
6045
+ },
6046
+ fields: [
6047
+ {
6048
+ name: "title",
6049
+ type: "string",
6050
+ placeholder: "eg. Stylistic Set 14",
6051
+ initialValue: "Stylistic Set 14"
6052
+ },
6053
+ {
6054
+ name: "feature",
6055
+ type: "string",
6056
+ placeholder: "eg. ss14",
6057
+ initialValue: "ss14"
6058
+ },
6059
+ {
6060
+ title: "Custom Text",
6061
+ description: "Use the field below to input a word to highlight the feature.",
6062
+ name: "customText",
6063
+ hidden: true,
6064
+ type: "string",
6065
+ initialValue: ""
6066
+ }
6067
+ ]
6068
+ },
6069
+ {
6070
+ title: "Stylistic Set 15",
6071
+ name: "stylisticSet15",
6072
+ type: "object",
6073
+ hidden: ({ parent }) => {
6074
+ var _a;
6075
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet15"));
6076
+ },
6077
+ fields: [
6078
+ {
6079
+ name: "title",
6080
+ type: "string",
6081
+ placeholder: "eg. Stylistic Set 15",
6082
+ initialValue: "Stylistic Set 15"
6083
+ },
6084
+ {
6085
+ name: "feature",
6086
+ type: "string",
6087
+ placeholder: "eg. ss15",
6088
+ initialValue: "ss15"
6089
+ },
6090
+ {
6091
+ title: "Custom Text",
6092
+ description: "Use the field below to input a word to highlight the feature.",
6093
+ name: "customText",
6094
+ hidden: true,
6095
+ type: "string",
6096
+ initialValue: ""
6097
+ }
6098
+ ]
6099
+ },
6100
+ {
6101
+ title: "Stylistic Set 16",
6102
+ name: "stylisticSet16",
6103
+ type: "object",
6104
+ hidden: ({ parent }) => {
6105
+ var _a;
6106
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet16"));
6107
+ },
6108
+ fields: [
6109
+ {
6110
+ name: "title",
6111
+ type: "string",
6112
+ placeholder: "eg. Stylistic Set 16",
6113
+ initialValue: "Stylistic Set 16"
6114
+ },
6115
+ {
6116
+ name: "feature",
6117
+ type: "string",
6118
+ placeholder: "eg. ss16",
6119
+ initialValue: "ss16"
6120
+ },
6121
+ {
6122
+ title: "Custom Text",
6123
+ description: "Use the field below to input a word to highlight the feature.",
6124
+ name: "customText",
6125
+ hidden: true,
6126
+ type: "string",
6127
+ initialValue: ""
6128
+ }
6129
+ ]
6130
+ },
6131
+ {
6132
+ title: "Stylistic Set 17",
6133
+ name: "stylisticSet17",
6134
+ type: "object",
6135
+ hidden: ({ parent }) => {
6136
+ var _a;
6137
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet17"));
6138
+ },
6139
+ fields: [
6140
+ {
6141
+ name: "title",
6142
+ type: "string",
6143
+ placeholder: "eg. Stylistic Set 17",
6144
+ initialValue: "Stylistic Set 17"
6145
+ },
6146
+ {
6147
+ name: "feature",
6148
+ type: "string",
6149
+ placeholder: "eg. ss17",
6150
+ initialValue: "ss17"
6151
+ },
6152
+ {
6153
+ title: "Custom Text",
6154
+ description: "Use the field below to input a word to highlight the feature.",
6155
+ name: "customText",
6156
+ hidden: true,
6157
+ type: "string",
6158
+ initialValue: ""
6159
+ }
6160
+ ]
6161
+ },
6162
+ {
6163
+ title: "Stylistic Set 18",
6164
+ name: "stylisticSet18",
6165
+ type: "object",
6166
+ hidden: ({ parent }) => {
6167
+ var _a;
6168
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet18"));
6169
+ },
6170
+ fields: [
6171
+ {
6172
+ name: "title",
6173
+ type: "string",
6174
+ placeholder: "eg. Stylistic Set 18",
6175
+ initialValue: "Stylistic Set 18"
6176
+ },
6177
+ {
6178
+ name: "feature",
6179
+ type: "string",
6180
+ placeholder: "eg. ss18",
6181
+ initialValue: "ss18"
6182
+ },
6183
+ {
6184
+ title: "Custom Text",
6185
+ description: "Use the field below to input a word to highlight the feature.",
6186
+ name: "customText",
6187
+ hidden: true,
6188
+ type: "string",
6189
+ initialValue: ""
6190
+ }
6191
+ ]
6192
+ },
6193
+ {
6194
+ title: "Stylistic Set 19",
6195
+ name: "stylisticSet19",
6196
+ type: "object",
6197
+ hidden: ({ parent }) => {
6198
+ var _a;
6199
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet19"));
6200
+ },
6201
+ fields: [
6202
+ {
6203
+ name: "title",
6204
+ type: "string",
6205
+ placeholder: "eg. Stylistic Set 19",
6206
+ initialValue: "Stylistic Set 19"
6207
+ },
6208
+ {
6209
+ name: "feature",
6210
+ type: "string",
6211
+ placeholder: "eg. ss19",
6212
+ initialValue: "ss19"
6213
+ },
6214
+ {
6215
+ title: "Custom Text",
6216
+ description: "Use the field below to input a word to highlight the feature.",
6217
+ name: "customText",
6218
+ hidden: true,
6219
+ type: "string",
6220
+ initialValue: ""
6221
+ }
6222
+ ]
6223
+ },
6224
+ {
6225
+ title: "Stylistic Set 20",
6226
+ name: "stylisticSet20",
6227
+ type: "object",
6228
+ hidden: ({ parent }) => {
6229
+ var _a;
6230
+ return !((_a = parent == null ? void 0 : parent.features) == null ? void 0 : _a.includes("stylisticSet20"));
6231
+ },
6232
+ fields: [
6233
+ {
6234
+ name: "title",
6235
+ type: "string",
6236
+ placeholder: "eg. Stylistic Set 20",
6237
+ initialValue: "Stylistic Set 20"
6238
+ },
6239
+ {
6240
+ name: "feature",
6241
+ type: "string",
6242
+ placeholder: "eg. ss20",
6243
+ initialValue: "ss20"
6244
+ },
6245
+ {
6246
+ title: "Custom Text",
6247
+ description: "Use the field below to input a word to highlight the feature.",
6248
+ name: "customText",
6249
+ hidden: true,
6250
+ type: "string",
6251
+ initialValue: ""
6252
+ }
6253
+ ]
6254
+ }
6255
+ ]
6256
+ };
6257
+
6258
+ // src/schema/styleCountField.js
6259
+ var styleCountField = {
6260
+ name: "styleCount",
6261
+ type: "number",
6262
+ group: "styles",
6263
+ components: {
6264
+ input: StyleCountInput
6265
+ },
6266
+ readOnly: true
6267
+ };
4041
6268
  export {
4042
6269
  BatchUploadFonts,
4043
6270
  FontScriptUploaderComponent,
@@ -4050,8 +6277,10 @@ export {
4050
6277
  RegenerateSubfamiliesComponent,
4051
6278
  SCRIPTS,
4052
6279
  SCRIPTS_OBJECT,
6280
+ SetOTF,
4053
6281
  SingleUploaderTool,
4054
6282
  StatusDisplay_default as StatusDisplay,
6283
+ StyleCountInput,
4055
6284
  UpdateScriptsComponent,
4056
6285
  UploadButton_default as UploadButton,
4057
6286
  UploadScriptsComponent,
@@ -4071,6 +6300,7 @@ export {
4071
6300
  generateSubset,
4072
6301
  getEmptyFontKit,
4073
6302
  logFontInfo,
6303
+ openTypeField,
4074
6304
  parseVariableFontInstances_default as parseVariableFontInstances,
4075
6305
  processFontFiles,
4076
6306
  processItalicKeywords,
@@ -4081,6 +6311,7 @@ export {
4081
6311
  reverseSpellingLookup,
4082
6312
  sanitizeForSanityId,
4083
6313
  sortFontObjects,
6314
+ styleCountField,
4084
6315
  updateFontPrices,
4085
6316
  updateTypefaceDocument,
4086
6317
  uploadFontFiles,