sanity-plugin-internationalized-array 1.0.0 → 1.1.1

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/lib/esm/index.js CHANGED
@@ -1,17 +1,33 @@
1
- import {defineField as $7XdDa$defineField} from "sanity";
2
- import {jsx as $7XdDa$jsx, jsxs as $7XdDa$jsxs} from "react/jsx-runtime";
3
- import {useMemo as $7XdDa$useMemo, useCallback as $7XdDa$useCallback} from "react";
4
- import {insert as $7XdDa$insert, setIfMissing as $7XdDa$setIfMissing, unset as $7XdDa$unset, set as $7XdDa$set, MemberItem as $7XdDa$MemberItem, FormFieldValidationStatus as $7XdDa$FormFieldValidationStatus} from "sanity/form";
5
- import {Stack as $7XdDa$Stack, Box as $7XdDa$Box, Label as $7XdDa$Label, Flex as $7XdDa$Flex, Button as $7XdDa$Button, Grid as $7XdDa$Grid, Card as $7XdDa$Card, Text as $7XdDa$Text, Code as $7XdDa$Code} from "@sanity/ui";
6
- import {RemoveIcon as $7XdDa$RemoveIcon, RestoreIcon as $7XdDa$RestoreIcon, AddIcon as $7XdDa$AddIcon} from "@sanity/icons";
7
- import $7XdDa$styledcomponents, {css as $7XdDa$css} from "styled-components";
8
-
9
- function $parcel$export(e, n, v, s) {
10
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
1
+ import {createPlugin as $gGrEF$createPlugin, defineField as $gGrEF$defineField} from "sanity";
2
+ import {jsx as $gGrEF$jsx, jsxs as $gGrEF$jsxs} from "react/jsx-runtime";
3
+ import {useMemo as $gGrEF$useMemo, useCallback as $gGrEF$useCallback} from "react";
4
+ import {insert as $gGrEF$insert, setIfMissing as $gGrEF$setIfMissing, unset as $gGrEF$unset, set as $gGrEF$set, MemberItem as $gGrEF$MemberItem, FormFieldValidationStatus as $gGrEF$FormFieldValidationStatus} from "sanity/form";
5
+ import {useToast as $gGrEF$useToast, Stack as $gGrEF$Stack, Box as $gGrEF$Box, Label as $gGrEF$Label, Flex as $gGrEF$Flex, Button as $gGrEF$Button, Grid as $gGrEF$Grid, Card as $gGrEF$Card, Text as $gGrEF$Text, Code as $gGrEF$Code} from "@sanity/ui";
6
+ import {RemoveIcon as $gGrEF$RemoveIcon, RestoreIcon as $gGrEF$RestoreIcon, AddIcon as $gGrEF$AddIcon} from "@sanity/icons";
7
+ import $gGrEF$styledcomponents, {css as $gGrEF$css} from "styled-components";
8
+
9
+
10
+
11
+ function $5c51df8bc000fd76$export$8a7688a96d852767(string) {
12
+ return string.replace(/-([a-z])/g, (g)=>g[1].toUpperCase());
13
+ }
14
+ function $5c51df8bc000fd76$export$348afa8c9ff47183(string) {
15
+ return string.split(` `).map((word)=>word.charAt(0).toUpperCase() + word.slice(1)).join(` `);
16
+ }
17
+ function $5c51df8bc000fd76$export$26c6f48841fe1a8a(string) {
18
+ return $5c51df8bc000fd76$export$348afa8c9ff47183($5c51df8bc000fd76$export$8a7688a96d852767(string));
19
+ }
20
+ function $5c51df8bc000fd76$export$ab1ce2a474f41f52(name, addValue = false) {
21
+ return addValue ? [
22
+ `internationalizedArray`,
23
+ $5c51df8bc000fd76$export$26c6f48841fe1a8a(name),
24
+ `Value`
25
+ ].join(``) : [
26
+ `internationalizedArray`,
27
+ $5c51df8bc000fd76$export$26c6f48841fe1a8a(name)
28
+ ].join(``);
11
29
  }
12
- var $e7e26cac6788e7ab$exports = {};
13
30
 
14
- $parcel$export($e7e26cac6788e7ab$exports, "internationalizedArray", () => $e7e26cac6788e7ab$export$bec7eb13daf35f0e);
15
31
 
16
32
 
17
33
 
@@ -25,12 +41,12 @@ $parcel$export($e7e26cac6788e7ab$exports, "internationalizedArray", () => $e7e26
25
41
  // https://github.com/styled-components/styled-components/issues/2449
26
42
  // Table
27
43
  const $32ee6db03f46d8dd$var$TableWrapper = (props = {})=>{
28
- return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Box), {
44
+ return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
29
45
  as: "table",
30
46
  ...props
31
47
  });
32
48
  };
33
- const $32ee6db03f46d8dd$var$StyledTable = (0, $7XdDa$styledcomponents)($32ee6db03f46d8dd$var$TableWrapper)(()=>(0, $7XdDa$css)`
49
+ const $32ee6db03f46d8dd$var$StyledTable = (0, $gGrEF$styledcomponents)($32ee6db03f46d8dd$var$TableWrapper)(()=>(0, $gGrEF$css)`
34
50
  display: table;
35
51
  width: 100%;
36
52
 
@@ -40,19 +56,19 @@ const $32ee6db03f46d8dd$var$StyledTable = (0, $7XdDa$styledcomponents)($32ee6db0
40
56
  `);
41
57
  function $32ee6db03f46d8dd$export$54ec01a60f47d33d(props) {
42
58
  const { children: children , ...rest } = props;
43
- return /*#__PURE__*/ (0, $7XdDa$jsx)($32ee6db03f46d8dd$var$StyledTable, {
59
+ return /*#__PURE__*/ (0, $gGrEF$jsx)($32ee6db03f46d8dd$var$StyledTable, {
44
60
  ...rest,
45
61
  children: children
46
62
  });
47
63
  }
48
64
  // Row
49
65
  const $32ee6db03f46d8dd$var$RowWrapper = (props = {})=>{
50
- return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Card), {
66
+ return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Card), {
51
67
  as: "tr",
52
68
  ...props
53
69
  });
54
70
  };
55
- const $32ee6db03f46d8dd$var$StyledRow = (0, $7XdDa$styledcomponents)($32ee6db03f46d8dd$var$RowWrapper)(()=>(0, $7XdDa$css)`
71
+ const $32ee6db03f46d8dd$var$StyledRow = (0, $gGrEF$styledcomponents)($32ee6db03f46d8dd$var$RowWrapper)(()=>(0, $gGrEF$css)`
56
72
  display: table-row;
57
73
 
58
74
  &:not([hidden]) {
@@ -61,19 +77,19 @@ const $32ee6db03f46d8dd$var$StyledRow = (0, $7XdDa$styledcomponents)($32ee6db03f
61
77
  `);
62
78
  function $32ee6db03f46d8dd$export$b05581f4e764e162(props) {
63
79
  const { children: children , ...rest } = props;
64
- return /*#__PURE__*/ (0, $7XdDa$jsx)($32ee6db03f46d8dd$var$StyledRow, {
80
+ return /*#__PURE__*/ (0, $gGrEF$jsx)($32ee6db03f46d8dd$var$StyledRow, {
65
81
  ...rest,
66
82
  children: children
67
83
  });
68
84
  }
69
85
  // Cell
70
86
  const $32ee6db03f46d8dd$var$CellWrapper = (props = {})=>{
71
- return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Box), {
87
+ return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
72
88
  as: "td",
73
89
  ...props
74
90
  });
75
91
  };
76
- const $32ee6db03f46d8dd$var$StyledCell = (0, $7XdDa$styledcomponents)($32ee6db03f46d8dd$var$CellWrapper)(()=>(0, $7XdDa$css)`
92
+ const $32ee6db03f46d8dd$var$StyledCell = (0, $gGrEF$styledcomponents)($32ee6db03f46d8dd$var$CellWrapper)(()=>(0, $gGrEF$css)`
77
93
  display: table-cell;
78
94
 
79
95
  &:not([hidden]) {
@@ -82,7 +98,7 @@ const $32ee6db03f46d8dd$var$StyledCell = (0, $7XdDa$styledcomponents)($32ee6db03
82
98
  `);
83
99
  function $32ee6db03f46d8dd$export$1e4baea7053fc0e3(props) {
84
100
  const { children: children , ...rest } = props;
85
- return /*#__PURE__*/ (0, $7XdDa$jsx)($32ee6db03f46d8dd$var$StyledCell, {
101
+ return /*#__PURE__*/ (0, $gGrEF$jsx)($32ee6db03f46d8dd$var$StyledCell, {
86
102
  ...rest,
87
103
  children: children
88
104
  });
@@ -106,37 +122,37 @@ const $e183d660634d2ba0$var$schemaExample = {
106
122
  ]
107
123
  };
108
124
  function $e183d660634d2ba0$export$2e2bcd8739ae039() {
109
- return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Card), {
125
+ return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Card), {
110
126
  tone: "caution",
111
127
  border: true,
112
128
  radius: 2,
113
129
  padding: 3,
114
- children: /*#__PURE__*/ (0, $7XdDa$jsxs)((0, $7XdDa$Stack), {
130
+ children: /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Stack), {
115
131
  space: 4,
116
132
  children: [
117
- /*#__PURE__*/ (0, $7XdDa$jsxs)((0, $7XdDa$Text), {
133
+ /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Text), {
118
134
  children: [
119
135
  "An array of language objects must be passed into the ",
120
- /*#__PURE__*/ (0, $7XdDa$jsx)("code", {
136
+ /*#__PURE__*/ (0, $gGrEF$jsx)("code", {
121
137
  children: "internationalizedArray"
122
138
  }),
123
139
  " ",
124
140
  "helper function, each with an ",
125
- /*#__PURE__*/ (0, $7XdDa$jsx)("code", {
141
+ /*#__PURE__*/ (0, $gGrEF$jsx)("code", {
126
142
  children: "id"
127
143
  }),
128
144
  " and ",
129
- /*#__PURE__*/ (0, $7XdDa$jsx)("code", {
145
+ /*#__PURE__*/ (0, $gGrEF$jsx)("code", {
130
146
  children: "title"
131
147
  }),
132
148
  " field. Example:"
133
149
  ]
134
150
  }),
135
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Card), {
151
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Card), {
136
152
  padding: 2,
137
153
  border: true,
138
154
  radius: 2,
139
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Code), {
155
+ children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Code), {
140
156
  size: 1,
141
157
  language: "javascript",
142
158
  children: JSON.stringify($e183d660634d2ba0$var$schemaExample, null, 2)
@@ -161,10 +177,11 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
161
177
  const { members: members , value: value , schemaType: schemaType , onChange: onChange } = props;
162
178
  const readOnly = typeof schemaType.readOnly === "boolean" ? schemaType.readOnly : false;
163
179
  const { options: options } = schemaType;
164
- const languages = (0, $7XdDa$useMemo)(()=>options?.languages ?? [], [
180
+ const toast = (0, $gGrEF$useToast)();
181
+ const languages = (0, $gGrEF$useMemo)(()=>options?.languages ?? [], [
165
182
  options
166
183
  ]);
167
- const handleAddLanguage = (0, $7XdDa$useCallback)((languageId)=>{
184
+ const handleAddLanguage = (0, $gGrEF$useCallback)((languageId)=>{
168
185
  // Create new items
169
186
  const newItems = languageId ? [
170
187
  {
@@ -181,22 +198,23 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
181
198
  // What languages are there beyond that index?
182
199
  const remainingLanguages = languages.slice(languageIndex + 1);
183
200
  // So what is the index in the current value array of the next language in the language array?
184
- const nextLanguageIndex = languagesInUse.findIndex((l)=>remainingLanguages.find((r)=>r.id === l._key));
201
+ const nextLanguageIndex = languagesInUse.findIndex((l)=>// eslint-disable-next-line max-nested-callbacks
202
+ remainingLanguages.find((r)=>r.id === l._key));
185
203
  // Keep local state up to date incase multiple insertions are being made
186
204
  if (nextLanguageIndex < 0) languagesInUse.push(item);
187
205
  else languagesInUse.splice(nextLanguageIndex, 0, item);
188
- return nextLanguageIndex < 0 ? (0, $7XdDa$insert)([
206
+ return nextLanguageIndex < 0 ? (0, $gGrEF$insert)([
189
207
  item
190
208
  ], "after", [
191
209
  nextLanguageIndex
192
- ]) : (0, $7XdDa$insert)([
210
+ ]) : (0, $gGrEF$insert)([
193
211
  item
194
212
  ], "before", [
195
213
  nextLanguageIndex
196
214
  ]);
197
215
  });
198
216
  onChange([
199
- (0, $7XdDa$setIfMissing)([]),
217
+ (0, $gGrEF$setIfMissing)([]),
200
218
  ...insertions
201
219
  ]);
202
220
  }, [
@@ -204,8 +222,8 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
204
222
  onChange,
205
223
  value
206
224
  ]);
207
- const handleUnsetByKey = (0, $7XdDa$useCallback)((_key)=>{
208
- onChange((0, $7XdDa$unset)([
225
+ const handleUnsetByKey = (0, $gGrEF$useCallback)((_key)=>{
226
+ onChange((0, $gGrEF$unset)([
209
227
  {
210
228
  _key: _key
211
229
  }
@@ -214,29 +232,35 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
214
232
  onChange
215
233
  ]);
216
234
  // TODO: This is lazy, reordering and re-setting the whole array – it could be surgical
217
- const handleRestoreOrder = (0, $7XdDa$useCallback)(()=>{
235
+ const handleRestoreOrder = (0, $gGrEF$useCallback)(()=>{
218
236
  if (!value?.length) return;
237
+ console.log(value);
219
238
  // Create a new value array in the correct order
220
239
  // This would also strip out values that don't have a language as the key
221
240
  const updatedValue = value.reduce((acc, v)=>{
222
241
  const newIndex = languages.findIndex((l)=>l.id === v?._key);
223
- if (newIndex) acc[newIndex] = v;
242
+ if (newIndex > -1) acc[newIndex] = v;
224
243
  return acc;
225
244
  }, []).filter(Boolean);
226
- onChange((0, $7XdDa$set)(updatedValue));
245
+ if (value.length !== updatedValue.length) toast.push({
246
+ title: "There was an error reordering languages",
247
+ status: "warning"
248
+ });
249
+ onChange((0, $gGrEF$set)(updatedValue));
227
250
  }, [
251
+ toast,
228
252
  languages,
229
253
  onChange,
230
254
  value
231
255
  ]);
232
- const allKeysAreLanguages = (0, $7XdDa$useMemo)(()=>{
256
+ const allKeysAreLanguages = (0, $gGrEF$useMemo)(()=>{
233
257
  return value?.every((v)=>languages.find((l)=>l?.id === v?._key));
234
258
  }, [
235
259
  value,
236
260
  languages
237
261
  ]);
238
262
  // Check languages are in the correct order
239
- const languagesOutOfOrder = (0, $7XdDa$useMemo)(()=>{
263
+ const languagesOutOfOrder = (0, $gGrEF$useMemo)(()=>{
240
264
  if (!value?.length) return [];
241
265
  const languagesInUse = languages.filter((l)=>value.find((v)=>v._key === l.id));
242
266
  return value.map((v, vIndex)=>vIndex === languagesInUse.findIndex((l)=>l.id === v._key) ? null : v).filter(Boolean);
@@ -244,60 +268,60 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
244
268
  value,
245
269
  languages
246
270
  ]);
247
- const languagesAreValid = (0, $7XdDa$useMemo)(()=>languages?.length && languages.every((item)=>item.id && item.title), [
271
+ const languagesAreValid = (0, $gGrEF$useMemo)(()=>!languages?.length || languages?.length && languages.every((item)=>item.id && item.title), [
248
272
  languages
249
273
  ]);
250
- if (!languagesAreValid) return /*#__PURE__*/ (0, $7XdDa$jsx)((0, $e183d660634d2ba0$export$2e2bcd8739ae039), {});
251
- return /*#__PURE__*/ (0, $7XdDa$jsxs)((0, $7XdDa$Stack), {
274
+ if (!languagesAreValid) return /*#__PURE__*/ (0, $gGrEF$jsx)((0, $e183d660634d2ba0$export$2e2bcd8739ae039), {});
275
+ return /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Stack), {
252
276
  space: 2,
253
277
  children: [
254
- members?.length > 0 ? /*#__PURE__*/ (0, $7XdDa$jsx)((0, $32ee6db03f46d8dd$export$54ec01a60f47d33d), {
255
- children: /*#__PURE__*/ (0, $7XdDa$jsx)("tbody", {
256
- children: members.map((member)=>/*#__PURE__*/ (0, $7XdDa$jsxs)((0, $32ee6db03f46d8dd$export$b05581f4e764e162), {
278
+ members?.length > 0 ? /*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$54ec01a60f47d33d), {
279
+ children: /*#__PURE__*/ (0, $gGrEF$jsx)("tbody", {
280
+ children: members.map((member)=>/*#__PURE__*/ (0, $gGrEF$jsxs)((0, $32ee6db03f46d8dd$export$b05581f4e764e162), {
257
281
  tone: member?.item?.validation?.length > 0 ? (0, $85e3448f0a0a82fa$export$16423358d6ebe294)(member.item.validation) : undefined,
258
282
  children: [
259
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
283
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
260
284
  style: {
261
285
  verticalAlign: "bottom"
262
286
  },
263
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Box), {
287
+ children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
264
288
  paddingY: 3,
265
289
  paddingRight: 2,
266
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Label), {
290
+ children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Label), {
267
291
  muted: true,
268
292
  size: 1,
269
293
  children: member.key
270
294
  })
271
295
  })
272
296
  }),
273
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
297
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
274
298
  paddingRight: 2,
275
299
  style: {
276
300
  width: `100%`
277
301
  },
278
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$MemberItem), {
302
+ children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$MemberItem), {
279
303
  ...props,
280
304
  member: member
281
305
  })
282
306
  }),
283
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
307
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $32ee6db03f46d8dd$export$1e4baea7053fc0e3), {
284
308
  style: {
285
309
  verticalAlign: "bottom"
286
310
  },
287
- children: /*#__PURE__*/ (0, $7XdDa$jsxs)((0, $7XdDa$Flex), {
311
+ children: /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Flex), {
288
312
  align: "center",
289
313
  justify: "flex-end",
290
314
  gap: 3,
291
315
  children: [
292
- member.item.validation.length > 0 ? /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Box), {
316
+ member?.item?.validation?.length > 0 ? /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Box), {
293
317
  paddingLeft: 2,
294
- children: /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$FormFieldValidationStatus), {
318
+ children: /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$FormFieldValidationStatus), {
295
319
  validation: member.item.validation
296
320
  })
297
321
  }) : null,
298
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Button), {
322
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
299
323
  mode: "ghost",
300
- icon: (0, $7XdDa$RemoveIcon),
324
+ icon: (0, $gGrEF$RemoveIcon),
301
325
  tone: "critical",
302
326
  disabled: typeof readOnly === "boolean" ? readOnly : false,
303
327
  onClick: ()=>handleUnsetByKey(member.key)
@@ -309,33 +333,33 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
309
333
  }, member.key))
310
334
  })
311
335
  }) : null,
312
- languagesOutOfOrder.length > 0 && allKeysAreLanguages ? /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Button), {
336
+ languagesOutOfOrder.length > 0 && allKeysAreLanguages ? /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
313
337
  tone: "caution",
314
- icon: (0, $7XdDa$RestoreIcon),
338
+ icon: (0, $gGrEF$RestoreIcon),
315
339
  onClick: ()=>handleRestoreOrder(),
316
340
  text: "Restore order of languages"
317
341
  }) : null,
318
- value && value.length < languages.length ? /*#__PURE__*/ (0, $7XdDa$jsxs)((0, $7XdDa$Stack), {
342
+ languages?.length > 0 ? /*#__PURE__*/ (0, $gGrEF$jsxs)((0, $gGrEF$Stack), {
319
343
  space: 2,
320
344
  children: [
321
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Grid), {
345
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Grid), {
322
346
  columns: Math.min(languages.length, 5),
323
347
  gap: 2,
324
- children: languages.map((language)=>/*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Button), {
348
+ children: languages.map((language)=>/*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
325
349
  tone: "primary",
326
350
  mode: "ghost",
327
351
  fontSize: 1,
328
352
  disabled: readOnly || Boolean(value?.find((item)=>item._key === language.id)),
329
353
  text: language.id.toUpperCase(),
330
- icon: (0, $7XdDa$AddIcon),
354
+ icon: (0, $gGrEF$AddIcon),
331
355
  onClick: ()=>handleAddLanguage(language.id)
332
356
  }, language.id))
333
357
  }),
334
- /*#__PURE__*/ (0, $7XdDa$jsx)((0, $7XdDa$Button), {
358
+ /*#__PURE__*/ (0, $gGrEF$jsx)((0, $gGrEF$Button), {
335
359
  tone: "primary",
336
360
  mode: "ghost",
337
361
  disabled: readOnly || value && value?.length >= languages?.length,
338
- icon: (0, $7XdDa$AddIcon),
362
+ icon: (0, $gGrEF$AddIcon),
339
363
  text: value?.length ? `Add missing languages` : `Add all languages`,
340
364
  onClick: ()=>handleAddLanguage()
341
365
  })
@@ -346,22 +370,14 @@ function $e3540aa1271cf9b1$export$2e2bcd8739ae039(props) {
346
370
  }
347
371
 
348
372
 
349
- const $e7e26cac6788e7ab$var$CONFIG_DEFAULT = {
350
- name: `title`,
351
- type: `string`,
352
- languages: []
353
- };
354
- function $e7e26cac6788e7ab$export$bec7eb13daf35f0e(config = $e7e26cac6788e7ab$var$CONFIG_DEFAULT) {
355
- const { name: name , type: type , languages: languages } = config;
356
- const configValidation = Array.isArray(config?.validation) ? config.validation : [
357
- config?.validation
358
- ];
359
- return (0, $7XdDa$defineField)({
360
- name: name,
361
- title: config?.title ?? undefined,
362
- group: config?.group ?? undefined,
363
- hidden: config?.hidden ?? undefined,
364
- readOnly: config?.readOnly ?? undefined,
373
+ var $581a585556642695$export$2e2bcd8739ae039 = (config)=>{
374
+ const { languages: languages , type: type } = config;
375
+ const typeName = typeof type === `string` ? type : type.name;
376
+ const arrayName = (0, $5c51df8bc000fd76$export$ab1ce2a474f41f52)(typeName);
377
+ const objectName = (0, $5c51df8bc000fd76$export$ab1ce2a474f41f52)(typeName, true);
378
+ return (0, $gGrEF$defineField)({
379
+ name: arrayName,
380
+ title: "Internationalized array",
365
381
  type: "array",
366
382
  components: {
367
383
  input: (0, $e3540aa1271cf9b1$export$2e2bcd8739ae039)
@@ -370,33 +386,12 @@ function $e7e26cac6788e7ab$export$bec7eb13daf35f0e(config = $e7e26cac6788e7ab$va
370
386
  languages: languages
371
387
  },
372
388
  of: [
373
- {
374
- type: "object",
375
- fields: [
376
- {
377
- name: "value",
378
- type: type
379
- },
380
- ],
381
- preview: {
382
- select: {
383
- title: "value",
384
- key: "_key"
385
- },
386
- prepare (select) {
387
- const { title: title , key: key } = select;
388
- return {
389
- title: title,
390
- subtitle: key.toUpperCase()
391
- };
392
- }
393
- }
394
- },
389
+ (0, $gGrEF$defineField)({
390
+ name: objectName,
391
+ type: objectName
392
+ })
395
393
  ],
396
- // @ts-ignore
397
- validation: (rule)=>{
398
- const rules = [];
399
- rules.push(rule.custom((value, context)=>{
394
+ validation: (rule)=>rule.max(languages?.length).custom((value, context)=>{
400
395
  const { languages: contextLanguages } = context?.type?.options ?? {};
401
396
  const nonLanguageKeys = value?.length ? value.filter((item)=>!contextLanguages.find((language)=>item._key === language.id)) : [];
402
397
  if (nonLanguageKeys.length) return {
@@ -432,18 +427,61 @@ function $e7e26cac6788e7ab$export$bec7eb13daf35f0e(config = $e7e26cac6788e7ab$va
432
427
  ])
433
428
  };
434
429
  return true;
435
- }));
436
- if (languages?.length) rules.push(rule.max(languages.length));
437
- return [
438
- ...rules,
439
- ...configValidation
440
- ].filter(Boolean);
441
- }
430
+ })
442
431
  });
443
- }
432
+ };
433
+
434
+
435
+
436
+
437
+ var $3d48ee33fe42e7bc$export$2e2bcd8739ae039 = (config)=>{
438
+ const { type: type } = config;
439
+ const typeName = typeof type === `string` ? type : type.name;
440
+ const objectName = (0, $5c51df8bc000fd76$export$ab1ce2a474f41f52)(typeName, true);
441
+ return (0, $gGrEF$defineField)({
442
+ name: objectName,
443
+ title: `Internationalized array ${type}`,
444
+ type: "object",
445
+ fields: [
446
+ typeof type === `string` ? (0, $gGrEF$defineField)({
447
+ name: "value",
448
+ type: type
449
+ }) : {
450
+ ...type,
451
+ name: "value"
452
+ },
453
+ ]
454
+ });
455
+ };
456
+
457
+
458
+ const $91a08798d183e77b$var$CONFIG_DEFAULT = {
459
+ languages: [],
460
+ fieldTypes: []
461
+ };
462
+ const $91a08798d183e77b$export$bec7eb13daf35f0e = (0, $gGrEF$createPlugin)((config = $91a08798d183e77b$var$CONFIG_DEFAULT)=>{
463
+ const { languages: languages , fieldTypes: fieldTypes } = {
464
+ ...$91a08798d183e77b$var$CONFIG_DEFAULT,
465
+ ...config
466
+ };
467
+ return {
468
+ name: "sanity-plugin-internationalized-array",
469
+ schema: {
470
+ types: [
471
+ ...fieldTypes.map((type)=>(0, $581a585556642695$export$2e2bcd8739ae039)({
472
+ type: type,
473
+ languages: languages
474
+ })),
475
+ ...fieldTypes.map((type)=>(0, $3d48ee33fe42e7bc$export$2e2bcd8739ae039)({
476
+ type: type
477
+ })),
478
+ ]
479
+ }
480
+ };
481
+ });
444
482
 
445
483
 
446
484
 
447
485
 
448
- export {$e7e26cac6788e7ab$export$bec7eb13daf35f0e as internationalizedArray};
486
+ export {$91a08798d183e77b$export$bec7eb13daf35f0e as internationalizedArray};
449
487
  //# sourceMappingURL=index.js.map