@feedmepos/mf-menu 0.32.62 → 0.32.63-dev.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.
Files changed (98) hide show
  1. package/dist/{App-CE4fZP2_.js → App-DhfTGlgM.js} +467 -462
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-PpYjjdOP.js → ApplyProduct.vue_vue_type_script_setup_true_lang-C5-8qdJK.js} +3 -3
  3. package/dist/{ApplyProductDialog.vue_vue_type_script_setup_true_lang-C_JKiJRD.js → ApplyProductDialog.vue_vue_type_script_setup_true_lang-CXm-0H18.js} +8 -8
  4. package/dist/{Catalog-C2MyXkps.js → Catalog-WuZJfM6l.js} +78 -78
  5. package/dist/{Category-B7Uxbyug.js → Category-BeIo7XWY.js} +20 -20
  6. package/dist/{Category-BoV0MYQp.js → Category-D-cQQCPS.js} +19 -19
  7. package/dist/{CookingGuide-Bdyj8XMv.js → CookingGuide-B-yvD9ZA.js} +88 -88
  8. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-EDbgLHTU.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-2_yzXoa4.js} +1 -1
  9. package/dist/{Group-BuFbi0Z-.js → Group-13i5igrS.js} +5 -5
  10. package/dist/{Group-DYpxc5ui.js → Group-CY8lUzQG.js} +1 -1
  11. package/dist/{Group.vue_vue_type_script_setup_true_lang-B5Uw2Rzm.js → Group.vue_vue_type_script_setup_true_lang-DZhxy0tb.js} +95 -94
  12. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-COYg8e7h.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-CWqv-oUd.js} +13 -13
  13. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-YY25YW4B.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-DTs4Vpdi.js} +219 -220
  14. package/dist/{Ingredient-Ddw06I0B.js → Ingredient-vrUOW6gk.js} +49 -49
  15. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-CsWdL5Lz.js → InventoryBinding.vue_vue_type_script_setup_true_lang-xcVjRjqD.js} +2 -2
  16. package/dist/{LinkProductSideSheet-COAMZqOM.js → LinkProductSideSheet-DMbJG6wf.js} +8 -8
  17. package/dist/{MenuSetting--G1_lGoV.js → MenuSetting-Di2xwm00.js} +10 -10
  18. package/dist/{OrderPacing-DnvLJh5M.js → OrderPacing-CCe-IcGO.js} +28 -28
  19. package/dist/{PrintRoute-CP-3JGP3.js → PrintRoute-CcfObcHY.js} +27 -27
  20. package/dist/{Product-D-q15-Qw.js → Product-ChUVnMgG.js} +1 -1
  21. package/dist/{Product.vue_vue_type_script_setup_true_lang-BaOg60Q6.js → Product.vue_vue_type_script_setup_true_lang-C9Qp50hL.js} +153 -152
  22. package/dist/{ProductInternalTools-wYn0bzml.js → ProductInternalTools-D9HXhgo5.js} +80 -79
  23. package/dist/{Products-CxEsB-7l.js → Products-Bly2ktEC.js} +75 -74
  24. package/dist/{Publish-BCljLztW.js → Publish-C8ubb8Qf.js} +113 -113
  25. package/dist/{Recipe-DgfobgnQ.js → Recipe-BpMRLsyO.js} +32 -32
  26. package/dist/{RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-BgDVFKRI.js → RestaurantAttributesSelector.vue_vue_type_script_setup_true_lang-BD5OCDRn.js} +1 -1
  27. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-DCbrAMxd.js → RuleView.vue_vue_type_script_setup_true_lang-Ba3djmX1.js} +474 -473
  28. package/dist/{Scheduler-C-LJs7Gl.js → Scheduler-CiB4b2Fn.js} +9 -9
  29. package/dist/{ServingSequence-BoaDRfsc.js → ServingSequence-BlcyW-dv.js} +18 -18
  30. package/dist/{Setting-BfFqBD9u.js → Setting-DqkL6YYU.js} +31 -31
  31. package/dist/{Subcategory-BsnC9ZSS.js → Subcategory-B4Jg_wtT.js} +43 -43
  32. package/dist/{Takeaway-PilRifJP.js → Takeaway-5G3f7jWT.js} +1 -1
  33. package/dist/{Takeaway-dSEAc70g.js → Takeaway-5rFPYYNA.js} +16 -16
  34. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-CgioM0sV.js → Takeaway.vue_vue_type_script_setup_true_lang-CVsOhg_E.js} +23 -23
  35. package/dist/{TranslationFieldSection.vue_vue_type_script_setup_true_lang-CHf3g1ia.js → TranslationFieldSection.vue_vue_type_script_setup_true_lang-CPqxA6JD.js} +1 -1
  36. package/dist/{TranslationSideSheet.vue_vue_type_script_setup_true_lang-A43XxqyC.js → TranslationSideSheet.vue_vue_type_script_setup_true_lang-yrNuTD-3.js} +8 -9
  37. package/dist/TreeEditorOpenner.vue_vue_type_script_setup_true_lang-T71R68sq.js +5836 -0
  38. package/dist/{Unit-DW1dFJas.js → Unit-CAkdmQLg.js} +2 -2
  39. package/dist/{Variant-CzLzrt2N.js → Variant-BbLQqbAK.js} +13 -13
  40. package/dist/{_id_-qfASfKMD.js → _id_-Dzacr40I.js} +13 -13
  41. package/dist/{app-BB33yKM6.js → app-4yWs09Fr.js} +495 -495
  42. package/dist/{app-CJnEQz-U.js → app-Deov1985.js} +3 -3
  43. package/dist/app.js +1 -1
  44. package/dist/apps/mf-menu/src/api/media.d.ts +161 -0
  45. package/dist/apps/mf-menu/src/app.d.ts +340 -0
  46. package/dist/apps/mf-menu/src/components/feature/CategoryManager/CategoriesSelector.vue.d.ts +1 -1
  47. package/dist/apps/mf-menu/src/components/feature/TreeEditor/composable/productImages.d.ts +150 -0
  48. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/CustomDimensionDialog.vue.d.ts +17 -0
  49. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/ImageUploadDialog.vue.d.ts +16 -1
  50. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/ManageImageDrawer.vue.d.ts +42 -0
  51. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/ProductImageField.vue.d.ts +75 -0
  52. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/RegenerateImageDialog.vue.d.ts +17 -0
  53. package/dist/apps/mf-menu/src/components/feature/TreeEditor/item/ProductDetail.vue.d.ts +3 -6
  54. package/dist/apps/mf-menu/src/components/feature/TreeEditor/store/menuV2.d.ts +1 -1
  55. package/dist/apps/mf-menu/src/composable/remyImageTarget.d.ts +5 -0
  56. package/dist/apps/mf-menu/src/helper/menu.d.ts +14 -1
  57. package/dist/apps/mf-menu/src/stores/menu.d.ts +1 -0
  58. package/dist/apps/mf-menu/src/types/rule.d.ts +2 -0
  59. package/dist/apps/mf-menu/src/views/Catalog/Edit/AddProductPopup/Form.vue.d.ts +3 -2
  60. package/dist/apps/mf-menu/src/views/Catalog/Edit/AddProductPopup/ProductDetail.vue.d.ts +8 -8
  61. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  62. package/dist/assets/{linked-status-VaVE9Pyh.js → linked-status-B2WLhKkV.js} +3 -3
  63. package/dist/assets/{menu-export-DD9Zt6XH.js → menu-export-Dcw5a_dN.js} +3 -3
  64. package/dist/assets/{override-menu-DZCgrhuF.js → override-menu-cBe2aMY6.js} +3 -3
  65. package/dist/assets/{validate-menu-BFsQlikL.js → validate-menu-BM-5GK85.js} +2 -2
  66. package/dist/{catalog-Cvn1ZMGp.js → catalog-DKygS2Cs.js} +6 -6
  67. package/dist/{catalogSetting-D2bOCGW7.js → catalogSetting-Bn2TplvM.js} +1 -1
  68. package/dist/currency-DXgNHtK8.js +7 -0
  69. package/dist/dayjs.min-DpX65tgj.js +7 -0
  70. package/dist/discardConfirm-DZwzKO-Q.js +3704 -0
  71. package/dist/{index-B2fxLO4K.js → index-B48KLyqg.js} +61 -61
  72. package/dist/{index-CizrxT_e.js → index-BEocaqRK.js} +30 -30
  73. package/dist/index-K-MBqJJo.js +222 -0
  74. package/dist/{index.vue_vue_type_script_setup_true_lang-gaRM4vfS.js → index.vue_vue_type_script_setup_true_lang-Nl505vPi.js} +44918 -51563
  75. package/dist/item-Da3ArD-G.js +13213 -0
  76. package/dist/{jszip.min-BXLegUsz.js → jszip.min-Cc2eR4Cq.js} +119 -119
  77. package/dist/linkProducts-GNuUxFEE.js +331 -0
  78. package/dist/{memberPricing-CizI1rUM.js → memberPricing-T-jr7tn1.js} +1 -1
  79. package/dist/{menu-BCed1YCE.js → menu-DSDRAil-.js} +1 -1
  80. package/dist/{menuV2-Bo9AHrdr.js → menuV2-fTlJdjxi.js} +162 -160
  81. package/dist/mf-menu.css +1 -1
  82. package/dist/{order_pacing-BkfQeNeC.js → order_pacing-Dgo1fySS.js} +17 -17
  83. package/dist/packages/shared/src/helpers/agentCode.d.ts +9 -0
  84. package/dist/{priceTier-rjuK-b6U.js → priceTier-aT_gIfrN.js} +3 -3
  85. package/dist/{rules-DHX_hK6G.js → rules-Cx2hkV20.js} +8 -8
  86. package/dist/{scheduler-BsfPbtM2.js → scheduler-Bd-q7yF8.js} +62 -62
  87. package/dist/{toExcel-DJHljg_L.js → toExcel-qfjR83qT.js} +2 -2
  88. package/dist/{unit-BxTWR1dZ.js → unit-n1T9grbM.js} +64 -64
  89. package/package.json +3 -3
  90. package/dist/Thumbnail.vue_vue_type_script_setup_true_lang-DGqao47l.js +0 -399
  91. package/dist/TreeEditorOpenner.vue_vue_type_script_setup_true_lang-DY1umres.js +0 -6058
  92. package/dist/apps/mf-menu/src/components/feature/TreeEditor/composable/thumbnailUpload.d.ts +0 -6
  93. package/dist/apps/mf-menu/src/components/feature/TreeEditor/image/ImageUploadForm.vue.d.ts +0 -38
  94. package/dist/currency-DQDsuXB5.js +0 -7
  95. package/dist/dayjs.min-CzUkrXIR.js +0 -7
  96. package/dist/discardConfirm-BHni0LNu.js +0 -28
  97. package/dist/index-CisutoS9.js +0 -156
  98. package/dist/item-DOHVD6CN.js +0 -9098
@@ -1,5 +1,5 @@
1
1
  import { defineStore as r } from "pinia";
2
- import { ae as a, af as s, ag as l } from "./index.vue_vue_type_script_setup_true_lang-gaRM4vfS.js";
2
+ import { E as a, G as s, H as l } from "./index.vue_vue_type_script_setup_true_lang-Nl505vPi.js";
3
3
  const u = {
4
4
  async read() {
5
5
  return a(await s().get("/public-setting"));
@@ -31,7 +31,7 @@ function c() {
31
31
  }
32
32
  };
33
33
  }
34
- const p = r("menu-app", {
34
+ const d = r("menu-app", {
35
35
  state: () => c(),
36
36
  actions: {
37
37
  addLoadingQueues(e) {
@@ -64,5 +64,5 @@ const p = r("menu-app", {
64
64
  }
65
65
  });
66
66
  export {
67
- p as u
67
+ d as u
68
68
  };
package/dist/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { F as e, i as r, j as o, o as t, r as i, u as p } from "./app-BB33yKM6.js";
1
+ import { F as e, i as r, j as o, o as t, r as i, u as p } from "./app-4yWs09Fr.js";
2
2
  export {
3
3
  e as FmApp,
4
4
  r as i18nMessages,
@@ -0,0 +1,161 @@
1
+ /**
2
+ * media-service client.
3
+ *
4
+ * Docs: https://github.com/feedmepos/media-service/blob/main/docs/integration.md
5
+ *
6
+ * A product image lives at `{host}/media-image/{businessId}/{refType}/{refId}/{imageId}`,
7
+ * and every aspect ratio of it is that same URL plus `?aspect_ratio={ratio}`. We never
8
+ * store a variant URL: `FdoMenuV4ItemImage.url` holds the original and consumers derive
9
+ * the rest, which is why `imageSet` values stay null (see `buildVariantUrl`).
10
+ */
11
+ export declare const MEDIA_REF_TYPE = "product";
12
+ /** media-service does not accept colons in product reference ids. */
13
+ export declare function normalizeMediaRefId(refId: string): string;
14
+ export type AspectRatio = string;
15
+ /** Ratios every product image is expected to carry; they cannot be removed in the UI. */
16
+ export declare const REQUIRED_ASPECT_RATIOS: AspectRatio[];
17
+ export type VariantStatus = "pending" | "active" | "failed";
18
+ export interface MediaVariant {
19
+ aspectRatio: AspectRatio;
20
+ url: string;
21
+ status: VariantStatus;
22
+ taskId?: string | null;
23
+ error?: string | null;
24
+ width?: number;
25
+ height?: number;
26
+ }
27
+ export interface MediaOriginal {
28
+ url: string;
29
+ width: number;
30
+ height: number;
31
+ }
32
+ export interface MediaImage {
33
+ prefix: string;
34
+ refType: string;
35
+ refId: string;
36
+ imageId: string;
37
+ original: MediaOriginal;
38
+ variants: MediaVariant[];
39
+ }
40
+ export interface UploadIntentRes {
41
+ prefix: string;
42
+ objectKey: string;
43
+ uploadUrl: string;
44
+ method: string;
45
+ expiresAt: string;
46
+ }
47
+ export interface ConfirmRes {
48
+ prefix: string;
49
+ original: MediaOriginal;
50
+ variants: MediaVariant[];
51
+ }
52
+ export interface CreateRes {
53
+ prefix: string;
54
+ original: MediaOriginal;
55
+ variants: MediaVariant[];
56
+ removed?: MediaVariant[];
57
+ }
58
+ export interface GenerationTask {
59
+ taskId: string;
60
+ status: VariantStatus;
61
+ error?: string | null;
62
+ }
63
+ interface DeleteEntry {
64
+ refType: string;
65
+ refId: string;
66
+ imageId: string | null;
67
+ /** `null` deletes the whole set including the original; `[]` is rejected by the API. */
68
+ aspectRatios: AspectRatio[] | null;
69
+ }
70
+ export declare const mediaService: {
71
+ uploadIntent(req: {
72
+ refId: string;
73
+ imageId: string;
74
+ contentType: string;
75
+ fileSize: number;
76
+ }): Promise<UploadIntentRes>;
77
+ /**
78
+ * Uploads the bytes straight to object storage. Deliberately a bare axios call:
79
+ * the signed URL must not carry our Authorization header, and `Content-Type` has
80
+ * to match `upload-intent` exactly because the signature is bound to it.
81
+ */
82
+ putBytes(uploadUrl: string, file: File): Promise<void>;
83
+ confirm(req: {
84
+ refId: string;
85
+ imageId: string;
86
+ width: number;
87
+ height: number;
88
+ fileName: string;
89
+ aspectRatios: AspectRatio[];
90
+ }): Promise<ConfirmRes>;
91
+ /**
92
+ * `.create` in this client is used for exactly one thing: adding ratios to an
93
+ * existing image (`mode: "append"`, no bytes). New uploads deliberately go through
94
+ * `upload-intent` + `confirm` so bytes never pass through the service pod, so
95
+ * `base64`/`sourceUrl` are always omitted here and the stored original's metadata
96
+ * is reused.
97
+ *
98
+ * Failure shape differs from `confirm`: a single ratio that fails to queue aborts
99
+ * the whole call (e.g. `409 TASK_IN_PROGRESS` for a ratio already generating).
100
+ */
101
+ create(req: {
102
+ refId: string;
103
+ imageId: string;
104
+ fileName?: string;
105
+ aspectRatios: AspectRatio[];
106
+ mode: "append" | "replace";
107
+ }): Promise<CreateRes>;
108
+ /**
109
+ * Rewrites exactly one aspect ratio. Every other ratio and the original are left
110
+ * alone — `original` itself is rejected with 400, it is immutable for its lifetime,
111
+ * which is what keeps a stored thumbnail URL stable.
112
+ *
113
+ * Which of the two modes runs is decided by the field that is filled:
114
+ * - `base64` overwrites the variant with the merchant's own bytes, synchronously
115
+ * - `instruction` queues an AI re-edit, so the ratio drops back to `pending`
116
+ *
117
+ * Sending neither is how the panel asks for a plain "generate this again". The
118
+ * integration guide only spells out the two named modes, so a 400 here means the
119
+ * service declined an instruction-less regenerate, not that the caller is malformed.
120
+ *
121
+ * Unlike an upload these bytes do pass through the service pod — there is no
122
+ * variant-level `upload-intent` — so callers must send a cropped, re-encoded image
123
+ * rather than whatever the merchant picked.
124
+ *
125
+ * The response is dropped on purpose: what a variant's state actually is only ever
126
+ * comes from `listImages`, and the panel re-probes it after every write.
127
+ */
128
+ update(req: {
129
+ refId: string;
130
+ imageId: string;
131
+ aspectRatio: AspectRatio;
132
+ base64?: string;
133
+ instruction?: string;
134
+ }): Promise<void>;
135
+ listImages(refIds: string[]): Promise<MediaImage[]>;
136
+ getGenerationTask(taskId: string): Promise<GenerationTask>;
137
+ delete(entries: DeleteEntry[]): Promise<void>;
138
+ };
139
+ /**
140
+ * Reduces a pixel dimension to its canonical `{w}x{h}` ratio key.
141
+ *
142
+ * The API reduces by GCD too, so `1920x1080` is accepted and stored as `16x9`.
143
+ * Returns null only when either dimension is not a positive integer.
144
+ */
145
+ export declare function reduceAspectRatio(width: number, height: number): AspectRatio | null;
146
+ /**
147
+ * `16x9` -> `1.777…`, for anything that needs the ratio as a number (crop stencils).
148
+ * Null when the key is not a pair of positive numbers.
149
+ */
150
+ export declare function parseAspectRatio(ratio: string): number | null;
151
+ /** `16x9` -> `16:9`. The colon is display-only; media-service rejects it as a key. */
152
+ export declare function formatAspectRatioLabel(ratio: string): string;
153
+ /**
154
+ * Derives the URL for one ratio of an image.
155
+ *
156
+ * Beware the silent fallback: requesting a ratio that is missing, still generating,
157
+ * or failed returns the ORIGINAL image with a 200. Never treat a rendered image as
158
+ * proof the ratio exists — check `status === "active"` via `listImages` instead.
159
+ */
160
+ export declare function buildVariantUrl(originalUrl: string, ratio: string): string;
161
+ export {};
@@ -1963,6 +1963,74 @@ export declare const i18nMessages: {
1963
1963
  no_items: string;
1964
1964
  };
1965
1965
  };
1966
+ product_image: {
1967
+ hint: string;
1968
+ drop_hint: string;
1969
+ add_file: string;
1970
+ cover_badge: string;
1971
+ staged_hint: string;
1972
+ legacy_hint: string;
1973
+ uploading: string;
1974
+ uploaded: string;
1975
+ manage: {
1976
+ title: string;
1977
+ aspect_ratio: string;
1978
+ aspect_ratio_hint: string;
1979
+ generate_all: string;
1980
+ add_format: string;
1981
+ original: string;
1982
+ custom_sizing: string;
1983
+ custom_image_hint: string;
1984
+ required: string;
1985
+ cover_photo: string;
1986
+ set_as_cover: string;
1987
+ cover_hint: string;
1988
+ };
1989
+ purpose: {
1990
+ menu_grid: string;
1991
+ kiosk_grid: string;
1992
+ };
1993
+ status: {
1994
+ pending: string;
1995
+ failed: string;
1996
+ };
1997
+ custom: {
1998
+ title: string;
1999
+ hint: string;
2000
+ width: string;
2001
+ height: string;
2002
+ duplicated: string;
2003
+ invalid: string;
2004
+ };
2005
+ error: {
2006
+ unsupported_type: string;
2007
+ too_large: string;
2008
+ no_item: string;
2009
+ unreadable: string;
2010
+ };
2011
+ delete: {
2012
+ title: string;
2013
+ message: string;
2014
+ };
2015
+ replace: {
2016
+ title: string;
2017
+ action: string;
2018
+ unavailable: string;
2019
+ hint: string;
2020
+ accepts: string;
2021
+ no_file: string;
2022
+ done: string;
2023
+ };
2024
+ regenerate: {
2025
+ title: string;
2026
+ action: string;
2027
+ hint: string;
2028
+ instruction: string;
2029
+ instruction_required: string;
2030
+ instruction_placeholder: string;
2031
+ queued: string;
2032
+ };
2033
+ };
1966
2034
  };
1967
2035
  };
1968
2036
  "zh-CN": {
@@ -3920,6 +3988,74 @@ export declare const i18nMessages: {
3920
3988
  no_items: string;
3921
3989
  };
3922
3990
  };
3991
+ product_image: {
3992
+ hint: string;
3993
+ drop_hint: string;
3994
+ add_file: string;
3995
+ cover_badge: string;
3996
+ staged_hint: string;
3997
+ legacy_hint: string;
3998
+ uploading: string;
3999
+ uploaded: string;
4000
+ manage: {
4001
+ title: string;
4002
+ aspect_ratio: string;
4003
+ aspect_ratio_hint: string;
4004
+ generate_all: string;
4005
+ add_format: string;
4006
+ original: string;
4007
+ custom_sizing: string;
4008
+ custom_image_hint: string;
4009
+ required: string;
4010
+ cover_photo: string;
4011
+ set_as_cover: string;
4012
+ cover_hint: string;
4013
+ };
4014
+ purpose: {
4015
+ menu_grid: string;
4016
+ kiosk_grid: string;
4017
+ };
4018
+ status: {
4019
+ pending: string;
4020
+ failed: string;
4021
+ };
4022
+ custom: {
4023
+ title: string;
4024
+ hint: string;
4025
+ width: string;
4026
+ height: string;
4027
+ duplicated: string;
4028
+ invalid: string;
4029
+ };
4030
+ error: {
4031
+ unsupported_type: string;
4032
+ too_large: string;
4033
+ no_item: string;
4034
+ unreadable: string;
4035
+ };
4036
+ delete: {
4037
+ title: string;
4038
+ message: string;
4039
+ };
4040
+ replace: {
4041
+ title: string;
4042
+ action: string;
4043
+ unavailable: string;
4044
+ hint: string;
4045
+ accepts: string;
4046
+ no_file: string;
4047
+ done: string;
4048
+ };
4049
+ regenerate: {
4050
+ title: string;
4051
+ action: string;
4052
+ hint: string;
4053
+ instruction: string;
4054
+ instruction_required: string;
4055
+ instruction_placeholder: string;
4056
+ queued: string;
4057
+ };
4058
+ };
3923
4059
  };
3924
4060
  };
3925
4061
  "th-TH": {
@@ -5878,6 +6014,74 @@ export declare const i18nMessages: {
5878
6014
  no_items: string;
5879
6015
  };
5880
6016
  };
6017
+ product_image: {
6018
+ hint: string;
6019
+ drop_hint: string;
6020
+ add_file: string;
6021
+ cover_badge: string;
6022
+ staged_hint: string;
6023
+ legacy_hint: string;
6024
+ uploading: string;
6025
+ uploaded: string;
6026
+ manage: {
6027
+ title: string;
6028
+ aspect_ratio: string;
6029
+ aspect_ratio_hint: string;
6030
+ generate_all: string;
6031
+ add_format: string;
6032
+ original: string;
6033
+ custom_sizing: string;
6034
+ custom_image_hint: string;
6035
+ required: string;
6036
+ cover_photo: string;
6037
+ set_as_cover: string;
6038
+ cover_hint: string;
6039
+ };
6040
+ purpose: {
6041
+ menu_grid: string;
6042
+ kiosk_grid: string;
6043
+ };
6044
+ status: {
6045
+ pending: string;
6046
+ failed: string;
6047
+ };
6048
+ custom: {
6049
+ title: string;
6050
+ hint: string;
6051
+ width: string;
6052
+ height: string;
6053
+ duplicated: string;
6054
+ invalid: string;
6055
+ };
6056
+ error: {
6057
+ unsupported_type: string;
6058
+ too_large: string;
6059
+ no_item: string;
6060
+ unreadable: string;
6061
+ };
6062
+ delete: {
6063
+ title: string;
6064
+ message: string;
6065
+ };
6066
+ replace: {
6067
+ title: string;
6068
+ action: string;
6069
+ unavailable: string;
6070
+ hint: string;
6071
+ accepts: string;
6072
+ no_file: string;
6073
+ done: string;
6074
+ };
6075
+ regenerate: {
6076
+ title: string;
6077
+ action: string;
6078
+ hint: string;
6079
+ instruction: string;
6080
+ instruction_required: string;
6081
+ instruction_placeholder: string;
6082
+ queued: string;
6083
+ };
6084
+ };
5881
6085
  };
5882
6086
  };
5883
6087
  "zh-Hant": {
@@ -7835,6 +8039,74 @@ export declare const i18nMessages: {
7835
8039
  no_items: string;
7836
8040
  };
7837
8041
  };
8042
+ product_image: {
8043
+ hint: string;
8044
+ drop_hint: string;
8045
+ add_file: string;
8046
+ cover_badge: string;
8047
+ staged_hint: string;
8048
+ legacy_hint: string;
8049
+ uploading: string;
8050
+ uploaded: string;
8051
+ manage: {
8052
+ title: string;
8053
+ aspect_ratio: string;
8054
+ aspect_ratio_hint: string;
8055
+ generate_all: string;
8056
+ add_format: string;
8057
+ original: string;
8058
+ custom_sizing: string;
8059
+ custom_image_hint: string;
8060
+ required: string;
8061
+ cover_photo: string;
8062
+ set_as_cover: string;
8063
+ cover_hint: string;
8064
+ };
8065
+ purpose: {
8066
+ menu_grid: string;
8067
+ kiosk_grid: string;
8068
+ };
8069
+ status: {
8070
+ pending: string;
8071
+ failed: string;
8072
+ };
8073
+ custom: {
8074
+ title: string;
8075
+ hint: string;
8076
+ width: string;
8077
+ height: string;
8078
+ duplicated: string;
8079
+ invalid: string;
8080
+ };
8081
+ error: {
8082
+ unsupported_type: string;
8083
+ too_large: string;
8084
+ no_item: string;
8085
+ unreadable: string;
8086
+ };
8087
+ delete: {
8088
+ title: string;
8089
+ message: string;
8090
+ };
8091
+ replace: {
8092
+ title: string;
8093
+ action: string;
8094
+ unavailable: string;
8095
+ hint: string;
8096
+ accepts: string;
8097
+ no_file: string;
8098
+ done: string;
8099
+ };
8100
+ regenerate: {
8101
+ title: string;
8102
+ action: string;
8103
+ hint: string;
8104
+ instruction: string;
8105
+ instruction_required: string;
8106
+ instruction_placeholder: string;
8107
+ queued: string;
8108
+ };
8109
+ };
7838
8110
  };
7839
8111
  };
7840
8112
  "ja-JP": {
@@ -9781,6 +10053,74 @@ export declare const i18nMessages: {
9781
10053
  no_items: string;
9782
10054
  };
9783
10055
  };
10056
+ product_image: {
10057
+ hint: string;
10058
+ drop_hint: string;
10059
+ add_file: string;
10060
+ cover_badge: string;
10061
+ staged_hint: string;
10062
+ legacy_hint: string;
10063
+ uploading: string;
10064
+ uploaded: string;
10065
+ manage: {
10066
+ title: string;
10067
+ aspect_ratio: string;
10068
+ aspect_ratio_hint: string;
10069
+ generate_all: string;
10070
+ add_format: string;
10071
+ original: string;
10072
+ custom_sizing: string;
10073
+ custom_image_hint: string;
10074
+ required: string;
10075
+ cover_photo: string;
10076
+ set_as_cover: string;
10077
+ cover_hint: string;
10078
+ };
10079
+ purpose: {
10080
+ menu_grid: string;
10081
+ kiosk_grid: string;
10082
+ };
10083
+ status: {
10084
+ pending: string;
10085
+ failed: string;
10086
+ };
10087
+ custom: {
10088
+ title: string;
10089
+ hint: string;
10090
+ width: string;
10091
+ height: string;
10092
+ duplicated: string;
10093
+ invalid: string;
10094
+ };
10095
+ error: {
10096
+ unsupported_type: string;
10097
+ too_large: string;
10098
+ no_item: string;
10099
+ unreadable: string;
10100
+ };
10101
+ delete: {
10102
+ title: string;
10103
+ message: string;
10104
+ };
10105
+ replace: {
10106
+ title: string;
10107
+ action: string;
10108
+ unavailable: string;
10109
+ hint: string;
10110
+ accepts: string;
10111
+ no_file: string;
10112
+ done: string;
10113
+ };
10114
+ regenerate: {
10115
+ title: string;
10116
+ action: string;
10117
+ hint: string;
10118
+ instruction: string;
10119
+ instruction_required: string;
10120
+ instruction_placeholder: string;
10121
+ queued: string;
10122
+ };
10123
+ };
9784
10124
  };
9785
10125
  };
9786
10126
  };
@@ -51,9 +51,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<im
51
51
  placeholder: string;
52
52
  helperText: string;
53
53
  helperState: "error" | "success" | "none";
54
+ multiple: boolean;
54
55
  shouldShowChips: boolean;
55
56
  shouldShowSelectedItemsWithinPlaceholder: boolean;
56
- multiple: boolean;
57
57
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
58
58
  "append-menu"?(_: {}): any;
59
59
  }>;