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
@@ -2657,6 +2657,12 @@ function normalizeHomeTabConfig(input) {
2657
2657
  }
2658
2658
  return normalized;
2659
2659
  }
2660
+ function normalizeMiniappFloatingButtonsConfig(input) {
2661
+ return {
2662
+ showCart: input?.showCart ?? true,
2663
+ showHistory: input?.showHistory ?? true
2664
+ };
2665
+ }
2660
2666
  var categories = {
2661
2667
  ["collection" /* COLLECTION */]: {
2662
2668
  value: "collection" /* COLLECTION */,
@@ -3243,7 +3249,7 @@ var DialogOverlay = React56.forwardRef(({ className, ...props }, ref) => {
3243
3249
  });
3244
3250
  DialogOverlay.displayName = "DialogOverlay";
3245
3251
  var DialogContent = React56.forwardRef(
3246
- ({ className, children, onPointerDownOutside, onEscapeKeyDown, showCloseButton = true, ...props }, ref) => {
3252
+ ({ className, children, onPointerDownOutside, onEscapeKeyDown, showCloseButton = true, overlayClassName, ...props }, ref) => {
3247
3253
  const ctx = React56.useContext(DialogContext);
3248
3254
  const open = !!ctx?.open;
3249
3255
  useOnClickOutside(
@@ -3269,7 +3275,7 @@ var DialogContent = React56.forwardRef(
3269
3275
  return () => document.removeEventListener("keydown", onKey);
3270
3276
  }, [ctx, onEscapeKeyDown, open]);
3271
3277
  if (!ctx || !open) return null;
3272
- return /* @__PURE__ */ React56.createElement(DialogPortal, null, /* @__PURE__ */ React56.createElement(DialogOverlay, null), /* @__PURE__ */ React56.createElement(
3278
+ return /* @__PURE__ */ React56.createElement(DialogPortal, null, /* @__PURE__ */ React56.createElement(DialogOverlay, { className: overlayClassName }), /* @__PURE__ */ React56.createElement(
3273
3279
  "div",
3274
3280
  {
3275
3281
  ref: mergeRefs(ctx.contentRef, ref),
@@ -4228,8 +4234,10 @@ var Modal = ({
4228
4234
  className,
4229
4235
  maskClosable = true,
4230
4236
  children,
4231
- zIndex = 50
4237
+ zIndex = 50,
4238
+ overlayClassName
4232
4239
  }) => {
4240
+ const contentZIndex = Math.max(zIndex, 1e4);
4233
4241
  return /* @__PURE__ */ React56__default.createElement(Dialog, { open: isOpen, onOpenChange: (open) => {
4234
4242
  if (!open) {
4235
4243
  if (maskClosable) {
@@ -4239,7 +4247,8 @@ var Modal = ({
4239
4247
  } }, /* @__PURE__ */ React56__default.createElement(
4240
4248
  DialogContent,
4241
4249
  {
4242
- className: cn("sm:max-w-[425px]", className) + " z-[" + zIndex + "]",
4250
+ className: cn("sm:max-w-[425px]", className),
4251
+ overlayClassName,
4243
4252
  onPointerDownOutside: (e) => {
4244
4253
  if (!maskClosable) e.preventDefault();
4245
4254
  },
@@ -4247,6 +4256,7 @@ var Modal = ({
4247
4256
  if (!maskClosable) e.preventDefault();
4248
4257
  },
4249
4258
  style: {
4259
+ zIndex: contentZIndex,
4250
4260
  ...width ? { maxWidth: typeof width === "number" ? `${width}px` : width } : void 0,
4251
4261
  ...height ? { height: typeof height === "number" ? `${height}px` : height } : void 0
4252
4262
  }
@@ -9040,230 +9050,241 @@ var PopupConfigManagement = () => {
9040
9050
  },
9041
9051
  title: editingConfig ? "\u7F16\u8F91\u5F39\u7A97\u914D\u7F6E" : "\u521B\u5EFA\u5F39\u7A97\u914D\u7F6E",
9042
9052
  width: 600,
9043
- maskClosable: false
9053
+ maskClosable: false,
9054
+ overlayClassName: "bg-black/45 backdrop-blur-[1px]"
9044
9055
  },
9045
- /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-6 max-h-[70vh] overflow-y-auto" }, /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u540D\u79F0 *"), /* @__PURE__ */ React56__default.createElement(
9046
- "input",
9047
- {
9048
- type: "text",
9049
- value: formData.name,
9050
- onChange: (e) => setFormData((prev) => ({ ...prev, name: e.target.value })),
9051
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9052
- placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0"
9053
- }
9054
- )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u63CF\u8FF0"), /* @__PURE__ */ React56__default.createElement(
9055
- "textarea",
9056
- {
9057
- value: formData.description,
9058
- onChange: (e) => setFormData((prev) => ({ ...prev, description: e.target.value })),
9059
- rows: 2,
9060
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9061
- placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u63CF\u8FF0"
9062
- }
9063
- )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u4E1A\u52A1\u573A\u666F *"), /* @__PURE__ */ React56__default.createElement(
9064
- "select",
9065
- {
9066
- value: formData.businessScene,
9067
- onChange: (e) => setFormData((prev) => ({ ...prev, businessScene: e.target.value })),
9068
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9069
- },
9070
- /* @__PURE__ */ React56__default.createElement("option", { value: "cart_checkout" }, "\u8D2D\u7269\u8F66\u63D0\u4EA4"),
9071
- /* @__PURE__ */ React56__default.createElement("option", { value: "homepage_visit" }, "\u4E3B\u9875\u8BBF\u95EE"),
9072
- /* @__PURE__ */ React56__default.createElement("option", { value: "collection_view" }, "\u753B\u96C6\u6D4F\u89C8"),
9073
- /* @__PURE__ */ React56__default.createElement("option", { value: "artwork_detail" }, "\u4F5C\u54C1\u8BE6\u60C5")
9074
- ), /* @__PURE__ */ React56__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__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__default.createElement(
9075
- "input",
9076
- {
9077
- type: "checkbox",
9078
- id: "enabled",
9079
- checked: formData.enabled,
9080
- onChange: (e) => setFormData((prev) => ({ ...prev, enabled: e.target.checked })),
9081
- className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9082
- }
9083
- ), /* @__PURE__ */ React56__default.createElement("label", { htmlFor: "enabled", className: "text-sm font-medium text-slate-700" }, "\u542F\u7528\u6B64\u914D\u7F6E"))), /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u89E6\u53D1\u6761\u4EF6"), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u89E6\u53D1\u7C7B\u578B"), /* @__PURE__ */ React56__default.createElement(
9084
- "select",
9085
- {
9086
- value: formData.triggerConfig.triggerType,
9087
- onChange: (e) => setFormData((prev) => ({
9088
- ...prev,
9089
- triggerConfig: {
9090
- ...prev.triggerConfig,
9091
- triggerType: e.target.value
9092
- }
9093
- })),
9094
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9095
- },
9096
- /* @__PURE__ */ React56__default.createElement("option", { value: "after_deadline" }, "\u8D85\u8FC7\u622A\u6B62\u65F6\u95F4\u540E\u663E\u793A"),
9097
- /* @__PURE__ */ React56__default.createElement("option", { value: "before_deadline" }, "\u622A\u6B62\u65F6\u95F4\u524D\u663E\u793A"),
9098
- /* @__PURE__ */ React56__default.createElement("option", { value: "always" }, "\u603B\u662F\u663E\u793A")
9099
- )), formData.triggerConfig.triggerType !== "always" && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u622A\u6B62\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement(
9100
- "input",
9101
- {
9102
- type: "datetime-local",
9103
- value: formData.triggerConfig.deadlineTime,
9104
- onChange: (e) => setFormData((prev) => ({
9105
- ...prev,
9106
- triggerConfig: {
9107
- ...prev.triggerConfig,
9108
- deadlineTime: e.target.value
9109
- }
9110
- })),
9111
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9112
- }
9113
- )), formData.triggerConfig.triggerType === "before_deadline" && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u63D0\u524D\u5206\u949F\u6570"), /* @__PURE__ */ React56__default.createElement(
9114
- "input",
9115
- {
9116
- type: "number",
9117
- min: "0",
9118
- value: formData.triggerConfig.advanceMinutes,
9119
- onChange: (e) => setFormData((prev) => ({
9120
- ...prev,
9121
- triggerConfig: {
9122
- ...prev.triggerConfig,
9123
- advanceMinutes: parseInt(e.target.value) || 0
9124
- }
9125
- })),
9126
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9127
- placeholder: "\u5728\u622A\u6B62\u65F6\u95F4\u524D\u591A\u5C11\u5206\u949F\u663E\u793A"
9128
- }
9129
- ))), /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u5F39\u7A97\u5185\u5BB9"), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u6807\u9898 *"), /* @__PURE__ */ React56__default.createElement(
9130
- "input",
9131
- {
9132
- type: "text",
9133
- value: formData.contentConfig.title,
9134
- onChange: (e) => setFormData((prev) => ({
9135
- ...prev,
9136
- contentConfig: {
9137
- ...prev.contentConfig,
9138
- title: e.target.value
9139
- }
9140
- })),
9141
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9142
- placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u6807\u9898"
9143
- }
9144
- )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5185\u5BB9 *"), /* @__PURE__ */ React56__default.createElement(
9145
- "textarea",
9146
- {
9147
- value: formData.contentConfig.message,
9148
- onChange: (e) => setFormData((prev) => ({
9149
- ...prev,
9150
- contentConfig: {
9151
- ...prev.contentConfig,
9152
- message: e.target.value
9153
- }
9154
- })),
9155
- rows: 4,
9156
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9157
- placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u5185\u5BB9"
9158
- }
9159
- )), /* @__PURE__ */ React56__default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u786E\u8BA4\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__default.createElement(
9160
- "input",
9161
- {
9162
- type: "text",
9163
- value: formData.contentConfig.confirmText,
9164
- onChange: (e) => setFormData((prev) => ({
9165
- ...prev,
9166
- contentConfig: {
9167
- ...prev.contentConfig,
9168
- confirmText: e.target.value
9169
- }
9170
- })),
9171
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9172
- }
9173
- )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u53D6\u6D88\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__default.createElement(
9174
- "input",
9175
- {
9176
- type: "text",
9177
- value: formData.contentConfig.cancelText,
9178
- onChange: (e) => setFormData((prev) => ({
9179
- ...prev,
9180
- contentConfig: {
9181
- ...prev.contentConfig,
9182
- cancelText: e.target.value
9183
- }
9184
- })),
9185
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9186
- }
9187
- ))), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u4E3B\u9898"), /* @__PURE__ */ React56__default.createElement(
9188
- "select",
9056
+ /* @__PURE__ */ React56__default.createElement(
9057
+ "div",
9189
9058
  {
9190
- value: formData.contentConfig.theme,
9191
- onChange: (e) => setFormData((prev) => ({
9192
- ...prev,
9193
- contentConfig: {
9194
- ...prev.contentConfig,
9195
- theme: e.target.value
9196
- }
9197
- })),
9198
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9059
+ className: "space-y-6 max-h-[76vh] overflow-y-auto overscroll-contain pr-1",
9060
+ style: { WebkitOverflowScrolling: "touch" }
9199
9061
  },
9200
- /* @__PURE__ */ React56__default.createElement("option", { value: "warning" }, "\u8B66\u544A"),
9201
- /* @__PURE__ */ React56__default.createElement("option", { value: "info" }, "\u4FE1\u606F"),
9202
- /* @__PURE__ */ React56__default.createElement("option", { value: "error" }, "\u9519\u8BEF"),
9203
- /* @__PURE__ */ React56__default.createElement("option", { value: "success" }, "\u6210\u529F")
9204
- )), /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__default.createElement(
9205
- "input",
9206
- {
9207
- type: "checkbox",
9208
- id: "showCancel",
9209
- checked: formData.contentConfig.showCancel,
9210
- onChange: (e) => setFormData((prev) => ({
9211
- ...prev,
9212
- contentConfig: {
9213
- ...prev.contentConfig,
9214
- showCancel: e.target.checked
9215
- }
9216
- })),
9217
- className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9218
- }
9219
- ), /* @__PURE__ */ React56__default.createElement("label", { htmlFor: "showCancel", className: "text-sm font-medium text-slate-700" }, "\u663E\u793A\u53D6\u6D88\u6309\u94AE"))), /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u663E\u793A\u8BBE\u7F6E"), /* @__PURE__ */ React56__default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5BBD\u5EA6 (px)"), /* @__PURE__ */ React56__default.createElement(
9220
- "input",
9221
- {
9222
- type: "number",
9223
- min: "200",
9224
- max: "800",
9225
- value: formData.displayConfig.width,
9226
- onChange: (e) => setFormData((prev) => ({
9227
- ...prev,
9228
- displayConfig: {
9229
- ...prev.displayConfig,
9230
- width: parseInt(e.target.value) || 400
9231
- }
9232
- })),
9233
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9234
- }
9235
- )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__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__default.createElement(
9236
- "input",
9237
- {
9238
- type: "number",
9239
- min: "0",
9240
- max: "60",
9241
- value: formData.displayConfig.autoCloseSeconds,
9242
- onChange: (e) => setFormData((prev) => ({
9243
- ...prev,
9244
- displayConfig: {
9245
- ...prev.displayConfig,
9246
- autoCloseSeconds: parseInt(e.target.value) || 0
9247
- }
9248
- })),
9249
- className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9250
- }
9251
- ))), /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__default.createElement(
9252
- "input",
9253
- {
9254
- type: "checkbox",
9255
- id: "maskClosable",
9256
- checked: formData.displayConfig.maskClosable,
9257
- onChange: (e) => setFormData((prev) => ({
9258
- ...prev,
9259
- displayConfig: {
9260
- ...prev.displayConfig,
9261
- maskClosable: e.target.checked
9262
- }
9263
- })),
9264
- className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9265
- }
9266
- ), /* @__PURE__ */ React56__default.createElement("label", { htmlFor: "maskClosable", className: "text-sm font-medium text-slate-700" }, "\u5141\u8BB8\u70B9\u51FB\u906E\u7F69\u5173\u95ED")))),
9062
+ /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u57FA\u672C\u4FE1\u606F"), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u540D\u79F0 *"), /* @__PURE__ */ React56__default.createElement(
9063
+ "input",
9064
+ {
9065
+ type: "text",
9066
+ value: formData.name,
9067
+ onChange: (e) => setFormData((prev) => ({ ...prev, name: e.target.value })),
9068
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9069
+ placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u540D\u79F0"
9070
+ }
9071
+ )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u914D\u7F6E\u63CF\u8FF0"), /* @__PURE__ */ React56__default.createElement(
9072
+ "textarea",
9073
+ {
9074
+ value: formData.description,
9075
+ onChange: (e) => setFormData((prev) => ({ ...prev, description: e.target.value })),
9076
+ rows: 2,
9077
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9078
+ placeholder: "\u8BF7\u8F93\u5165\u914D\u7F6E\u63CF\u8FF0"
9079
+ }
9080
+ )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u4E1A\u52A1\u573A\u666F *"), /* @__PURE__ */ React56__default.createElement(
9081
+ "select",
9082
+ {
9083
+ value: formData.businessScene,
9084
+ onChange: (e) => setFormData((prev) => ({ ...prev, businessScene: e.target.value })),
9085
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9086
+ },
9087
+ /* @__PURE__ */ React56__default.createElement("option", { value: "cart_checkout" }, "\u8D2D\u7269\u8F66\u63D0\u4EA4"),
9088
+ /* @__PURE__ */ React56__default.createElement("option", { value: "homepage_visit" }, "\u4E3B\u9875\u8BBF\u95EE"),
9089
+ /* @__PURE__ */ React56__default.createElement("option", { value: "collection_view" }, "\u753B\u96C6\u6D4F\u89C8"),
9090
+ /* @__PURE__ */ React56__default.createElement("option", { value: "artwork_detail" }, "\u4F5C\u54C1\u8BE6\u60C5")
9091
+ ), /* @__PURE__ */ React56__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__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__default.createElement(
9092
+ "input",
9093
+ {
9094
+ type: "checkbox",
9095
+ id: "enabled",
9096
+ checked: formData.enabled,
9097
+ onChange: (e) => setFormData((prev) => ({ ...prev, enabled: e.target.checked })),
9098
+ className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9099
+ }
9100
+ ), /* @__PURE__ */ React56__default.createElement("label", { htmlFor: "enabled", className: "text-sm font-medium text-slate-700" }, "\u542F\u7528\u6B64\u914D\u7F6E"))),
9101
+ /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u89E6\u53D1\u6761\u4EF6"), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u89E6\u53D1\u7C7B\u578B"), /* @__PURE__ */ React56__default.createElement(
9102
+ "select",
9103
+ {
9104
+ value: formData.triggerConfig.triggerType,
9105
+ onChange: (e) => setFormData((prev) => ({
9106
+ ...prev,
9107
+ triggerConfig: {
9108
+ ...prev.triggerConfig,
9109
+ triggerType: e.target.value
9110
+ }
9111
+ })),
9112
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9113
+ },
9114
+ /* @__PURE__ */ React56__default.createElement("option", { value: "after_deadline" }, "\u8D85\u8FC7\u622A\u6B62\u65F6\u95F4\u540E\u663E\u793A"),
9115
+ /* @__PURE__ */ React56__default.createElement("option", { value: "before_deadline" }, "\u622A\u6B62\u65F6\u95F4\u524D\u663E\u793A"),
9116
+ /* @__PURE__ */ React56__default.createElement("option", { value: "always" }, "\u603B\u662F\u663E\u793A")
9117
+ )), formData.triggerConfig.triggerType !== "always" && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u622A\u6B62\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement(
9118
+ "input",
9119
+ {
9120
+ type: "datetime-local",
9121
+ value: formData.triggerConfig.deadlineTime,
9122
+ onChange: (e) => setFormData((prev) => ({
9123
+ ...prev,
9124
+ triggerConfig: {
9125
+ ...prev.triggerConfig,
9126
+ deadlineTime: e.target.value
9127
+ }
9128
+ })),
9129
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9130
+ }
9131
+ )), formData.triggerConfig.triggerType === "before_deadline" && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u63D0\u524D\u5206\u949F\u6570"), /* @__PURE__ */ React56__default.createElement(
9132
+ "input",
9133
+ {
9134
+ type: "number",
9135
+ min: "0",
9136
+ value: formData.triggerConfig.advanceMinutes,
9137
+ onChange: (e) => setFormData((prev) => ({
9138
+ ...prev,
9139
+ triggerConfig: {
9140
+ ...prev.triggerConfig,
9141
+ advanceMinutes: parseInt(e.target.value) || 0
9142
+ }
9143
+ })),
9144
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9145
+ placeholder: "\u5728\u622A\u6B62\u65F6\u95F4\u524D\u591A\u5C11\u5206\u949F\u663E\u793A"
9146
+ }
9147
+ ))),
9148
+ /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u5F39\u7A97\u5185\u5BB9"), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u6807\u9898 *"), /* @__PURE__ */ React56__default.createElement(
9149
+ "input",
9150
+ {
9151
+ type: "text",
9152
+ value: formData.contentConfig.title,
9153
+ onChange: (e) => setFormData((prev) => ({
9154
+ ...prev,
9155
+ contentConfig: {
9156
+ ...prev.contentConfig,
9157
+ title: e.target.value
9158
+ }
9159
+ })),
9160
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9161
+ placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u6807\u9898"
9162
+ }
9163
+ )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5185\u5BB9 *"), /* @__PURE__ */ React56__default.createElement(
9164
+ "textarea",
9165
+ {
9166
+ value: formData.contentConfig.message,
9167
+ onChange: (e) => setFormData((prev) => ({
9168
+ ...prev,
9169
+ contentConfig: {
9170
+ ...prev.contentConfig,
9171
+ message: e.target.value
9172
+ }
9173
+ })),
9174
+ rows: 4,
9175
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",
9176
+ placeholder: "\u8BF7\u8F93\u5165\u5F39\u7A97\u5185\u5BB9"
9177
+ }
9178
+ )), /* @__PURE__ */ React56__default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u786E\u8BA4\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__default.createElement(
9179
+ "input",
9180
+ {
9181
+ type: "text",
9182
+ value: formData.contentConfig.confirmText,
9183
+ onChange: (e) => setFormData((prev) => ({
9184
+ ...prev,
9185
+ contentConfig: {
9186
+ ...prev.contentConfig,
9187
+ confirmText: e.target.value
9188
+ }
9189
+ })),
9190
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9191
+ }
9192
+ )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u53D6\u6D88\u6309\u94AE\u6587\u672C"), /* @__PURE__ */ React56__default.createElement(
9193
+ "input",
9194
+ {
9195
+ type: "text",
9196
+ value: formData.contentConfig.cancelText,
9197
+ onChange: (e) => setFormData((prev) => ({
9198
+ ...prev,
9199
+ contentConfig: {
9200
+ ...prev.contentConfig,
9201
+ cancelText: e.target.value
9202
+ }
9203
+ })),
9204
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9205
+ }
9206
+ ))), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u4E3B\u9898"), /* @__PURE__ */ React56__default.createElement(
9207
+ "select",
9208
+ {
9209
+ value: formData.contentConfig.theme,
9210
+ onChange: (e) => setFormData((prev) => ({
9211
+ ...prev,
9212
+ contentConfig: {
9213
+ ...prev.contentConfig,
9214
+ theme: e.target.value
9215
+ }
9216
+ })),
9217
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9218
+ },
9219
+ /* @__PURE__ */ React56__default.createElement("option", { value: "warning" }, "\u8B66\u544A"),
9220
+ /* @__PURE__ */ React56__default.createElement("option", { value: "info" }, "\u4FE1\u606F"),
9221
+ /* @__PURE__ */ React56__default.createElement("option", { value: "error" }, "\u9519\u8BEF"),
9222
+ /* @__PURE__ */ React56__default.createElement("option", { value: "success" }, "\u6210\u529F")
9223
+ )), /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__default.createElement(
9224
+ "input",
9225
+ {
9226
+ type: "checkbox",
9227
+ id: "showCancel",
9228
+ checked: formData.contentConfig.showCancel,
9229
+ onChange: (e) => setFormData((prev) => ({
9230
+ ...prev,
9231
+ contentConfig: {
9232
+ ...prev.contentConfig,
9233
+ showCancel: e.target.checked
9234
+ }
9235
+ })),
9236
+ className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9237
+ }
9238
+ ), /* @__PURE__ */ React56__default.createElement("label", { htmlFor: "showCancel", className: "text-sm font-medium text-slate-700" }, "\u663E\u793A\u53D6\u6D88\u6309\u94AE"))),
9239
+ /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-4" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800" }, "\u663E\u793A\u8BBE\u7F6E"), /* @__PURE__ */ React56__default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("label", { className: "block text-sm font-medium text-slate-700 mb-1" }, "\u5F39\u7A97\u5BBD\u5EA6 (px)"), /* @__PURE__ */ React56__default.createElement(
9240
+ "input",
9241
+ {
9242
+ type: "number",
9243
+ min: "200",
9244
+ max: "800",
9245
+ value: formData.displayConfig.width,
9246
+ onChange: (e) => setFormData((prev) => ({
9247
+ ...prev,
9248
+ displayConfig: {
9249
+ ...prev.displayConfig,
9250
+ width: parseInt(e.target.value) || 400
9251
+ }
9252
+ })),
9253
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9254
+ }
9255
+ )), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__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__default.createElement(
9256
+ "input",
9257
+ {
9258
+ type: "number",
9259
+ min: "0",
9260
+ max: "60",
9261
+ value: formData.displayConfig.autoCloseSeconds,
9262
+ onChange: (e) => setFormData((prev) => ({
9263
+ ...prev,
9264
+ displayConfig: {
9265
+ ...prev.displayConfig,
9266
+ autoCloseSeconds: parseInt(e.target.value) || 0
9267
+ }
9268
+ })),
9269
+ className: "w-full px-3 py-2 border border-slate-300 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500"
9270
+ }
9271
+ ))), /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React56__default.createElement(
9272
+ "input",
9273
+ {
9274
+ type: "checkbox",
9275
+ id: "maskClosable",
9276
+ checked: formData.displayConfig.maskClosable,
9277
+ onChange: (e) => setFormData((prev) => ({
9278
+ ...prev,
9279
+ displayConfig: {
9280
+ ...prev.displayConfig,
9281
+ maskClosable: e.target.checked
9282
+ }
9283
+ })),
9284
+ className: "rounded border-slate-300 text-blue-600 focus:ring-blue-500"
9285
+ }
9286
+ ), /* @__PURE__ */ React56__default.createElement("label", { htmlFor: "maskClosable", className: "text-sm font-medium text-slate-700" }, "\u5141\u8BB8\u70B9\u51FB\u906E\u7F69\u5173\u95ED")))
9287
+ ),
9267
9288
  /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("h4", { className: "text-sm font-medium text-slate-800 mb-3" }, "\u6D41\u7A0B\u63A7\u5236"), /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React56__default.createElement(
9268
9289
  "input",
9269
9290
  {
@@ -10422,6 +10443,7 @@ function ConfigPageContent() {
10422
10443
  enableCategories: config?.enableCategories || true,
10423
10444
  defaultCategory: config?.defaultCategory || "all",
10424
10445
  homeTabConfig: normalizeHomeTabConfig(config?.homeTabConfig),
10446
+ miniappFloatingButtons: normalizeMiniappFloatingButtonsConfig(config?.miniappFloatingButtons),
10425
10447
  theme: config?.theme || "light",
10426
10448
  language: config?.language || "zh"
10427
10449
  });
@@ -10456,6 +10478,7 @@ function ConfigPageContent() {
10456
10478
  enableCategories: config.enableCategories,
10457
10479
  defaultCategory: config.defaultCategory,
10458
10480
  homeTabConfig: normalizeHomeTabConfig(config.homeTabConfig),
10481
+ miniappFloatingButtons: normalizeMiniappFloatingButtonsConfig(config.miniappFloatingButtons),
10459
10482
  theme: config.theme,
10460
10483
  language: config.language
10461
10484
  });
@@ -10858,7 +10881,37 @@ function ConfigPageContent() {
10858
10881
  onChange: (e) => setConfigForm((prev) => ({ ...prev, enableCategories: e.target.checked })),
10859
10882
  className: "h-4 w-4 rounded border-gray-300"
10860
10883
  }
10861
- ), /* @__PURE__ */ React56__default.createElement(Label, { htmlFor: "enableCategories", className: "text-sm font-medium" }, "\u542F\u7528\u5206\u7C7B\u529F\u80FD")))))), /* @__PURE__ */ React56__default.createElement(TabsContent, { value: "homeTabs", className: "space-y-6" }, /* @__PURE__ */ React56__default.createElement(Card, null, /* @__PURE__ */ React56__default.createElement(CardHeader, null, /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement(CardTitle, null, "\u9996\u9875\u5206\u7C7BTab\u914D\u7F6E"), /* @__PURE__ */ React56__default.createElement(CardDescription, null, "\u7BA1\u7406\u9996\u9875\u5206\u7C7BTab\u7684\u663E\u793A\u987A\u5E8F\u4E0E\u663E\u793A/\u9690\u85CF")), /* @__PURE__ */ React56__default.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React56__default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(true) }, "\u5168\u90E8\u663E\u793A"), /* @__PURE__ */ React56__default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(false) }, "\u5168\u90E8\u9690\u85CF"), /* @__PURE__ */ React56__default.createElement(Button, { variant: "outline", onClick: handleResetHomeTabs, className: "gap-2" }, /* @__PURE__ */ React56__default.createElement(RotateCcw, { size: 16 }), "\u91CD\u7F6E\u987A\u5E8F"), /* @__PURE__ */ React56__default.createElement(Button, { onClick: handleSaveConfig, className: "gap-2" }, /* @__PURE__ */ React56__default.createElement(Save, { size: 16 }), "\u4FDD\u5B58\u914D\u7F6E")))), /* @__PURE__ */ React56__default.createElement(CardContent, null, /* @__PURE__ */ React56__default.createElement("div", { className: "flex flex-col lg:flex-row lg:items-end gap-3 mb-4" }, /* @__PURE__ */ React56__default.createElement("div", { className: "flex-1 space-y-2" }, /* @__PURE__ */ React56__default.createElement(Label, null, "\u5206\u7C7B\u540D\u79F0"), /* @__PURE__ */ React56__default.createElement(
10884
+ ), /* @__PURE__ */ React56__default.createElement(Label, { htmlFor: "enableCategories", className: "text-sm font-medium" }, "\u542F\u7528\u5206\u7C7B\u529F\u80FD")), /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-2 rounded-xl border border-slate-200 p-3" }, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm font-medium text-slate-900" }, "\u5C0F\u7A0B\u5E8F\u60AC\u6D6E\u6309\u94AE"), /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React56__default.createElement(
10885
+ "input",
10886
+ {
10887
+ id: "miniappShowCart",
10888
+ type: "checkbox",
10889
+ checked: configForm.miniappFloatingButtons.showCart,
10890
+ onChange: (e) => setConfigForm((prev) => ({
10891
+ ...prev,
10892
+ miniappFloatingButtons: {
10893
+ ...prev.miniappFloatingButtons,
10894
+ showCart: e.target.checked
10895
+ }
10896
+ })),
10897
+ className: "h-4 w-4 rounded border-gray-300"
10898
+ }
10899
+ ), /* @__PURE__ */ React56__default.createElement(Label, { htmlFor: "miniappShowCart", className: "text-sm font-medium" }, "\u663E\u793A\u201C\u8D2D\u7269\u8F66\u201D\u6309\u94AE")), /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center space-x-2" }, /* @__PURE__ */ React56__default.createElement(
10900
+ "input",
10901
+ {
10902
+ id: "miniappShowHistory",
10903
+ type: "checkbox",
10904
+ checked: configForm.miniappFloatingButtons.showHistory,
10905
+ onChange: (e) => setConfigForm((prev) => ({
10906
+ ...prev,
10907
+ miniappFloatingButtons: {
10908
+ ...prev.miniappFloatingButtons,
10909
+ showHistory: e.target.checked
10910
+ }
10911
+ })),
10912
+ className: "h-4 w-4 rounded border-gray-300"
10913
+ }
10914
+ ), /* @__PURE__ */ React56__default.createElement(Label, { htmlFor: "miniappShowHistory", className: "text-sm font-medium" }, "\u663E\u793A\u201C\u5386\u53F2\u8BB0\u5F55\u201D\u6309\u94AE"))))))), /* @__PURE__ */ React56__default.createElement(TabsContent, { value: "homeTabs", className: "space-y-6" }, /* @__PURE__ */ React56__default.createElement(Card, null, /* @__PURE__ */ React56__default.createElement(CardHeader, null, /* @__PURE__ */ React56__default.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement(CardTitle, null, "\u9996\u9875\u5206\u7C7BTab\u914D\u7F6E"), /* @__PURE__ */ React56__default.createElement(CardDescription, null, "\u7BA1\u7406\u9996\u9875\u5206\u7C7BTab\u7684\u663E\u793A\u987A\u5E8F\u4E0E\u663E\u793A/\u9690\u85CF")), /* @__PURE__ */ React56__default.createElement("div", { className: "flex gap-3" }, /* @__PURE__ */ React56__default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(true) }, "\u5168\u90E8\u663E\u793A"), /* @__PURE__ */ React56__default.createElement(Button, { variant: "outline", onClick: () => handleSetAllHomeTabsVisible(false) }, "\u5168\u90E8\u9690\u85CF"), /* @__PURE__ */ React56__default.createElement(Button, { variant: "outline", onClick: handleResetHomeTabs, className: "gap-2" }, /* @__PURE__ */ React56__default.createElement(RotateCcw, { size: 16 }), "\u91CD\u7F6E\u987A\u5E8F"), /* @__PURE__ */ React56__default.createElement(Button, { onClick: handleSaveConfig, className: "gap-2" }, /* @__PURE__ */ React56__default.createElement(Save, { size: 16 }), "\u4FDD\u5B58\u914D\u7F6E")))), /* @__PURE__ */ React56__default.createElement(CardContent, null, /* @__PURE__ */ React56__default.createElement("div", { className: "flex flex-col lg:flex-row lg:items-end gap-3 mb-4" }, /* @__PURE__ */ React56__default.createElement("div", { className: "flex-1 space-y-2" }, /* @__PURE__ */ React56__default.createElement(Label, null, "\u5206\u7C7B\u540D\u79F0"), /* @__PURE__ */ React56__default.createElement(
10862
10915
  Input,
10863
10916
  {
10864
10917
  value: newHomeTabCategory,