@selwise/widget 0.0.1 → 0.0.3

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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/dist/npm/cjs/index.js +50 -5
  4. package/dist/npm/cjs/index.js.map +1 -1
  5. package/dist/npm/cjs/modules/contract/recommendation-contract.js +1 -1
  6. package/dist/npm/cjs/modules/contract/search-contract.js +1 -1
  7. package/dist/npm/cjs/modules/contract/tracking-contract.js +1 -1
  8. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js +164 -0
  9. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
  10. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js +21 -0
  11. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
  12. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js +3 -0
  13. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
  14. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js +107 -0
  15. package/dist/npm/cjs/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
  16. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js +404 -0
  17. package/dist/npm/cjs/modules/contract/vendor/search-contract/configs.js.map +1 -0
  18. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js +21 -0
  19. package/dist/npm/cjs/modules/contract/vendor/search-contract/index.js.map +1 -0
  20. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js +8 -0
  21. package/dist/npm/cjs/modules/contract/vendor/search-contract/types.js.map +1 -0
  22. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js +126 -0
  23. package/dist/npm/cjs/modules/contract/vendor/search-contract/validators.js.map +1 -0
  24. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js +133 -0
  25. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
  26. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js +21 -0
  27. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/index.js.map +1 -0
  28. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js +3 -0
  29. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/types.js.map +1 -0
  30. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js +154 -0
  31. package/dist/npm/cjs/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
  32. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js +1481 -0
  33. package/dist/npm/cjs/modules/contract/vendor/widget-contract/configs.js.map +1 -0
  34. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js +22 -0
  35. package/dist/npm/cjs/modules/contract/vendor/widget-contract/index.js.map +1 -0
  36. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js +21 -0
  37. package/dist/npm/cjs/modules/contract/vendor/widget-contract/layout.js.map +1 -0
  38. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js +8 -0
  39. package/dist/npm/cjs/modules/contract/vendor/widget-contract/types.js.map +1 -0
  40. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js +139 -0
  41. package/dist/npm/cjs/modules/contract/vendor/widget-contract/validators.js.map +1 -0
  42. package/dist/npm/cjs/modules/contract/widget-contract.js +1 -1
  43. package/dist/npm/cjs/selwise.js +15 -9
  44. package/dist/npm/cjs/selwise.js.map +1 -1
  45. package/dist/npm/esm/index.d.ts +5 -2
  46. package/dist/npm/esm/index.js +15 -2
  47. package/dist/npm/esm/index.js.map +1 -1
  48. package/dist/npm/esm/modules/contract/recommendation-contract.d.ts +2 -2
  49. package/dist/npm/esm/modules/contract/recommendation-contract.js +1 -1
  50. package/dist/npm/esm/modules/contract/search-contract.d.ts +1 -1
  51. package/dist/npm/esm/modules/contract/search-contract.js +1 -1
  52. package/dist/npm/esm/modules/contract/tracking-contract.d.ts +1 -1
  53. package/dist/npm/esm/modules/contract/tracking-contract.js +1 -1
  54. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.d.ts +8 -0
  55. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js +160 -0
  56. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/configs.js.map +1 -0
  57. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.d.ts +3 -0
  58. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js +5 -0
  59. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/index.js.map +1 -0
  60. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.d.ts +56 -0
  61. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js +2 -0
  62. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/types.js.map +1 -0
  63. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.d.ts +3 -0
  64. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js +103 -0
  65. package/dist/npm/esm/modules/contract/vendor/recommendation-contract/validators.js.map +1 -0
  66. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.d.ts +35 -0
  67. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js +396 -0
  68. package/dist/npm/esm/modules/contract/vendor/search-contract/configs.js.map +1 -0
  69. package/dist/npm/esm/modules/contract/vendor/search-contract/index.d.ts +3 -0
  70. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js +5 -0
  71. package/dist/npm/esm/modules/contract/vendor/search-contract/index.js.map +1 -0
  72. package/dist/npm/esm/modules/contract/vendor/search-contract/types.d.ts +119 -0
  73. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js +7 -0
  74. package/dist/npm/esm/modules/contract/vendor/search-contract/types.js.map +1 -0
  75. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.d.ts +22 -0
  76. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js +118 -0
  77. package/dist/npm/esm/modules/contract/vendor/search-contract/validators.js.map +1 -0
  78. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.d.ts +7 -0
  79. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js +130 -0
  80. package/dist/npm/esm/modules/contract/vendor/tracking-contract/configs.js.map +1 -0
  81. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.d.ts +3 -0
  82. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js +5 -0
  83. package/dist/npm/esm/modules/contract/vendor/tracking-contract/index.js.map +1 -0
  84. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.d.ts +37 -0
  85. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js +2 -0
  86. package/dist/npm/esm/modules/contract/vendor/tracking-contract/types.js.map +1 -0
  87. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.d.ts +6 -0
  88. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js +147 -0
  89. package/dist/npm/esm/modules/contract/vendor/tracking-contract/validators.js.map +1 -0
  90. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.d.ts +22 -0
  91. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js +1472 -0
  92. package/dist/npm/esm/modules/contract/vendor/widget-contract/configs.js.map +1 -0
  93. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.d.ts +4 -0
  94. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js +6 -0
  95. package/dist/npm/esm/modules/contract/vendor/widget-contract/index.js.map +1 -0
  96. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.d.ts +14 -0
  97. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js +18 -0
  98. package/dist/npm/esm/modules/contract/vendor/widget-contract/layout.js.map +1 -0
  99. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.d.ts +128 -0
  100. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js +7 -0
  101. package/dist/npm/esm/modules/contract/vendor/widget-contract/types.js.map +1 -0
  102. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.d.ts +11 -0
  103. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js +132 -0
  104. package/dist/npm/esm/modules/contract/vendor/widget-contract/validators.js.map +1 -0
  105. package/dist/npm/esm/modules/contract/widget-contract.d.ts +1 -1
  106. package/dist/npm/esm/modules/contract/widget-contract.js +1 -1
  107. package/dist/npm/esm/selwise.d.ts +28 -2
  108. package/dist/npm/esm/selwise.js +15 -9
  109. package/dist/npm/esm/selwise.js.map +1 -1
  110. package/package.json +25 -9
@@ -0,0 +1,396 @@
1
+ // AUTO-GENERATED FROM packages/search-contract/src/configs.ts. DO NOT EDIT DIRECTLY.
2
+ /**
3
+ * Search Configuration Library
4
+ * Templates, positions, and style configurations for search module
5
+ */
6
+ export const SEARCH_POSITIONS = [
7
+ {
8
+ value: 'inline',
9
+ label: 'Inline',
10
+ description: 'Insert search box at a specific location using CSS selector',
11
+ icon: 'LayoutTemplate',
12
+ requiresSelector: true,
13
+ },
14
+ {
15
+ value: 'modal',
16
+ label: 'Modal Popup',
17
+ description: 'Centered popup overlay triggered by button or hotkey',
18
+ icon: 'Maximize2',
19
+ },
20
+ {
21
+ value: 'floating',
22
+ label: 'Floating Button',
23
+ description: 'Floating search button in corner of screen',
24
+ icon: 'Circle',
25
+ },
26
+ {
27
+ value: 'sidebar',
28
+ label: 'Sidebar Panel',
29
+ description: 'Full-height sidebar panel slides in from side',
30
+ icon: 'PanelRight',
31
+ },
32
+ {
33
+ value: 'fullscreen',
34
+ label: 'Fullscreen',
35
+ description: 'Full-page overlay with large search experience',
36
+ icon: 'Maximize',
37
+ },
38
+ ];
39
+ export const SEARCH_FLOATING_POSITIONS = [
40
+ { value: 'bottom-right', label: 'Bottom Right' },
41
+ { value: 'bottom-left', label: 'Bottom Left' },
42
+ { value: 'top-right', label: 'Top Right' },
43
+ { value: 'top-left', label: 'Top Left' },
44
+ ];
45
+ // ===========================================
46
+ // CATEGORY DISPLAY OPTIONS
47
+ // ===========================================
48
+ export const CATEGORY_DISPLAY_MODES = [
49
+ { value: 'none', label: 'None', description: 'No category filters shown' },
50
+ { value: 'chips', label: 'Filter Chips', description: 'Horizontal chips above results' },
51
+ { value: 'sidebar', label: 'Sidebar', description: 'Category tree in left sidebar' },
52
+ { value: 'dropdown', label: 'Dropdown', description: 'Category dropdown selector' },
53
+ ];
54
+ // ===========================================
55
+ // STYLE CONFIGURATIONS PER TEMPLATE
56
+ // ===========================================
57
+ // ===========================================
58
+ // UNIVERSAL STYLE CONFIGURATION
59
+ // ===========================================
60
+ export const UNIVERSAL_STYLE_SECTIONS = [
61
+ {
62
+ id: 'colors',
63
+ title: 'Colors',
64
+ icon: 'Palette',
65
+ fields: [
66
+ { key: 'backgroundColor', label: 'Background', type: 'color', default: '#ffffff' },
67
+ { key: 'textColor', label: 'Text Color', type: 'color', default: '#1f2937' },
68
+ { key: 'accentColor', label: 'Accent Color', type: 'color', default: '#6366f1' },
69
+ { key: 'borderColor', label: 'Border Color', type: 'color', default: '#e5e7eb' },
70
+ { key: 'gradientStart', label: 'Gradient Start', type: 'color', default: '#6366f1' },
71
+ { key: 'gradientEnd', label: 'Gradient End', type: 'color', default: '#8b5cf6' },
72
+ { key: 'overlayColor', label: 'Overlay Color', type: 'color', default: 'rgba(0,0,0,0.4)' },
73
+ { key: 'overlayOpacity', label: 'Overlay Opacity %', type: 'range', min: 0, max: 100, default: 50 },
74
+ ],
75
+ },
76
+ {
77
+ id: 'input',
78
+ title: 'Search Input',
79
+ icon: 'Search',
80
+ fields: [
81
+ { key: 'inputBg', label: 'Input Background', type: 'color', default: '#f9fafb' },
82
+ { key: 'inputBorder', label: 'Input Border', type: 'color', default: '#d1d5db' },
83
+ { key: 'inputFocus', label: 'Input Focus', type: 'color', default: '#6366f1' },
84
+ { key: 'inputBorderWidth', label: 'Border Width', type: 'select', options: ['0px', '1px', '2px', '3px', '4px'], default: '2px' },
85
+ { key: 'inputRadius', label: 'Input Radius', type: 'select', options: ['0px', '4px', '8px', '12px', '24px', '9999px'], default: '8px' },
86
+ { key: 'inputHeight', label: 'Input Height', type: 'select', options: ['36px', '40px', '44px', '48px', '52px'], default: '44px' },
87
+ { key: 'inputShadow', label: 'Input Shadow', type: 'select', options: ['none', 'sm', 'md', 'lg'], default: 'sm' },
88
+ { key: 'inputIcon', label: 'Show Icon', type: 'toggle', default: true },
89
+ { key: 'inputSize', label: 'Input Styles', type: 'select', options: ['normal', 'large', 'xlarge'], default: 'normal' },
90
+ ],
91
+ },
92
+ {
93
+ id: 'results',
94
+ title: 'Results Container',
95
+ icon: 'Layout',
96
+ fields: [
97
+ { key: 'maxHeight', label: 'Max Height', type: 'select', options: ['auto', '300px', '400px', '500px', '600px', '80vh'], default: '400px' },
98
+ { key: 'containerRadius', label: 'Container Radius', type: 'select', options: ['0px', '8px', '12px', '16px', '24px'], default: '12px' },
99
+ { key: 'containerShadow', label: 'Container Shadow', type: 'select', options: ['none', 'sm', 'md', 'lg', 'xl', '2xl'], default: 'lg' },
100
+ { key: 'containerBorder', label: 'Container Border', type: 'toggle', default: true },
101
+ { key: 'sidebarWidth', label: 'Sidebar Width (if applicable)', type: 'select', options: ['300px', '400px', '480px', '600px'], default: '480px' },
102
+ { key: 'sidebarBg', label: 'Sidebar Background', type: 'color', default: '#ffffff' },
103
+ ],
104
+ },
105
+ {
106
+ id: 'items',
107
+ title: 'Result Items',
108
+ icon: 'Grid',
109
+ fields: [
110
+ { key: 'gridColumns', label: 'Grid Columns', type: 'select', options: ['1', '2', '3', '4'], default: '1' },
111
+ { key: 'itemGap', label: 'Item Gap', type: 'select', options: ['0px', '4px', '8px', '12px', '16px', '20px', '24px'], default: '12px' },
112
+ { key: 'itemPadding', label: 'Item Padding', type: 'select', options: ['8px', '12px', '16px', '20px', '24px'], default: '12px' },
113
+ { key: 'itemRadius', label: 'Item Radius', type: 'select', options: ['0px', '4px', '8px', '12px', '16px'], default: '8px' },
114
+ { key: 'itemHoverBg', label: 'Hover Background', type: 'color', default: '#f9fafb' },
115
+ { key: 'itemShadow', label: 'Item Shadow', type: 'select', options: ['none', 'sm', 'md', 'lg'], default: 'none' },
116
+ { key: 'itemHoverShadow', label: 'Hover Shadow', type: 'select', options: ['none', 'sm', 'md', 'lg', 'xl'], default: 'none' },
117
+ { key: 'resultDivider', label: 'Show Dividers', type: 'toggle', default: true },
118
+ { key: 'itemHoverScale', label: 'Hover Scale Effect', type: 'toggle', default: false },
119
+ { key: 'cardAspect', label: 'Card Aspect Ratio', type: 'select', options: ['auto', '1/1', '4/3', '3/4', '16/9'], default: 'auto' },
120
+ ],
121
+ },
122
+ {
123
+ id: 'images',
124
+ title: 'Images',
125
+ icon: 'Image',
126
+ fields: [
127
+ { key: 'imageSize', label: 'Image Size', type: 'select', options: ['32px', '40px', '48px', '56px', '64px', '72px', '80px', '100%'], default: '56px' },
128
+ { key: 'imageHeight', label: 'Image Height (Fixed)', type: 'select', options: ['auto', '100px', '120px', '150px', '180px', '200px'], default: 'auto' },
129
+ { key: 'imageRadius', label: 'Image Radius', type: 'select', options: ['0px', '4px', '8px', '12px', '50%'], default: '8px' },
130
+ { key: 'imageObjectFit', label: 'Object Fit', type: 'select', options: ['cover', 'contain', 'fill'], default: 'cover' },
131
+ { key: 'imageOverlay', label: 'Dark Overlay', type: 'toggle', default: false },
132
+ { key: 'imageBorder', label: 'Image Border', type: 'toggle', default: false },
133
+ ],
134
+ },
135
+ {
136
+ id: 'typography',
137
+ title: 'Typography',
138
+ icon: 'Type',
139
+ fields: [
140
+ { key: 'fontFamily', label: 'Font Family', type: 'font', default: 'inherit' },
141
+ { key: 'titleSize', label: 'Title Size', type: 'select', options: ['12px', '13px', '14px', '15px', '16px', '18px', '20px', '24px'], default: '14px' },
142
+ { key: 'titleWeight', label: 'Title Weight', type: 'select', options: ['normal', 'medium', 'semibold', 'bold'], default: 'medium' },
143
+ { key: 'descSize', label: 'Description Size', type: 'select', options: ['10px', '11px', '12px', '13px', '14px'], default: '12px' },
144
+ { key: 'priceSize', label: 'Price Size', type: 'select', options: ['12px', '13px', '14px', '15px', '16px', '18px', '20px'], default: '14px' },
145
+ { key: 'priceColor', label: 'Price Color', type: 'color', default: '#059669' },
146
+ { key: 'oldPriceColor', label: 'Old Price Color', type: 'color', default: '#9ca3af' },
147
+ { key: 'showOverlay', label: 'Text Overlay on Image', type: 'toggle', default: false },
148
+ { key: 'overlayPosition', label: 'Overlay Position', type: 'select', options: ['bottom', 'center', 'full'], default: 'bottom' },
149
+ ],
150
+ },
151
+ {
152
+ id: 'badges',
153
+ title: 'Badges & Highlights',
154
+ icon: 'Tag',
155
+ fields: [
156
+ { key: 'discountBadgeBg', label: 'Discount Badge Bg', type: 'color', default: '#dc2626' },
157
+ { key: 'discountBadgeText', label: 'Discount Badge Text', type: 'color', default: '#ffffff' },
158
+ { key: 'badgeRadius', label: 'Badge Radius', type: 'select', options: ['0px', '2px', '4px', '8px', '9999px'], default: '4px' },
159
+ { key: 'highlightBg', label: 'Highlight Match Bg', type: 'color', default: '#fef08a' },
160
+ { key: 'highlightText', label: 'Highlight Match Text', type: 'color', default: '#1f2937' },
161
+ { key: 'highlightRadius', label: 'Highlight Radius', type: 'select', options: ['0px', '2px', '4px'], default: '2px' },
162
+ { key: 'showDiscountBadge', label: 'Show Discount', type: 'toggle', default: true },
163
+ { key: 'showStockBadge', label: 'Show Stock', type: 'toggle', default: false },
164
+ ],
165
+ },
166
+ {
167
+ id: 'animation',
168
+ title: 'Animations',
169
+ icon: 'Zap',
170
+ fields: [
171
+ { key: 'animationType', label: 'Animation Type', type: 'select', options: ['none', 'fade', 'slide', 'scale'], default: 'fade' },
172
+ { key: 'transitionDuration', label: 'Duration', type: 'select', options: ['100ms', '200ms', '300ms', '400ms'], default: '200ms' },
173
+ { key: 'staggerDelay', label: 'Stagger Delay', type: 'select', options: ['0ms', '30ms', '50ms', '80ms'], default: '30ms' },
174
+ ],
175
+ },
176
+ {
177
+ id: 'category_style',
178
+ title: 'Category Styling',
179
+ icon: 'FolderTree',
180
+ fields: [
181
+ { key: 'categoryActiveBg', label: 'Active Category Bg', type: 'color', default: '#6366f1' },
182
+ { key: 'categoryActiveText', label: 'Active Category Text', type: 'color', default: '#ffffff' },
183
+ { key: 'categoryPadding', label: 'Category Padding', type: 'select', options: ['8px', '12px', '16px'], default: '12px' },
184
+ { key: 'categorySidebarWidth', label: 'Sidebar Width', type: 'select', options: ['120px', '150px', '180px', '200px', '250px'], default: '120px' },
185
+ { key: 'categoryNaming', label: 'Category Naming', type: 'select', options: ['full_path', 'last_part', 'first_part'], default: 'full_path' },
186
+ { key: 'categoryRadius', label: 'Category Radius', type: 'select', options: ['4px', '8px', '12px'], default: '8px' },
187
+ ]
188
+ },
189
+ {
190
+ id: 'localization',
191
+ title: 'Currency & Localization',
192
+ icon: 'Languages',
193
+ fields: [
194
+ { key: 'currencySymbol', label: 'Currency Symbol', type: 'text', default: '$', placeholder: '$ or €' },
195
+ { key: 'currencyPosition', label: 'Currency Position', type: 'select', options: ['left', 'right', 'left-space', 'right-space'], default: 'left' },
196
+ { key: 'priceDecimals', label: 'Decimals', type: 'select', options: ['0', '2'], default: '2' },
197
+ { key: 'decimalSeparator', label: 'Decimal Separator', type: 'text', default: '.', placeholder: '.' },
198
+ { key: 'thousandSeparator', label: 'Thousand Separator', type: 'text', default: ',', placeholder: ',' },
199
+ ]
200
+ },
201
+ {
202
+ id: 'custom_css',
203
+ title: 'Custom CSS',
204
+ icon: 'Code',
205
+ fields: [
206
+ { key: 'customCss', label: 'Custom CSS', type: 'textarea', default: '', placeholder: '.ws-search-item { background: red; }' },
207
+ ]
208
+ },
209
+ ];
210
+ export const TRANSLATION_SECTION = {
211
+ id: 'translations',
212
+ title: 'Text & Translations',
213
+ icon: 'Languages',
214
+ fields: [
215
+ { key: 'textSearchHeader', label: 'Header Title', type: 'text', default: 'Search', placeholder: 'Search' },
216
+ { key: 'textPlaceholder', label: 'Input Placeholder', type: 'text', default: 'Search products...', placeholder: 'Search products...' },
217
+ { key: 'textLoading', label: 'Loading Text', type: 'text', default: 'Searching...', placeholder: 'Searching...' },
218
+ { key: 'textEmpty', label: 'No Results Text', type: 'text', default: 'No products found', placeholder: 'No products found' },
219
+ { key: 'textInStock', label: 'In Stock Text', type: 'text', default: 'In Stock', placeholder: 'In Stock' },
220
+ { key: 'textOutOfStock', label: 'Out of Stock Text', type: 'text', default: 'Out of Stock', placeholder: 'Out of Stock' },
221
+ { key: 'textCategories', label: 'Categories Title', type: 'text', default: 'Categories', placeholder: 'Categories' },
222
+ { key: 'textAll', label: '"All" Label', type: 'text', default: 'All', placeholder: 'All' },
223
+ { key: 'textFooter', label: 'Footer Text', type: 'text', default: '{total} products found in {time}ms', placeholder: '{total} products found in {time}ms' },
224
+ ]
225
+ };
226
+ export const STYLE_CONFIGS = UNIVERSAL_STYLE_SECTIONS;
227
+ export const SEARCH_STYLE_CONFIGS = UNIVERSAL_STYLE_SECTIONS;
228
+ // ===========================================
229
+ // DEFAULT CONFIGURATIONS
230
+ // ===========================================
231
+ export const DEFAULT_CATEGORY_CONFIG = {
232
+ displayMode: 'none',
233
+ showCount: true,
234
+ maxVisible: 10,
235
+ expandable: true,
236
+ hierarchical: false,
237
+ };
238
+ export const DEFAULT_RESULT_ITEM_CONFIG = {
239
+ layout: 'list',
240
+ showImage: true,
241
+ showDescription: false,
242
+ showPrice: true,
243
+ showOldPrice: true,
244
+ showDiscount: true,
245
+ showStock: false,
246
+ showCategory: false,
247
+ showRating: false,
248
+ imageSize: 'medium',
249
+ imagePosition: 'left',
250
+ truncateTitle: 60,
251
+ truncateDescription: 100,
252
+ };
253
+ export const DEFAULT_ANIMATION_CONFIG = {
254
+ type: 'fade',
255
+ duration: 200,
256
+ easing: 'ease-out',
257
+ };
258
+ // Get default styles
259
+ export function getDefaultSearchStyles() {
260
+ const sections = SEARCH_STYLE_CONFIGS;
261
+ const defaults = {};
262
+ sections.forEach((section) => {
263
+ section.fields.forEach((field) => {
264
+ defaults[field.key] = field.default;
265
+ });
266
+ });
267
+ return defaults;
268
+ }
269
+ // Get full default config
270
+ export function getDefaultSearchConfig() {
271
+ return {
272
+ isEnabled: false,
273
+ styles: getDefaultSearchStyles(),
274
+ searchOnFocus: false,
275
+ keepOpen: false,
276
+ mobileFullscreen: true,
277
+ };
278
+ }
279
+ // Shadow values (shared with widget-config)
280
+ export const SHADOW_VALUES = {
281
+ none: 'none',
282
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
283
+ md: '0 4px 6px -1px rgba(0, 0, 0, 0.1)',
284
+ lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1)',
285
+ xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1)',
286
+ '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
287
+ };
288
+ // Helper to get shadow CSS value
289
+ export function getShadowValue(shadow) {
290
+ return SHADOW_VALUES[shadow] || 'none';
291
+ }
292
+ // Get position config by value
293
+ export function getPositionConfig(position) {
294
+ return SEARCH_POSITIONS.find(p => p.value === position);
295
+ }
296
+ // ========== NEW: Suggestion Source Options ==========
297
+ export const SUGGESTION_SOURCES = [
298
+ { value: 'manual', label: 'Manual Only', description: 'Only show items you manually add' },
299
+ { value: 'dynamic', label: 'Dynamic Only', description: 'Automatically show based on search analytics' },
300
+ { value: 'both', label: 'Both', description: 'Show both manual and dynamic items' },
301
+ ];
302
+ // ========== Suggestion Style Configuration ==========
303
+ export const SUGGESTION_STYLE_SECTIONS = [
304
+ {
305
+ id: 'suggestion_general',
306
+ title: 'General',
307
+ icon: 'Layout',
308
+ fields: [
309
+ { key: 'sectionHeaderColor', label: 'Header Color', type: 'color', default: '#9ca3af' },
310
+ { key: 'sectionHeaderSize', label: 'Header Size', type: 'select', options: ['10px', '11px', '12px', '13px'], default: '11px' },
311
+ { key: 'sectionHeaderWeight', label: 'Header Weight', type: 'select', options: ['400', '500', '600', '700'], default: '600' },
312
+ { key: 'sectionSpacing', label: 'Section Spacing', type: 'select', options: ['12px', '16px', '20px', '24px'], default: '16px' },
313
+ { key: 'sectionDivider', label: 'Show Dividers', type: 'toggle', default: true },
314
+ { key: 'sectionDividerColor', label: 'Divider Color', type: 'color', default: '#f3f4f6' },
315
+ ],
316
+ },
317
+ {
318
+ id: 'suggestion_recent',
319
+ title: 'Recent Searches',
320
+ icon: 'History',
321
+ fields: [
322
+ { key: 'recentIconColor', label: 'Icon Color', type: 'color', default: '#d1d5db' },
323
+ { key: 'recentTextColor', label: 'Text Color', type: 'color', default: '#374151' },
324
+ { key: 'recentHoverBg', label: 'Hover Background', type: 'color', default: '#f8fafc' },
325
+ { key: 'recentClearColor', label: 'Clear Button Color', type: 'color', default: '#6366f1' },
326
+ { key: 'textRecentSearches', label: 'Section Title', type: 'text', default: 'Recent Searches', placeholder: 'Recent Searches' },
327
+ { key: 'textClearRecent', label: 'Clear Button Text', type: 'text', default: 'Clear', placeholder: 'Clear' },
328
+ ],
329
+ },
330
+ {
331
+ id: 'suggestion_popular_searches',
332
+ title: 'Popular Searches',
333
+ icon: 'TrendingUp',
334
+ fields: [
335
+ { key: 'popularSearchIconColor', label: 'Icon Color', type: 'color', default: '#fbbf24' },
336
+ { key: 'popularSearchTextColor', label: 'Text Color', type: 'color', default: '#374151' },
337
+ { key: 'popularSearchHoverBg', label: 'Hover Background', type: 'color', default: '#f8fafc' },
338
+ { key: 'textPopularSearches', label: 'Section Title', type: 'text', default: 'Popular Searches', placeholder: 'Popular Searches' },
339
+ ],
340
+ },
341
+ {
342
+ id: 'suggestion_categories',
343
+ title: 'Popular Categories',
344
+ icon: 'Tags',
345
+ fields: [
346
+ { key: 'categoryCardBg', label: 'Card Background', type: 'color', default: '#f8fafc' },
347
+ { key: 'categoryCardBorder', label: 'Card Border', type: 'color', default: 'transparent' },
348
+ { key: 'categoryCardRadius', label: 'Card Radius', type: 'select', options: ['8px', '10px', '12px', '16px'], default: '12px' },
349
+ { key: 'categoryCardHoverBg', label: 'Card Hover Bg', type: 'color', default: '#f1f5f9' },
350
+ { key: 'categoryCardHoverBorder', label: 'Card Hover Border', type: 'color', default: '#6366f1' },
351
+ { key: 'categoryImageSize', label: 'Image Size', type: 'select', options: ['36px', '40px', '48px', '56px', '64px'], default: '48px' },
352
+ { key: 'categoryImageRadius', label: 'Image Radius', type: 'select', options: ['6px', '8px', '10px', '12px', '50%'], default: '10px' },
353
+ { key: 'categoryImageBg', label: 'Image Background', type: 'color', default: '#e2e8f0' },
354
+ { key: 'categoryNameColor', label: 'Name Color', type: 'color', default: '#475569' },
355
+ { key: 'categoryNameSize', label: 'Name Size', type: 'select', options: ['11px', '12px', '13px', '14px'], default: '12px' },
356
+ { key: 'categoryColumns', label: 'Columns', type: 'select', options: ['auto', '2', '3', '4', '5', '6'], default: 'auto' },
357
+ { key: 'categoryGap', label: 'Gap', type: 'select', options: ['8px', '10px', '12px', '16px'], default: '10px' },
358
+ { key: 'textPopularCategories', label: 'Section Title', type: 'text', default: 'Popular Categories', placeholder: 'Popular Categories' },
359
+ ],
360
+ },
361
+ {
362
+ id: 'suggestion_products',
363
+ title: 'Popular Products',
364
+ icon: 'Package',
365
+ fields: [
366
+ { key: 'productCardBg', label: 'Card Background', type: 'color', default: '#ffffff' },
367
+ { key: 'productCardBorder', label: 'Card Border', type: 'color', default: '#e2e8f0' },
368
+ { key: 'productCardRadius', label: 'Card Radius', type: 'select', options: ['8px', '10px', '12px', '16px'], default: '12px' },
369
+ { key: 'productCardHoverBorder', label: 'Hover Border', type: 'color', default: '#6366f1' },
370
+ { key: 'productCardShadow', label: 'Card Shadow', type: 'select', options: ['none', '0 1px 3px rgba(0,0,0,0.04)', '0 2px 8px rgba(0,0,0,0.08)', '0 4px 12px rgba(0,0,0,0.1)'], default: '0 1px 3px rgba(0,0,0,0.04)' },
371
+ { key: 'productCardHoverShadow', label: 'Hover Shadow', type: 'select', options: ['none', '0 4px 12px rgba(0,0,0,0.08)', '0 8px 24px rgba(0,0,0,0.12)', '0 12px 32px rgba(0,0,0,0.15)'], default: '0 8px 24px rgba(0,0,0,0.12)' },
372
+ { key: 'productImageHeight', label: 'Image Height', type: 'select', options: ['80px', '100px', '120px', '140px'], default: '100px' },
373
+ { key: 'productImageBg', label: 'Image Background', type: 'color', default: '#f8fafc' },
374
+ { key: 'productNameColor', label: 'Name Color', type: 'color', default: '#1e293b' },
375
+ { key: 'productNameSize', label: 'Name Size', type: 'select', options: ['12px', '13px', '14px', '15px'], default: '13px' },
376
+ { key: 'productPriceColor', label: 'Price Color', type: 'color', default: '#059669' },
377
+ { key: 'productPriceSize', label: 'Price Size', type: 'select', options: ['13px', '14px', '15px', '16px'], default: '15px' },
378
+ { key: 'productOldPriceColor', label: 'Old Price Color', type: 'color', default: '#9ca3af' },
379
+ { key: 'productColumns', label: 'Columns', type: 'select', options: ['auto', '2', '3', '4'], default: 'auto' },
380
+ { key: 'productGap', label: 'Gap', type: 'select', options: ['8px', '12px', '16px', '20px'], default: '12px' },
381
+ { key: 'textPopularProducts', label: 'Section Title', type: 'text', default: 'Popular Products', placeholder: 'Popular Products' },
382
+ ],
383
+ },
384
+ ];
385
+ export const SUGGESTION_STYLE_CONFIGS = SUGGESTION_STYLE_SECTIONS;
386
+ // Get default suggestion styles
387
+ export function getDefaultSuggestionStyles() {
388
+ const defaults = {};
389
+ SUGGESTION_STYLE_SECTIONS.forEach((section) => {
390
+ section.fields.forEach((field) => {
391
+ defaults[field.key] = field.default;
392
+ });
393
+ });
394
+ return defaults;
395
+ }
396
+ //# sourceMappingURL=configs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configs.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/search-contract/configs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './types';
2
+ export * from './configs';
3
+ export * from './validators';
@@ -0,0 +1,5 @@
1
+ // AUTO-GENERATED FROM packages/search-contract/src/index.ts. DO NOT EDIT DIRECTLY.
2
+ export * from './types.js';
3
+ export * from './configs.js';
4
+ export * from './validators.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/search-contract/index.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Search Configuration Type Definitions
3
+ * Single source of truth for all search configuration types
4
+ */
5
+ export type SearchPosition = 'inline' | 'modal' | 'floating' | 'sidebar' | 'fullscreen';
6
+ export type SearchFloatingPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
7
+ export type CategoryDisplayMode = 'none' | 'chips' | 'sidebar' | 'dropdown';
8
+ export type ResultLayout = 'list' | 'grid' | 'compact' | 'large';
9
+ export interface SearchPositionConfig {
10
+ value: SearchPosition;
11
+ label: string;
12
+ description: string;
13
+ icon: string;
14
+ requiresSelector?: boolean;
15
+ }
16
+ export interface StyleFieldConfig {
17
+ key: string;
18
+ label: string;
19
+ type: 'color' | 'select' | 'text' | 'toggle' | 'number' | 'range' | 'font' | 'textarea';
20
+ default: any;
21
+ options?: string[];
22
+ placeholder?: string;
23
+ min?: number;
24
+ max?: number;
25
+ step?: number;
26
+ }
27
+ export interface StyleSection {
28
+ id: string;
29
+ title: string;
30
+ icon?: string;
31
+ fields: StyleFieldConfig[];
32
+ }
33
+ export type SearchStyleFieldSpec = StyleFieldConfig;
34
+ export type SearchSuggestionStyleFieldSpec = StyleFieldConfig;
35
+ export interface CategoryConfig {
36
+ displayMode: CategoryDisplayMode;
37
+ showCount: boolean;
38
+ maxVisible: number;
39
+ expandable: boolean;
40
+ hierarchical: boolean;
41
+ }
42
+ export interface ResultItemConfig {
43
+ layout: ResultLayout;
44
+ showImage: boolean;
45
+ showDescription: boolean;
46
+ showPrice: boolean;
47
+ showOldPrice: boolean;
48
+ showDiscount: boolean;
49
+ showStock: boolean;
50
+ showCategory: boolean;
51
+ showRating: boolean;
52
+ imageSize: 'small' | 'medium' | 'large';
53
+ imagePosition: 'left' | 'top' | 'right';
54
+ truncateTitle: number;
55
+ truncateDescription: number;
56
+ }
57
+ export interface AnimationConfig {
58
+ type: 'none' | 'fade' | 'slide' | 'scale' | 'blur';
59
+ duration: number;
60
+ easing: 'linear' | 'ease' | 'ease-in' | 'ease-out' | 'ease-in-out';
61
+ }
62
+ export interface SearchConfigData {
63
+ isEnabled: boolean;
64
+ position: SearchPosition;
65
+ selector?: string;
66
+ placeholder: string;
67
+ minChars: number;
68
+ debounceMs: number;
69
+ maxResults: number;
70
+ category: CategoryConfig;
71
+ resultItem: ResultItemConfig;
72
+ styles: Record<string, any>;
73
+ animation: AnimationConfig;
74
+ hotkey?: string;
75
+ searchOnFocus: boolean;
76
+ keepOpen: boolean;
77
+ mobileFullscreen: boolean;
78
+ }
79
+ export interface SearchPreviewProps {
80
+ position: SearchPosition;
81
+ styles: Record<string, any>;
82
+ category: CategoryConfig;
83
+ resultItem: ResultItemConfig;
84
+ }
85
+ export type SuggestionSource = 'manual' | 'dynamic' | 'both';
86
+ export interface PopularCategoryItem {
87
+ name: string;
88
+ imageUrl?: string;
89
+ }
90
+ export interface RecentSearchesConfig {
91
+ enabled: boolean;
92
+ maxCount: number;
93
+ }
94
+ export interface PopularSearchesConfig {
95
+ enabled: boolean;
96
+ source: SuggestionSource;
97
+ manual: string[];
98
+ maxCount: number;
99
+ }
100
+ export interface PopularCategoriesConfig {
101
+ enabled: boolean;
102
+ source: SuggestionSource;
103
+ manual: PopularCategoryItem[];
104
+ maxCount: number;
105
+ }
106
+ export interface PopularProductsConfig {
107
+ enabled: boolean;
108
+ source: SuggestionSource;
109
+ manual: string[];
110
+ maxCount: number;
111
+ }
112
+ export interface ProductForSelection {
113
+ id: string;
114
+ sku: string;
115
+ name: string;
116
+ price: number;
117
+ imageUrl?: string;
118
+ categories?: string;
119
+ }
@@ -0,0 +1,7 @@
1
+ // AUTO-GENERATED FROM packages/search-contract/src/types.ts. DO NOT EDIT DIRECTLY.
2
+ /**
3
+ * Search Configuration Type Definitions
4
+ * Single source of truth for all search configuration types
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/modules/contract/vendor/search-contract/types.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF;;;GAGG"}
@@ -0,0 +1,22 @@
1
+ export interface SearchValidationResult {
2
+ valid: boolean;
3
+ message?: string;
4
+ invalidKeys?: string[];
5
+ }
6
+ export interface SearchConfigValidationInput {
7
+ position?: unknown;
8
+ floatingPosition?: unknown;
9
+ categoryDisplayMode?: unknown;
10
+ resultLayout?: unknown;
11
+ imageSize?: unknown;
12
+ imagePosition?: unknown;
13
+ animationType?: unknown;
14
+ stylesJson?: unknown;
15
+ suggestionStylesJson?: unknown;
16
+ }
17
+ export declare function getAllowedSearchStyleKeys(): string[];
18
+ export declare function getAllowedSuggestionStyleKeys(): string[];
19
+ export declare function validateSearchStyles(styles: unknown, suggestionStyles?: unknown): SearchValidationResult;
20
+ export declare function sanitizeSearchStyles(styles: unknown): Record<string, any>;
21
+ export declare function sanitizeSuggestionStyles(styles: unknown): Record<string, any>;
22
+ export declare function validateSearchConfig(config: SearchConfigValidationInput): SearchValidationResult;