@wix/agent-skills 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/package.json +29 -0
  4. package/skills/wix-app/SKILL.md +344 -0
  5. package/skills/wix-app/references/APP_IDENTIFIERS.md +35 -0
  6. package/skills/wix-app/references/APP_MARKET_REVIEW.md +311 -0
  7. package/skills/wix-app/references/APP_VALIDATION.md +171 -0
  8. package/skills/wix-app/references/BACKEND_API.md +233 -0
  9. package/skills/wix-app/references/BACKEND_EVENT.md +116 -0
  10. package/skills/wix-app/references/CODE_QUALITY.md +33 -0
  11. package/skills/wix-app/references/CUSTOM_ELEMENT_WIDGET.md +587 -0
  12. package/skills/wix-app/references/DASHBOARD_MENU_PLUGIN.md +157 -0
  13. package/skills/wix-app/references/DASHBOARD_MODAL.md +283 -0
  14. package/skills/wix-app/references/DASHBOARD_PAGE.md +403 -0
  15. package/skills/wix-app/references/DASHBOARD_PLUGIN.md +205 -0
  16. package/skills/wix-app/references/DATA_COLLECTION.md +451 -0
  17. package/skills/wix-app/references/DOCUMENTATION.md +42 -0
  18. package/skills/wix-app/references/EDITOR_REACT_COMPONENT.md +65 -0
  19. package/skills/wix-app/references/EMBEDDED_SCRIPT.md +468 -0
  20. package/skills/wix-app/references/EXTENSION_REGISTRATION.md +96 -0
  21. package/skills/wix-app/references/SERVICE_PLUGIN.md +235 -0
  22. package/skills/wix-app/references/SITE_PLUGIN.md +436 -0
  23. package/skills/wix-app/references/STORES_VERSIONING.md +334 -0
  24. package/skills/wix-app/references/backend-event/COMMON-EVENTS.md +84 -0
  25. package/skills/wix-app/references/custom-element-widget/SETTINGS_PANEL.md +345 -0
  26. package/skills/wix-app/references/dashboard-menu-plugin/blog-slots.md +71 -0
  27. package/skills/wix-app/references/dashboard-menu-plugin/bookings-slots.md +58 -0
  28. package/skills/wix-app/references/dashboard-menu-plugin/crm-slots.md +8 -0
  29. package/skills/wix-app/references/dashboard-menu-plugin/ecommerce-slots.md +17 -0
  30. package/skills/wix-app/references/dashboard-menu-plugin/events-slots.md +29 -0
  31. package/skills/wix-app/references/dashboard-menu-plugin/restaurants-slots.md +27 -0
  32. package/skills/wix-app/references/dashboard-menu-plugin/stores-slots.md +35 -0
  33. package/skills/wix-app/references/dashboard-page/API_SPEC.md +138 -0
  34. package/skills/wix-app/references/dashboard-page/DASHBOARD_API.md +573 -0
  35. package/skills/wix-app/references/dashboard-page/DYNAMIC_PARAMETERS.md +269 -0
  36. package/skills/wix-app/references/dashboard-page/ECOM_NAVIGATION.md +164 -0
  37. package/skills/wix-app/references/dashboard-plugin/SLOTS.md +294 -0
  38. package/skills/wix-app/references/data-collection/WIX_DATA.md +270 -0
  39. package/skills/wix-app/references/data-collection/extension-template.ts +107 -0
  40. package/skills/wix-app/references/editor-react-component/ACCESSIBILITY.md +138 -0
  41. package/skills/wix-app/references/editor-react-component/COMPONENT-API.md +454 -0
  42. package/skills/wix-app/references/editor-react-component/COMPONENT-CONFIGURATION.md +165 -0
  43. package/skills/wix-app/references/editor-react-component/CSS-GUIDELINES.md +576 -0
  44. package/skills/wix-app/references/editor-react-component/DIRECTIONALITY.md +170 -0
  45. package/skills/wix-app/references/editor-react-component/EDIT-FLOW.md +6 -0
  46. package/skills/wix-app/references/editor-react-component/PARTS.md +25 -0
  47. package/skills/wix-app/references/editor-react-component/PROPS-VS-CSS.md +203 -0
  48. package/skills/wix-app/references/editor-react-component/REACT-GUIDELINES.md +167 -0
  49. package/skills/wix-app/references/editor-react-component/REACT-PATTERNS.md +137 -0
  50. package/skills/wix-app/references/service-plugin/ADDITIONAL-FEES.md +112 -0
  51. package/skills/wix-app/references/service-plugin/BOOKINGS-STAFF-SORTING.md +118 -0
  52. package/skills/wix-app/references/service-plugin/DISCOUNT-TRIGGERS.md +87 -0
  53. package/skills/wix-app/references/service-plugin/GIFT-CARDS.md +86 -0
  54. package/skills/wix-app/references/service-plugin/PAYMENT-SETTINGS.md +135 -0
  55. package/skills/wix-app/references/service-plugin/SHIPPING-RATES.md +79 -0
  56. package/skills/wix-app/references/service-plugin/VALIDATIONS.md +68 -0
  57. package/skills/wix-app/references/site-plugin/EXAMPLES.md +311 -0
  58. package/skills/wix-app/references/site-plugin/SLOTS.md +263 -0
  59. package/skills/wix-design-system/SKILL.md +129 -0
  60. package/skills/wix-design-system/references/file-structure.md +56 -0
  61. package/skills/wix-design-system/scripts/wds.cjs +531 -0
  62. package/skills/wix-headless/SKILL.md +418 -0
  63. package/skills/wix-headless/references/DISCOVERY.md +332 -0
  64. package/skills/wix-headless/references/ORCHESTRATION.md +269 -0
  65. package/skills/wix-headless/references/SETUP.md +154 -0
  66. package/skills/wix-headless/references/blog/BLOG_CONTENT.md +152 -0
  67. package/skills/wix-headless/references/blog/BLOG_PAGES.md +299 -0
  68. package/skills/wix-headless/references/blog/BLOG_SETUP.md +218 -0
  69. package/skills/wix-headless/references/blog/INSTRUCTIONS.md +32 -0
  70. package/skills/wix-headless/references/cms/CMS_FOUNDATIONS.md +373 -0
  71. package/skills/wix-headless/references/cms/FAQ_KNOWLEDGE_BASE.md +229 -0
  72. package/skills/wix-headless/references/cms/INSTRUCTIONS.md +40 -0
  73. package/skills/wix-headless/references/cms/PORTFOLIO.md +454 -0
  74. package/skills/wix-headless/references/cms/RESOURCE_LIBRARY.md +356 -0
  75. package/skills/wix-headless/references/cms/TEAM_DIRECTORY.md +299 -0
  76. package/skills/wix-headless/references/commands/install-app.md +42 -0
  77. package/skills/wix-headless/references/commands/known-apps.json +5 -0
  78. package/skills/wix-headless/references/commands/mcp-bootstrap.md +28 -0
  79. package/skills/wix-headless/references/designer/INSTRUCTIONS.md +828 -0
  80. package/skills/wix-headless/references/ecom/CART_PAGES.md +120 -0
  81. package/skills/wix-headless/references/ecom/CART_WIRING.md +103 -0
  82. package/skills/wix-headless/references/ecom/COMPONENTS_CSS.md +132 -0
  83. package/skills/wix-headless/references/ecom/INSTRUCTIONS.md +59 -0
  84. package/skills/wix-headless/references/forms/CONTACT_FORM.md +477 -0
  85. package/skills/wix-headless/references/forms/INSTRUCTIONS.md +43 -0
  86. package/skills/wix-headless/references/gift-cards/COMPONENTS.md +119 -0
  87. package/skills/wix-headless/references/gift-cards/INSTRUCTIONS.md +51 -0
  88. package/skills/wix-headless/references/gift-cards/PAGES.md +129 -0
  89. package/skills/wix-headless/references/images/INSTRUCTIONS.md +359 -0
  90. package/skills/wix-headless/references/shared/BUILD_NOISE.md +8 -0
  91. package/skills/wix-headless/references/shared/IMAGE_GENERATION.md +185 -0
  92. package/skills/wix-headless/references/shared/IMPLEMENTER.md +155 -0
  93. package/skills/wix-headless/references/shared/MCP_PREFIX.md +105 -0
  94. package/skills/wix-headless/references/shared/PRODUCTION_SHARP_EDGES.md +97 -0
  95. package/skills/wix-headless/references/shared/RETURN_CONTRACT.md +423 -0
  96. package/skills/wix-headless/references/shared/STYLING.md +117 -0
  97. package/skills/wix-headless/references/stores/BACK_IN_STOCK.md +178 -0
  98. package/skills/wix-headless/references/stores/CATEGORY_PAGES.md +86 -0
  99. package/skills/wix-headless/references/stores/COMPONENTS_CSS.md +129 -0
  100. package/skills/wix-headless/references/stores/HOME_AND_NAV.md +227 -0
  101. package/skills/wix-headless/references/stores/INSTRUCTIONS.md +96 -0
  102. package/skills/wix-headless/references/stores/PRODUCT_CATALOG_DATA.md +249 -0
  103. package/skills/wix-headless/references/stores/PRODUCT_PAGES.md +213 -0
  104. package/skills/wix-headless/references/stores/SHARED_WIRING.md +164 -0
  105. package/skills/wix-headless/references/verticals/_schema.json +160 -0
  106. package/skills/wix-headless/references/verticals/_schema.md +185 -0
  107. package/skills/wix-headless/references/verticals/blog.md +125 -0
  108. package/skills/wix-headless/references/verticals/cms.md +121 -0
  109. package/skills/wix-headless/references/verticals/ecom.md +96 -0
  110. package/skills/wix-headless/references/verticals/forms.md +106 -0
  111. package/skills/wix-headless/references/verticals/gift-cards.md +121 -0
  112. package/skills/wix-headless/references/verticals/stores.md +167 -0
  113. package/skills/wix-headless/scripts/check-manifest.mjs +198 -0
  114. package/skills/wix-headless/scripts/copy-utility-templates.mjs +153 -0
  115. package/skills/wix-headless/scripts/emit-design-tokens.mjs +77 -0
  116. package/skills/wix-headless/scripts/finalize-run-json.mjs +141 -0
  117. package/skills/wix-headless/scripts/init-site-json.mjs +63 -0
  118. package/skills/wix-headless/scripts/patch-decorative-slots.mjs +124 -0
  119. package/skills/wix-headless/scripts/plan-entity-image-waves.mjs +190 -0
  120. package/skills/wix-headless/scripts/preview.sh +45 -0
  121. package/skills/wix-headless/scripts/release.sh +73 -0
  122. package/skills/wix-headless/scripts/scaffold.sh +53 -0
  123. package/skills/wix-headless/scripts/seed-utilities.sh +55 -0
  124. package/skills/wix-headless/shared-utilities/analytics.ts +40 -0
  125. package/skills/wix-headless/shared-utilities/ricos.ts +179 -0
  126. package/skills/wix-headless/shared-utilities/wix-image.ts +72 -0
  127. package/skills/wix-headless/templates/ecom/CartBadge.tsx +84 -0
  128. package/skills/wix-headless/templates/ecom/CartView.tsx +543 -0
  129. package/skills/wix-headless/templates/ecom/cart.astro +13 -0
  130. package/skills/wix-headless/templates/ecom/components-ecom.css +215 -0
  131. package/skills/wix-headless/templates/ecom/discounts.ts +71 -0
  132. package/skills/wix-headless/templates/ecom/thank-you.astro +24 -0
  133. package/skills/wix-headless/templates/gift-cards/GiftCardPurchase.tsx +172 -0
  134. package/skills/wix-headless/templates/gift-cards/_home-teaser-snippet.astro +42 -0
  135. package/skills/wix-headless/templates/gift-cards/_nav-snippet.astro +11 -0
  136. package/skills/wix-headless/templates/gift-cards/components-gift-cards.css +219 -0
  137. package/skills/wix-headless/templates/gift-cards/gift-cards.astro +51 -0
  138. package/skills/wix-headless/templates/gift-cards/gift-cards.ts +75 -0
  139. package/skills/wix-headless/templates/stores/AddToCartButton.tsx +77 -0
  140. package/skills/wix-headless/templates/stores/BackInStockForm.tsx +176 -0
  141. package/skills/wix-headless/templates/stores/CategoryRail.astro +69 -0
  142. package/skills/wix-headless/templates/stores/ProductCard.astro +79 -0
  143. package/skills/wix-headless/templates/stores/ProductPurchase.tsx +397 -0
  144. package/skills/wix-headless/templates/stores/SeoTags.astro +21 -0
  145. package/skills/wix-headless/templates/stores/back-in-stock.ts +67 -0
  146. package/skills/wix-headless/templates/stores/categories.ts +155 -0
  147. package/skills/wix-headless/templates/stores/category/[slug].astro +130 -0
  148. package/skills/wix-headless/templates/stores/components-stores.css +295 -0
  149. package/skills/wix-headless/templates/stores/products/[slug].astro +128 -0
  150. package/skills/wix-headless/templates/stores/products/index.astro +101 -0
  151. package/skills/wix-manage/SKILL.md +280 -0
  152. package/skills/wix-manage/references/app-installation/install-wix-apps.md +155 -0
  153. package/skills/wix-manage/references/app-installation/list-installed-apps.md +124 -0
  154. package/skills/wix-manage/references/blog/how-to-create-blog-posts.md +226 -0
  155. package/skills/wix-manage/references/bookings/booking-service-policy-setup.md +95 -0
  156. package/skills/wix-manage/references/bookings/booking-system-integration-gaps.md +416 -0
  157. package/skills/wix-manage/references/bookings/bookings-staff-setup.md +255 -0
  158. package/skills/wix-manage/references/bookings/create-and-update-booking-services.md +462 -0
  159. package/skills/wix-manage/references/bookings/end-to-end-booking-flow.md +278 -0
  160. package/skills/wix-manage/references/bookings/external-calendar-integration.md +258 -0
  161. package/skills/wix-manage/references/bookings/multi-resource-service-creation.md +231 -0
  162. package/skills/wix-manage/references/calendar/configure-default-business-hours.md +226 -0
  163. package/skills/wix-manage/references/cms/cms-data-items-crud.md +422 -0
  164. package/skills/wix-manage/references/cms/cms-data-operations-extended.md +263 -0
  165. package/skills/wix-manage/references/cms/cms-ecommerce-catalog-integration.md +136 -0
  166. package/skills/wix-manage/references/cms/cms-references-and-relationships.md +160 -0
  167. package/skills/wix-manage/references/cms/cms-schema-management.md +143 -0
  168. package/skills/wix-manage/references/contacts/bulk-delete-contacts.md +73 -0
  169. package/skills/wix-manage/references/contacts/bulk-label-and-unlabel-contacts.md +67 -0
  170. package/skills/wix-manage/references/domains/domain-search-and-purchase.md +434 -0
  171. package/skills/wix-manage/references/ecommerce/api-recommendation-tracking.md +420 -0
  172. package/skills/wix-manage/references/ecommerce/flow-add-free-shipping.md +267 -0
  173. package/skills/wix-manage/references/ecommerce/flow-bundle-and-save.md +290 -0
  174. package/skills/wix-manage/references/ecommerce/flow-fix-coverage-gaps.md +300 -0
  175. package/skills/wix-manage/references/ecommerce/flow-optimize-shipping-rates.md +364 -0
  176. package/skills/wix-manage/references/ecommerce/flow-seasonal-promotion.md +315 -0
  177. package/skills/wix-manage/references/ecommerce/flow-stock-mover.md +308 -0
  178. package/skills/wix-manage/references/ecommerce/flow-upsell-boost.md +271 -0
  179. package/skills/wix-manage/references/ecommerce/goal-clear-inventory.md +118 -0
  180. package/skills/wix-manage/references/ecommerce/goal-drive-cross-sells.md +122 -0
  181. package/skills/wix-manage/references/ecommerce/goal-increase-aov.md +132 -0
  182. package/skills/wix-manage/references/ecommerce/goal-reduce-cart-abandonment.md +148 -0
  183. package/skills/wix-manage/references/ecommerce/goal-seasonal-revenue.md +146 -0
  184. package/skills/wix-manage/references/ecommerce/guardrail-discount-conflicts.md +118 -0
  185. package/skills/wix-manage/references/ecommerce/guardrail-margin-protection.md +88 -0
  186. package/skills/wix-manage/references/ecommerce/guardrail-rate-pricing-sanity.md +108 -0
  187. package/skills/wix-manage/references/ecommerce/guardrail-shipping-health.md +124 -0
  188. package/skills/wix-manage/references/ecommerce/recipe-apply-shipping-recommendations.md +299 -0
  189. package/skills/wix-manage/references/ecommerce/recommend-ecommerce-strategy.md +582 -0
  190. package/skills/wix-manage/references/ecommerce/setup-coupons.md +338 -0
  191. package/skills/wix-manage/references/ecommerce/setup-discount-rules.md +444 -0
  192. package/skills/wix-manage/references/ecommerce/setup-shipping-rates.md +86 -0
  193. package/skills/wix-manage/references/ecommerce/setup-shipping-regions.md +56 -0
  194. package/skills/wix-manage/references/ecommerce/setup-store-pickup-location.md +209 -0
  195. package/skills/wix-manage/references/ecommerce/skill-graph.md +139 -0
  196. package/skills/wix-manage/references/ecommerce/troubleshoot-checkout-delivery-dropoff.md +124 -0
  197. package/skills/wix-manage/references/ecommerce/troubleshoot-discount-not-applying.md +95 -0
  198. package/skills/wix-manage/references/events/list-events.md +203 -0
  199. package/skills/wix-manage/references/forms/create-form.md +260 -0
  200. package/skills/wix-manage/references/get-paid/create-payment-links.md +212 -0
  201. package/skills/wix-manage/references/get-paid/how-to-setup-wix-payments.md +57 -0
  202. package/skills/wix-manage/references/get-paid/payment-links-for-bookings.md +101 -0
  203. package/skills/wix-manage/references/media/upload-media-to-wix.md +216 -0
  204. package/skills/wix-manage/references/pricing-plans/create-and-update-pricing-plans.md +77 -0
  205. package/skills/wix-manage/references/pricing-plans/pricing-plans-bookings-integration.md +166 -0
  206. package/skills/wix-manage/references/restaurants/wix-restaurants-setup.md +336 -0
  207. package/skills/wix-manage/references/rich-content/ricos-converter-service.md +295 -0
  208. package/skills/wix-manage/references/site-properties/change-payment-currency-site-properties.md +59 -0
  209. package/skills/wix-manage/references/sites/create-site-from-template.md +183 -0
  210. package/skills/wix-manage/references/sites/query-sites.md +125 -0
  211. package/skills/wix-manage/references/stores/add-store-pages-to-site.md +57 -0
  212. package/skills/wix-manage/references/stores/bulk-create-products-with-options.md +1041 -0
  213. package/skills/wix-manage/references/stores/create-product-catalog-v1.md +125 -0
  214. package/skills/wix-manage/references/stores/create-product-from-image.md +824 -0
  215. package/skills/wix-manage/references/stores/create-product-with-options-catalog-v3.md +566 -0
  216. package/skills/wix-manage/references/stores/find-products-query-and-search-catalog-v3.md +194 -0
  217. package/skills/wix-manage/references/stores/query-products-catalog-v1.md +80 -0
  218. package/skills/wix-manage/references/stores/setup-online-store-catalog-v3.md +99 -0
  219. package/skills/wix-manage/references/stores/update-product-pre-order.md +213 -0
  220. package/skills/wix-manage/references/stores/update-product-with-options.md +318 -0
@@ -0,0 +1,345 @@
1
+ # Settings Panel Components Reference
2
+
3
+ This reference documents components and patterns specific to widget settings panels. For general WDS component documentation (FormField, Input, Dropdown, Checkbox, ToggleSwitch, DatePicker, Box, etc.), use the the `wix-design-system` skill.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import {
9
+ SidePanel,
10
+ FormField,
11
+ Input,
12
+ Dropdown,
13
+ Checkbox,
14
+ ToggleSwitch,
15
+ DatePicker,
16
+ TimeInput,
17
+ Box,
18
+ WixDesignSystemProvider,
19
+ } from "@wix/design-system";
20
+ import "@wix/design-system/styles.global.css";
21
+ ```
22
+
23
+ ## SidePanel Components
24
+
25
+ ### SidePanel
26
+
27
+ Main container for the settings panel. Always wrap panel content in this component.
28
+
29
+ ```typescript
30
+ <SidePanel width="300" height="100vh">
31
+ <SidePanel.Header title="Widget Settings" />
32
+ <SidePanel.Content noPadding stretchVertically>
33
+ {/* Form fields */}
34
+ </SidePanel.Content>
35
+ </SidePanel>
36
+ ```
37
+
38
+ **Props:**
39
+
40
+ - `width`: Panel width (default: "300")
41
+ - `height`: Panel height (default: "100vh")
42
+
43
+ ### SidePanel.Header
44
+
45
+ Header section with title.
46
+
47
+ ```typescript
48
+ <SidePanel.Header title="Widget Settings" />
49
+ ```
50
+
51
+ **Props:**
52
+
53
+ - `title`: Header title text
54
+
55
+ ### SidePanel.Content
56
+
57
+ Content area for form fields.
58
+
59
+ ```typescript
60
+ <SidePanel.Content noPadding stretchVertically>
61
+ {/* Form content */}
62
+ </SidePanel.Content>
63
+ ```
64
+
65
+ **Props:**
66
+
67
+ - `noPadding`: Remove default padding
68
+ - `stretchVertically`: Stretch to fill available height
69
+
70
+ ### SidePanel.Field
71
+
72
+ Wrapper for individual form fields. Use this to wrap each `FormField`.
73
+
74
+ ```typescript
75
+ <SidePanel.Field>
76
+ <FormField label="Title">
77
+ <Input value={title} onChange={handleChange} />
78
+ </FormField>
79
+ </SidePanel.Field>
80
+ ```
81
+
82
+ ## Widget API Integration Patterns
83
+
84
+ ### TimeInput with widget.setProp
85
+
86
+ ```typescript
87
+ const parseTimeValue = (timeString: string): Date => {
88
+ const [hours, minutes] = timeString.split(':');
89
+ const date = new Date();
90
+ date.setHours(parseInt(hours, 10), parseInt(minutes, 10), 0, 0);
91
+ return date;
92
+ };
93
+
94
+ <TimeInput
95
+ value={parseTimeValue(targetTime)}
96
+ onChange={({ date }) => {
97
+ const hours = String(date.getHours()).padStart(2, '0');
98
+ const minutes = String(date.getMinutes()).padStart(2, '0');
99
+ const newTime = `${hours}:${minutes}`;
100
+ setTargetTime(newTime);
101
+ widget.setProp("target-time", newTime);
102
+ }}
103
+ />
104
+ ```
105
+
106
+ ## Custom Components
107
+
108
+ ### ColorPickerField
109
+
110
+ Custom component for color selection using `inputs.selectColor()` from `@wix/editor`. This opens the Wix color picker dialog with theme colors, gradients, and more — **NOT** a basic HTML `<input type="color">`.
111
+
112
+ ```typescript
113
+ import React, { type FC } from 'react';
114
+ import { inputs } from '@wix/editor';
115
+ import { FormField, Box, FillPreview, SidePanel } from '@wix/design-system';
116
+
117
+ interface ColorPickerFieldProps {
118
+ label: string;
119
+ value: string;
120
+ onChange: (value: string) => void;
121
+ }
122
+
123
+ export const ColorPickerField: FC<ColorPickerFieldProps> = ({
124
+ label,
125
+ value,
126
+ onChange,
127
+ }) => (
128
+ <SidePanel.Field>
129
+ <FormField label={label}>
130
+ <Box width="30px" height="30px">
131
+ <FillPreview
132
+ fill={value}
133
+ onClick={() => inputs.selectColor(value, { onChange: (val) => { if (val) onChange(val); } })}
134
+ />
135
+ </Box>
136
+ </FormField>
137
+ </SidePanel.Field>
138
+ );
139
+ ```
140
+
141
+ **Important:** Always use `inputs.selectColor()` from `@wix/editor` with the `FillPreview` WDS component. Do NOT use `<Input type="color">` — it produces a basic browser color picker that doesn't match the Wix Editor UX.
142
+
143
+ ### FontPickerField
144
+
145
+ Custom component for font selection using `inputs.selectFont()` from `@wix/editor`. This opens the Wix font picker dialog with font family, size, bold, italic, and other typography features.
146
+
147
+ ```typescript
148
+ import React, { type FC } from 'react';
149
+ import { inputs } from '@wix/editor';
150
+ import { FormField, Button, Text, SidePanel } from '@wix/design-system';
151
+
152
+ interface FontValue {
153
+ font: string;
154
+ textDecoration: string;
155
+ }
156
+
157
+ interface FontPickerFieldProps {
158
+ label: string;
159
+ value: FontValue;
160
+ onChange: (value: FontValue) => void;
161
+ }
162
+
163
+ export const FontPickerField: FC<FontPickerFieldProps> = ({
164
+ label,
165
+ value,
166
+ onChange,
167
+ }) => (
168
+ <SidePanel.Field>
169
+ <FormField label={label}>
170
+ <Button
171
+ size="small"
172
+ priority="secondary"
173
+ onClick={() => inputs.selectFont(value, { onChange: (val) => onChange({ font: val.font, textDecoration: val.textDecoration || "" }) })}
174
+ fullWidth
175
+ >
176
+ <Text size="small" ellipsis>Change Font</Text>
177
+ </Button>
178
+ </FormField>
179
+ </SidePanel.Field>
180
+ );
181
+ ```
182
+
183
+ **Important:** Always use `inputs.selectFont()` from `@wix/editor` with the callback pattern `inputs.selectFont(value, { onChange })`. Do NOT use an async/await pattern or a readOnly text Input — the callback pattern integrates directly with the Wix Editor font picker dialog.
184
+
185
+ ## Complete Example
186
+
187
+ ```typescript
188
+ import React, { type FC, useState, useEffect, useCallback } from "react";
189
+ import { widget } from "@wix/editor";
190
+ import {
191
+ SidePanel,
192
+ WixDesignSystemProvider,
193
+ Input,
194
+ FormField,
195
+ TimeInput,
196
+ Box,
197
+ } from "@wix/design-system";
198
+ import "@wix/design-system/styles.global.css";
199
+ import { ColorPickerField } from "./components/ColorPickerField";
200
+ import { FontPickerField } from "./components/FontPickerField";
201
+ import { parseTimeValue } from "./utils";
202
+
203
+ const DEFAULT_BG_COLOR = "#0a0e27";
204
+ const DEFAULT_TEXT_COLOR = "#00ff88";
205
+ const DEFAULT_TEXT_FONT = "";
206
+ const DEFAULT_TEXT_DECORATION = "";
207
+
208
+ const Panel: FC = () => {
209
+ const [title, setTitle] = useState<string>("Countdown");
210
+ const [targetDate, setTargetDate] = useState<string>("");
211
+ const [targetTime, setTargetTime] = useState<string>("00:00");
212
+ const [bgColor, setBgColor] = useState<string>(DEFAULT_BG_COLOR);
213
+ const [textColor, setTextColor] = useState<string>(DEFAULT_TEXT_COLOR);
214
+ const [font, setFont] = useState({ font: DEFAULT_TEXT_FONT, textDecoration: DEFAULT_TEXT_DECORATION });
215
+
216
+ useEffect(() => {
217
+ Promise.all([
218
+ widget.getProp("title"),
219
+ widget.getProp("target-date"),
220
+ widget.getProp("target-time"),
221
+ widget.getProp("bg-color"),
222
+ widget.getProp("text-color"),
223
+ widget.getProp("font"),
224
+ ])
225
+ .then(([titleVal, dateVal, timeVal, bgColorVal, textColorVal, fontString]) => {
226
+ setTitle(titleVal || "Countdown");
227
+ setTargetDate(dateVal || "");
228
+ setTargetTime(timeVal || "00:00");
229
+ setBgColor(bgColorVal || DEFAULT_BG_COLOR);
230
+ setTextColor(textColorVal || DEFAULT_TEXT_COLOR);
231
+ setFont(JSON.parse(fontString || "{}"));
232
+ })
233
+ .catch((error) => console.error("Failed to fetch widget properties:", error));
234
+ }, []);
235
+
236
+ const handleTitleChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {
237
+ const newTitle = event.target.value;
238
+ setTitle(newTitle);
239
+ widget.setProp("title", newTitle);
240
+ }, []);
241
+
242
+ const handleDateChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {
243
+ const newDate = event.target.value;
244
+ setTargetDate(newDate);
245
+ widget.setProp("target-date", newDate);
246
+ }, []);
247
+
248
+ const handleTimeChange = useCallback(({ date }: { date: Date }) => {
249
+ if (date) {
250
+ const hours = String(date.getHours()).padStart(2, '0');
251
+ const minutes = String(date.getMinutes()).padStart(2, '0');
252
+ const newTime = `${hours}:${minutes}`;
253
+ setTargetTime(newTime);
254
+ widget.setProp("target-time", newTime);
255
+ }
256
+ }, []);
257
+
258
+ const handleBgColorChange = (value: string) => {
259
+ setBgColor(value);
260
+ widget.setProp("bg-color", value);
261
+ };
262
+
263
+ const handleTextColorChange = (value: string) => {
264
+ setTextColor(value);
265
+ widget.setProp("text-color", value);
266
+ };
267
+
268
+ const handleFontChange = (value: { font: string; textDecoration: string }) => {
269
+ setFont(value);
270
+ widget.setProp("font", JSON.stringify(value));
271
+ };
272
+
273
+ return (
274
+ <WixDesignSystemProvider>
275
+ <SidePanel width="300" height="100vh">
276
+ <SidePanel.Header title="Countdown Settings" />
277
+ <SidePanel.Content noPadding stretchVertically>
278
+ <Box direction="vertical" gap="24px">
279
+ <SidePanel.Field>
280
+ <FormField label="Title" required>
281
+ <Input
282
+ type="text"
283
+ value={title}
284
+ onChange={handleTitleChange}
285
+ placeholder="Enter countdown title"
286
+ />
287
+ </FormField>
288
+ </SidePanel.Field>
289
+
290
+ <SidePanel.Field>
291
+ <FormField label="Target Date" required>
292
+ <Input
293
+ type="date"
294
+ value={targetDate}
295
+ onChange={handleDateChange}
296
+ />
297
+ </FormField>
298
+ </SidePanel.Field>
299
+
300
+ <SidePanel.Field>
301
+ <FormField label="Target Time" required>
302
+ <TimeInput
303
+ value={parseTimeValue(targetTime)}
304
+ onChange={handleTimeChange}
305
+ />
306
+ </FormField>
307
+ </SidePanel.Field>
308
+
309
+ <ColorPickerField
310
+ label="Background Color"
311
+ value={bgColor}
312
+ onChange={handleBgColorChange}
313
+ />
314
+
315
+ <ColorPickerField
316
+ label="Text Color"
317
+ value={textColor}
318
+ onChange={handleTextColorChange}
319
+ />
320
+
321
+ <FontPickerField
322
+ label="Text Font"
323
+ value={font}
324
+ onChange={handleFontChange}
325
+ />
326
+ </Box>
327
+ </SidePanel.Content>
328
+ </SidePanel>
329
+ </WixDesignSystemProvider>
330
+ );
331
+ };
332
+
333
+ export default Panel;
334
+ ```
335
+
336
+ ## Notes
337
+
338
+ - Always import `@wix/design-system/styles.global.css` for proper styling
339
+ - Use `SidePanel.Field` to wrap each `FormField`
340
+ - Update both local state AND `widget.setProp()` in onChange handlers
341
+ - Prop names in `widget.getProp()` and `widget.setProp()` use kebab-case
342
+ - For color selection, use `inputs.selectColor()` from `@wix/editor` with `FillPreview` — do NOT use `<Input type="color">`
343
+ - For font selection, use `inputs.selectFont()` from `@wix/editor` with a `Button` — do NOT use a text Input
344
+ - Both `inputs.selectColor()` and `inputs.selectFont()` use the callback pattern: `inputs.selectColor(value, { onChange })` and `inputs.selectFont(value, { onChange })`
345
+ - Font values are stored as JSON strings via `widget.setProp("font", JSON.stringify(value))` and parsed back with `JSON.parse()`
@@ -0,0 +1,71 @@
1
+ # Wix Blog — Menu Plugin Slots
2
+
3
+ ### Overview Page
4
+
5
+ **More Actions Menu — Slot ID:** `eee8a260-88cb-432b-b32e-e154b0a1030a`
6
+
7
+ - **Dashboard path:** Blog > Overview
8
+ - **Use case:** Add custom actions to the blog overview page's more actions menu.
9
+
10
+ ### Categories Page
11
+
12
+ **Categories More Actions Menu — Slot ID:** `b2af2156-d82c-4d6c-9961-cf1cec053566`
13
+
14
+ - **Dashboard path:** Blog > Categories
15
+ - **Use case:** Add actions for individual categories (e.g., export, analyze).
16
+
17
+ **Categories Bulk Actions More Actions Menu — Slot ID:** `1d54236e-41fd-49f0-a2e8-83da66026b72`
18
+
19
+ - **Dashboard path:** Blog > Categories (when items are selected)
20
+ - **Use case:** Add bulk actions for multiple selected categories.
21
+
22
+ ### Edit Post Page
23
+
24
+ **More Actions Menu — Slot ID:** `1e756df4-6c2e-403c-b81c-c3de62aebac7`
25
+
26
+ - **Dashboard path:** Blog > Posts > Edit Post
27
+ - **Use case:** Add actions in the post editor (e.g., translate, duplicate to another blog).
28
+
29
+ ### Posts Page
30
+
31
+ **Published Posts More Actions Menu — Slot ID:** `62eee170-31e0-4e71-b3ac-e357a9326a8c`
32
+
33
+ - **Dashboard path:** Blog > Posts (Published tab)
34
+ - **Use case:** Add actions for individual published posts.
35
+
36
+ **Published Posts Bulk Actions More Actions Menu — Slot ID:** `8111d033-915a-48c5-89b3-1a55a8a35d01`
37
+
38
+ - **Dashboard path:** Blog > Posts (Published tab, when items are selected)
39
+ - **Use case:** Add bulk actions for multiple selected published posts.
40
+
41
+ **Draft Posts More Actions Menu — Slot ID:** `a1f0f711-0e09-42e3-977a-ad7270c56344`
42
+
43
+ - **Dashboard path:** Blog > Posts (Drafts tab)
44
+ - **Use case:** Add actions for individual draft posts.
45
+
46
+ **Draft Posts Bulk Actions More Actions Menu — Slot ID:** `cd44424e-ad9e-4b66-965c-7e2e29ef8352`
47
+
48
+ - **Dashboard path:** Blog > Posts (Drafts tab, when items are selected)
49
+ - **Use case:** Add bulk actions for multiple selected draft posts.
50
+
51
+ **Scheduled Posts More Actions Menu — Slot ID:** `1cefe952-7874-46ff-97ec-ebafef92ec38`
52
+
53
+ - **Dashboard path:** Blog > Posts (Scheduled tab)
54
+ - **Use case:** Add actions for individual scheduled posts.
55
+
56
+ **Scheduled Posts Bulk Actions More Actions Menu — Slot ID:** `83edea8a-a945-429d-b24b-3f109ae2b3e3`
57
+
58
+ - **Dashboard path:** Blog > Posts (Scheduled tab, when items are selected)
59
+ - **Use case:** Add bulk actions for multiple selected scheduled posts.
60
+
61
+ ### Tags Page
62
+
63
+ **Tags More Actions Menu — Slot ID:** `9f88f31c-9f0c-461c-86c4-6e8ee6b9c23d`
64
+
65
+ - **Dashboard path:** Blog > Tags
66
+ - **Use case:** Add actions for individual tags.
67
+
68
+ **Tags Bulk Actions More Actions Menu — Slot ID:** `87d49224-cf15-46d1-b39e-e8987549471f`
69
+
70
+ - **Dashboard path:** Blog > Tags (when items are selected)
71
+ - **Use case:** Add bulk actions for multiple selected tags.
@@ -0,0 +1,58 @@
1
+ # Wix Bookings — Menu Plugin Slots
2
+
3
+ ### Staff Page
4
+
5
+ **Main More Actions Menu — Slot ID:** `3ad7e6d2-35ce-45c1-ab59-64c51b60a104`
6
+
7
+ - **Dashboard path:** Settings > Booking Settings > Staff
8
+ - **Use case:** Add global actions to the staff page's more actions menu.
9
+
10
+ **Staff More Actions Menu — Slot ID:** `884a208a-7c23-4641-856a-d6561ed4c64b`
11
+
12
+ - **Dashboard path:** Settings > Booking Settings > Staff
13
+ - **Use case:** Add actions for individual staff members.
14
+
15
+ ### Edit Staff Profile Page
16
+
17
+ **More Actions Menu — Slot ID:** `ce533e85-9419-4c18-baf8-b3bb2423bcd1`
18
+
19
+ - **Dashboard path:** Settings > Booking Settings > Staff > Edit or Add staff member
20
+ - **Use case:** Add actions in the staff profile editor.
21
+
22
+ ### Services Page
23
+
24
+ **Main More Actions Menu — Slot ID:** `5f8f3737-461a-43de-b790-e9079ba07d62`
25
+
26
+ - **Dashboard path:** Booking Calendar > Services
27
+ - **Use case:** Add global actions to the services page's more actions menu.
28
+
29
+ **Service More Actions Menu — Slot ID:** `70f397fb-0007-43df-99f3-b3b0a9fa0712`
30
+
31
+ - **Dashboard path:** Booking Calendar > Services
32
+ - **Use case:** Add actions for individual services.
33
+
34
+ ### Calendar Page
35
+
36
+ **Calendar More Actions Menu — Slot ID:** `f3ad314d-0704-48e5-86b5-81acaf43e036`
37
+
38
+ - **Dashboard path:** Booking Calendar > Calendar
39
+ - **Use case:** Add actions to the calendar page's more actions menu.
40
+
41
+ **Collect Payment Button Menu — Slot ID:** `bb4aa225-86d8-47fe-87d1-f519b1b93473`
42
+
43
+ - **Dashboard path:** Booking Calendar > Calendar
44
+ - **Use case:** Add custom payment options to the collect payment button menu.
45
+
46
+ > **Note:** This slot also appears on the Wix eCommerce Order Page.
47
+
48
+ ### Booking List Page
49
+
50
+ **Booking More Actions Menu — Slot ID:** `38fbe11f-6bc6-4df7-a742-e3e169a16cef`
51
+
52
+ - **Dashboard path:** Booking Calendar > Booking List
53
+ - **Use case:** Add actions for individual bookings.
54
+
55
+ **Booking List Bulk Actions More Actions Menu — Slot ID:** `f1ab2ce9-a790-4e3e-a0f7-fae4da37a668`
56
+
57
+ - **Dashboard path:** Booking Calendar > Booking List (when items are selected)
58
+ - **Use case:** Add bulk actions for multiple selected bookings.
@@ -0,0 +1,8 @@
1
+ # Wix CRM — Menu Plugin Slots
2
+
3
+ ### Contact Page
4
+
5
+ **Contact More Actions Menu — Slot ID:** `79963a99-8680-4164-8961-8867fcb1751a`
6
+
7
+ - **Dashboard path:** Contacts > Contact
8
+ - **Use case:** Add actions for individual contacts (e.g., export, tag, integrate with external CRM).
@@ -0,0 +1,17 @@
1
+ # Wix eCommerce — Menu Plugin Slots
2
+
3
+ ### Order Page
4
+
5
+ **Collect Payment Button Menu — Slot ID:** `bb4aa225-86d8-47fe-87d1-f519b1b93473`
6
+
7
+ - **Dashboard path:** Sales > Orders > Order
8
+ - **Use case:** Add custom payment options to the collect payment button menu.
9
+
10
+ > **Note:** This slot also appears on the Wix Bookings Calendar Page.
11
+
12
+ ### Orders List Page
13
+
14
+ **Orders List More Actions Menu — Slot ID:** `3172f3e2-236f-41db-84ca-a744e5edfcd9`
15
+
16
+ - **Dashboard path:** Sales > Orders
17
+ - **Use case:** Add actions for individual orders in the orders list.
@@ -0,0 +1,29 @@
1
+ # Wix Events — Menu Plugin Slots
2
+
3
+ ### RSVP Event Page — Guests Tab
4
+
5
+ **More Actions Menu — Slot ID:** `f35dc417-bb7b-41c6-af99-c5a86c60f54a`
6
+
7
+ - **Dashboard path:** Events > RSVP Event > Guests tab
8
+ - **Use case:** Add actions for individual RSVP guests.
9
+
10
+ ### Ticketed Event Page — Guests Tab
11
+
12
+ **More Actions Menu — Slot ID:** `b9f7d36e-4035-4079-8781-4f78b4bec183`
13
+
14
+ - **Dashboard path:** Events > Ticketed Event > Guests tab
15
+ - **Use case:** Add actions for individual ticketed event guests.
16
+
17
+ ### Event Page — Orders Tab
18
+
19
+ **More Actions Menu — Slot ID:** `241f5aea-8e66-45b6-b7ed-6050100b6b29`
20
+
21
+ - **Dashboard path:** Events > Event > Orders tab
22
+ - **Use case:** Add actions for individual event orders.
23
+
24
+ ### Published or Drafts Page
25
+
26
+ **More Actions Menu — Slot ID:** `190f00be-4e0f-4463-a3a6-f1cfee681bca`
27
+
28
+ - **Dashboard path:** Events > Published or Drafts
29
+ - **Use case:** Add actions for individual events in the events list.
@@ -0,0 +1,27 @@
1
+ # Wix Restaurants — Menu Plugin Slots
2
+
3
+ ### Table Reservations Page
4
+
5
+ **Table Reservations More Actions Menu — Slot ID:** `61646cc4-8deb-4e4b-bd30-938d3a29eeee`
6
+
7
+ - **Dashboard path:** Table Reservations
8
+ - **Use case:** Add global actions to the table reservations page's more actions menu.
9
+
10
+ **Reservation Item More Actions Menu — Slot ID:** `f51f609d-950f-448a-a5e7-f01d31a7978d`
11
+
12
+ - **Dashboard path:** Table Reservations
13
+ - **Use case:** Add actions for individual reservations.
14
+
15
+ ### Online Orders Page
16
+
17
+ **Order Card More Actions Menu — Slot ID:** `d6b9230e-7388-4b5a-bb50-86afe3e344b2`
18
+
19
+ - **Dashboard path:** Online Orders
20
+ - **Use case:** Add actions for individual online orders.
21
+
22
+ ### Restaurant Menus Page
23
+
24
+ **Menus Main More Actions Menu — Slot ID:** `e2a7ffb0-5e9c-4eda-bc0c-14724ff3e407`
25
+
26
+ - **Dashboard path:** Restaurant Menus
27
+ - **Use case:** Add global actions to the restaurant menus page's more actions menu.
@@ -0,0 +1,35 @@
1
+ # Wix Stores — Menu Plugin Slots
2
+
3
+ ### Products Page
4
+
5
+ **Main More Actions Menu — Slot ID:** `c87531bd-12df-42f6-bd78-c929ece48be4`
6
+
7
+ - **Dashboard path:** Catalog > Store Products > Products
8
+ - **Use case:** Add global actions to the products page's more actions menu.
9
+
10
+ **Product More Actions Menu — Slot ID:** `5c6c70b7-5041-404d-81b6-1f7ce19acf0f`
11
+
12
+ - **Dashboard path:** Catalog > Store Products > Products
13
+ - **Use case:** Add actions for individual products.
14
+
15
+ **Bulk Actions Toolbar More Actions Menu — Slot ID:** `23986555-0ea3-49b4-bcaa-56cfe1ad35bf`
16
+
17
+ - **Dashboard path:** Catalog > Store Products > Products (when items are selected)
18
+ - **Use case:** Add bulk actions for multiple selected products.
19
+
20
+ ### Inventory Page
21
+
22
+ **Inventory Item Menu Action — Slot ID:** `1b9742f8-2b93-4e66-85f2-47289bf548bb`
23
+
24
+ - **Dashboard path:** Catalog > Store Products > Inventory
25
+ - **Use case:** Add actions for individual inventory items.
26
+
27
+ **Global More Actions Menu — Slot ID:** `b9e4104f-9beb-4258-8bdb-6a34d6bf7fd0`
28
+
29
+ - **Dashboard path:** Catalog > Store Products > Inventory
30
+ - **Use case:** Add global actions to the inventory page's more actions menu.
31
+
32
+ **Bulk Actions More Actions Menu — Slot ID:** `b9f2ad03-7407-48d9-9e89-fe2f2df63e8a`
33
+
34
+ - **Dashboard path:** Catalog > Store Products > Inventory (when items are selected)
35
+ - **Use case:** Add bulk actions for multiple selected inventory items.