@spree/dashboard-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +418 -0
  3. package/package.json +84 -0
  4. package/src/client.ts +25 -0
  5. package/src/components/address-form-dialog.tsx +376 -0
  6. package/src/components/app-sidebar.tsx +70 -0
  7. package/src/components/bulk-action-bar.tsx +504 -0
  8. package/src/components/can.tsx +30 -0
  9. package/src/components/country-combobox.tsx +238 -0
  10. package/src/components/country-state-fields.tsx +86 -0
  11. package/src/components/currency-select.tsx +181 -0
  12. package/src/components/export-button.tsx +156 -0
  13. package/src/components/file-upload-field.tsx +265 -0
  14. package/src/components/image-upload-field.tsx +53 -0
  15. package/src/components/import-button.tsx +202 -0
  16. package/src/components/locale-select.tsx +268 -0
  17. package/src/components/market-combobox.tsx +89 -0
  18. package/src/components/nav-main.tsx +186 -0
  19. package/src/components/page-header.tsx +286 -0
  20. package/src/components/page-tabs.tsx +78 -0
  21. package/src/components/preferences-form.tsx +404 -0
  22. package/src/components/resource-combobox.tsx +126 -0
  23. package/src/components/resource-multi-autocomplete.tsx +176 -0
  24. package/src/components/resource-picker-sheet.tsx +235 -0
  25. package/src/components/resource-table.tsx +652 -0
  26. package/src/components/settings-sidebar.tsx +139 -0
  27. package/src/components/slot.tsx +50 -0
  28. package/src/components/store-date-picker.tsx +18 -0
  29. package/src/components/store-switcher.tsx +70 -0
  30. package/src/components/table-toolbar.tsx +818 -0
  31. package/src/components/tag-combobox.tsx +99 -0
  32. package/src/components/top-bar.tsx +210 -0
  33. package/src/hooks/use-auth.ts +10 -0
  34. package/src/hooks/use-command-palette.tsx +34 -0
  35. package/src/hooks/use-countries.ts +15 -0
  36. package/src/hooks/use-custom-fields.ts +142 -0
  37. package/src/hooks/use-direct-upload.ts +104 -0
  38. package/src/hooks/use-display-name.ts +42 -0
  39. package/src/hooks/use-export.ts +75 -0
  40. package/src/hooks/use-global-search.ts +79 -0
  41. package/src/hooks/use-host-form.ts +34 -0
  42. package/src/hooks/use-import.ts +62 -0
  43. package/src/hooks/use-resource-mutation.ts +99 -0
  44. package/src/hooks/use-switch-admin-locale.ts +55 -0
  45. package/src/index.ts +97 -0
  46. package/src/lib/custom-field-components.ts +56 -0
  47. package/src/lib/download.ts +49 -0
  48. package/src/lib/filters-to-ransack.ts +47 -0
  49. package/src/lib/form-errors.ts +103 -0
  50. package/src/lib/form-fields-registry.ts +102 -0
  51. package/src/lib/form-mappers.ts +30 -0
  52. package/src/lib/formatters.ts +19 -0
  53. package/src/lib/i18n.ts +210 -0
  54. package/src/lib/nav-registry.ts +224 -0
  55. package/src/lib/permissions.ts +55 -0
  56. package/src/lib/query-client.ts +11 -0
  57. package/src/lib/query-keys.ts +69 -0
  58. package/src/lib/route-registry.ts +158 -0
  59. package/src/lib/search-registry.ts +129 -0
  60. package/src/lib/settings-nav-registry.ts +158 -0
  61. package/src/lib/slot-registry.ts +116 -0
  62. package/src/lib/table-registry.ts +274 -0
  63. package/src/lib/timestamp-columns.tsx +58 -0
  64. package/src/locales/ar.json +629 -0
  65. package/src/locales/de.json +629 -0
  66. package/src/locales/en.json +629 -0
  67. package/src/locales/fr.json +629 -0
  68. package/src/locales/pl.json +629 -0
  69. package/src/locales/zh-CN.json +629 -0
  70. package/src/plugin.ts +222 -0
  71. package/src/providers/auth-provider.tsx +188 -0
  72. package/src/providers/permission-provider.tsx +118 -0
  73. package/src/providers/store-provider.tsx +111 -0
  74. package/src/virtual.d.ts +5 -0
  75. package/src/vite/discover.ts +170 -0
  76. package/src/vite/index.ts +270 -0
@@ -0,0 +1,629 @@
1
+ {
2
+ "admin": {
3
+ "actions": {
4
+ "add": "Add",
5
+ "apply": "Apply",
6
+ "cancel": "Cancel",
7
+ "clear": "Clear",
8
+ "revoke": "Revoke",
9
+ "close": "Close",
10
+ "confirm": "Confirm",
11
+ "done": "Done",
12
+ "create": "Create",
13
+ "creating": "Creating…",
14
+ "delete": "Delete",
15
+ "deleting": "Deleting…",
16
+ "discard": "Discard",
17
+ "discard_changes": "Discard changes",
18
+ "edit": "Edit",
19
+ "view": "View",
20
+ "generate": "Generate",
21
+ "remove": "Remove",
22
+ "save": "Save",
23
+ "saving": "Saving…",
24
+ "search": "Search",
25
+ "sign_in": "Sign in",
26
+ "signing_in": "Signing in…",
27
+ "view_all": "View all",
28
+ "view_details": "View details",
29
+ "copy": "Copy",
30
+ "copied": "Copied!",
31
+ "export": "Export",
32
+ "exporting": "Exporting…",
33
+ "import": "Import",
34
+ "invite": "Invite",
35
+ "send": "Send",
36
+ "send_invitation": "Send invitation",
37
+ "sending": "Sending…",
38
+ "reset": "Reset",
39
+ "show": "Show",
40
+ "hide": "Hide",
41
+ "back": "Back",
42
+ "actions_menu": "Actions",
43
+ "more_actions": "More actions",
44
+ "adding": "Adding…"
45
+ },
46
+ "row_actions": {
47
+ "menu_label": "Open actions",
48
+ "edit": "Edit",
49
+ "clone": "Duplicate",
50
+ "delete": "Delete"
51
+ },
52
+ "a11y": {
53
+ "breadcrumb": "Breadcrumb",
54
+ "toggle_sidebar": "Toggle sidebar",
55
+ "settings_navigation": "Settings navigation",
56
+ "user_menu": "User menu",
57
+ "drag_to_reorder": "Drag to reorder",
58
+ "reorder": "Reorder",
59
+ "select_all_rows": "Select all rows on this page",
60
+ "select_row": "Select row",
61
+ "clear_date": "Clear date",
62
+ "clear_selection": "Clear selection",
63
+ "expand_all": "Expand all",
64
+ "collapse_all": "Collapse all",
65
+ "refetch": "Refetch",
66
+ "hide_value": "Hide value",
67
+ "show_value": "Show value",
68
+ "pick_color": "Pick a color",
69
+ "change_color": "Change color ({{value}})",
70
+ "stock_at_locations": "Stock at locations",
71
+ "edit_media": "Edit media",
72
+ "delete_image": "Delete image",
73
+ "remove_image": "Remove image",
74
+ "view_image": "View image",
75
+ "upload_image": "Upload image",
76
+ "remove_value": "Remove value",
77
+ "breadcrumb_more": "More",
78
+ "sidebar": "Sidebar",
79
+ "sidebar_description": "Displays the mobile sidebar."
80
+ },
81
+ "common": {
82
+ "loading": "Loading…",
83
+ "searching": "Searching…",
84
+ "no_results": "No results",
85
+ "optional": "Optional",
86
+ "required": "Required",
87
+ "yes": "Yes",
88
+ "no": "No",
89
+ "or": "or",
90
+ "and": "and",
91
+ "all": "All",
92
+ "none": "None",
93
+ "page_of": "Page {{page}} of {{total}}",
94
+ "prev": "Prev",
95
+ "next": "Next",
96
+ "select_placeholder": "Select…",
97
+ "search_placeholder": "Search…",
98
+ "pick_date": "Pick a date",
99
+ "comma_separated_hint": "Separate values with commas.",
100
+ "are_you_sure": "Are you sure?",
101
+ "remove_question": "Remove?",
102
+ "deleted": "Deleted",
103
+ "unsaved_changes": "You have unsaved changes.",
104
+ "prices": "Prices",
105
+ "delete_confirm_message": "Are you sure? This action cannot be undone.",
106
+ "adjust_search_or_filters": "Try adjusting your search or filters",
107
+ "default": "Default",
108
+ "cancel": "Cancel",
109
+ "empty_value": "—"
110
+ },
111
+ "color_picker": {
112
+ "no_color": "No color"
113
+ },
114
+ "messages": {
115
+ "saved": "Saved",
116
+ "created": "Created",
117
+ "updated": "Updated",
118
+ "removed": "Removed",
119
+ "settings_updated": "Settings updated",
120
+ "store_settings_updated": "Store settings updated",
121
+ "invitation_sent": "Invitation sent",
122
+ "invitation_resent": "Invitation resent",
123
+ "invitation_accepted": "Welcome to Spree",
124
+ "key_created": "Key created",
125
+ "key_updated": "Key updated",
126
+ "key_revoked": "Key revoked",
127
+ "key_deleted": "Key deleted",
128
+ "product_saved": "Product saved",
129
+ "product_created": "Product created",
130
+ "product_deleted": "Product deleted",
131
+ "order_saved": "Order saved",
132
+ "customer_saved": "Customer saved",
133
+ "customer_deleted": "Customer deleted",
134
+ "payment_method_saved": "Payment method saved",
135
+ "tax_category_saved": "Tax category saved",
136
+ "stock_location_saved": "Stock location saved",
137
+ "promotion_created": "Promotion created",
138
+ "promotion_saved": "Promotion saved",
139
+ "promotion_deleted": "Promotion deleted",
140
+ "gift_card_created": "Gift card created",
141
+ "address_saved": "Address saved",
142
+ "address_removed": "Address removed",
143
+ "store_credit_saved": "Store credit saved",
144
+ "store_credit_removed": "Store credit removed",
145
+ "copied_to_clipboard": "Copied to clipboard",
146
+ "profile_updated": "Profile updated"
147
+ },
148
+ "errors": {
149
+ "required": "This field is required",
150
+ "generic": "Something went wrong",
151
+ "unexpected": "An unexpected error occurred",
152
+ "failed_to_load": "Failed to load",
153
+ "failed_to_save": "Failed to save",
154
+ "failed_to_update": "Failed to update",
155
+ "failed_to_create": "Failed to create",
156
+ "failed_to_delete": "Failed to delete",
157
+ "failed_to_load_customer": "Failed to load customer",
158
+ "failed_to_load_order": "Failed to load order",
159
+ "failed_to_load_product": "Failed to load product",
160
+ "failed_to_send_invitation": "Failed to send invitation",
161
+ "failed_to_revoke_key": "Failed to revoke key",
162
+ "failed_to_update_store": "Failed to update store settings",
163
+ "failed_to_update_staff": "Failed to update staff",
164
+ "network": "Network error — please retry",
165
+ "unauthorized": "You don't have permission to do that",
166
+ "not_found": "Not found",
167
+ "failed_to_update_profile": "Failed to update profile",
168
+ "unexpected_retry": "An unexpected error occurred. Please try again."
169
+ },
170
+ "auth": {
171
+ "login": {
172
+ "title": "Welcome back",
173
+ "subtitle": "Sign in to your admin account"
174
+ },
175
+ "forgot_password": {
176
+ "link": "Forgot password?",
177
+ "title": "Reset your password",
178
+ "subtitle": "Enter your email and we'll send you a link to reset your password.",
179
+ "submit": "Send reset link",
180
+ "sending": "Sending…",
181
+ "sent_title": "Check your email",
182
+ "sent_subtitle": "If an account exists for that email, a password reset link is on its way.",
183
+ "error": "Something went wrong. Please try again."
184
+ },
185
+ "reset_password": {
186
+ "title": "Choose a new password",
187
+ "subtitle": "Enter a new password for your admin account.",
188
+ "new_password_label": "New password",
189
+ "confirm_password_label": "Confirm new password",
190
+ "submit": "Reset password",
191
+ "submitting": "Resetting…",
192
+ "token_invalid": "This reset link is invalid or has expired. Request a new one.",
193
+ "error": "Something went wrong. Please try again.",
194
+ "missing_token_title": "Invalid reset link",
195
+ "missing_token_message": "This password reset link is missing its token.",
196
+ "request_new_link": "Request a new reset link"
197
+ },
198
+ "logout": "Sign out",
199
+ "back_to_login": "Back to sign in"
200
+ },
201
+ "fields": {
202
+ "name": {
203
+ "label": "Name"
204
+ },
205
+ "label": {
206
+ "label": "Label"
207
+ },
208
+ "description": {
209
+ "label": "Description"
210
+ },
211
+ "code": {
212
+ "label": "Code"
213
+ },
214
+ "email": {
215
+ "label": "Email"
216
+ },
217
+ "password": {
218
+ "label": "Password"
219
+ },
220
+ "first_name": {
221
+ "label": "First name"
222
+ },
223
+ "last_name": {
224
+ "label": "Last name"
225
+ },
226
+ "phone": {
227
+ "label": "Phone"
228
+ },
229
+ "company": {
230
+ "label": "Company"
231
+ },
232
+ "address1": {
233
+ "label": "Address line 1"
234
+ },
235
+ "address2": {
236
+ "label": "Address line 2"
237
+ },
238
+ "city": {
239
+ "label": "City"
240
+ },
241
+ "zipcode": {
242
+ "label": "Postal code"
243
+ },
244
+ "country_iso": {
245
+ "label": "Country"
246
+ },
247
+ "state_abbr": {
248
+ "label": "State / Province"
249
+ },
250
+ "state_name": {
251
+ "label": "State / Province"
252
+ },
253
+ "starts_at": {
254
+ "label": "Starts"
255
+ },
256
+ "ends_at": {
257
+ "label": "Ends"
258
+ },
259
+ "expires_at": {
260
+ "label": "Expires"
261
+ },
262
+ "active": {
263
+ "label": "Active"
264
+ },
265
+ "kind": {
266
+ "label": "Kind"
267
+ },
268
+ "amount": {
269
+ "label": "Amount"
270
+ },
271
+ "currency": {
272
+ "label": "Currency"
273
+ },
274
+ "quantity": {
275
+ "label": "Quantity"
276
+ },
277
+ "slug": {
278
+ "label": "Slug"
279
+ },
280
+ "meta_title": {
281
+ "label": "Meta title"
282
+ },
283
+ "meta_description": {
284
+ "label": "Meta description"
285
+ },
286
+ "status": {
287
+ "label": "Status"
288
+ },
289
+ "created_at": {
290
+ "label": "Created at"
291
+ },
292
+ "updated_at": {
293
+ "label": "Updated at"
294
+ },
295
+ "completed_at": {
296
+ "label": "Completed at"
297
+ },
298
+ "total": {
299
+ "label": "Total"
300
+ },
301
+ "subtotal": {
302
+ "label": "Subtotal"
303
+ },
304
+ "tax": {
305
+ "label": "Tax"
306
+ },
307
+ "shipping": {
308
+ "label": "Shipping"
309
+ },
310
+ "discount": {
311
+ "label": "Discount"
312
+ },
313
+ "login": {
314
+ "email": {
315
+ "placeholder": "admin@example.com"
316
+ }
317
+ },
318
+ "address": {
319
+ "label": {
320
+ "label": "Label",
321
+ "placeholder": "e.g. Home, Office"
322
+ },
323
+ "address1": {
324
+ "label": "Address"
325
+ },
326
+ "address2": {
327
+ "label": "Apartment, suite, etc."
328
+ },
329
+ "postal_code": {
330
+ "label": "Postal code"
331
+ },
332
+ "is_default_billing": {
333
+ "label": "Default billing address"
334
+ },
335
+ "is_default_shipping": {
336
+ "label": "Default shipping address"
337
+ }
338
+ },
339
+ "media": {
340
+ "alt": {
341
+ "label": "Alt text",
342
+ "placeholder": "Describe the image for accessibility and SEO"
343
+ }
344
+ },
345
+ "storefront_visible": {
346
+ "label": "Visible on storefront",
347
+ "help": "When off, only admin staff see this option (back-office orders, manual entry)."
348
+ },
349
+ "pretty_name": {
350
+ "label": "Full name"
351
+ },
352
+ "permalink": {
353
+ "label": "Permalink"
354
+ }
355
+ },
356
+ "components": {
357
+ "currency_select": {
358
+ "placeholder": "Select a currency",
359
+ "empty": "No currencies found"
360
+ },
361
+ "channel_select": {
362
+ "placeholder": "Select a sales channel"
363
+ },
364
+ "file_upload": {
365
+ "attached": "Attached file",
366
+ "browse": "Browse files",
367
+ "drop_image_label": "Drop an image here, or click to browse",
368
+ "drop_label": "Drop a file here, or click to browse",
369
+ "invalid_type": "This file type is not accepted (expected: {{accept}})",
370
+ "upload_failed": "Upload failed: {{message}}",
371
+ "uploading": "Uploading…"
372
+ },
373
+ "locale_select": {
374
+ "placeholder": "Select a locale",
375
+ "multi_placeholder": "Add locales…",
376
+ "empty": "No locales found"
377
+ },
378
+ "country_combobox": {
379
+ "search_placeholder": "Search countries…",
380
+ "empty": "No countries found"
381
+ },
382
+ "state_combobox": {
383
+ "search_placeholder": "Search states…",
384
+ "empty": "No states found"
385
+ },
386
+ "command_palette": {
387
+ "placeholder": "Search products, orders, customers…",
388
+ "title": "Search and commands",
389
+ "description": "Search across products, orders, and customers, or run a command.",
390
+ "no_results": "No results for \"{{query}}\".",
391
+ "empty_hint": "Type to search, or pick a command below.",
392
+ "goto": "Go to",
393
+ "goto_label": "Go to {{label}}"
394
+ },
395
+ "bulk_action_bar": {
396
+ "selected": "{{count}} selected",
397
+ "default_success": "Updated {n} records",
398
+ "default_error": "Bulk operation failed"
399
+ },
400
+ "preferences_form": {
401
+ "comma_separated_hint": "Separate values with commas.",
402
+ "tiers": {
403
+ "label": "Tiers",
404
+ "header_threshold": "Order total ≥",
405
+ "header_value": "Discount",
406
+ "empty": "No tiers yet. The base rate applies until you add a tier.",
407
+ "add_tier": "Add tier",
408
+ "remove_tier": "Remove tier"
409
+ }
410
+ },
411
+ "confirm_dialog": {
412
+ "title": "Are you sure?"
413
+ },
414
+ "table_toolbar": {
415
+ "search_placeholder": "Search…",
416
+ "filter_select_placeholder": "Select…",
417
+ "filter_date_placeholder": "Pick a date",
418
+ "filter_text_placeholder": "Filter…",
419
+ "filters_button": "Filters",
420
+ "sort_by": "Sort by",
421
+ "sort_tooltip": "Sort",
422
+ "order": "Order",
423
+ "ascending": "Ascending",
424
+ "descending": "Descending",
425
+ "columns_tooltip": "Columns",
426
+ "visible_columns": "Visible columns",
427
+ "reset_to_default": "Reset to default",
428
+ "clear_all": "Clear all",
429
+ "no_filters": "No filters. Click below to add one.",
430
+ "add_filter": "Add filter",
431
+ "operators": {
432
+ "contains": "contains",
433
+ "equals": "equals",
434
+ "does_not_equal": "does not equal",
435
+ "starts_with": "starts with",
436
+ "ends_with": "ends with",
437
+ "is_set": "is set",
438
+ "is_not_set": "is not set",
439
+ "is": "is",
440
+ "is_not": "is not",
441
+ "is_any_of": "is any of",
442
+ "is_none_of": "is none of",
443
+ "greater_than": "greater than",
444
+ "greater_than_or_equal": "greater than or equal",
445
+ "less_than": "less than",
446
+ "less_than_or_equal": "less than or equal",
447
+ "after": "after",
448
+ "before": "before",
449
+ "on_or_after": "on or after",
450
+ "on_or_before": "on or before"
451
+ }
452
+ },
453
+ "media": {
454
+ "remove_tooltip": "Remove image"
455
+ },
456
+ "custom_fields": {
457
+ "json_placeholder": "{ \"example\": \"value\" }"
458
+ },
459
+ "export_button": {
460
+ "title": "Export to CSV",
461
+ "description": "We'll prepare your CSV in the background and download it as soon as it's ready. If it takes a while you'll get an email link too.",
462
+ "filtered": {
463
+ "title": "Current filter",
464
+ "no_filter": "No filter active — same as exporting all records.",
465
+ "unknown_count": "Export the records matching your current filter.",
466
+ "count_one": "Export the {{formattedCount}} record matching your current filter.",
467
+ "count_other": "Export the {{formattedCount}} records matching your current filter.",
468
+ "count_few": "Export the {{formattedCount}} records matching your current filter.",
469
+ "count_many": "Export the {{formattedCount}} records matching your current filter."
470
+ },
471
+ "all": {
472
+ "title": "All records",
473
+ "description": "Ignore filters and export everything in this store."
474
+ },
475
+ "preparing": "Preparing export…",
476
+ "downloaded": "Export downloaded",
477
+ "email_fallback": "Still processing — we'll email you a link when it's ready.",
478
+ "failed": "Export failed: {{message}}"
479
+ },
480
+ "import_button": {
481
+ "title": "Import from CSV",
482
+ "description": "Upload a CSV file. You'll match its columns to fields in the next step.",
483
+ "drop_label": "Drop a CSV file here, or click to browse",
484
+ "delimiter_label": "Column separator",
485
+ "delimiters": {
486
+ "comma": "Comma (,)",
487
+ "semicolon": "Semicolon (;)",
488
+ "pipe": "Pipe (|)",
489
+ "tab": "Tab"
490
+ },
491
+ "download_template": "Download CSV template",
492
+ "template_failed": "Template download failed: {{message}}",
493
+ "submit": "Continue",
494
+ "failed": "Import failed: {{message}}"
495
+ },
496
+ "metadata_card": {
497
+ "title": "Metadata",
498
+ "empty_title": "No metadata",
499
+ "empty_description": "Apps and integrations populate this automatically."
500
+ },
501
+ "rich_text_editor": {
502
+ "placeholder": "Write something…",
503
+ "link_url_prompt": "URL",
504
+ "bold": "Bold",
505
+ "italic": "Italic",
506
+ "strikethrough": "Strikethrough",
507
+ "bullet_list": "Bullet list",
508
+ "ordered_list": "Ordered list",
509
+ "blockquote": "Blockquote",
510
+ "link": "Link",
511
+ "undo": "Undo",
512
+ "redo": "Redo"
513
+ },
514
+ "date_range_picker": {
515
+ "presets": {
516
+ "last_7_days": "Last 7 days",
517
+ "last_14_days": "Last 14 days",
518
+ "last_30_days": "Last 30 days",
519
+ "last_90_days": "Last 90 days",
520
+ "this_month": "This month",
521
+ "year_to_date": "Year to date"
522
+ }
523
+ },
524
+ "pagination": {
525
+ "range": "{{from}}–{{to}} of {{count}}",
526
+ "rows_per_page": "Rows per page",
527
+ "first_page": "Go to first page",
528
+ "previous_page": "Go to previous page",
529
+ "next_page": "Go to next page",
530
+ "last_page": "Go to last page"
531
+ },
532
+ "theme_toggle": {
533
+ "label": "Theme",
534
+ "light": "Light",
535
+ "dark": "Dark",
536
+ "system": "System"
537
+ },
538
+ "json_preview_drawer": {
539
+ "copied": "Copied",
540
+ "copy_all": "Copy all",
541
+ "open_raw": "Open raw response",
542
+ "raw": "Raw",
543
+ "failed_to_load": "Failed to load: {{message}}",
544
+ "collapse_depth": "Collapse depth",
545
+ "depth": "Depth {{level}}",
546
+ "title": "JSON"
547
+ },
548
+ "page_header": {
549
+ "view_as_json": "View as JSON",
550
+ "copy_id": "Copy ID",
551
+ "copy_number": "Copy number"
552
+ },
553
+ "secret_input": {
554
+ "replace": "Replace",
555
+ "stored_help": "Stored on the server. Click Replace to rotate.",
556
+ "new_value_placeholder": "New value"
557
+ },
558
+ "tag_combobox": {
559
+ "placeholder": "Type to add tags…",
560
+ "empty_hint": "Type and press Enter to create a tag",
561
+ "create_option": "Create \"{{tag}}\""
562
+ },
563
+ "address_form_dialog": {
564
+ "edit_title": "Edit Address",
565
+ "description": "Update the address details."
566
+ },
567
+ "error_state": {
568
+ "retry": "Try again"
569
+ },
570
+ "address_block": {
571
+ "not_provided": "Not provided"
572
+ }
573
+ },
574
+ "validation": {
575
+ "required": "{{field}} is required",
576
+ "positive_number": "{{field}} must be greater than 0",
577
+ "min_length": "{{field}} must be at least {{count}} characters",
578
+ "passwords_dont_match": "Passwords do not match",
579
+ "invalid_email_or_password": "Invalid email or password",
580
+ "invalid_email": "Enter a valid email",
581
+ "invalid_hex_color": "Invalid hex color",
582
+ "invalid_password": "Invalid password",
583
+ "password_required": "Password is required",
584
+ "first_name_required": "First name is required",
585
+ "last_name_required": "Last name is required"
586
+ },
587
+ "account": {
588
+ "edit_profile": "Edit Profile",
589
+ "language": {
590
+ "label": "Language",
591
+ "update_failed": "Could not save your language preference. Please try again."
592
+ },
593
+ "view_store": "View store",
594
+ "documentation": "Documentation",
595
+ "community": "Community",
596
+ "contact_support": "Contact Support",
597
+ "log_out": "Log out"
598
+ },
599
+ "custom_field_definitions": {
600
+ "messages": {
601
+ "created": "Custom field definition created",
602
+ "updated": "Custom field definition updated",
603
+ "deleted": "Custom field definition deleted"
604
+ },
605
+ "errors": {
606
+ "failed_to_create": "Failed to create custom field definition",
607
+ "failed_to_update": "Failed to update custom field definition",
608
+ "failed_to_delete": "Failed to delete custom field definition"
609
+ }
610
+ },
611
+ "resource_picker": {
612
+ "title": "Add products",
613
+ "search_placeholder": "Search…",
614
+ "empty": "No results found.",
615
+ "already_added": "Added",
616
+ "selected_count_one": "{{count}} selected",
617
+ "selected_count_other": "{{count}} selected",
618
+ "add_count_one": "Add {{count}}",
619
+ "add_count_other": "Add {{count}}"
620
+ },
621
+ "image_upload": {
622
+ "upload_cta": "Upload image",
623
+ "replace_cta": "Replace image",
624
+ "remove_cta": "Remove",
625
+ "uploading": "Uploading…",
626
+ "upload_failed": "Image upload failed"
627
+ }
628
+ }
629
+ }