sa2kit 1.6.78 → 1.6.80

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 (107) hide show
  1. package/dist/ai/llm/electron/index.js +2 -2
  2. package/dist/ai/llm/electron/index.js.map +1 -1
  3. package/dist/ai/llm/electron/index.mjs +2 -2
  4. package/dist/ai/llm/electron/index.mjs.map +1 -1
  5. package/dist/ai/llm/ui/electron/index.js +2 -2
  6. package/dist/ai/llm/ui/electron/index.js.map +1 -1
  7. package/dist/ai/llm/ui/electron/index.mjs +2 -2
  8. package/dist/ai/llm/ui/electron/index.mjs.map +1 -1
  9. package/dist/ai/llm/ui/web/index.js +2 -2
  10. package/dist/ai/llm/ui/web/index.js.map +1 -1
  11. package/dist/ai/llm/ui/web/index.mjs +2 -2
  12. package/dist/ai/llm/ui/web/index.mjs.map +1 -1
  13. package/dist/ai/llm/web/index.js +2 -2
  14. package/dist/ai/llm/web/index.js.map +1 -1
  15. package/dist/ai/llm/web/index.mjs +2 -2
  16. package/dist/ai/llm/web/index.mjs.map +1 -1
  17. package/dist/ar/index.d.mts +2 -2
  18. package/dist/ar/index.d.ts +2 -2
  19. package/dist/ar/index.js +43 -4
  20. package/dist/ar/index.js.map +1 -1
  21. package/dist/ar/index.mjs +43 -4
  22. package/dist/ar/index.mjs.map +1 -1
  23. package/dist/{booking-BX_0AXU6.d.mts → booking-473Db8Bo.d.mts} +6 -0
  24. package/dist/{booking-BX_0AXU6.d.ts → booking-473Db8Bo.d.ts} +6 -0
  25. package/dist/{bookingAdminService-ChzuoCUx.d.ts → bookingAdminService-DqQ7hEGw.d.ts} +1 -1
  26. package/dist/{bookingAdminService-B_D_Jq1W.d.mts → bookingAdminService-SBX4JA_U.d.mts} +1 -1
  27. package/dist/calendar/index.js +8 -4
  28. package/dist/calendar/index.js.map +1 -1
  29. package/dist/calendar/index.mjs +8 -4
  30. package/dist/calendar/index.mjs.map +1 -1
  31. package/dist/calendar/web/index.js +8 -4
  32. package/dist/calendar/web/index.js.map +1 -1
  33. package/dist/calendar/web/index.mjs +8 -4
  34. package/dist/calendar/web/index.mjs.map +1 -1
  35. package/dist/{client-B6JtOkEq.d.ts → client-Bkn6mRI7.d.ts} +1 -1
  36. package/dist/{client-DkSveTk-.d.mts → client-exYn2Qla.d.mts} +1 -1
  37. package/dist/components/index.d.mts +2 -0
  38. package/dist/components/index.d.ts +2 -0
  39. package/dist/components/index.js +8 -4
  40. package/dist/components/index.js.map +1 -1
  41. package/dist/components/index.mjs +8 -4
  42. package/dist/components/index.mjs.map +1 -1
  43. package/dist/{index-B9vIHUEv.d.ts → index-BJpxvH7X.d.ts} +1 -1
  44. package/dist/{index-C3_UPPdv.d.ts → index-CdTIsNsy.d.ts} +2 -2
  45. package/dist/{index-DDuTPOHu.d.mts → index-Cum2EknK.d.mts} +1 -1
  46. package/dist/{index-D6ZIkvt-.d.mts → index-DyxLpkmm.d.mts} +2 -2
  47. package/dist/{index-BjYZSfZa.d.ts → index-XTV6IU-M.d.ts} +2 -2
  48. package/dist/{index-3qQN9Lh_.d.mts → index-z15F7afa.d.mts} +2 -2
  49. package/dist/index.js +8 -4
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.mjs +8 -4
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/mmd/index.d.mts +9 -3
  54. package/dist/mmd/index.d.ts +9 -3
  55. package/dist/mmd/index.js +95 -13
  56. package/dist/mmd/index.js.map +1 -1
  57. package/dist/mmd/index.mjs +95 -13
  58. package/dist/mmd/index.mjs.map +1 -1
  59. package/dist/portfolio/index.js +2 -2
  60. package/dist/portfolio/index.js.map +1 -1
  61. package/dist/portfolio/index.mjs +2 -2
  62. package/dist/portfolio/index.mjs.map +1 -1
  63. package/dist/showmasterpiece/core.d.mts +3 -3
  64. package/dist/showmasterpiece/core.d.ts +3 -3
  65. package/dist/showmasterpiece/db.d.mts +25 -0
  66. package/dist/showmasterpiece/db.d.ts +25 -0
  67. package/dist/showmasterpiece/db.js +35 -0
  68. package/dist/showmasterpiece/db.js.map +1 -1
  69. package/dist/showmasterpiece/db.mjs +35 -0
  70. package/dist/showmasterpiece/db.mjs.map +1 -1
  71. package/dist/showmasterpiece/index.js +279 -226
  72. package/dist/showmasterpiece/index.js.map +1 -1
  73. package/dist/showmasterpiece/index.mjs +279 -226
  74. package/dist/showmasterpiece/index.mjs.map +1 -1
  75. package/dist/showmasterpiece/logic/index.d.mts +2 -2
  76. package/dist/showmasterpiece/logic/index.d.ts +2 -2
  77. package/dist/showmasterpiece/server/index.js +35 -0
  78. package/dist/showmasterpiece/server/index.js.map +1 -1
  79. package/dist/showmasterpiece/server/index.mjs +35 -0
  80. package/dist/showmasterpiece/server/index.mjs.map +1 -1
  81. package/dist/showmasterpiece/service/api/index.d.mts +1 -1
  82. package/dist/showmasterpiece/service/api/index.d.ts +1 -1
  83. package/dist/showmasterpiece/service/client-business/index.d.mts +3 -3
  84. package/dist/showmasterpiece/service/client-business/index.d.ts +3 -3
  85. package/dist/showmasterpiece/service/index.d.mts +6 -6
  86. package/dist/showmasterpiece/service/index.d.ts +6 -6
  87. package/dist/showmasterpiece/service/miniapp/index.d.mts +2 -2
  88. package/dist/showmasterpiece/service/miniapp/index.d.ts +2 -2
  89. package/dist/showmasterpiece/service/web/index.d.mts +4 -4
  90. package/dist/showmasterpiece/service/web/index.d.ts +4 -4
  91. package/dist/showmasterpiece/ui/miniapp/index.d.mts +2 -2
  92. package/dist/showmasterpiece/ui/miniapp/index.d.ts +2 -2
  93. package/dist/showmasterpiece/ui/miniapp/index.js +38 -8
  94. package/dist/showmasterpiece/ui/miniapp/index.js.map +1 -1
  95. package/dist/showmasterpiece/ui/miniapp/index.mjs +38 -8
  96. package/dist/showmasterpiece/ui/miniapp/index.mjs.map +1 -1
  97. package/dist/showmasterpiece/ui/web/index.js +279 -226
  98. package/dist/showmasterpiece/ui/web/index.js.map +1 -1
  99. package/dist/showmasterpiece/ui/web/index.mjs +279 -226
  100. package/dist/showmasterpiece/ui/web/index.mjs.map +1 -1
  101. package/dist/showmasterpiece/web/index.js +279 -226
  102. package/dist/showmasterpiece/web/index.js.map +1 -1
  103. package/dist/showmasterpiece/web/index.mjs +279 -226
  104. package/dist/showmasterpiece/web/index.mjs.map +1 -1
  105. package/dist/{types-CvKvpyN8.d.mts → types-D4vSK3AJ.d.mts} +2 -1
  106. package/dist/{types-CvKvpyN8.d.ts → types-D4vSK3AJ.d.ts} +2 -1
  107. package/package.json +1 -1
@@ -2681,6 +2681,12 @@ function normalizeHomeTabConfig(input) {
2681
2681
  }
2682
2682
  return normalized;
2683
2683
  }
2684
+ function normalizeMiniappFloatingButtonsConfig(input) {
2685
+ return {
2686
+ showCart: input?.showCart ?? true,
2687
+ showHistory: input?.showHistory ?? true
2688
+ };
2689
+ }
2684
2690
  var categories = {
2685
2691
  ["collection" /* COLLECTION */]: {
2686
2692
  value: "collection" /* COLLECTION */,
@@ -3267,7 +3273,7 @@ var DialogOverlay = React56__namespace.forwardRef(({ className, ...props }, ref)
3267
3273
  });
3268
3274
  DialogOverlay.displayName = "DialogOverlay";
3269
3275
  var DialogContent = React56__namespace.forwardRef(
3270
- ({ className, children, onPointerDownOutside, onEscapeKeyDown, showCloseButton = true, ...props }, ref) => {
3276
+ ({ className, children, onPointerDownOutside, onEscapeKeyDown, showCloseButton = true, overlayClassName, ...props }, ref) => {
3271
3277
  const ctx = React56__namespace.useContext(DialogContext);
3272
3278
  const open = !!ctx?.open;
3273
3279
  useOnClickOutside(
@@ -3293,7 +3299,7 @@ var DialogContent = React56__namespace.forwardRef(
3293
3299
  return () => document.removeEventListener("keydown", onKey);
3294
3300
  }, [ctx, onEscapeKeyDown, open]);
3295
3301
  if (!ctx || !open) return null;
3296
- return /* @__PURE__ */ React56__namespace.createElement(DialogPortal, null, /* @__PURE__ */ React56__namespace.createElement(DialogOverlay, null), /* @__PURE__ */ React56__namespace.createElement(
3302
+ return /* @__PURE__ */ React56__namespace.createElement(DialogPortal, null, /* @__PURE__ */ React56__namespace.createElement(DialogOverlay, { className: overlayClassName }), /* @__PURE__ */ React56__namespace.createElement(
3297
3303
  "div",
3298
3304
  {
3299
3305
  ref: mergeRefs(ctx.contentRef, ref),
@@ -4252,8 +4258,10 @@ var Modal = ({
4252
4258
  className,
4253
4259
  maskClosable = true,
4254
4260
  children,
4255
- zIndex = 50
4261
+ zIndex = 50,
4262
+ overlayClassName
4256
4263
  }) => {
4264
+ const contentZIndex = Math.max(zIndex, 1e4);
4257
4265
  return /* @__PURE__ */ React56__namespace.default.createElement(Dialog, { open: isOpen, onOpenChange: (open) => {
4258
4266
  if (!open) {
4259
4267
  if (maskClosable) {
@@ -4263,7 +4271,8 @@ var Modal = ({
4263
4271
  } }, /* @__PURE__ */ React56__namespace.default.createElement(
4264
4272
  DialogContent,
4265
4273
  {
4266
- className: cn("sm:max-w-[425px]", className) + " z-[" + zIndex + "]",
4274
+ className: cn("sm:max-w-[425px]", className),
4275
+ overlayClassName,
4267
4276
  onPointerDownOutside: (e) => {
4268
4277
  if (!maskClosable) e.preventDefault();
4269
4278
  },
@@ -4271,6 +4280,7 @@ var Modal = ({
4271
4280
  if (!maskClosable) e.preventDefault();
4272
4281
  },
4273
4282
  style: {
4283
+ zIndex: contentZIndex,
4274
4284
  ...width ? { maxWidth: typeof width === "number" ? `${width}px` : width } : void 0,
4275
4285
  ...height ? { height: typeof height === "number" ? `${height}px` : height } : void 0
4276
4286
  }
@@ -9064,230 +9074,241 @@ var PopupConfigManagement = () => {
9064
9074
  },
9065
9075
  title: editingConfig ? "\u7F16\u8F91\u5F39\u7A97\u914D\u7F6E" : "\u521B\u5EFA\u5F39\u7A97\u914D\u7F6E",
9066
9076
  width: 600,
9067
- maskClosable: false
9077
+ maskClosable: false,
9078
+ overlayClassName: "bg-black/45 backdrop-blur-[1px]"
9068
9079
  },
9069
- /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-6 max-h-[70vh] overflow-y-auto" }, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u540D\u79F0 *"), /* @__PURE__ */ React56__namespace.default.createElement(
9070
- "input",
9071
- {
9072
- type: "text",
9073
- value: formData.name,
9074
- onChange: (e) => setFormData((prev) => ({ ...prev, name: e.target.value })),
9075
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9076
- placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0"
9077
- }
9078
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u63CF\u8FF0"), /* @__PURE__ */ React56__namespace.default.createElement(
9079
- "textarea",
9080
- {
9081
- value: formData.description,
9082
- onChange: (e) => setFormData((prev) => ({ ...prev, description: e.target.value })),
9083
- rows: 2,
9084
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9085
- placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u63CF\u8FF0"
9086
- }
9087
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u4E1A\u52A1\u573A\u666F *"), /* @__PURE__ */ React56__namespace.default.createElement(
9088
- "select",
9089
- {
9090
- value: formData.businessScene,
9091
- onChange: (e) => setFormData((prev) => ({ ...prev, businessScene: e.target.value })),
9092
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9093
- },
9094
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "cart_checkout" }, "\u8D2D\u7269\u8F66\u63D0\u4EA4"),
9095
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "homepage_visit" }, "\u4E3B\u9875\u8BBF\u95EE"),
9096
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "collection_view" }, "\u753B\u96C6\u6D4F\u89C8"),
9097
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "artwork_detail" }, "\u4F5C\u54C1\u8BE6\u60C5")
9098
- ), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "text-xs text-slate-500 mt-1" }, "\u9009\u62E9\u5F39\u7A97\u5728\u54EA\u4E2A\u573A\u666F\u4E0B\u89E6\u53D1\u663E\u793A")), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
9099
- "input",
9100
- {
9101
- type: "checkbox",
9102
- id: "enabled",
9103
- checked: formData.enabled,
9104
- onChange: (e) => setFormData((prev) => ({ ...prev, enabled: e.target.checked })),
9105
- className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9106
- }
9107
- ), /* @__PURE__ */ React56__namespace.default.createElement("label", { htmlFor: "enabled", className: "text-sm font-medium text-slate-700" }, "\u542F\u7528\u6B64\u914D\u7F6E"))), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u89E6\u53D1\u6761\u4EF6"), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u89E6\u53D1\u7C7B\u578B"), /* @__PURE__ */ React56__namespace.default.createElement(
9108
- "select",
9109
- {
9110
- value: formData.triggerConfig.triggerType,
9111
- onChange: (e) => setFormData((prev) => ({
9112
- ...prev,
9113
- triggerConfig: {
9114
- ...prev.triggerConfig,
9115
- triggerType: e.target.value
9116
- }
9117
- })),
9118
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9119
- },
9120
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "after_deadline" }, "\u8D85\u8FC7\u622A\u6B62\u65F6\u95F4\u540E\u663E\u793A"),
9121
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "before_deadline" }, "\u622A\u6B62\u65F6\u95F4\u524D\u663E\u793A"),
9122
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "always" }, "\u603B\u662F\u663E\u793A")
9123
- )), formData.triggerConfig.triggerType !== "always" && /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u622A\u6B62\u65F6\u95F4"), /* @__PURE__ */ React56__namespace.default.createElement(
9124
- "input",
9125
- {
9126
- type: "datetime-local",
9127
- value: formData.triggerConfig.deadlineTime,
9128
- onChange: (e) => setFormData((prev) => ({
9129
- ...prev,
9130
- triggerConfig: {
9131
- ...prev.triggerConfig,
9132
- deadlineTime: e.target.value
9133
- }
9134
- })),
9135
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9136
- }
9137
- )), formData.triggerConfig.triggerType === "before_deadline" && /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u63D0\u524D\u5206\u949F\u6570"), /* @__PURE__ */ React56__namespace.default.createElement(
9138
- "input",
9139
- {
9140
- type: "number",
9141
- min: "0",
9142
- value: formData.triggerConfig.advanceMinutes,
9143
- onChange: (e) => setFormData((prev) => ({
9144
- ...prev,
9145
- triggerConfig: {
9146
- ...prev.triggerConfig,
9147
- advanceMinutes: parseInt(e.target.value) || 0
9148
- }
9149
- })),
9150
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9151
- placeholder: "\u5728\u622A\u6B62\u65F6\u95F4\u524D\u591A\u5C11\u5206\u949F\u663E\u793A"
9152
- }
9153
- ))), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u5F39\u7A97\u5185\u5BB9"), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u6807\u9898 *"), /* @__PURE__ */ React56__namespace.default.createElement(
9154
- "input",
9155
- {
9156
- type: "text",
9157
- value: formData.contentConfig.title,
9158
- onChange: (e) => setFormData((prev) => ({
9159
- ...prev,
9160
- contentConfig: {
9161
- ...prev.contentConfig,
9162
- title: e.target.value
9163
- }
9164
- })),
9165
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9166
- placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u6807\u9898"
9167
- }
9168
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5185\u5BB9 *"), /* @__PURE__ */ React56__namespace.default.createElement(
9169
- "textarea",
9170
- {
9171
- value: formData.contentConfig.message,
9172
- onChange: (e) => setFormData((prev) => ({
9173
- ...prev,
9174
- contentConfig: {
9175
- ...prev.contentConfig,
9176
- message: e.target.value
9177
- }
9178
- })),
9179
- rows: 4,
9180
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9181
- placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u5185\u5BB9"
9182
- }
9183
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u786E\u8BA4\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__namespace.default.createElement(
9184
- "input",
9185
- {
9186
- type: "text",
9187
- value: formData.contentConfig.confirmText,
9188
- onChange: (e) => setFormData((prev) => ({
9189
- ...prev,
9190
- contentConfig: {
9191
- ...prev.contentConfig,
9192
- confirmText: e.target.value
9193
- }
9194
- })),
9195
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9196
- }
9197
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u53D6\u6D88\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__namespace.default.createElement(
9198
- "input",
9199
- {
9200
- type: "text",
9201
- value: formData.contentConfig.cancelText,
9202
- onChange: (e) => setFormData((prev) => ({
9203
- ...prev,
9204
- contentConfig: {
9205
- ...prev.contentConfig,
9206
- cancelText: e.target.value
9207
- }
9208
- })),
9209
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9210
- }
9211
- ))), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u4E3B\u9898"), /* @__PURE__ */ React56__namespace.default.createElement(
9212
- "select",
9080
+ /* @__PURE__ */ React56__namespace.default.createElement(
9081
+ "div",
9213
9082
  {
9214
- value: formData.contentConfig.theme,
9215
- onChange: (e) => setFormData((prev) => ({
9216
- ...prev,
9217
- contentConfig: {
9218
- ...prev.contentConfig,
9219
- theme: e.target.value
9220
- }
9221
- })),
9222
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9083
+ className: "space-y-6 max-h-[76vh] overflow-y-auto overscroll-contain pr-1",
9084
+ style: { WebkitOverflowScrolling: "touch" }
9223
9085
  },
9224
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "warning" }, "\u8B66\u544A"),
9225
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "info" }, "\u4FE1\u606F"),
9226
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "error" }, "\u9519\u8BEF"),
9227
- /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "success" }, "\u6210\u529F")
9228
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
9229
- "input",
9230
- {
9231
- type: "checkbox",
9232
- id: "showCancel",
9233
- checked: formData.contentConfig.showCancel,
9234
- onChange: (e) => setFormData((prev) => ({
9235
- ...prev,
9236
- contentConfig: {
9237
- ...prev.contentConfig,
9238
- showCancel: e.target.checked
9239
- }
9240
- })),
9241
- className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9242
- }
9243
- ), /* @__PURE__ */ React56__namespace.default.createElement("label", { htmlFor: "showCancel", className: "text-sm font-medium text-slate-700" }, "\u663E\u793A\u53D6\u6D88\u6309\u94AE"))), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u663E\u793A\u8BBE\u7F6E"), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5BBD\u5EA6 (px)"), /* @__PURE__ */ React56__namespace.default.createElement(
9244
- "input",
9245
- {
9246
- type: "number",
9247
- min: "200",
9248
- max: "800",
9249
- value: formData.displayConfig.width,
9250
- onChange: (e) => setFormData((prev) => ({
9251
- ...prev,
9252
- displayConfig: {
9253
- ...prev.displayConfig,
9254
- width: parseInt(e.target.value) || 400
9255
- }
9256
- })),
9257
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9258
- }
9259
- )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u81EA\u52A8\u5173\u95ED (\u79D2\uFF0C0=\u4E0D\u5173\u95ED)"), /* @__PURE__ */ React56__namespace.default.createElement(
9260
- "input",
9261
- {
9262
- type: "number",
9263
- min: "0",
9264
- max: "60",
9265
- value: formData.displayConfig.autoCloseSeconds,
9266
- onChange: (e) => setFormData((prev) => ({
9267
- ...prev,
9268
- displayConfig: {
9269
- ...prev.displayConfig,
9270
- autoCloseSeconds: parseInt(e.target.value) || 0
9271
- }
9272
- })),
9273
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9274
- }
9275
- ))), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
9276
- "input",
9277
- {
9278
- type: "checkbox",
9279
- id: "maskClosable",
9280
- checked: formData.displayConfig.maskClosable,
9281
- onChange: (e) => setFormData((prev) => ({
9282
- ...prev,
9283
- displayConfig: {
9284
- ...prev.displayConfig,
9285
- maskClosable: e.target.checked
9286
- }
9287
- })),
9288
- className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9289
- }
9290
- ), /* @__PURE__ */ React56__namespace.default.createElement("label", { htmlFor: "maskClosable", className: "text-sm font-medium text-slate-700" }, "\u5141\u8BB8\u70B9\u51FB\u906E\u7F69\u5173\u95ED")))),
9086
+ /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u540D\u79F0 *"), /* @__PURE__ */ React56__namespace.default.createElement(
9087
+ "input",
9088
+ {
9089
+ type: "text",
9090
+ value: formData.name,
9091
+ onChange: (e) => setFormData((prev) => ({ ...prev, name: e.target.value })),
9092
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9093
+ placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0"
9094
+ }
9095
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u63CF\u8FF0"), /* @__PURE__ */ React56__namespace.default.createElement(
9096
+ "textarea",
9097
+ {
9098
+ value: formData.description,
9099
+ onChange: (e) => setFormData((prev) => ({ ...prev, description: e.target.value })),
9100
+ rows: 2,
9101
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9102
+ placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u63CF\u8FF0"
9103
+ }
9104
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u4E1A\u52A1\u573A\u666F *"), /* @__PURE__ */ React56__namespace.default.createElement(
9105
+ "select",
9106
+ {
9107
+ value: formData.businessScene,
9108
+ onChange: (e) => setFormData((prev) => ({ ...prev, businessScene: e.target.value })),
9109
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9110
+ },
9111
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "cart_checkout" }, "\u8D2D\u7269\u8F66\u63D0\u4EA4"),
9112
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "homepage_visit" }, "\u4E3B\u9875\u8BBF\u95EE"),
9113
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "collection_view" }, "\u753B\u96C6\u6D4F\u89C8"),
9114
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "artwork_detail" }, "\u4F5C\u54C1\u8BE6\u60C5")
9115
+ ), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "text-xs text-slate-500 mt-1" }, "\u9009\u62E9\u5F39\u7A97\u5728\u54EA\u4E2A\u573A\u666F\u4E0B\u89E6\u53D1\u663E\u793A")), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
9116
+ "input",
9117
+ {
9118
+ type: "checkbox",
9119
+ id: "enabled",
9120
+ checked: formData.enabled,
9121
+ onChange: (e) => setFormData((prev) => ({ ...prev, enabled: e.target.checked })),
9122
+ className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9123
+ }
9124
+ ), /* @__PURE__ */ React56__namespace.default.createElement("label", { htmlFor: "enabled", className: "text-sm font-medium text-slate-700" }, "\u542F\u7528\u6B64\u914D\u7F6E"))),
9125
+ /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u89E6\u53D1\u6761\u4EF6"), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u89E6\u53D1\u7C7B\u578B"), /* @__PURE__ */ React56__namespace.default.createElement(
9126
+ "select",
9127
+ {
9128
+ value: formData.triggerConfig.triggerType,
9129
+ onChange: (e) => setFormData((prev) => ({
9130
+ ...prev,
9131
+ triggerConfig: {
9132
+ ...prev.triggerConfig,
9133
+ triggerType: e.target.value
9134
+ }
9135
+ })),
9136
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9137
+ },
9138
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "after_deadline" }, "\u8D85\u8FC7\u622A\u6B62\u65F6\u95F4\u540E\u663E\u793A"),
9139
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "before_deadline" }, "\u622A\u6B62\u65F6\u95F4\u524D\u663E\u793A"),
9140
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "always" }, "\u603B\u662F\u663E\u793A")
9141
+ )), formData.triggerConfig.triggerType !== "always" && /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u622A\u6B62\u65F6\u95F4"), /* @__PURE__ */ React56__namespace.default.createElement(
9142
+ "input",
9143
+ {
9144
+ type: "datetime-local",
9145
+ value: formData.triggerConfig.deadlineTime,
9146
+ onChange: (e) => setFormData((prev) => ({
9147
+ ...prev,
9148
+ triggerConfig: {
9149
+ ...prev.triggerConfig,
9150
+ deadlineTime: e.target.value
9151
+ }
9152
+ })),
9153
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9154
+ }
9155
+ )), formData.triggerConfig.triggerType === "before_deadline" && /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u63D0\u524D\u5206\u949F\u6570"), /* @__PURE__ */ React56__namespace.default.createElement(
9156
+ "input",
9157
+ {
9158
+ type: "number",
9159
+ min: "0",
9160
+ value: formData.triggerConfig.advanceMinutes,
9161
+ onChange: (e) => setFormData((prev) => ({
9162
+ ...prev,
9163
+ triggerConfig: {
9164
+ ...prev.triggerConfig,
9165
+ advanceMinutes: parseInt(e.target.value) || 0
9166
+ }
9167
+ })),
9168
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9169
+ placeholder: "\u5728\u622A\u6B62\u65F6\u95F4\u524D\u591A\u5C11\u5206\u949F\u663E\u793A"
9170
+ }
9171
+ ))),
9172
+ /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u5F39\u7A97\u5185\u5BB9"), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u6807\u9898 *"), /* @__PURE__ */ React56__namespace.default.createElement(
9173
+ "input",
9174
+ {
9175
+ type: "text",
9176
+ value: formData.contentConfig.title,
9177
+ onChange: (e) => setFormData((prev) => ({
9178
+ ...prev,
9179
+ contentConfig: {
9180
+ ...prev.contentConfig,
9181
+ title: e.target.value
9182
+ }
9183
+ })),
9184
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9185
+ placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u6807\u9898"
9186
+ }
9187
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5185\u5BB9 *"), /* @__PURE__ */ React56__namespace.default.createElement(
9188
+ "textarea",
9189
+ {
9190
+ value: formData.contentConfig.message,
9191
+ onChange: (e) => setFormData((prev) => ({
9192
+ ...prev,
9193
+ contentConfig: {
9194
+ ...prev.contentConfig,
9195
+ message: e.target.value
9196
+ }
9197
+ })),
9198
+ rows: 4,
9199
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9200
+ placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u5185\u5BB9"
9201
+ }
9202
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u786E\u8BA4\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__namespace.default.createElement(
9203
+ "input",
9204
+ {
9205
+ type: "text",
9206
+ value: formData.contentConfig.confirmText,
9207
+ onChange: (e) => setFormData((prev) => ({
9208
+ ...prev,
9209
+ contentConfig: {
9210
+ ...prev.contentConfig,
9211
+ confirmText: e.target.value
9212
+ }
9213
+ })),
9214
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9215
+ }
9216
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u53D6\u6D88\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__namespace.default.createElement(
9217
+ "input",
9218
+ {
9219
+ type: "text",
9220
+ value: formData.contentConfig.cancelText,
9221
+ onChange: (e) => setFormData((prev) => ({
9222
+ ...prev,
9223
+ contentConfig: {
9224
+ ...prev.contentConfig,
9225
+ cancelText: e.target.value
9226
+ }
9227
+ })),
9228
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9229
+ }
9230
+ ))), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u4E3B\u9898"), /* @__PURE__ */ React56__namespace.default.createElement(
9231
+ "select",
9232
+ {
9233
+ value: formData.contentConfig.theme,
9234
+ onChange: (e) => setFormData((prev) => ({
9235
+ ...prev,
9236
+ contentConfig: {
9237
+ ...prev.contentConfig,
9238
+ theme: e.target.value
9239
+ }
9240
+ })),
9241
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9242
+ },
9243
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "warning" }, "\u8B66\u544A"),
9244
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "info" }, "\u4FE1\u606F"),
9245
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "error" }, "\u9519\u8BEF"),
9246
+ /* @__PURE__ */ React56__namespace.default.createElement("option", { value: "success" }, "\u6210\u529F")
9247
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
9248
+ "input",
9249
+ {
9250
+ type: "checkbox",
9251
+ id: "showCancel",
9252
+ checked: formData.contentConfig.showCancel,
9253
+ onChange: (e) => setFormData((prev) => ({
9254
+ ...prev,
9255
+ contentConfig: {
9256
+ ...prev.contentConfig,
9257
+ showCancel: e.target.checked
9258
+ }
9259
+ })),
9260
+ className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9261
+ }
9262
+ ), /* @__PURE__ */ React56__namespace.default.createElement("label", { htmlFor: "showCancel", className: "text-sm font-medium text-slate-700" }, "\u663E\u793A\u53D6\u6D88\u6309\u94AE"))),
9263
+ /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "font-medium text-slate-800" }, "\u663E\u793A\u8BBE\u7F6E"), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5BBD\u5EA6 (px)"), /* @__PURE__ */ React56__namespace.default.createElement(
9264
+ "input",
9265
+ {
9266
+ type: "number",
9267
+ min: "200",
9268
+ max: "800",
9269
+ value: formData.displayConfig.width,
9270
+ onChange: (e) => setFormData((prev) => ({
9271
+ ...prev,
9272
+ displayConfig: {
9273
+ ...prev.displayConfig,
9274
+ width: parseInt(e.target.value) || 400
9275
+ }
9276
+ })),
9277
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9278
+ }
9279
+ )), /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u81EA\u52A8\u5173\u95ED (\u79D2\uFF0C0=\u4E0D\u5173\u95ED)"), /* @__PURE__ */ React56__namespace.default.createElement(
9280
+ "input",
9281
+ {
9282
+ type: "number",
9283
+ min: "0",
9284
+ max: "60",
9285
+ value: formData.displayConfig.autoCloseSeconds,
9286
+ onChange: (e) => setFormData((prev) => ({
9287
+ ...prev,
9288
+ displayConfig: {
9289
+ ...prev.displayConfig,
9290
+ autoCloseSeconds: parseInt(e.target.value) || 0
9291
+ }
9292
+ })),
9293
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9294
+ }
9295
+ ))), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
9296
+ "input",
9297
+ {
9298
+ type: "checkbox",
9299
+ id: "maskClosable",
9300
+ checked: formData.displayConfig.maskClosable,
9301
+ onChange: (e) => setFormData((prev) => ({
9302
+ ...prev,
9303
+ displayConfig: {
9304
+ ...prev.displayConfig,
9305
+ maskClosable: e.target.checked
9306
+ }
9307
+ })),
9308
+ className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9309
+ }
9310
+ ), /* @__PURE__ */ React56__namespace.default.createElement("label", { htmlFor: "maskClosable", className: "text-sm font-medium text-slate-700" }, "\u5141\u8BB8\u70B9\u51FB\u906E\u7F69\u5173\u95ED")))
9311
+ ),
9291
9312
  /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement("h4", { className: "text-sm font-medium text-slate-800 mb-3" }, "\u6D41\u7A0B\u63A7\u5236"), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React56__namespace.default.createElement(
9292
9313
  "input",
9293
9314
  {
@@ -10446,6 +10467,7 @@ function ConfigPageContent() {
10446
10467
  enableCategories: config?.enableCategories || true,
10447
10468
  defaultCategory: config?.defaultCategory || "all",
10448
10469
  homeTabConfig: normalizeHomeTabConfig(config?.homeTabConfig),
10470
+ miniappFloatingButtons: normalizeMiniappFloatingButtonsConfig(config?.miniappFloatingButtons),
10449
10471
  theme: config?.theme || "light",
10450
10472
  language: config?.language || "zh"
10451
10473
  });
@@ -10480,6 +10502,7 @@ function ConfigPageContent() {
10480
10502
  enableCategories: config.enableCategories,
10481
10503
  defaultCategory: config.defaultCategory,
10482
10504
  homeTabConfig: normalizeHomeTabConfig(config.homeTabConfig),
10505
+ miniappFloatingButtons: normalizeMiniappFloatingButtonsConfig(config.miniappFloatingButtons),
10483
10506
  theme: config.theme,
10484
10507
  language: config.language
10485
10508
  });
@@ -10882,7 +10905,37 @@ function ConfigPageContent() {
10882
10905
  onChange: (e) => setConfigForm((prev) => ({ ...prev, enableCategories: e.target.checked })),
10883
10906
  className: "h-4 w-4 rounded border-gray-300"
10884
10907
  }
10885
- ), /* @__PURE__ */ React56__namespace.default.createElement(Label, { htmlFor: "enableCategories", className: "text-sm font-medium" }, "\u542F\u7528\u5206\u7C7B\u529F\u80FD")))))), /* @__PURE__ */ React56__namespace.default.createElement(TabsContent, { value: "homeTabs", className: "space-y-6" }, /* @__PURE__ */ React56__namespace.default.createElement(Card, null, /* @__PURE__ */ React56__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement(CardTitle, null, "\u9996\u9875\u5206\u7C7BTab\u914D\u7F6E"), /* @__PURE__ */ React56__namespace.default.createElement(CardDescription, null, "\u7BA1\u7406\u9996\u9875\u5206\u7C7BTab\u7684\u663E\u793A\u987A\u5E8F\u4E0E\u663E\u793A/\u9690\u85CF")), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React56__namespace.default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(true) }, "\u5168\u90E8\u663E\u793A"), /* @__PURE__ */ React56__namespace.default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(false) }, "\u5168\u90E8\u9690\u85CF"), /* @__PURE__ */ React56__namespace.default.createElement(Button, { variant: "outline", onClick: handleResetHomeTabs, className: "gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(lucideReact.RotateCcw, { size: 16 }), "\u91CD\u7F6E\u987A\u5E8F"), /* @__PURE__ */ React56__namespace.default.createElement(Button, { onClick: handleSaveConfig, className: "gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(lucideReact.Save, { size: 16 }), "\u4FDD\u5B58\u914D\u7F6E")))), /* @__PURE__ */ React56__namespace.default.createElement(CardContent, null, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex flex-col lg:flex-row lg:items-end gap-3 mb-4" }, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex-1 space-y-2" }, /* @__PURE__ */ React56__namespace.default.createElement(Label, null, "\u5206\u7C7B\u540D\u79F0"), /* @__PURE__ */ React56__namespace.default.createElement(
10908
+ ), /* @__PURE__ */ React56__namespace.default.createElement(Label, { htmlFor: "enableCategories", className: "text-sm font-medium" }, "\u542F\u7528\u5206\u7C7B\u529F\u80FD")), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "space-y-2 rounded-xl border border-slate-200 p-3" }, /* @__PURE__ */ React56__namespace.default.createElement("p", { className: "text-sm font-medium text-slate-900" }, "\u5C0F\u7A0B\u5E8F\u60AC\u6D6E\u6309\u94AE"), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
10909
+ "input",
10910
+ {
10911
+ id: "miniappShowCart",
10912
+ type: "checkbox",
10913
+ checked: configForm.miniappFloatingButtons.showCart,
10914
+ onChange: (e) => setConfigForm((prev) => ({
10915
+ ...prev,
10916
+ miniappFloatingButtons: {
10917
+ ...prev.miniappFloatingButtons,
10918
+ showCart: e.target.checked
10919
+ }
10920
+ })),
10921
+ className: "h-4 w-4 rounded border-gray-300"
10922
+ }
10923
+ ), /* @__PURE__ */ React56__namespace.default.createElement(Label, { htmlFor: "miniappShowCart", className: "text-sm font-medium" }, "\u663E\u793A\u201C\u8D2D\u7269\u8F66\u201D\u6309\u94AE")), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React56__namespace.default.createElement(
10924
+ "input",
10925
+ {
10926
+ id: "miniappShowHistory",
10927
+ type: "checkbox",
10928
+ checked: configForm.miniappFloatingButtons.showHistory,
10929
+ onChange: (e) => setConfigForm((prev) => ({
10930
+ ...prev,
10931
+ miniappFloatingButtons: {
10932
+ ...prev.miniappFloatingButtons,
10933
+ showHistory: e.target.checked
10934
+ }
10935
+ })),
10936
+ className: "h-4 w-4 rounded border-gray-300"
10937
+ }
10938
+ ), /* @__PURE__ */ React56__namespace.default.createElement(Label, { htmlFor: "miniappShowHistory", className: "text-sm font-medium" }, "\u663E\u793A\u201C\u5386\u53F2\u8BB0\u5F55\u201D\u6309\u94AE"))))))), /* @__PURE__ */ React56__namespace.default.createElement(TabsContent, { value: "homeTabs", className: "space-y-6" }, /* @__PURE__ */ React56__namespace.default.createElement(Card, null, /* @__PURE__ */ React56__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React56__namespace.default.createElement("div", null, /* @__PURE__ */ React56__namespace.default.createElement(CardTitle, null, "\u9996\u9875\u5206\u7C7BTab\u914D\u7F6E"), /* @__PURE__ */ React56__namespace.default.createElement(CardDescription, null, "\u7BA1\u7406\u9996\u9875\u5206\u7C7BTab\u7684\u663E\u793A\u987A\u5E8F\u4E0E\u663E\u793A/\u9690\u85CF")), /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React56__namespace.default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(true) }, "\u5168\u90E8\u663E\u793A"), /* @__PURE__ */ React56__namespace.default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(false) }, "\u5168\u90E8\u9690\u85CF"), /* @__PURE__ */ React56__namespace.default.createElement(Button, { variant: "outline", onClick: handleResetHomeTabs, className: "gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(lucideReact.RotateCcw, { size: 16 }), "\u91CD\u7F6E\u987A\u5E8F"), /* @__PURE__ */ React56__namespace.default.createElement(Button, { onClick: handleSaveConfig, className: "gap-2" }, /* @__PURE__ */ React56__namespace.default.createElement(lucideReact.Save, { size: 16 }), "\u4FDD\u5B58\u914D\u7F6E")))), /* @__PURE__ */ React56__namespace.default.createElement(CardContent, null, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex flex-col lg:flex-row lg:items-end gap-3 mb-4" }, /* @__PURE__ */ React56__namespace.default.createElement("div", { className: "flex-1 space-y-2" }, /* @__PURE__ */ React56__namespace.default.createElement(Label, null, "\u5206\u7C7B\u540D\u79F0"), /* @__PURE__ */ React56__namespace.default.createElement(
10886
10939
  Input,
10887
10940
  {
10888
10941
  value: newHomeTabCategory,