@feedmepos/mf-order-setting 0.0.92 → 0.0.93
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/DisplaySystemView-BMRCs7o8.js +8891 -0
- package/dist/{KioskDevicesView-d2WLB0-w.js → KioskDevicesView-BCZOqou3.js} +1 -1
- package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-rs-hNWUW.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-4wFO9co5.js} +3 -3
- package/dist/{KioskSettingView-DFE3_u5c.js → KioskSettingView-DIvpRwFV.js} +3 -3
- package/dist/{KioskView-C3Pi3lWW.js → KioskView-w4txC9m2.js} +5 -5
- package/dist/{OrderSettingsView-Dxg9RjSd.js → OrderSettingsView-BPuBA2QC.js} +23285 -24117
- package/dist/{app-BFlQtcsd.js → app-xZAaURng.js} +2635 -1965
- package/dist/app.js +1 -1
- package/dist/featureFlag-Cbj0uMaM.js +846 -0
- package/dist/frontend/mf-order/src/api/brandkit/index.d.ts +3 -0
- package/dist/frontend/mf-order/src/app.d.ts +668 -0
- package/dist/frontend/mf-order/src/composables/featureFlag.d.ts +7 -0
- package/dist/frontend/mf-order/src/composables/useBusinessFeatureFlag.d.ts +4 -0
- package/dist/frontend/mf-order/src/composables/useLegacyOdsAccess.d.ts +4 -0
- package/dist/frontend/mf-order/src/composables/useMiniProgramPermission.d.ts +5 -0
- package/dist/frontend/mf-order/src/main.d.ts +668 -0
- package/dist/frontend/mf-order/src/modules/display-system/legacy-ods/interface.d.ts +80 -0
- package/dist/frontend/mf-order/src/views/display-system/legacy-ods/ColorOverrideDialog.vue.d.ts +26 -0
- package/dist/frontend/mf-order/src/views/display-system/legacy-ods/ColorSelection.vue.d.ts +15 -0
- package/dist/frontend/mf-order/src/views/display-system/legacy-ods/LegacyOdsEditorDialog.vue.d.ts +24 -0
- package/dist/frontend/mf-order/src/views/display-system/legacy-ods/LegacyOdsTemplateList.vue.d.ts +4 -0
- package/dist/frontend/mf-order/src/views/display-system/view-selection.d.ts +18 -0
- package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{index-ByiTrmdq.js → index-BAFwfvqv.js} +2 -2
- package/dist/{index-CaO7aaaT.js → index-BxQKdXyN.js} +1 -1
- package/dist/{index-s2kWGMtz.js → index-Cipbdi6i.js} +1 -1
- package/dist/{order.dto-C829lA69.js → order.dto-yLICIGDQ.js} +1 -1
- package/dist/style.css +1 -1
- package/env.d.ts +2 -0
- package/package.json +2 -1
- package/src/api/brandkit/index.ts +24 -0
- package/src/composables/featureFlag.ts +22 -0
- package/src/composables/useBusinessFeatureFlag.ts +44 -0
- package/src/composables/useLegacyOdsAccess.ts +35 -0
- package/src/composables/useMiniProgramPermission.ts +19 -0
- package/src/composables/useQrOrderingEnabled.ts +1 -21
- package/src/locales/en-US.json +167 -0
- package/src/locales/ja-JP.json +167 -0
- package/src/locales/th-TH.json +167 -0
- package/src/locales/zh-CN.json +167 -0
- package/src/modules/display-system/legacy-ods/interface.ts +108 -0
- package/src/router/routes.ts +1 -1
- package/src/views/display-system/DisplaySystemView.vue +82 -11
- package/src/views/display-system/legacy-ods/ColorOverrideDialog.vue +223 -0
- package/src/views/display-system/legacy-ods/ColorSelection.vue +67 -0
- package/src/views/display-system/legacy-ods/LegacyOdsEditorDialog.spec.ts +185 -0
- package/src/views/display-system/legacy-ods/LegacyOdsEditorDialog.vue +1677 -0
- package/src/views/display-system/legacy-ods/LegacyOdsTemplateList.spec.ts +124 -0
- package/src/views/display-system/legacy-ods/LegacyOdsTemplateList.vue +297 -0
- package/src/views/display-system/legacy-ods/brandkit.spec.ts +67 -0
- package/src/views/display-system/view-selection.spec.ts +93 -0
- package/src/views/display-system/view-selection.ts +54 -0
- package/dist/DisplaySystemView-DZS7EVfk.js +0 -6564
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineComponent as W, ref as x, resolveComponent as R, openBlock as g, createElementBlock as D, createElementVNode as h, toDisplayString as C, createVNode as T, unref as F, createBlock as z, computed as U, watch as oe, onMounted as re, withCtx as N, createTextVNode as se, createCommentVNode as E, Fragment as ie, renderList as ue, renderSlot as ae } from "vue";
|
|
2
|
-
import { e as v } from "./app-
|
|
2
|
+
import { e as v } from "./app-xZAaURng.js";
|
|
3
3
|
import { useDialog as le } from "@feedmepos/ui-library";
|
|
4
4
|
import { useI18n as Y, useCoreStore as ne } from "@feedmepos/mf-common";
|
|
5
5
|
import { defineStore as de } from "pinia";
|
|
6
|
-
import { r as O, g as a, j as V, b as Q, i as q } from "./order.dto-
|
|
6
|
+
import { r as O, g as a, j as V, b as Q, i as q } from "./order.dto-yLICIGDQ.js";
|
|
7
7
|
import { u as ce } from "./snackbar-DZQ0_reQ.js";
|
|
8
8
|
const pe = /* @__PURE__ */ W({
|
|
9
9
|
__name: "OfflinePaymentTypeDialogContent",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var Bf = Object.defineProperty;
|
|
2
2
|
var qf = (c, f, g) => f in c ? Bf(c, f, { enumerable: !0, configurable: !0, writable: !0, value: g }) : c[f] = g;
|
|
3
3
|
var La = (c, f, g) => qf(c, typeof f != "symbol" ? f + "" : f, g);
|
|
4
|
-
import { e as X, k as Me, c as ce, j as Hi,
|
|
4
|
+
import { e as X, k as Me, c as ce, j as Hi, w as lt, i as Lf } from "./app-xZAaURng.js";
|
|
5
5
|
import { useCoreStore as Nn } from "@feedmepos/mf-common";
|
|
6
6
|
function yd(c, f) {
|
|
7
7
|
return function() {
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.integration-details[data-v-64de12e4]{display:flex;flex-direction:column;gap:.625rem;padding:1rem;margin-top:1rem;border:1px solid #e5e7eb;border-radius:.5rem}.integration-details--owned[data-v-64de12e4]{border-color:var(--fm-color-primary-oats);box-shadow:inset .25rem 0 0 var(--fm-color-primary)}.integration-details__header[data-v-64de12e4]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.integration-details__title[data-v-64de12e4]{display:flex;align-items:center;gap:.375rem}.integration-details__store-label[data-v-64de12e4]{padding:.25rem .625rem;color:var(--fm-color-primary);background:var(--fm-color-primary-oats);border-radius:999px}.integration-details__row[data-v-64de12e4]{display:grid;grid-template-columns:10rem minmax(0,1fr);align-items:center;gap:1rem}.integration-details__value[data-v-64de12e4]{display:flex;min-width:0;align-items:center;gap:.5rem}.integration-details__action[data-v-64de12e4]{display:inline-flex;flex:0 0 auto}.integration-details__value>code[data-v-64de12e4]{flex:1 1 auto}.integration-details__summary[data-v-64de12e4]{display:flex;justify-content:flex-end;margin-top:.25rem}.integration-details__message[data-v-64de12e4]{max-height:9rem;overflow-y:auto;white-space:pre-wrap}code[data-v-64de12e4]{min-width:0;overflow-wrap:anywhere}@media (max-width: 460px){.integration-details__row[data-v-64de12e4]{grid-template-columns:1fr;gap:.25rem}.integration-details__header[data-v-64de12e4]{align-items:flex-start}}.store-section[data-v-64f1ea7c]{border-top:1px solid #e5e7eb;padding-top:1.5rem}.store-card[data-v-64f1ea7c]{padding:1.25rem;margin-bottom:1rem}.store-card__top[data-v-64f1ea7c]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.store-card__title[data-v-64f1ea7c]{min-width:0;word-break:break-all}.store-card__actions[data-v-64f1ea7c]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.store-card__fields[data-v-64f1ea7c]{display:flex;flex-direction:column;gap:.625rem}.store-field[data-v-64f1ea7c]{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem}.store-field>span[data-v-64f1ea7c]:first-child{color:var(--fm-color-neutral-gray-400)}.store-field>span[data-v-64f1ea7c]:last-child{word-break:break-word}.store-sheet-body[data-v-64f1ea7c]{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}@media (max-width: 460px){.store-field[data-v-64f1ea7c]{grid-template-columns:1fr}}.store-section[data-v-fe141f25]{border-top:1px solid #e5e7eb;padding-top:1.5rem}.store-card[data-v-fe141f25]{padding:1.25rem;margin-bottom:1rem}.store-card__top[data-v-fe141f25]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.store-card__title[data-v-fe141f25]{min-width:0;word-break:break-all}.store-card__actions[data-v-fe141f25]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.store-card__fields[data-v-fe141f25]{display:flex;flex-direction:column;gap:.625rem}.store-field[data-v-fe141f25]{display:grid;grid-template-columns:9rem minmax(0,1fr);align-items:start;-moz-column-gap:1rem;column-gap:1rem;row-gap:.125rem}.store-field>span[data-v-fe141f25]:last-child{word-break:break-word}.store-sheet-body[data-v-fe141f25]{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}.store-sheet-activate[data-v-fe141f25]{padding-top:1.25rem;border-top:1px solid #e5e7eb}.store-sheet-activate__hint[data-v-fe141f25]{margin-top:.5rem}@media (max-width: 460px){.store-field[data-v-fe141f25]{grid-template-columns:1fr}}.store-section[data-v-b94bbdb0]{border-top:1px solid #e5e7eb;padding-top:1.5rem}.store-card[data-v-b94bbdb0]{padding:1.25rem;margin-bottom:1rem}.store-card__top[data-v-b94bbdb0]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.store-card__title[data-v-b94bbdb0]{min-width:0;word-break:break-all}.store-card__actions[data-v-b94bbdb0]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.store-card__fields[data-v-b94bbdb0]{display:flex;flex-direction:column;gap:.625rem}.store-field[data-v-b94bbdb0]{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem}.store-field>span[data-v-b94bbdb0]:first-child{color:var(--fm-color-neutral-gray-400)}.store-field>span[data-v-b94bbdb0]:last-child{word-break:break-word}.store-sheet-body[data-v-b94bbdb0]{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}@media (max-width: 460px){.store-field[data-v-b94bbdb0]{grid-template-columns:1fr}}[data-v-91393c58] .fm-checkbox--wrapper:has(input:disabled){pointer-events:none}[data-v-a959025e] .flex.flex-col.gap-8>:first-child,[data-v-a959025e] .flex.flex-col.gap-8>:last-child{display:none}.toggle[data-v-5266c20e]{position:relative;flex-shrink:0;width:52px;height:32px;padding:0;border:none;border-radius:9999px;background:var(--fm-color-neutral-gray-200);cursor:pointer;transition:background-color .2s ease-out}.toggle[data-v-5266c20e]:focus{outline:none}.toggle[data-v-5266c20e]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--fm-color-primary) 40%,transparent)}.toggle--on[data-v-5266c20e]{background:var(--fm-color-primary)}.toggle__thumb[data-v-5266c20e]{position:absolute;top:50%;left:8px;width:18px;height:18px;border-radius:9999px;background:#fff;box-shadow:0 1px 2px #0003;transform:translateY(-50%);transition:all .2s ease-out}.toggle--on .toggle__thumb[data-v-5266c20e]{left:24px;width:24px;height:24px}.toggle:active .toggle__thumb[data-v-5266c20e]{transform:translateY(-50%) scale(1.1)}.delivery-company-filter-toolbar[data-v-e2763a83]{display:flex;flex-direction:row;justify-content:space-between}@media (max-width: 647px){.delivery-company-filter-toolbar[data-v-e2763a83]{flex-direction:column;flex-wrap:wrap}}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar{width:6px}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar-track{background:transparent;border-radius:3px;margin:4px 0}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.time-picker-field[data-v-09464e01]{width:100%;height:40px;border-width:1.5px;border-style:solid;border-color:#d1d5db;border-radius:.625rem;padding:8px 36px 8px 12px;font-size:.95rem;line-height:1.25rem;font-weight:500;transition:all .2s;background-color:#fff;outline:none;box-sizing:border-box}.time-picker-field[data-v-09464e01]:hover{border-color:#9ca3af}.time-picker-field[data-v-09464e01]:focus{border-color:#f97316!important;background-color:#fff7ed!important}.preview-frame[data-v-bd8d2976]{position:relative;width:100%;overflow:hidden;border:1px solid #d1d5db;border-radius:12px;aspect-ratio:16 / 9;background:#111827;box-shadow:0 16px 40px #0f172a1f}.preview-iframe[data-v-bd8d2976]{display:block;width:100%;height:100%;border:0;background:#f3f4f6}.preview-status[data-v-bd8d2976]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:12px;background:#f9fafbf0;color:#4b5563;text-align:center;font-size:13px}.preview-status p[data-v-bd8d2976]{margin:0}.preview-status[data-v-bd8d2976] button{justify-self:center}.preview-loading[data-v-bd8d2976]{display:grid;justify-items:center;gap:10px}.preview-loading span[data-v-bd8d2976]{width:24px;height:24px;border:3px solid #fed7aa;border-top-color:#ef661f;border-radius:50%;animation:preview-spin-bd8d2976 .8s linear infinite}@keyframes preview-spin-bd8d2976{to{transform:rotate(360deg)}}.canvas-area[data-v-cdd742c6]{position:relative;display:flex;min-width:0;min-height:0;flex-direction:column}.canvas-area-card[data-v-cdd742c6]{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column;gap:8px;overflow:visible;border:1.5px dashed rgb(255 255 255 / 55%);border-radius:10px;padding:6px;background:#11182752;text-align:left}.canvas-area-card[data-v-cdd742c6]:hover{background:#1118276b}.canvas-area-active[data-v-cdd742c6]{border-style:solid;border-color:#f97316;background:#f973164d;box-shadow:0 0 0 3px #f973161f}.canvas-area-context[data-v-cdd742c6]{border-style:solid;border-color:#fed7aa;background:#fdba7433}.canvas-area-droppable[data-v-cdd742c6]{border-color:#f97316;background:#f973165c}.canvas-area-drop-over[data-v-cdd742c6]{border-style:solid;box-shadow:0 0 0 3px #f9731633}.canvas-area-head[data-v-cdd742c6]{display:flex;align-items:center;gap:8px}.canvas-area-name[data-v-cdd742c6],.canvas-area-share[data-v-cdd742c6]{color:#f9fafb;text-shadow:0 1px 3px rgb(0 0 0 / 70%);font-weight:700}.canvas-area-name[data-v-cdd742c6]{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.canvas-area-share[data-v-cdd742c6]{margin-left:auto;font-size:12px;font-variant-numeric:tabular-nums}.canvas-area-remove[data-v-cdd742c6]{display:grid;flex:0 0 auto;place-items:center;border-radius:999px;padding:2px;background:#1118278c;color:#f9fafb;opacity:0;transition:opacity .1s ease}.canvas-area-remove[data-v-cdd742c6]:hover{background:#fef2f2;color:#dc2626}.canvas-edge[data-v-cdd742c6]{position:absolute;display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 0 0 1.5px #d1d5db;color:#9ca3af;opacity:0;transition:opacity .1s ease;z-index:1}.canvas-area:hover .canvas-edge[data-v-cdd742c6],.canvas-area:focus-within .canvas-edge[data-v-cdd742c6],.canvas-area:hover .canvas-area-remove[data-v-cdd742c6],.canvas-area:focus-within .canvas-area-remove[data-v-cdd742c6]{opacity:1}.canvas-edge[data-v-cdd742c6]:hover{box-shadow:0 0 0 1.5px #f97316;color:#f97316}.canvas-edge-right[data-v-cdd742c6]{top:50%;right:-10px;transform:translateY(-50%)}.canvas-edge-bottom[data-v-cdd742c6]{bottom:-10px;left:50%;transform:translate(-50%)}.canvas-chips[data-v-cdd742c6]{display:flex;min-height:0;flex:1;flex-direction:column}.canvas-chip[data-v-cdd742c6]{display:flex;align-items:center;align-self:flex-start;max-width:100%;gap:6px;border:1px solid #e5e7eb;border-radius:8px;padding:6px 8px;background:#ffffffeb;color:#374151;font-size:12px;text-align:left;cursor:grab}.canvas-chip[data-v-cdd742c6]:hover{border-color:#fdba74}.canvas-chip-active[data-v-cdd742c6]{border-color:#f97316;box-shadow:inset 4px 0 #f97316,0 0 0 3px #f973161f;font-weight:600}.canvas-chip-active .canvas-chip-grip[data-v-cdd742c6]{color:#f97316}.canvas-chip-context[data-v-cdd742c6]{border-color:#fed7aa;background:#fffdfa}.canvas-chip[data-v-cdd742c6]:active{cursor:grabbing}.canvas-chip-grip[data-v-cdd742c6]{flex:0 0 auto;color:#9ca3af}.canvas-chip-label[data-v-cdd742c6]{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-chip-swap[data-v-cdd742c6]{display:grid;flex:0 0 auto;place-items:center;margin-left:2px;border-radius:6px;padding:2px;color:#9ca3af;opacity:0;transition:opacity .1s ease}.canvas-chip:hover .canvas-chip-swap[data-v-cdd742c6],.canvas-chip:focus-within .canvas-chip-swap[data-v-cdd742c6]{opacity:1}.canvas-chip-swap[data-v-cdd742c6]:hover{background:#fff;color:#f97316}.canvas-area-empty[data-v-cdd742c6]{display:grid;flex:1;place-items:center;border:1px dashed rgb(255 255 255 / 60%);border-radius:8px;background:transparent;color:#f3f4f6;font-size:11px;font-family:inherit;cursor:pointer}.canvas-area-empty[data-v-cdd742c6]:hover{border-color:#f97316;color:#f97316}@media (hover: none),(pointer: coarse){.canvas-edge[data-v-cdd742c6],.canvas-area-remove[data-v-cdd742c6],.canvas-chip-swap[data-v-cdd742c6]{opacity:1}}.canvas[data-v-eb790981]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;min-height:0}.canvas-row[data-v-eb790981]{flex-direction:row}.canvas-column[data-v-eb790981]{flex-direction:column}.canvas-group[data-v-eb790981]{position:relative;display:flex;min-width:0;min-height:0}.canvas-divider[data-v-eb790981]{position:absolute;z-index:2;display:grid;place-items:center;touch-action:none}.divider-vertical[data-v-eb790981]{top:0;bottom:0;width:10px;transform:translate(-50%);cursor:col-resize}.divider-horizontal[data-v-eb790981]{left:0;right:0;height:10px;transform:translateY(-50%);cursor:row-resize}.canvas-divider-grip[data-v-eb790981]{border-radius:999px;background:#d1d5db}.divider-vertical .canvas-divider-grip[data-v-eb790981]{height:34px;width:3px}.divider-horizontal .canvas-divider-grip[data-v-eb790981]{height:3px;width:34px}.canvas-divider:hover .canvas-divider-grip[data-v-eb790981]{background:#f97316}.module-picker[data-v-2892f182]{display:flex;flex-direction:column;gap:18px}.module-picker-hint[data-v-2892f182]{margin:0;color:#6b7280;font-size:12px}.module-picker-group[data-v-2892f182]{display:flex;flex-direction:column;gap:8px}.module-picker-group-label[data-v-2892f182]{margin:0;color:#9ca3af;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.module-picker-grid[data-v-2892f182]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.module-picker-card[data-v-2892f182]{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid #e5e7eb;border-radius:10px;padding:14px 10px;background:#fff;color:#374151;font-size:13px;text-align:center;cursor:pointer}.module-picker-card[data-v-2892f182]:hover{border-color:#f97316;background:#fffbf5}.module-picker-icon[data-v-2892f182]{display:grid;height:36px;width:36px;place-items:center;border-radius:8px;background:#f3f4f6;color:#4b5563}.module-picker-label[data-v-2892f182]{line-height:1.3;overflow-wrap:anywhere}.media-field[data-v-839ff846]{display:flex;flex-direction:column;gap:6px}.media-label[data-v-839ff846]{color:#4b5563;font-size:12px}.media-thumb[data-v-839ff846]{height:72px;width:100%;border-radius:8px;border:1px solid #e5e7eb;-o-object-fit:cover;object-fit:cover}.media-empty[data-v-839ff846]{display:grid;height:72px;place-items:center;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;font-size:12px}.media-warning[data-v-839ff846]{display:grid;height:72px;place-items:center;border:1px dashed #d1d5db;border-radius:8px;color:#b54708;font-size:12px}.media-actions[data-v-839ff846]{display:flex;gap:6px}.inspector[data-v-4cc442cf]{display:flex;flex-direction:column;gap:14px}.inspector-scope[data-v-4cc442cf]{align-self:stretch}.inspector-breadcrumb[data-v-4cc442cf]{display:flex;align-items:center;gap:2px;color:#6b7280;font-size:11px}.inspector-section[data-v-4cc442cf]{display:flex;flex-direction:column;gap:10px;border-top:1px solid #e5e7eb;padding-top:12px}.inspector-section-title[data-v-4cc442cf]{color:#9ca3af;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.inspector-note[data-v-4cc442cf]{color:#6b7280;font-size:11px;line-height:1.45}.inspector-warning[data-v-4cc442cf]{display:flex;align-items:flex-start;gap:6px;border-radius:8px;background:#fffbeb;padding:8px 10px;color:#92400e;font-size:12px}.inspector-list[data-v-4cc442cf]{display:flex;flex-direction:column;gap:8px}.inspector-list-head[data-v-4cc442cf]{display:flex;align-items:baseline;gap:6px}.inspector-list-count[data-v-4cc442cf]{border-radius:999px;background:#f3f4f6;padding:0 6px;color:#6b7280;font-size:10px;font-variant-numeric:tabular-nums}.inspector-item[data-v-4cc442cf]{display:flex;flex-direction:column;gap:10px;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fcfcfd}.inspector-item-head[data-v-4cc442cf]{display:flex;align-items:center;gap:2px}.inspector-item-name[data-v-4cc442cf]{flex:1;color:#6b7280;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.inspector-item-action[data-v-4cc442cf]{display:grid;flex:0 0 auto;place-items:center;border-radius:6px;padding:2px;color:#9ca3af}.inspector-item-action[data-v-4cc442cf]:hover:not(:disabled){background:#fff7ed;color:#f97316}.inspector-item-action[data-v-4cc442cf]:disabled{opacity:.35}.inspector-list-add[data-v-4cc442cf]{display:flex;gap:6px}.media-field[data-v-4cc442cf]{display:flex;flex-direction:column;gap:6px}.media-label[data-v-4cc442cf]{color:#4b5563;font-size:12px}.media-thumb[data-v-4cc442cf]{height:72px;width:100%;border-radius:8px;border:1px solid #e5e7eb;-o-object-fit:cover;object-fit:cover}.media-empty[data-v-4cc442cf]{display:grid;height:72px;place-items:center;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;font-size:12px}.media-actions[data-v-4cc442cf]{display:flex;gap:6px}.editor-head[data-v-a673333e]{display:flex;shrink:0;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;padding:12px 20px}.editor-identity[data-v-a673333e]{display:flex;min-width:0;align-items:center;gap:10px}.editor-name[data-v-a673333e]{width:min(320px,40vw)}.editor-orientation[data-v-a673333e]{width:160px}.editor-error[data-v-a673333e]{flex-shrink:0;margin:12px 16px 0;border-radius:8px;background:#fef2f2;padding:8px 12px;color:#b91c1c;font-size:13px}.rail-scale[data-v-a673333e]{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;border-bottom:1px solid #e5e7eb;padding-bottom:16px}.rail-scale-label[data-v-a673333e]{color:#4b5563;font-size:12px;font-weight:600}.rail-scale-hint[data-v-a673333e]{margin:0;color:#6b7280;font-size:11px;line-height:1.4}.rail-scale-warning[data-v-a673333e]{margin:0;border-radius:8px;padding:6px 8px;color:#9a3412;background:#fff7ed;font-size:11px;line-height:1.4}.editor-body[data-v-a673333e]{display:grid;min-height:0;flex:1;grid-template-columns:268px minmax(0,1fr) 320px}.editor-rail[data-v-a673333e],.editor-inspector[data-v-a673333e]{min-height:0;overflow:auto;padding:16px}.editor-rail[data-v-a673333e]{border-right:1px solid #e5e7eb;background:#f9fafb}.editor-inspector[data-v-a673333e]{border-left:1px solid #e5e7eb;background:#f9fafb}.editor-stage[data-v-a673333e]{display:flex;min-height:0;flex-direction:column;gap:12px;overflow:auto;padding:16px}.stage-preview[data-v-a673333e]{display:flex;min-height:0;flex:1;align-items:center;justify-content:center}.preview-box[data-v-a673333e]{position:relative;margin:0 auto}.preview-box.preview-landscape[data-v-a673333e]{width:100%;max-height:72vh;aspect-ratio:16 / 9}.preview-box.preview-portrait[data-v-a673333e]{height:72vh;max-width:100%;aspect-ratio:9 / 16}.preview-frame[data-v-a673333e]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border:1px solid #e5e7eb;border-radius:12px;background:#101828}.preview-frame[data-v-a673333e]>*{width:100%;height:100%}.preview-edit-overlay[data-v-a673333e]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;transition:opacity .15s ease}.preview-box:hover .preview-edit-overlay[data-v-a673333e],.preview-box:focus-within .preview-edit-overlay[data-v-a673333e],.preview-edit-overlay.preview-edit-overlay-active[data-v-a673333e]{opacity:1;pointer-events:auto}@media (hover: none),(pointer: coarse){.preview-edit-overlay[data-v-a673333e]{opacity:1;pointer-events:auto}}.layout-bar[data-v-a673333e]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.layout-bar-title[data-v-a673333e]{display:flex;min-width:0;flex-direction:column;gap:2px}.layout-title[data-v-a673333e]{color:#111827;font-size:13px;font-weight:600}.layout-hint[data-v-a673333e]{color:#9ca3af;font-size:11px}.layout-actions[data-v-a673333e]{display:flex;flex-shrink:0;align-items:center;gap:6px}.layout-conflict[data-v-a673333e]{display:flex;align-items:flex-start;gap:6px;border-radius:8px;background:#fffbeb;padding:8px 10px;color:#92400e;font-size:12px;cursor:pointer}.preset-row[data-v-a673333e]{display:flex;flex-wrap:wrap;gap:8px;border-radius:10px;background:#f9fafb;padding:10px}.preset-card[data-v-a673333e]{display:flex;width:108px;flex-direction:column;gap:6px;border:1px solid #d1d5db;border-radius:10px;padding:8px;background:#fff;text-align:left}.preset-card[data-v-a673333e]:hover{border-color:#f97316;background:#fff7ed}.preset-diagram[data-v-a673333e]{display:flex;height:34px;gap:3px;border-radius:6px;background:#f3f4f6;padding:3px}.preset-row-dir[data-v-a673333e]{flex-direction:row}.preset-column-dir[data-v-a673333e]{flex-direction:column}.preset-cell[data-v-a673333e]{flex-basis:0;border-radius:4px;background:#fdba74}.preset-label[data-v-a673333e]{color:#374151;font-size:11px;line-height:1.3}@media (max-width: 1280px){.editor-body[data-v-a673333e]{grid-template-columns:220px minmax(0,1fr)}.editor-inspector[data-v-a673333e]{grid-column:1 / -1;border-left:0;border-top:1px solid #e5e7eb}}.layout-split[data-v-5595b416]{display:flex;min-width:0;min-height:0;flex:1;gap:6px}.layout-row[data-v-5595b416]{flex-direction:row}.layout-column[data-v-5595b416]{flex-direction:column}.layout-zone[data-v-5595b416]{display:flex;min-width:0;min-height:36px;flex:1;flex-direction:row;align-items:center;gap:8px;overflow:hidden;border:1.5px dashed #d1d5db;border-radius:10px;padding:6px 10px;background:#fff;text-align:left;transition:border-color .12s ease,background .12s ease}.layout-zone[data-v-5595b416]:hover{border-color:#fdba74;background:#fffbf5}.layout-zone-selected[data-v-5595b416]{border-style:solid;border-color:#f97316;background:#fff7ed;box-shadow:inset 0 0 0 1px #f97316}.layout-zone-index[data-v-5595b416]{flex:none;color:#6b7280;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.layout-zone-blocks[data-v-5595b416]{display:flex;min-width:0;gap:4px}.layout-zone-chip[data-v-5595b416]{display:inline-flex;max-width:100%;align-items:center;gap:4px;border-radius:999px;background:#f3f4f6;padding:3px 8px;color:#374151;font-size:11px}.display-toolbar[data-v-a2dda95a]{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;padding-bottom:14px}.display-controls[data-v-a2dda95a]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px}.display-restaurant-select[data-v-a2dda95a]{width:min(360px,100%)}.display-outlet[data-v-a2dda95a]{display:flex;align-items:center;gap:16px}.display-entitlement[data-v-a2dda95a]{color:#6b7280;font-size:12px;white-space:nowrap}.restriction-note[data-v-a2dda95a]{margin-top:12px;border:1px solid #fed7aa;border-radius:10px;padding:10px 12px;color:#9a3412;background:#fff7ed;font-size:13px}.empty-state[data-v-a2dda95a]{display:grid;justify-items:center;gap:6px;border:1px dashed #d1d5db;border-radius:12px;padding:56px 20px;color:#6b7280;text-align:center}.empty-state strong[data-v-a2dda95a]{color:#111827}.layout-thumb[data-v-a2dda95a]{display:flex;height:auto;min-height:96px;margin-top:16px;border-radius:10px;background:#f3f4f6;padding:5px;pointer-events:none}.thumb-caption[data-v-a2dda95a]{margin-top:8px;color:#6b7280;font-size:11px}.resource-card[data-v-a2dda95a]{border:1px solid #e5e7eb;border-radius:12px;padding:20px;background:#fff;box-shadow:0 2px 8px #0000000a}.mode-badge[data-v-a2dda95a],.status-badge[data-v-a2dda95a]{border-radius:999px;padding:3px 8px;background:#f3f4f6;font-size:11px;font-weight:700}.status-badge.active[data-v-a2dda95a]{color:#166534;background:#dcfce7}.status-badge.disabled[data-v-a2dda95a]{color:#991b1b;background:#fee2e2}.status-badge.unlicensed[data-v-a2dda95a]{color:#b42318;background:#fef3f2;border:1px solid #fecdca}.online-dot[data-v-a2dda95a]{color:#6b7280;font-size:11px}.online-dot[data-v-a2dda95a]:before{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#9ca3af;content:""}.online-dot.online[data-v-a2dda95a]{color:#15803d}.online-dot.online[data-v-a2dda95a]:before{background:#22c55e}.meta-grid[data-v-a2dda95a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;border-top:1px solid #f0f0f0;padding-top:16px}.meta-grid dt[data-v-a2dda95a]{color:#6b7280;font-size:11px}.meta-grid dd[data-v-a2dda95a]{overflow:hidden;margin-top:2px;font-size:12px;text-overflow:ellipsis;white-space:nowrap}@media (max-width:640px){.display-toolbar[data-v-a2dda95a]{align-items:flex-start}.display-controls[data-v-a2dda95a]{align-items:stretch;flex-direction:column}.display-outlet[data-v-a2dda95a]{align-items:stretch;flex-direction:column;gap:8px}.display-restaurant-select[data-v-a2dda95a]{width:100%}}
|
|
1
|
+
@charset "UTF-8";.integration-details[data-v-64de12e4]{display:flex;flex-direction:column;gap:.625rem;padding:1rem;margin-top:1rem;border:1px solid #e5e7eb;border-radius:.5rem}.integration-details--owned[data-v-64de12e4]{border-color:var(--fm-color-primary-oats);box-shadow:inset .25rem 0 0 var(--fm-color-primary)}.integration-details__header[data-v-64de12e4]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.integration-details__title[data-v-64de12e4]{display:flex;align-items:center;gap:.375rem}.integration-details__store-label[data-v-64de12e4]{padding:.25rem .625rem;color:var(--fm-color-primary);background:var(--fm-color-primary-oats);border-radius:999px}.integration-details__row[data-v-64de12e4]{display:grid;grid-template-columns:10rem minmax(0,1fr);align-items:center;gap:1rem}.integration-details__value[data-v-64de12e4]{display:flex;min-width:0;align-items:center;gap:.5rem}.integration-details__action[data-v-64de12e4]{display:inline-flex;flex:0 0 auto}.integration-details__value>code[data-v-64de12e4]{flex:1 1 auto}.integration-details__summary[data-v-64de12e4]{display:flex;justify-content:flex-end;margin-top:.25rem}.integration-details__message[data-v-64de12e4]{max-height:9rem;overflow-y:auto;white-space:pre-wrap}code[data-v-64de12e4]{min-width:0;overflow-wrap:anywhere}@media (max-width: 460px){.integration-details__row[data-v-64de12e4]{grid-template-columns:1fr;gap:.25rem}.integration-details__header[data-v-64de12e4]{align-items:flex-start}}.store-section[data-v-64f1ea7c]{border-top:1px solid #e5e7eb;padding-top:1.5rem}.store-card[data-v-64f1ea7c]{padding:1.25rem;margin-bottom:1rem}.store-card__top[data-v-64f1ea7c]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.store-card__title[data-v-64f1ea7c]{min-width:0;word-break:break-all}.store-card__actions[data-v-64f1ea7c]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.store-card__fields[data-v-64f1ea7c]{display:flex;flex-direction:column;gap:.625rem}.store-field[data-v-64f1ea7c]{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem}.store-field>span[data-v-64f1ea7c]:first-child{color:var(--fm-color-neutral-gray-400)}.store-field>span[data-v-64f1ea7c]:last-child{word-break:break-word}.store-sheet-body[data-v-64f1ea7c]{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}@media (max-width: 460px){.store-field[data-v-64f1ea7c]{grid-template-columns:1fr}}.store-section[data-v-fe141f25]{border-top:1px solid #e5e7eb;padding-top:1.5rem}.store-card[data-v-fe141f25]{padding:1.25rem;margin-bottom:1rem}.store-card__top[data-v-fe141f25]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.store-card__title[data-v-fe141f25]{min-width:0;word-break:break-all}.store-card__actions[data-v-fe141f25]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.store-card__fields[data-v-fe141f25]{display:flex;flex-direction:column;gap:.625rem}.store-field[data-v-fe141f25]{display:grid;grid-template-columns:9rem minmax(0,1fr);align-items:start;-moz-column-gap:1rem;column-gap:1rem;row-gap:.125rem}.store-field>span[data-v-fe141f25]:last-child{word-break:break-word}.store-sheet-body[data-v-fe141f25]{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}.store-sheet-activate[data-v-fe141f25]{padding-top:1.25rem;border-top:1px solid #e5e7eb}.store-sheet-activate__hint[data-v-fe141f25]{margin-top:.5rem}@media (max-width: 460px){.store-field[data-v-fe141f25]{grid-template-columns:1fr}}.store-section[data-v-b94bbdb0]{border-top:1px solid #e5e7eb;padding-top:1.5rem}.store-card[data-v-b94bbdb0]{padding:1.25rem;margin-bottom:1rem}.store-card__top[data-v-b94bbdb0]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.store-card__title[data-v-b94bbdb0]{min-width:0;word-break:break-all}.store-card__actions[data-v-b94bbdb0]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;flex-shrink:0}.store-card__fields[data-v-b94bbdb0]{display:flex;flex-direction:column;gap:.625rem}.store-field[data-v-b94bbdb0]{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem}.store-field>span[data-v-b94bbdb0]:first-child{color:var(--fm-color-neutral-gray-400)}.store-field>span[data-v-b94bbdb0]:last-child{word-break:break-word}.store-sheet-body[data-v-b94bbdb0]{display:flex;flex-direction:column;gap:1rem;padding-top:.5rem}@media (max-width: 460px){.store-field[data-v-b94bbdb0]{grid-template-columns:1fr}}[data-v-91393c58] .fm-checkbox--wrapper:has(input:disabled){pointer-events:none}[data-v-a959025e] .flex.flex-col.gap-8>:first-child,[data-v-a959025e] .flex.flex-col.gap-8>:last-child{display:none}.toggle[data-v-5266c20e]{position:relative;flex-shrink:0;width:52px;height:32px;padding:0;border:none;border-radius:9999px;background:var(--fm-color-neutral-gray-200);cursor:pointer;transition:background-color .2s ease-out}.toggle[data-v-5266c20e]:focus{outline:none}.toggle[data-v-5266c20e]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--fm-color-primary) 40%,transparent)}.toggle--on[data-v-5266c20e]{background:var(--fm-color-primary)}.toggle__thumb[data-v-5266c20e]{position:absolute;top:50%;left:8px;width:18px;height:18px;border-radius:9999px;background:#fff;box-shadow:0 1px 2px #0003;transform:translateY(-50%);transition:all .2s ease-out}.toggle--on .toggle__thumb[data-v-5266c20e]{left:24px;width:24px;height:24px}.toggle:active .toggle__thumb[data-v-5266c20e]{transform:translateY(-50%) scale(1.1)}.delivery-company-filter-toolbar[data-v-e2763a83]{display:flex;flex-direction:row;justify-content:space-between}@media (max-width: 647px){.delivery-company-filter-toolbar[data-v-e2763a83]{flex-direction:column;flex-wrap:wrap}}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar{width:6px}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar-track{background:transparent;border-radius:3px;margin:4px 0}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.scrollbar-thin[data-v-09464e01]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.time-picker-field[data-v-09464e01]{width:100%;height:40px;border-width:1.5px;border-style:solid;border-color:#d1d5db;border-radius:.625rem;padding:8px 36px 8px 12px;font-size:.95rem;line-height:1.25rem;font-weight:500;transition:all .2s;background-color:#fff;outline:none;box-sizing:border-box}.time-picker-field[data-v-09464e01]:hover{border-color:#9ca3af}.time-picker-field[data-v-09464e01]:focus{border-color:#f97316!important;background-color:#fff7ed!important}.preview-frame[data-v-bd8d2976]{position:relative;width:100%;overflow:hidden;border:1px solid #d1d5db;border-radius:12px;aspect-ratio:16 / 9;background:#111827;box-shadow:0 16px 40px #0f172a1f}.preview-iframe[data-v-bd8d2976]{display:block;width:100%;height:100%;border:0;background:#f3f4f6}.preview-status[data-v-bd8d2976]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:12px;background:#f9fafbf0;color:#4b5563;text-align:center;font-size:13px}.preview-status p[data-v-bd8d2976]{margin:0}.preview-status[data-v-bd8d2976] button{justify-self:center}.preview-loading[data-v-bd8d2976]{display:grid;justify-items:center;gap:10px}.preview-loading span[data-v-bd8d2976]{width:24px;height:24px;border:3px solid #fed7aa;border-top-color:#ef661f;border-radius:50%;animation:preview-spin-bd8d2976 .8s linear infinite}@keyframes preview-spin-bd8d2976{to{transform:rotate(360deg)}}.canvas-area[data-v-cdd742c6]{position:relative;display:flex;min-width:0;min-height:0;flex-direction:column}.canvas-area-card[data-v-cdd742c6]{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column;gap:8px;overflow:visible;border:1.5px dashed rgb(255 255 255 / 55%);border-radius:10px;padding:6px;background:#11182752;text-align:left}.canvas-area-card[data-v-cdd742c6]:hover{background:#1118276b}.canvas-area-active[data-v-cdd742c6]{border-style:solid;border-color:#f97316;background:#f973164d;box-shadow:0 0 0 3px #f973161f}.canvas-area-context[data-v-cdd742c6]{border-style:solid;border-color:#fed7aa;background:#fdba7433}.canvas-area-droppable[data-v-cdd742c6]{border-color:#f97316;background:#f973165c}.canvas-area-drop-over[data-v-cdd742c6]{border-style:solid;box-shadow:0 0 0 3px #f9731633}.canvas-area-head[data-v-cdd742c6]{display:flex;align-items:center;gap:8px}.canvas-area-name[data-v-cdd742c6],.canvas-area-share[data-v-cdd742c6]{color:#f9fafb;text-shadow:0 1px 3px rgb(0 0 0 / 70%);font-weight:700}.canvas-area-name[data-v-cdd742c6]{font-size:10px;letter-spacing:.06em;text-transform:uppercase}.canvas-area-share[data-v-cdd742c6]{margin-left:auto;font-size:12px;font-variant-numeric:tabular-nums}.canvas-area-remove[data-v-cdd742c6]{display:grid;flex:0 0 auto;place-items:center;border-radius:999px;padding:2px;background:#1118278c;color:#f9fafb;opacity:0;transition:opacity .1s ease}.canvas-area-remove[data-v-cdd742c6]:hover{background:#fef2f2;color:#dc2626}.canvas-edge[data-v-cdd742c6]{position:absolute;display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 0 0 1.5px #d1d5db;color:#9ca3af;opacity:0;transition:opacity .1s ease;z-index:1}.canvas-area:hover .canvas-edge[data-v-cdd742c6],.canvas-area:focus-within .canvas-edge[data-v-cdd742c6],.canvas-area:hover .canvas-area-remove[data-v-cdd742c6],.canvas-area:focus-within .canvas-area-remove[data-v-cdd742c6]{opacity:1}.canvas-edge[data-v-cdd742c6]:hover{box-shadow:0 0 0 1.5px #f97316;color:#f97316}.canvas-edge-right[data-v-cdd742c6]{top:50%;right:-10px;transform:translateY(-50%)}.canvas-edge-bottom[data-v-cdd742c6]{bottom:-10px;left:50%;transform:translate(-50%)}.canvas-chips[data-v-cdd742c6]{display:flex;min-height:0;flex:1;flex-direction:column}.canvas-chip[data-v-cdd742c6]{display:flex;align-items:center;align-self:flex-start;max-width:100%;gap:6px;border:1px solid #e5e7eb;border-radius:8px;padding:6px 8px;background:#ffffffeb;color:#374151;font-size:12px;text-align:left;cursor:grab}.canvas-chip[data-v-cdd742c6]:hover{border-color:#fdba74}.canvas-chip-active[data-v-cdd742c6]{border-color:#f97316;box-shadow:inset 4px 0 #f97316,0 0 0 3px #f973161f;font-weight:600}.canvas-chip-active .canvas-chip-grip[data-v-cdd742c6]{color:#f97316}.canvas-chip-context[data-v-cdd742c6]{border-color:#fed7aa;background:#fffdfa}.canvas-chip[data-v-cdd742c6]:active{cursor:grabbing}.canvas-chip-grip[data-v-cdd742c6]{flex:0 0 auto;color:#9ca3af}.canvas-chip-label[data-v-cdd742c6]{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-chip-swap[data-v-cdd742c6]{display:grid;flex:0 0 auto;place-items:center;margin-left:2px;border-radius:6px;padding:2px;color:#9ca3af;opacity:0;transition:opacity .1s ease}.canvas-chip:hover .canvas-chip-swap[data-v-cdd742c6],.canvas-chip:focus-within .canvas-chip-swap[data-v-cdd742c6]{opacity:1}.canvas-chip-swap[data-v-cdd742c6]:hover{background:#fff;color:#f97316}.canvas-area-empty[data-v-cdd742c6]{display:grid;flex:1;place-items:center;border:1px dashed rgb(255 255 255 / 60%);border-radius:8px;background:transparent;color:#f3f4f6;font-size:11px;font-family:inherit;cursor:pointer}.canvas-area-empty[data-v-cdd742c6]:hover{border-color:#f97316;color:#f97316}@media (hover: none),(pointer: coarse){.canvas-edge[data-v-cdd742c6],.canvas-area-remove[data-v-cdd742c6],.canvas-chip-swap[data-v-cdd742c6]{opacity:1}}.canvas[data-v-eb790981]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;min-height:0}.canvas-row[data-v-eb790981]{flex-direction:row}.canvas-column[data-v-eb790981]{flex-direction:column}.canvas-group[data-v-eb790981]{position:relative;display:flex;min-width:0;min-height:0}.canvas-divider[data-v-eb790981]{position:absolute;z-index:2;display:grid;place-items:center;touch-action:none}.divider-vertical[data-v-eb790981]{top:0;bottom:0;width:10px;transform:translate(-50%);cursor:col-resize}.divider-horizontal[data-v-eb790981]{left:0;right:0;height:10px;transform:translateY(-50%);cursor:row-resize}.canvas-divider-grip[data-v-eb790981]{border-radius:999px;background:#d1d5db}.divider-vertical .canvas-divider-grip[data-v-eb790981]{height:34px;width:3px}.divider-horizontal .canvas-divider-grip[data-v-eb790981]{height:3px;width:34px}.canvas-divider:hover .canvas-divider-grip[data-v-eb790981]{background:#f97316}.module-picker[data-v-2892f182]{display:flex;flex-direction:column;gap:18px}.module-picker-hint[data-v-2892f182]{margin:0;color:#6b7280;font-size:12px}.module-picker-group[data-v-2892f182]{display:flex;flex-direction:column;gap:8px}.module-picker-group-label[data-v-2892f182]{margin:0;color:#9ca3af;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.module-picker-grid[data-v-2892f182]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.module-picker-card[data-v-2892f182]{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid #e5e7eb;border-radius:10px;padding:14px 10px;background:#fff;color:#374151;font-size:13px;text-align:center;cursor:pointer}.module-picker-card[data-v-2892f182]:hover{border-color:#f97316;background:#fffbf5}.module-picker-icon[data-v-2892f182]{display:grid;height:36px;width:36px;place-items:center;border-radius:8px;background:#f3f4f6;color:#4b5563}.module-picker-label[data-v-2892f182]{line-height:1.3;overflow-wrap:anywhere}.media-field[data-v-839ff846]{display:flex;flex-direction:column;gap:6px}.media-label[data-v-839ff846]{color:#4b5563;font-size:12px}.media-thumb[data-v-839ff846]{height:72px;width:100%;border-radius:8px;border:1px solid #e5e7eb;-o-object-fit:cover;object-fit:cover}.media-empty[data-v-839ff846]{display:grid;height:72px;place-items:center;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;font-size:12px}.media-warning[data-v-839ff846]{display:grid;height:72px;place-items:center;border:1px dashed #d1d5db;border-radius:8px;color:#b54708;font-size:12px}.media-actions[data-v-839ff846]{display:flex;gap:6px}.inspector[data-v-4cc442cf]{display:flex;flex-direction:column;gap:14px}.inspector-scope[data-v-4cc442cf]{align-self:stretch}.inspector-breadcrumb[data-v-4cc442cf]{display:flex;align-items:center;gap:2px;color:#6b7280;font-size:11px}.inspector-section[data-v-4cc442cf]{display:flex;flex-direction:column;gap:10px;border-top:1px solid #e5e7eb;padding-top:12px}.inspector-section-title[data-v-4cc442cf]{color:#9ca3af;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.inspector-note[data-v-4cc442cf]{color:#6b7280;font-size:11px;line-height:1.45}.inspector-warning[data-v-4cc442cf]{display:flex;align-items:flex-start;gap:6px;border-radius:8px;background:#fffbeb;padding:8px 10px;color:#92400e;font-size:12px}.inspector-list[data-v-4cc442cf]{display:flex;flex-direction:column;gap:8px}.inspector-list-head[data-v-4cc442cf]{display:flex;align-items:baseline;gap:6px}.inspector-list-count[data-v-4cc442cf]{border-radius:999px;background:#f3f4f6;padding:0 6px;color:#6b7280;font-size:10px;font-variant-numeric:tabular-nums}.inspector-item[data-v-4cc442cf]{display:flex;flex-direction:column;gap:10px;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fcfcfd}.inspector-item-head[data-v-4cc442cf]{display:flex;align-items:center;gap:2px}.inspector-item-name[data-v-4cc442cf]{flex:1;color:#6b7280;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.inspector-item-action[data-v-4cc442cf]{display:grid;flex:0 0 auto;place-items:center;border-radius:6px;padding:2px;color:#9ca3af}.inspector-item-action[data-v-4cc442cf]:hover:not(:disabled){background:#fff7ed;color:#f97316}.inspector-item-action[data-v-4cc442cf]:disabled{opacity:.35}.inspector-list-add[data-v-4cc442cf]{display:flex;gap:6px}.media-field[data-v-4cc442cf]{display:flex;flex-direction:column;gap:6px}.media-label[data-v-4cc442cf]{color:#4b5563;font-size:12px}.media-thumb[data-v-4cc442cf]{height:72px;width:100%;border-radius:8px;border:1px solid #e5e7eb;-o-object-fit:cover;object-fit:cover}.media-empty[data-v-4cc442cf]{display:grid;height:72px;place-items:center;border:1px dashed #d1d5db;border-radius:8px;color:#9ca3af;font-size:12px}.media-actions[data-v-4cc442cf]{display:flex;gap:6px}.editor-head[data-v-a673333e]{display:flex;shrink:0;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;padding:12px 20px}.editor-identity[data-v-a673333e]{display:flex;min-width:0;align-items:center;gap:10px}.editor-name[data-v-a673333e]{width:min(320px,40vw)}.editor-orientation[data-v-a673333e]{width:160px}.editor-error[data-v-a673333e]{flex-shrink:0;margin:12px 16px 0;border-radius:8px;background:#fef2f2;padding:8px 12px;color:#b91c1c;font-size:13px}.rail-scale[data-v-a673333e]{display:flex;flex-direction:column;gap:6px;margin-bottom:18px;border-bottom:1px solid #e5e7eb;padding-bottom:16px}.rail-scale-label[data-v-a673333e]{color:#4b5563;font-size:12px;font-weight:600}.rail-scale-hint[data-v-a673333e]{margin:0;color:#6b7280;font-size:11px;line-height:1.4}.rail-scale-warning[data-v-a673333e]{margin:0;border-radius:8px;padding:6px 8px;color:#9a3412;background:#fff7ed;font-size:11px;line-height:1.4}.editor-body[data-v-a673333e]{display:grid;min-height:0;flex:1;grid-template-columns:268px minmax(0,1fr) 320px}.editor-rail[data-v-a673333e],.editor-inspector[data-v-a673333e]{min-height:0;overflow:auto;padding:16px}.editor-rail[data-v-a673333e]{border-right:1px solid #e5e7eb;background:#f9fafb}.editor-inspector[data-v-a673333e]{border-left:1px solid #e5e7eb;background:#f9fafb}.editor-stage[data-v-a673333e]{display:flex;min-height:0;flex-direction:column;gap:12px;overflow:auto;padding:16px}.stage-preview[data-v-a673333e]{display:flex;min-height:0;flex:1;align-items:center;justify-content:center}.preview-box[data-v-a673333e]{position:relative;margin:0 auto}.preview-box.preview-landscape[data-v-a673333e]{width:100%;max-height:72vh;aspect-ratio:16 / 9}.preview-box.preview-portrait[data-v-a673333e]{height:72vh;max-width:100%;aspect-ratio:9 / 16}.preview-frame[data-v-a673333e]{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border:1px solid #e5e7eb;border-radius:12px;background:#101828}.preview-frame[data-v-a673333e]>*{width:100%;height:100%}.preview-edit-overlay[data-v-a673333e]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;transition:opacity .15s ease}.preview-box:hover .preview-edit-overlay[data-v-a673333e],.preview-box:focus-within .preview-edit-overlay[data-v-a673333e],.preview-edit-overlay.preview-edit-overlay-active[data-v-a673333e]{opacity:1;pointer-events:auto}@media (hover: none),(pointer: coarse){.preview-edit-overlay[data-v-a673333e]{opacity:1;pointer-events:auto}}.layout-bar[data-v-a673333e]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.layout-bar-title[data-v-a673333e]{display:flex;min-width:0;flex-direction:column;gap:2px}.layout-title[data-v-a673333e]{color:#111827;font-size:13px;font-weight:600}.layout-hint[data-v-a673333e]{color:#9ca3af;font-size:11px}.layout-actions[data-v-a673333e]{display:flex;flex-shrink:0;align-items:center;gap:6px}.layout-conflict[data-v-a673333e]{display:flex;align-items:flex-start;gap:6px;border-radius:8px;background:#fffbeb;padding:8px 10px;color:#92400e;font-size:12px;cursor:pointer}.preset-row[data-v-a673333e]{display:flex;flex-wrap:wrap;gap:8px;border-radius:10px;background:#f9fafb;padding:10px}.preset-card[data-v-a673333e]{display:flex;width:108px;flex-direction:column;gap:6px;border:1px solid #d1d5db;border-radius:10px;padding:8px;background:#fff;text-align:left}.preset-card[data-v-a673333e]:hover{border-color:#f97316;background:#fff7ed}.preset-diagram[data-v-a673333e]{display:flex;height:34px;gap:3px;border-radius:6px;background:#f3f4f6;padding:3px}.preset-row-dir[data-v-a673333e]{flex-direction:row}.preset-column-dir[data-v-a673333e]{flex-direction:column}.preset-cell[data-v-a673333e]{flex-basis:0;border-radius:4px;background:#fdba74}.preset-label[data-v-a673333e]{color:#374151;font-size:11px;line-height:1.3}@media (max-width: 1280px){.editor-body[data-v-a673333e]{grid-template-columns:220px minmax(0,1fr)}.editor-inspector[data-v-a673333e]{grid-column:1 / -1;border-left:0;border-top:1px solid #e5e7eb}}.layout-split[data-v-5595b416]{display:flex;min-width:0;min-height:0;flex:1;gap:6px}.layout-row[data-v-5595b416]{flex-direction:row}.layout-column[data-v-5595b416]{flex-direction:column}.layout-zone[data-v-5595b416]{display:flex;min-width:0;min-height:36px;flex:1;flex-direction:row;align-items:center;gap:8px;overflow:hidden;border:1.5px dashed #d1d5db;border-radius:10px;padding:6px 10px;background:#fff;text-align:left;transition:border-color .12s ease,background .12s ease}.layout-zone[data-v-5595b416]:hover{border-color:#fdba74;background:#fffbf5}.layout-zone-selected[data-v-5595b416]{border-style:solid;border-color:#f97316;background:#fff7ed;box-shadow:inset 0 0 0 1px #f97316}.layout-zone-index[data-v-5595b416]{flex:none;color:#6b7280;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.layout-zone-blocks[data-v-5595b416]{display:flex;min-width:0;gap:4px}.layout-zone-chip[data-v-5595b416]{display:inline-flex;max-width:100%;align-items:center;gap:4px;border-radius:999px;background:#f3f4f6;padding:3px 8px;color:#374151;font-size:11px}.vacp-color-picker{max-inline-size:var(--vacp-width-color-space, 300px);padding:var(--vacp-spacing, 6px);display:grid;grid-gap:var(--vacp-spacing, 6px);grid-template-columns:1fr min-content;font-size:var(--vacp-font-size, .8em);font-family:var(--vacp-font-family, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif);color:var(--vacp-color-text, currentColor);background-color:var(--vacp-color-background, #fff)}.vacp-color-picker,.vacp-color-picker *,.vacp-color-picker *:before,.vacp-color-picker *:after{box-sizing:border-box}.vacp-color-picker :focus{outline:2px solid var(--vacp-color-focus, #19f)}.vacp-color-picker button::-moz-focus-inner{border:none;padding:0}:where(.vacp-color-picker) button{inline-size:calc(var(--vacp-spacing, 6px) * 6);block-size:calc(var(--vacp-spacing, 6px) * 6);margin:0;padding:var(--vacp-spacing, 6px);display:flex;align-items:center;justify-content:center;border:var(--vacp-width-border, 1px) solid transparent;border-radius:50%;font:inherit;color:var(--vacp-color-text-input, currentColor);background-color:var(--vacp-color-background-input, #fff)}:where(.vacp-color-picker) button:focus{border-color:var(--vacp-color-border, #000)}:where(.vacp-color-picker) button:enabled:hover{background-color:#0002}.vacp-color-space{grid-column:1/-1;overflow:hidden;aspect-ratio:1/.6}.vacp-color-space-thumb{--vacp-thumb-size: calc(var(--vacp-spacing, 6px) * 4);inline-size:var(--vacp-thumb-size);block-size:var(--vacp-thumb-size);margin-inline-start:calc(-1 * var(--vacp-thumb-size) / 2);margin-block-end:calc(-1 * var(--vacp-thumb-size) / 2);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 var(--vacp-width-border, 1px) var(--vacp-color-border, #000);transform:rotate(0)}.vacp-color-space-thumb:focus{outline-color:transparent;box-shadow:0 0 0 var(--vacp-width-border, 1px) var(--vacp-color-border, #000),0 0 0 calc(var(--vacp-width-border, 1px) + 2px) var(--vacp-color-focus, #19f)}.vacp-range-input-label{--vacp-slider-track-height: calc(var(--vacp-spacing, 6px) * 3);--vacp-slider-thumb-size: calc(var(--vacp-spacing, 6px) * 4 - var(--vacp-width-border, 1px) * 2);display:block}.vacp-range-input-group{display:flex;flex-direction:column;justify-content:center}.vacp-range-input-group>:not(:first-child){margin-block-start:var(--vacp-spacing, 6px)}.vacp-range-input,.vacp-range-input::-webkit-slider-thumb{-webkit-appearance:none}.vacp-range-input{display:block;inline-size:100%;block-size:var(--vacp-slider-track-height);margin-inline:0;margin-block:calc(var(--vacp-spacing, 6px) / 2 + 1px);padding:0;border:none;background:none}.vacp-range-input:focus{outline:none}.vacp-range-input::-moz-focus-outer{border:none}.vacp-range-input--alpha{background-color:#fff;background-image:linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,#eee 75%,#eee),linear-gradient(45deg,#eee 25%,transparent 25%,transparent 75%,#eee 75%,#eee);background-size:calc(var(--vacp-spacing, 6px) * 2) calc(var(--vacp-spacing, 6px) * 2);background-position:0 0,var(--vacp-spacing, 6px) var(--vacp-spacing, 6px)}.vacp-range-input::-moz-range-track{box-sizing:border-box;inline-size:100%;block-size:var(--vacp-slider-track-height);border:var(--vacp-width-border, 1px) solid var(--vacp-color-border, #000)}.vacp-range-input::-webkit-slider-runnable-track{box-sizing:border-box;inline-size:100%;block-size:var(--vacp-slider-track-height);border:var(--vacp-width-border, 1px) solid var(--vacp-color-border, #000)}.vacp-range-input::-ms-track{box-sizing:border-box;inline-size:100%;block-size:var(--vacp-slider-track-height);border:var(--vacp-width-border, 1px) solid var(--vacp-color-border, #000)}.vacp-range-input:focus::-moz-range-track{outline:2px solid var(--vacp-color-focus, #19f)}.vacp-range-input:focus::-webkit-slider-runnable-track{outline:2px solid var(--vacp-color-focus, #19f)}.vacp-range-input:focus::-ms-track{outline:2px solid var(--vacp-color-focus, #19f)}.vacp-range-input--alpha::-moz-range-track{background-image:linear-gradient(to right,transparent,var(--vacp-color))}.vacp-range-input--alpha::-webkit-slider-runnable-track{background-image:linear-gradient(to right,transparent,var(--vacp-color))}.vacp-range-input--alpha::-ms-track{background-image:linear-gradient(to right,transparent,var(--vacp-color))}.vacp-range-input--hue::-moz-range-track{background-image:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.vacp-range-input--hue::-webkit-slider-runnable-track{background-image:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.vacp-range-input--hue::-ms-track{background-image:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.vacp-range-input::-moz-range-thumb{box-sizing:border-box;inline-size:var(--vacp-slider-thumb-size);block-size:var(--vacp-slider-thumb-size);border:3px solid #fff;border-radius:50%;background-color:transparent;box-shadow:0 0 0 var(--vacp-width-border, 1px) var(--vacp-color-border, #000);isolation:isolate}.vacp-range-input::-webkit-slider-thumb{box-sizing:border-box;inline-size:var(--vacp-slider-thumb-size);block-size:var(--vacp-slider-thumb-size);margin-block-start:calc(-1 * var(--vacp-spacing, 6px) / 2);border:3px solid #fff;border-radius:50%;background-color:transparent;box-shadow:0 0 0 var(--vacp-width-border, 1px) var(--vacp-color-border, #000);isolation:isolate}.vacp-range-input::-ms-thumb{box-sizing:border-box;inline-size:var(--vacp-slider-thumb-size);block-size:var(--vacp-slider-thumb-size);margin-block-start:calc(-1 * var(--vacp-spacing, 6px) / 2);border:3px solid #fff;border-radius:50%;background-color:transparent;box-shadow:0 0 0 var(--vacp-width-border, 1px) var(--vacp-color-border, #000);isolation:isolate}.vacp-actions{justify-self:center;align-self:center;display:flex;gap:var(--vacp-spacing, 6px);align-items:center}.vacp-color-inputs{grid-column:1/-1;display:flex;align-items:center}.vacp-color-inputs>:not(:first-child){margin-inline-start:var(--vacp-spacing, 6px)}.vacp-color-input-group{flex-grow:1;display:grid;grid-auto-flow:column;-moz-column-gap:var(--vacp-spacing, 6px);column-gap:var(--vacp-spacing, 6px)}.vacp-color-input-label{text-align:center}.vacp-color-input{width:100%;margin:0;margin-block-start:calc(var(--vacp-spacing, 6px) / 2);padding:var(--vacp-spacing, 6px);border:var(--vacp-width-border, 1px) solid var(--vacp-color-border, #000);font:inherit;text-align:center;color:inherit;color:var(--vacp-color-text-input, currentColor);background-color:var(--vacp-color-background-input, #fff)}.vacp-format-switch-button{flex-shrink:0}.vacp-visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;white-space:nowrap}.fade-enter-from[data-v-8a6a557f]{opacity:0}.fade-enter-to[data-v-8a6a557f],.fade-leave-from[data-v-8a6a557f]{opacity:1}.fade-leave-to[data-v-8a6a557f]{opacity:0}.fade-enter-active[data-v-8a6a557f],.fade-leave-active[data-v-8a6a557f]{transition:opacity .5s ease}.empty-state[data-v-89811f78]{display:grid;justify-items:center;gap:6px;border:1px dashed #d1d5db;border-radius:12px;padding:56px 20px;color:#6b7280;text-align:center}.empty-state strong[data-v-89811f78]{color:#111827}.resource-card[data-v-89811f78]{border:1px solid #e5e7eb;border-radius:12px;padding:20px;background:#fff;box-shadow:0 2px 8px #0000000a}.default-badge[data-v-89811f78]{border-radius:999px;padding:3px 8px;background:#f3f4f6;font-size:11px;font-weight:700}.display-toolbar[data-v-7d7f3bb9]{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e5e7eb;padding-bottom:14px}.display-actions[data-v-7d7f3bb9]{display:flex;flex-shrink:0;align-items:center;gap:8px}.display-controls[data-v-7d7f3bb9]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px}.display-restaurant-select[data-v-7d7f3bb9]{width:min(360px,100%)}.display-outlet[data-v-7d7f3bb9]{display:flex;align-items:center;gap:16px}.display-entitlement[data-v-7d7f3bb9]{color:#6b7280;font-size:12px;white-space:nowrap}.restriction-note[data-v-7d7f3bb9]{margin-top:12px;border:1px solid #fed7aa;border-radius:10px;padding:10px 12px;color:#9a3412;background:#fff7ed;font-size:13px}.empty-state[data-v-7d7f3bb9]{display:grid;justify-items:center;gap:6px;border:1px dashed #d1d5db;border-radius:12px;padding:56px 20px;color:#6b7280;text-align:center}.empty-state strong[data-v-7d7f3bb9]{color:#111827}.layout-thumb[data-v-7d7f3bb9]{display:flex;height:auto;min-height:96px;margin-top:16px;border-radius:10px;background:#f3f4f6;padding:5px;pointer-events:none}.thumb-caption[data-v-7d7f3bb9]{margin-top:8px;color:#6b7280;font-size:11px}.resource-card[data-v-7d7f3bb9]{border:1px solid #e5e7eb;border-radius:12px;padding:20px;background:#fff;box-shadow:0 2px 8px #0000000a}.mode-badge[data-v-7d7f3bb9],.status-badge[data-v-7d7f3bb9]{border-radius:999px;padding:3px 8px;background:#f3f4f6;font-size:11px;font-weight:700}.status-badge.active[data-v-7d7f3bb9]{color:#166534;background:#dcfce7}.status-badge.disabled[data-v-7d7f3bb9]{color:#991b1b;background:#fee2e2}.status-badge.unlicensed[data-v-7d7f3bb9]{color:#b42318;background:#fef3f2;border:1px solid #fecdca}.online-dot[data-v-7d7f3bb9]{color:#6b7280;font-size:11px}.online-dot[data-v-7d7f3bb9]:before{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#9ca3af;content:""}.online-dot.online[data-v-7d7f3bb9]{color:#15803d}.online-dot.online[data-v-7d7f3bb9]:before{background:#22c55e}.meta-grid[data-v-7d7f3bb9]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;border-top:1px solid #f0f0f0;padding-top:16px}.meta-grid dt[data-v-7d7f3bb9]{color:#6b7280;font-size:11px}.meta-grid dd[data-v-7d7f3bb9]{overflow:hidden;margin-top:2px;font-size:12px;text-overflow:ellipsis;white-space:nowrap}@media (max-width:640px){.display-toolbar[data-v-7d7f3bb9]{align-items:flex-start}.display-controls[data-v-7d7f3bb9]{align-items:stretch;flex-direction:column}.display-outlet[data-v-7d7f3bb9]{align-items:stretch;flex-direction:column;gap:8px}.display-restaurant-select[data-v-7d7f3bb9]{width:100%}}
|
package/env.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feedmepos/mf-order-setting",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.93",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "./dist/app.js",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"pinia": "^2.1.7",
|
|
33
33
|
"semver": "^7.7.1",
|
|
34
34
|
"vue": "^3.3.8",
|
|
35
|
+
"vue-accessible-color-picker": "^5.2.0",
|
|
35
36
|
"vue-i18n": "^10.0.5",
|
|
36
37
|
"vue-router": "^4.2.5",
|
|
37
38
|
"zod-openapi": "^4.1.0"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import axios from 'axios'
|
|
2
|
+
import type { BrandKit, OdsConfigEntry } from '@/modules/display-system/legacy-ods/interface'
|
|
2
3
|
|
|
3
4
|
export interface DisplayBrandKitColors {
|
|
4
5
|
primary?: string
|
|
@@ -39,3 +40,26 @@ export async function getRestaurantDisplayBrandKit(
|
|
|
39
40
|
throw error
|
|
40
41
|
}
|
|
41
42
|
}
|
|
43
|
+
|
|
44
|
+
export async function getBusinessBrandkit(
|
|
45
|
+
businessId: string,
|
|
46
|
+
namespace: string
|
|
47
|
+
): Promise<BrandKit> {
|
|
48
|
+
const response = await axios.get<BrandKit>(
|
|
49
|
+
`${brandKitBaseUrl(namespace)}/metadata/${encodeURIComponent(businessId)}/brandkit`
|
|
50
|
+
)
|
|
51
|
+
return response.data
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export async function saveBusinessOds(
|
|
55
|
+
businessId: string,
|
|
56
|
+
ods: OdsConfigEntry[],
|
|
57
|
+
namespace: string
|
|
58
|
+
): Promise<void> {
|
|
59
|
+
// The metadata endpoint replaces the entire document, including unrelated layouts and colors.
|
|
60
|
+
const brandkit = await getBusinessBrandkit(businessId, namespace)
|
|
61
|
+
await axios.post(
|
|
62
|
+
`${brandKitBaseUrl(namespace)}/metadata/${encodeURIComponent(businessId)}/brandkit`,
|
|
63
|
+
{ ...brandkit, ods }
|
|
64
|
+
)
|
|
65
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useFeatureFlag } from '@feedmepos/feature-flag'
|
|
2
|
+
|
|
3
|
+
const FLAGSMITH_URL = 'https://flag.feedmeapi.com/api/v1/'
|
|
4
|
+
const FLAGSMITH_KEY_BY_NAMESPACE = {
|
|
5
|
+
dev: 'MaGoXrEWuEJNpWgKTqseee',
|
|
6
|
+
prod: '6GhcttsJ9Rj9cTevcdrpin'
|
|
7
|
+
} as const
|
|
8
|
+
|
|
9
|
+
let initPromise: Promise<void> | null = null
|
|
10
|
+
|
|
11
|
+
export function ensureInit(
|
|
12
|
+
ff: ReturnType<typeof useFeatureFlag>,
|
|
13
|
+
namespace: keyof typeof FLAGSMITH_KEY_BY_NAMESPACE
|
|
14
|
+
): Promise<void> {
|
|
15
|
+
if (ff.isInitialized.value) return Promise.resolve()
|
|
16
|
+
if (!initPromise) {
|
|
17
|
+
initPromise = ff
|
|
18
|
+
.init({ apiKey: FLAGSMITH_KEY_BY_NAMESPACE[namespace], url: FLAGSMITH_URL })
|
|
19
|
+
.catch(() => undefined) // init failure => fail open
|
|
20
|
+
}
|
|
21
|
+
return initPromise
|
|
22
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ref, watch } from 'vue'
|
|
2
|
+
import { useCoreStore } from '@feedmepos/mf-common'
|
|
3
|
+
import { useFeatureFlag } from '@feedmepos/feature-flag'
|
|
4
|
+
import { ensureInit } from './featureFlag'
|
|
5
|
+
|
|
6
|
+
export function isFeatureEnabled(value: unknown): boolean {
|
|
7
|
+
try {
|
|
8
|
+
const parsed = typeof value === 'string' ? JSON.parse(value) : value
|
|
9
|
+
return (
|
|
10
|
+
parsed === true || parsed === 'true' || parsed?.enabled === true || parsed?.enabled === 'true'
|
|
11
|
+
)
|
|
12
|
+
} catch {
|
|
13
|
+
return value === true || value === 'true'
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function useBusinessFeatureFlag(key: string) {
|
|
18
|
+
const core = useCoreStore()
|
|
19
|
+
const ff = useFeatureFlag()
|
|
20
|
+
const value = ref(false)
|
|
21
|
+
|
|
22
|
+
watch(
|
|
23
|
+
[() => core.currentBusiness.value?._id, () => core.namespace.value],
|
|
24
|
+
async ([businessId, namespace], _, onCleanup) => {
|
|
25
|
+
let cancelled = false
|
|
26
|
+
onCleanup(() => {
|
|
27
|
+
cancelled = true
|
|
28
|
+
})
|
|
29
|
+
value.value = false
|
|
30
|
+
if (!businessId) return
|
|
31
|
+
await ensureInit(ff, namespace === 'dev' ? 'dev' : 'prod')
|
|
32
|
+
if (!ff.isInitialized.value || cancelled) return
|
|
33
|
+
try {
|
|
34
|
+
const raw = await ff.getBusinessFlagValue<unknown>(businessId, key, false)
|
|
35
|
+
if (!cancelled) value.value = isFeatureEnabled(raw)
|
|
36
|
+
} catch {
|
|
37
|
+
if (!cancelled) value.value = false
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{ immediate: true }
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
return { value }
|
|
44
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { computed } from 'vue'
|
|
2
|
+
import { useCoreStore } from '@feedmepos/mf-common'
|
|
3
|
+
import { useBusinessFeatureFlag } from './useBusinessFeatureFlag'
|
|
4
|
+
|
|
5
|
+
export function useLegacyOdsAccess() {
|
|
6
|
+
const core = useCoreStore()
|
|
7
|
+
const isFeedmeInternal = computed(() => {
|
|
8
|
+
const role = core.sessionUser.value?.role as
|
|
9
|
+
| {
|
|
10
|
+
isAdmin?: boolean
|
|
11
|
+
isStaff?: boolean
|
|
12
|
+
isAgent?: boolean
|
|
13
|
+
name?: string
|
|
14
|
+
type?: string
|
|
15
|
+
key?: string
|
|
16
|
+
}
|
|
17
|
+
| string
|
|
18
|
+
| undefined
|
|
19
|
+
const roleName = typeof role === 'string' ? role : (role?.name ?? role?.type ?? role?.key)
|
|
20
|
+
return Boolean(
|
|
21
|
+
(typeof role === 'object' && (role?.isAdmin || role?.isStaff || role?.isAgent)) ||
|
|
22
|
+
['admin', 'staff', 'agent'].includes(String(roleName).toLowerCase())
|
|
23
|
+
)
|
|
24
|
+
})
|
|
25
|
+
const { value: isOdsTemplateSettingsEnabled } = useBusinessFeatureFlag(
|
|
26
|
+
'order_ods_template_settings'
|
|
27
|
+
)
|
|
28
|
+
const { value: isAdvancedCustomizationEnabled } = useBusinessFeatureFlag(
|
|
29
|
+
'order_ods_advanced_customization'
|
|
30
|
+
)
|
|
31
|
+
const canAccessOdsTemplateSettings = computed(
|
|
32
|
+
() => isFeedmeInternal.value || isOdsTemplateSettingsEnabled.value
|
|
33
|
+
)
|
|
34
|
+
return { canAccessOdsTemplateSettings, isAdvancedCustomizationEnabled }
|
|
35
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { computed } from 'vue'
|
|
2
|
+
import { useCoreStore } from '@feedmepos/mf-common'
|
|
3
|
+
import { Permission, checkAccess, type CaslPermission } from '@feedmepos/hrm-permission'
|
|
4
|
+
|
|
5
|
+
export const miniProgramBrandkitPermission = (
|
|
6
|
+
action: (typeof Permission.Action)[keyof typeof Permission.Action]
|
|
7
|
+
): CaslPermission => ({ action, subject: Permission.Subject.Business.miniProgram_brandkit })
|
|
8
|
+
|
|
9
|
+
export function useMiniProgramPermission() {
|
|
10
|
+
const core = useCoreStore()
|
|
11
|
+
const canManageBrandkit = computed(
|
|
12
|
+
() =>
|
|
13
|
+
checkAccess(
|
|
14
|
+
[miniProgramBrandkitPermission(Permission.Action.manage)],
|
|
15
|
+
(core.sessionUser.value?.permissions ?? []) as Parameters<typeof checkAccess>[1]
|
|
16
|
+
).granted
|
|
17
|
+
)
|
|
18
|
+
return { canManageBrandkit }
|
|
19
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { computed, watch, type ComputedRef } from 'vue'
|
|
2
2
|
import { useFeatureFlag } from '@feedmepos/feature-flag'
|
|
3
3
|
import { useCoreStore } from '@feedmepos/mf-common'
|
|
4
|
+
import { ensureInit } from './featureFlag'
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Whether QR / online ordering is enabled for the currently-selected restaurant,
|
|
@@ -19,27 +20,6 @@ import { useCoreStore } from '@feedmepos/mf-common'
|
|
|
19
20
|
*/
|
|
20
21
|
const QR_ORDERING_FLAG_KEY = 'ordering_enable_qr'
|
|
21
22
|
|
|
22
|
-
const FLAGSMITH_URL = 'https://flag.feedmeapi.com/api/v1/'
|
|
23
|
-
const FLAGSMITH_KEY_BY_NAMESPACE = {
|
|
24
|
-
dev: 'MaGoXrEWuEJNpWgKTqseee',
|
|
25
|
-
prod: '6GhcttsJ9Rj9cTevcdrpin'
|
|
26
|
-
} as const
|
|
27
|
-
|
|
28
|
-
let initPromise: Promise<void> | null = null
|
|
29
|
-
|
|
30
|
-
function ensureInit(
|
|
31
|
-
ff: ReturnType<typeof useFeatureFlag>,
|
|
32
|
-
namespace: keyof typeof FLAGSMITH_KEY_BY_NAMESPACE
|
|
33
|
-
): Promise<void> {
|
|
34
|
-
if (ff.isInitialized.value) return Promise.resolve()
|
|
35
|
-
if (!initPromise) {
|
|
36
|
-
initPromise = ff
|
|
37
|
-
.init({ apiKey: FLAGSMITH_KEY_BY_NAMESPACE[namespace], url: FLAGSMITH_URL })
|
|
38
|
-
.catch(() => undefined) // init failure => fail open
|
|
39
|
-
}
|
|
40
|
-
return initPromise
|
|
41
|
-
}
|
|
42
|
-
|
|
43
23
|
export function useQrOrderingEnabled(): ComputedRef<boolean> {
|
|
44
24
|
const ff = useFeatureFlag()
|
|
45
25
|
const { currentRestaurant, namespace } = useCoreStore()
|
package/src/locales/en-US.json
CHANGED
|
@@ -680,6 +680,173 @@
|
|
|
680
680
|
}
|
|
681
681
|
},
|
|
682
682
|
"displaySystem": {
|
|
683
|
+
"legacyOds": {
|
|
684
|
+
"addConfiguration": "Add Configuration",
|
|
685
|
+
"duplicate": "Duplicate",
|
|
686
|
+
"duplicateConfiguration": "Duplicate Configuration",
|
|
687
|
+
"duplicateConfirmation": "Duplicate {label}? The copy will be added as a non-default configuration.",
|
|
688
|
+
"deleteConfiguration": "Delete Configuration",
|
|
689
|
+
"deleteConfirmation": "Delete {label}? Restaurants it covers will use the default configuration.",
|
|
690
|
+
"copyLabel": "{label} Copy",
|
|
691
|
+
"description": "Configure how orders are displayed on the ODS screen. Each configuration can target specific restaurants or serve as the default for all unassigned restaurants.",
|
|
692
|
+
"noConfigsYet": "No ODS configurations yet",
|
|
693
|
+
"noConfigsDescription": "Add a configuration to customize the ODS display for your restaurants.",
|
|
694
|
+
"default": "Default",
|
|
695
|
+
"configNumber": "Config #{index}",
|
|
696
|
+
"allRestaurantsDefault": "All restaurants (default)",
|
|
697
|
+
"noRestaurantsSelected": "No restaurants selected",
|
|
698
|
+
"odsConfiguration": "ODS Configuration",
|
|
699
|
+
"label": "Label",
|
|
700
|
+
"defaultConfiguration": "Default configuration",
|
|
701
|
+
"defaultWarning": "Another configuration is already set as default. Saving will replace it as the default.",
|
|
702
|
+
"restaurantInfo": "This configuration applies to all restaurants not matched by a specific entry.",
|
|
703
|
+
"selectRestaurants": "Select restaurants",
|
|
704
|
+
"displaySettings": "Display Settings",
|
|
705
|
+
"groupOrdersBy": "Group Orders By",
|
|
706
|
+
"groupByStatus": "Status",
|
|
707
|
+
"groupByType": "Type",
|
|
708
|
+
"statusBoardLayout": "Status Board Layout",
|
|
709
|
+
"layoutHorizontal": "Horizontal",
|
|
710
|
+
"layoutVertical": "Vertical",
|
|
711
|
+
"statusColumnCount": "Status Column Count",
|
|
712
|
+
"slidingInterval": "Sliding Interval",
|
|
713
|
+
"showDeliveryIcons": "Show Delivery Icons",
|
|
714
|
+
"showOrderCount": "Show Order Count",
|
|
715
|
+
"showEstimatedTime": "Show Estimated Time",
|
|
716
|
+
"showOrderTypeTabs": "Show Order Type Tabs",
|
|
717
|
+
"showProgressBar": "Show Progress Bar",
|
|
718
|
+
"showCurrentOrder": "Show Latest Ready Order",
|
|
719
|
+
"hideCollectedOrders": "Hide Collected Orders",
|
|
720
|
+
"colorOverride": "Color Override",
|
|
721
|
+
"colorOverrideTitle": "ODS Color Override",
|
|
722
|
+
"colorOverrideDescription": "Override default brand colors for the ODS display.",
|
|
723
|
+
"layoutSettings": "Layout Settings",
|
|
724
|
+
"backgroundImage": "Background Image",
|
|
725
|
+
"sidePanelImage": "Side Panel Image",
|
|
726
|
+
"boardWidth": "Board Width (%)",
|
|
727
|
+
"boardAlignment": "Board Alignment",
|
|
728
|
+
"alignLeft": "Left",
|
|
729
|
+
"alignCenter": "Center",
|
|
730
|
+
"alignRight": "Right",
|
|
731
|
+
"disable": "Disable",
|
|
732
|
+
"defaultImage1": "Default image 1",
|
|
733
|
+
"defaultImage2": "Default image 2",
|
|
734
|
+
"customImage": "Custom image",
|
|
735
|
+
"changeImage": "Change image",
|
|
736
|
+
"chooseImage": "Choose from media library",
|
|
737
|
+
"odsPreview": "ODS Preview",
|
|
738
|
+
"openInNewTab": "Open in new tab",
|
|
739
|
+
"previewUnavailable": "Preview unavailable",
|
|
740
|
+
"displaySettingsDescription": "Control how orders are grouped and displayed on the ODS board.",
|
|
741
|
+
"groupOrdersByDescription": "Choose how orders are grouped on the display.",
|
|
742
|
+
"statusBoardLayoutDescription": "Arrange the preparing and ready sections side-by-side (horizontal) or stacked (vertical).",
|
|
743
|
+
"statusColumnCountDescription": "Number of columns within each status section.",
|
|
744
|
+
"slidingIntervalDescription": "Auto-rotation interval for the status board in seconds.",
|
|
745
|
+
"showDeliveryIconsDescription": "Display delivery platform icons next to order numbers.",
|
|
746
|
+
"showOrderCountDescription": "Display order count, drink/food statistics in the preparing section header.",
|
|
747
|
+
"showEstimatedTimeDescription": "Display estimated waiting time in the preparing section header.",
|
|
748
|
+
"showOrderTypeTabsDescription": "Display the In Restaurant / Delivery tabs at the top of the order board.",
|
|
749
|
+
"showProgressBarDescription": "Display a progress bar on the ODS board.",
|
|
750
|
+
"showCurrentOrderDescription": "Display the latest ready order on the ODS board.",
|
|
751
|
+
"hideCollectedOrdersDescription": "Remove an order from the ODS board after every sent item has been collected.",
|
|
752
|
+
"colorOverrideConfigDescription": "Override brand colors specifically for this ODS configuration.",
|
|
753
|
+
"colorsOverridden": "{count} color(s) overridden",
|
|
754
|
+
"configure": "Configure",
|
|
755
|
+
"layoutSettingsDescription": "Configure background, side panel, and board sizing.",
|
|
756
|
+
"backgroundImageDescription": "Choose a built-in background or upload a custom image.",
|
|
757
|
+
"sidePanelImageDescription": "Decorative image panel beside the board.",
|
|
758
|
+
"backgroundDisabled": "Background image is disabled.",
|
|
759
|
+
"sidePanelDisabled": "Side panel is disabled.",
|
|
760
|
+
"position": "Position",
|
|
761
|
+
"widthPercent": "Width (%)",
|
|
762
|
+
"boardWidthDescription": "Width of the order board as a percentage of available space.",
|
|
763
|
+
"boardAlignmentDescription": "Align the order board when width is less than 100%.",
|
|
764
|
+
"defaultImage": "Default image",
|
|
765
|
+
"custom": "Custom",
|
|
766
|
+
"selectPreset": "Preset Templates",
|
|
767
|
+
"selectPresetDescription": "Choose a ready-made ODS setup.",
|
|
768
|
+
"preset1": "Preset 1",
|
|
769
|
+
"preset2": "Preset 2",
|
|
770
|
+
"previewDescription": "Live preview at 1920 x 1080.",
|
|
771
|
+
"statusTemplate": "Status Template",
|
|
772
|
+
"statusTemplateDescription": "Choose a pre-built template for the horizontal status board layout. Non-default templates use a fixed design with hardcoded colors.",
|
|
773
|
+
"templateDefault": "Default",
|
|
774
|
+
"templateBorderedCard": "Bordered Card",
|
|
775
|
+
"templateFloatingTab": "Floating Tab",
|
|
776
|
+
"templateCenteredPill": "Centered Pill",
|
|
777
|
+
"footerMode": "Footer Mode",
|
|
778
|
+
"footerModeDescription": "Choose what appears at the bottom of the ODS screen. 'FeedMe' shows the default branded footer. 'Settings Icon' hides the footer and shows a floating gear icon that auto-hides after 10 seconds.",
|
|
779
|
+
"footerModeFeedme": "FeedMe",
|
|
780
|
+
"footerModeSettingsIcon": "Settings Icon",
|
|
781
|
+
"color": {
|
|
782
|
+
"primary": {
|
|
783
|
+
"title": "Primary Color",
|
|
784
|
+
"description": "Defines the core visual identity; used for key brand elements."
|
|
785
|
+
},
|
|
786
|
+
"secondary": {
|
|
787
|
+
"title": "Secondary Color",
|
|
788
|
+
"description": "Supports the primary color in backgrounds and secondary elements."
|
|
789
|
+
},
|
|
790
|
+
"accent": {
|
|
791
|
+
"title": "Accent Color",
|
|
792
|
+
"description": "Used for emphasis and highlighting important interactive elements."
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
"typography": {
|
|
796
|
+
"onPrimary": {
|
|
797
|
+
"title": "Typo on Primary Color",
|
|
798
|
+
"description": "Ensures clear text visibility when placed over primary-colored backgrounds."
|
|
799
|
+
},
|
|
800
|
+
"primary": {
|
|
801
|
+
"title": "Primary Color",
|
|
802
|
+
"description": "Used for main body text and headings throughout the interface."
|
|
803
|
+
},
|
|
804
|
+
"secondary": {
|
|
805
|
+
"title": "Secondary Color",
|
|
806
|
+
"description": "Applies to supporting content such as descriptions and labels."
|
|
807
|
+
},
|
|
808
|
+
"tertiary": {
|
|
809
|
+
"title": "Tertiary Color",
|
|
810
|
+
"description": "For low-emphasis text like metadata, system notes, or disclaimers."
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
"neutralColors": {
|
|
814
|
+
"light": {
|
|
815
|
+
"title": "Neutral color - light",
|
|
816
|
+
"description": "Used for subtle background areas, separators, or low-emphasis surfaces."
|
|
817
|
+
},
|
|
818
|
+
"mid": {
|
|
819
|
+
"title": "Neutral color - mid",
|
|
820
|
+
"description": "Supports visual structure and is applied to dividers and medium-emphasis UI elements."
|
|
821
|
+
},
|
|
822
|
+
"dark": {
|
|
823
|
+
"title": "Neutral color - dark",
|
|
824
|
+
"description": "Provides strong contrast for high-emphasis elements and helps establish hierarchy."
|
|
825
|
+
}
|
|
826
|
+
},
|
|
827
|
+
"backgroundColors": {
|
|
828
|
+
"base": {
|
|
829
|
+
"title": "Base",
|
|
830
|
+
"description": "The default interface surface; supports layout and content clarity."
|
|
831
|
+
},
|
|
832
|
+
"elevated": {
|
|
833
|
+
"title": "Elevated",
|
|
834
|
+
"description": "Used for layered components like cards and modals to create depth."
|
|
835
|
+
}
|
|
836
|
+
},
|
|
837
|
+
"cancel": "Cancel",
|
|
838
|
+
"confirm": "Confirm",
|
|
839
|
+
"edit": "Edit",
|
|
840
|
+
"delete": "Delete",
|
|
841
|
+
"resetToDefault": "Reset to default",
|
|
842
|
+
"close": "Close",
|
|
843
|
+
"save": "Save",
|
|
844
|
+
"saved": "Settings saved",
|
|
845
|
+
"title": "ODS templates (POS v7)",
|
|
846
|
+
"switchToLegacy": "Switch to POS v7 ODS templates",
|
|
847
|
+
"switchToDisplaySystem": "Switch to Display System (POS v8)",
|
|
848
|
+
"openLegacyTab": "Manage ODS templates for POS v7"
|
|
849
|
+
},
|
|
683
850
|
"addTemplate": "New display template",
|
|
684
851
|
"editTemplate": "Edit display template",
|
|
685
852
|
"templates": "Templates",
|