@searchcraft/javascript-sdk 0.3.0 → 0.3.1

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 (224) hide show
  1. package/dist/cjs/{index-6c5282a0.js → index-264ebadc.js} +290 -9
  2. package/dist/cjs/index-264ebadc.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +1 -1
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/package-35d3b670.js +68 -0
  6. package/dist/cjs/package-35d3b670.js.map +1 -0
  7. package/dist/cjs/{searchcraft-auto-search-form_19.cjs.entry.js → searchcraft-auto-search-form_17.cjs.entry.js} +126 -120
  8. package/dist/cjs/searchcraft-auto-search-form_17.cjs.entry.js.map +1 -0
  9. package/dist/cjs/searchcraft-base-search-form.cjs.entry.js +13 -5
  10. package/dist/cjs/searchcraft-base-search-form.cjs.entry.js.map +1 -1
  11. package/dist/cjs/searchcraft-button-icon.cjs.entry.js +1 -1
  12. package/dist/cjs/searchcraft-button.cjs.entry.js +4 -4
  13. package/dist/cjs/searchcraft-button.cjs.entry.js.map +1 -1
  14. package/dist/cjs/searchcraft-javascript-sdk.cjs.js +2 -2
  15. package/dist/cjs/searchcraft-spinner-dark.cjs.entry.js +22 -0
  16. package/dist/cjs/searchcraft-spinner-dark.cjs.entry.js.map +1 -0
  17. package/dist/cjs/searchcraft-spinner-light.cjs.entry.js +22 -0
  18. package/dist/cjs/searchcraft-spinner-light.cjs.entry.js.map +1 -0
  19. package/dist/cjs/store-e3bbdd49.js +1022 -0
  20. package/dist/cjs/store-e3bbdd49.js.map +1 -0
  21. package/dist/collection/assets/searchcraft-button-icons.js.map +1 -1
  22. package/dist/collection/assets/searchcraft-check-icon.js.map +1 -1
  23. package/dist/collection/assets/searchcraft-clear-icon-set.js.map +1 -1
  24. package/dist/collection/assets/searchcraft-dash-icon.js.map +1 -1
  25. package/dist/collection/assets/searchcraft-search-icon-set.js.map +1 -1
  26. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js +18 -10
  27. package/dist/collection/components/searchcraft-auto-search-form/searchcraft-auto-search-form.js.map +1 -1
  28. package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js +17 -10
  29. package/dist/collection/components/searchcraft-base-search-form/searchcraft-base-search-form.js.map +1 -1
  30. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js +76 -26
  31. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.js.map +1 -1
  32. package/dist/collection/components/searchcraft-base-search-result/searchcraft-base-search-result.module.css +42 -22
  33. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js +50 -10
  34. package/dist/collection/components/searchcraft-base-search-results/searchcraft-base-search-results.js.map +1 -1
  35. package/dist/collection/components/searchcraft-button/searchcraft-button.js +2 -3
  36. package/dist/collection/components/searchcraft-button/searchcraft-button.js.map +1 -1
  37. package/dist/collection/components/searchcraft-button/searchcraft-button.module.css +4 -33
  38. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.js +4 -5
  39. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.js.map +1 -1
  40. package/dist/collection/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.css +3 -3
  41. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js +3 -4
  42. package/dist/collection/components/searchcraft-error-message/searchcraft-error-message.js.map +1 -1
  43. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js +6 -10
  44. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.js.map +1 -1
  45. package/dist/collection/components/searchcraft-filters-list/searchcraft-filters-list.module.css +26 -25
  46. package/dist/collection/components/searchcraft-input/searchcraft-input.js +20 -21
  47. package/dist/collection/components/searchcraft-input/searchcraft-input.js.map +1 -1
  48. package/dist/collection/components/searchcraft-input/searchcraft-input.module.css +44 -52
  49. package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.js +2 -3
  50. package/dist/collection/components/searchcraft-input-caption/searchcraft-input-caption.js.map +1 -1
  51. package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.js +2 -2
  52. package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.js.map +1 -1
  53. package/dist/collection/components/searchcraft-input-icon/searchcraft-input-icon.module.css +2 -2
  54. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js +1 -2
  55. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.js.map +1 -1
  56. package/dist/collection/components/searchcraft-input-label/searchcraft-input-label.module.css +1 -1
  57. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js +5 -3
  58. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.js.map +1 -1
  59. package/dist/collection/components/searchcraft-results-info/searchcraft-results-info.module.css +14 -4
  60. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js +34 -8
  61. package/dist/collection/components/searchcraft-slider/searchcraft-slider.js.map +1 -1
  62. package/dist/collection/components/searchcraft-slider/searchcraft-slider.module.css +37 -23
  63. package/dist/collection/components/searchcraft-spinner-dark/searchcraft-spinner-dark.js.map +1 -1
  64. package/dist/collection/components/searchcraft-spinner-light/searchcraft-spinner-light.js.map +1 -1
  65. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js +4 -2
  66. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.js.map +1 -1
  67. package/dist/collection/components/searchcraft-toggle-button/searchcraft-toggle-button.module.css +7 -7
  68. package/dist/collection/index.js.map +1 -1
  69. package/dist/collection/provider/store.js +1 -0
  70. package/dist/collection/provider/store.js.map +1 -1
  71. package/dist/collection/utils/utils.js +3 -0
  72. package/dist/collection/utils/utils.js.map +1 -1
  73. package/dist/components/index.js +3 -3
  74. package/dist/components/{p-8c38185e.js → p-4f939ba2.js} +7 -7
  75. package/dist/components/p-4f939ba2.js.map +1 -0
  76. package/dist/components/{p-498c7ef9.js → p-5015a359.js} +4 -5
  77. package/dist/components/p-5015a359.js.map +1 -0
  78. package/dist/components/{p-27a6ca57.js → p-54848b4d.js} +35 -48
  79. package/dist/components/p-54848b4d.js.map +1 -0
  80. package/dist/components/{p-a3bd1bc8.js → p-5a872bdf.js} +2 -2
  81. package/dist/components/{p-a3bd1bc8.js.map → p-5a872bdf.js.map} +1 -1
  82. package/dist/components/{p-7d1bcd2d.js → p-62c40862.js} +5 -2
  83. package/dist/components/p-62c40862.js.map +1 -0
  84. package/dist/components/{p-70722ab2.js → p-62e6b69c.js} +2 -2
  85. package/dist/components/{p-70722ab2.js.map → p-62e6b69c.js.map} +1 -1
  86. package/dist/components/{p-6237f03e.js → p-69ee3b9a.js} +5 -6
  87. package/dist/components/p-69ee3b9a.js.map +1 -0
  88. package/dist/components/{p-7498e493.js → p-6b353c3e.js} +290 -9
  89. package/dist/components/p-6b353c3e.js.map +1 -0
  90. package/dist/components/p-727bfc38.js +925 -0
  91. package/dist/components/p-727bfc38.js.map +1 -0
  92. package/dist/components/{p-bc3f9025.js → p-7c280820.js} +2 -2
  93. package/dist/components/{p-bc3f9025.js.map → p-7c280820.js.map} +1 -1
  94. package/dist/components/{p-4468fba3.js → p-7d385ffb.js} +7 -8
  95. package/dist/components/p-7d385ffb.js.map +1 -0
  96. package/dist/components/p-8524c749.js +54 -0
  97. package/dist/components/p-8524c749.js.map +1 -0
  98. package/dist/components/{p-e5471fcf.js → p-aad03c2a.js} +2 -2
  99. package/dist/components/{p-e5471fcf.js.map → p-aad03c2a.js.map} +1 -1
  100. package/dist/components/p-b0c1fd63.js +66 -0
  101. package/dist/components/p-b0c1fd63.js.map +1 -0
  102. package/dist/components/{p-ae84b899.js → p-b38d171d.js} +5 -6
  103. package/dist/components/p-b38d171d.js.map +1 -0
  104. package/dist/components/{p-d3187f5a.js → p-bbf9973a.js} +2 -2
  105. package/dist/components/{p-d3187f5a.js.map → p-bbf9973a.js.map} +1 -1
  106. package/dist/components/p-cd9a038a.js +105 -0
  107. package/dist/components/p-cd9a038a.js.map +1 -0
  108. package/dist/components/searchcraft-auto-search-form.js +32 -36
  109. package/dist/components/searchcraft-auto-search-form.js.map +1 -1
  110. package/dist/components/searchcraft-base-search-form.js +34 -33
  111. package/dist/components/searchcraft-base-search-form.js.map +1 -1
  112. package/dist/components/searchcraft-base-search-result.js +1 -1
  113. package/dist/components/searchcraft-base-search-results.js +21 -15
  114. package/dist/components/searchcraft-base-search-results.js.map +1 -1
  115. package/dist/components/searchcraft-button-icon.js +1 -1
  116. package/dist/components/searchcraft-button.js +1 -1
  117. package/dist/components/searchcraft-check-icon.js +1 -1
  118. package/dist/components/searchcraft-clear-icon-set.js +1 -1
  119. package/dist/components/searchcraft-clear-input-button.js +1 -1
  120. package/dist/components/searchcraft-dash-icon.js +1 -1
  121. package/dist/components/searchcraft-error-message.js +1 -1
  122. package/dist/components/searchcraft-filters-list.js +12 -16
  123. package/dist/components/searchcraft-filters-list.js.map +1 -1
  124. package/dist/components/searchcraft-input-caption.js +1 -1
  125. package/dist/components/searchcraft-input-icon.js +1 -1
  126. package/dist/components/searchcraft-input-label.js +1 -1
  127. package/dist/components/searchcraft-input.js +1 -1
  128. package/dist/components/searchcraft-results-info.js +9 -7
  129. package/dist/components/searchcraft-results-info.js.map +1 -1
  130. package/dist/components/searchcraft-search-icon-set.js +1 -1
  131. package/dist/components/searchcraft-slider.js +20 -11
  132. package/dist/components/searchcraft-slider.js.map +1 -1
  133. package/dist/components/searchcraft-spinner-dark.js +1 -1
  134. package/dist/components/searchcraft-spinner-light.js +29 -1
  135. package/dist/components/searchcraft-spinner-light.js.map +1 -1
  136. package/dist/components/searchcraft-toggle-button.js +8 -6
  137. package/dist/components/searchcraft-toggle-button.js.map +1 -1
  138. package/dist/esm/{index-0ac5bb53.js → index-d851fb46.js} +290 -9
  139. package/dist/esm/index-d851fb46.js.map +1 -0
  140. package/dist/esm/index.js +1 -1
  141. package/dist/esm/loader.js +3 -3
  142. package/dist/esm/package-82baadd7.js +66 -0
  143. package/dist/esm/package-82baadd7.js.map +1 -0
  144. package/dist/esm/{searchcraft-auto-search-form_19.entry.js → searchcraft-auto-search-form_17.entry.js} +125 -117
  145. package/dist/esm/searchcraft-auto-search-form_17.entry.js.map +1 -0
  146. package/dist/esm/searchcraft-base-search-form.entry.js +13 -5
  147. package/dist/esm/searchcraft-base-search-form.entry.js.map +1 -1
  148. package/dist/esm/searchcraft-button-icon.entry.js +1 -1
  149. package/dist/esm/searchcraft-button.entry.js +4 -4
  150. package/dist/esm/searchcraft-button.entry.js.map +1 -1
  151. package/dist/esm/searchcraft-javascript-sdk.js +3 -3
  152. package/dist/esm/searchcraft-spinner-dark.entry.js +18 -0
  153. package/dist/esm/searchcraft-spinner-dark.entry.js.map +1 -0
  154. package/dist/esm/searchcraft-spinner-light.entry.js +18 -0
  155. package/dist/esm/searchcraft-spinner-light.entry.js.map +1 -0
  156. package/dist/esm/store-b519dd0b.js +1011 -0
  157. package/dist/esm/store-b519dd0b.js.map +1 -0
  158. package/dist/searchcraft-javascript-sdk/index.esm.js +1 -1
  159. package/dist/searchcraft-javascript-sdk/p-1f3ae7f3.entry.js +2 -0
  160. package/dist/searchcraft-javascript-sdk/p-1f3ae7f3.entry.js.map +1 -0
  161. package/dist/searchcraft-javascript-sdk/p-201cb2dc.entry.js +2 -0
  162. package/dist/searchcraft-javascript-sdk/p-201cb2dc.entry.js.map +1 -0
  163. package/dist/searchcraft-javascript-sdk/p-2c220368.entry.js +2 -0
  164. package/dist/searchcraft-javascript-sdk/p-2c220368.entry.js.map +1 -0
  165. package/dist/searchcraft-javascript-sdk/p-39c0ca33.entry.js +2 -0
  166. package/dist/searchcraft-javascript-sdk/p-39c0ca33.entry.js.map +1 -0
  167. package/dist/searchcraft-javascript-sdk/p-476829a4.entry.js +2 -0
  168. package/dist/searchcraft-javascript-sdk/p-476829a4.entry.js.map +1 -0
  169. package/dist/searchcraft-javascript-sdk/{p-5ec960bd.entry.js → p-99356c9a.entry.js} +2 -2
  170. package/dist/searchcraft-javascript-sdk/p-b0c1fd63.js +2 -0
  171. package/dist/searchcraft-javascript-sdk/p-b0c1fd63.js.map +1 -0
  172. package/dist/searchcraft-javascript-sdk/p-b42eaa55.js +3 -0
  173. package/dist/searchcraft-javascript-sdk/p-b42eaa55.js.map +1 -0
  174. package/dist/searchcraft-javascript-sdk/p-d5f8dda2.js +11 -0
  175. package/dist/searchcraft-javascript-sdk/p-d5f8dda2.js.map +1 -0
  176. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js +1 -1
  177. package/dist/searchcraft-javascript-sdk/searchcraft-javascript-sdk.esm.js.map +1 -1
  178. package/dist/types/components/searchcraft-auto-search-form/searchcraft-auto-search-form.d.ts +2 -2
  179. package/dist/types/components/searchcraft-base-search-form/searchcraft-base-search-form.d.ts +2 -2
  180. package/dist/types/components/searchcraft-base-search-result/searchcraft-base-search-result.d.ts +6 -3
  181. package/dist/types/components/searchcraft-base-search-results/searchcraft-base-search-results.d.ts +3 -0
  182. package/dist/types/components/searchcraft-error-message/searchcraft-error-message.d.ts +0 -6
  183. package/dist/types/components/searchcraft-filters-list/searchcraft-filters-list.d.ts +1 -1
  184. package/dist/types/components/searchcraft-input/searchcraft-input.d.ts +3 -3
  185. package/dist/types/components/searchcraft-slider/searchcraft-slider.d.ts +5 -0
  186. package/dist/types/components.d.ts +48 -22
  187. package/dist/types/provider/store.d.ts +2 -1
  188. package/dist/types/utils/utils.d.ts +1 -0
  189. package/package.json +1 -1
  190. package/dist/cjs/index-6c5282a0.js.map +0 -1
  191. package/dist/cjs/searchcraft-auto-search-form_19.cjs.entry.js.map +0 -1
  192. package/dist/cjs/store-f3bec622.js +0 -406
  193. package/dist/cjs/store-f3bec622.js.map +0 -1
  194. package/dist/components/p-07edaa9b.js +0 -67
  195. package/dist/components/p-07edaa9b.js.map +0 -1
  196. package/dist/components/p-27a6ca57.js.map +0 -1
  197. package/dist/components/p-4468fba3.js.map +0 -1
  198. package/dist/components/p-498c7ef9.js.map +0 -1
  199. package/dist/components/p-6237f03e.js.map +0 -1
  200. package/dist/components/p-7498e493.js.map +0 -1
  201. package/dist/components/p-7d1bcd2d.js.map +0 -1
  202. package/dist/components/p-8c38185e.js.map +0 -1
  203. package/dist/components/p-ae84b899.js.map +0 -1
  204. package/dist/components/p-bfb22305.js +0 -33
  205. package/dist/components/p-bfb22305.js.map +0 -1
  206. package/dist/components/p-c31274dd.js +0 -89
  207. package/dist/components/p-c31274dd.js.map +0 -1
  208. package/dist/components/p-ff049f0a.js +0 -313
  209. package/dist/components/p-ff049f0a.js.map +0 -1
  210. package/dist/esm/index-0ac5bb53.js.map +0 -1
  211. package/dist/esm/searchcraft-auto-search-form_19.entry.js.map +0 -1
  212. package/dist/esm/store-6af9ea01.js +0 -396
  213. package/dist/esm/store-6af9ea01.js.map +0 -1
  214. package/dist/searchcraft-javascript-sdk/p-05416a3e.entry.js +0 -2
  215. package/dist/searchcraft-javascript-sdk/p-05416a3e.entry.js.map +0 -1
  216. package/dist/searchcraft-javascript-sdk/p-0880cfbb.js +0 -3
  217. package/dist/searchcraft-javascript-sdk/p-0880cfbb.js.map +0 -1
  218. package/dist/searchcraft-javascript-sdk/p-1ab836bf.js +0 -11
  219. package/dist/searchcraft-javascript-sdk/p-1ab836bf.js.map +0 -1
  220. package/dist/searchcraft-javascript-sdk/p-3cb77ee1.entry.js +0 -2
  221. package/dist/searchcraft-javascript-sdk/p-3cb77ee1.entry.js.map +0 -1
  222. package/dist/searchcraft-javascript-sdk/p-72382d90.entry.js +0 -2
  223. package/dist/searchcraft-javascript-sdk/p-72382d90.entry.js.map +0 -1
  224. /package/dist/searchcraft-javascript-sdk/{p-5ec960bd.entry.js.map → p-99356c9a.entry.js.map} +0 -0
@@ -1,406 +0,0 @@
1
- 'use strict';
2
-
3
- function parseCustomStyles(styles) {
4
- if (typeof styles === 'string') {
5
- try {
6
- return JSON.parse(styles);
7
- }
8
- catch (error) {
9
- console.error('Invalid customStyles format:', styles);
10
- return {};
11
- }
12
- }
13
- return styles || {};
14
- }
15
- function parseSearchKeys(documentAttributesForDisplay) {
16
- try {
17
- const parsedKeys = JSON.parse(documentAttributesForDisplay);
18
- if (Array.isArray(parsedKeys) &&
19
- parsedKeys.every((key) => typeof key === 'string')) {
20
- return parsedKeys;
21
- }
22
- console.warn('searchKeys must be a JSON array of strings. Defaulting to an empty array.');
23
- return [];
24
- }
25
- catch (error) {
26
- console.error('Failed to parse searchKeys:', error);
27
- return [];
28
- }
29
- }
30
- function extractDynamicProperties(document, keys) {
31
- const extractedProperties = {};
32
- keys.forEach((key) => {
33
- extractedProperties[key] = document[key] || '';
34
- });
35
- return extractedProperties;
36
- }
37
- function serializeStyles(styles) {
38
- try {
39
- return JSON.stringify(styles);
40
- }
41
- catch (error) {
42
- console.error('Error serializing styles:', error);
43
- return '{}';
44
- }
45
- }
46
- function getFormattedTimeFromNow(timestamp) {
47
- const now = new Date();
48
- const inputTime = new Date(timestamp);
49
- const diffInSeconds = Math.floor((now.getTime() - inputTime.getTime()) / 1000);
50
- const minutes = Math.floor(diffInSeconds / 60);
51
- const hours = Math.floor(minutes / 60);
52
- const days = Math.floor(hours / 24);
53
- const years = Math.floor(days / 365);
54
- if (minutes < 60) {
55
- return `${minutes}m ago`;
56
- }
57
- if (hours < 24) {
58
- return `${hours}h ago`;
59
- }
60
- if (days < 365) {
61
- return `${days}d ago`;
62
- }
63
- return `${years}y ago`;
64
- }
65
- function flattenFacets(sections) {
66
- return sections.map((section) => {
67
- const fullPath = section.path;
68
- // Create the FacetCheckbox object
69
- const facetCheckbox = {
70
- label: fullPath.replace(/^\//, ''), // Format the label without leading slash
71
- value: fullPath, // The full path as the value
72
- count: section.count, // Count from the Section
73
- children: flattenFacets(section.children || []), // Recursively flatten children
74
- };
75
- return facetCheckbox;
76
- });
77
- }
78
- function filterPaths(paths) {
79
- return paths.filter((path) => {
80
- const parts = path.split('/').filter(Boolean);
81
- if (parts.length > 1) {
82
- return true;
83
- }
84
- return !paths.some((otherPath) => otherPath.startsWith(`${path}/`) && otherPath !== path);
85
- });
86
- }
87
-
88
- var zustand = {};
89
-
90
- var vanilla$1 = {};
91
-
92
- const createStoreImpl = (createState) => {
93
- let state;
94
- const listeners = /* @__PURE__ */ new Set();
95
- const setState = (partial, replace) => {
96
- const nextState = typeof partial === "function" ? partial(state) : partial;
97
- if (!Object.is(nextState, state)) {
98
- const previousState = state;
99
- state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState);
100
- listeners.forEach((listener) => listener(state, previousState));
101
- }
102
- };
103
- const getState = () => state;
104
- const getInitialState = () => initialState;
105
- const subscribe = (listener) => {
106
- listeners.add(listener);
107
- return () => listeners.delete(listener);
108
- };
109
- const api = { setState, getState, getInitialState, subscribe };
110
- const initialState = state = createState(setState, getState, api);
111
- return api;
112
- };
113
- const createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;
114
-
115
- vanilla$1.createStore = createStore;
116
-
117
- var react$1 = {};
118
-
119
- var react = {exports: {}};
120
-
121
- var react_production_min = {};
122
-
123
- /**
124
- * @license React
125
- * react.production.min.js
126
- *
127
- * Copyright (c) Facebook, Inc. and its affiliates.
128
- *
129
- * This source code is licensed under the MIT license found in the
130
- * LICENSE file in the root directory of this source tree.
131
- */
132
- var l$1=Symbol.for("react.element"),n=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),q=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),w=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),z=Symbol.iterator;function A(a){if(null===a||"object"!==typeof a)return null;a=z&&a[z]||a["@@iterator"];return "function"===typeof a?a:null}
133
- var B={isMounted:function(){return !1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B;}E.prototype.isReactComponent={};
134
- E.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,a,b,"setState");};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate");};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B;}var H=G.prototype=new F;
135
- H.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};
136
- function M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=""+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f;}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return {$$typeof:l$1,type:a,key:k,ref:h,props:c,_owner:K.current}}
137
- function N(a,b){return {$$typeof:l$1,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return "object"===typeof a&&null!==a&&a.$$typeof===l$1}function escape(a){var b={"=":"=0",":":"=2"};return "$"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\/+/g;function Q(a,b){return "object"===typeof a&&null!==a&&null!=a.key?escape(""+a.key):b.toString(36)}
138
- function R(a,b,e,d,c){var k=typeof a;if("undefined"===k||"boolean"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case "string":case "number":h=!0;break;case "object":switch(a.$$typeof){case l$1:case n:h=!0;}}if(h)return h=a,c=c(h),a=""===d?"."+Q(h,0):d,I(c)?(e="",null!=a&&(e=a.replace(P,"$&/")+"/"),R(c,b,e,"",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?"":(""+c.key).replace(P,"$&/")+"/")+a)),b.push(c)),1;h=0;d=""===d?".":d+":";if(I(a))for(var g=0;g<a.length;g++){k=
139
- a[g];var f=d+Q(k,g);h+=R(k,b,e,f,c);}else if(f=A(a),"function"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if("object"===k)throw b=String(a),Error("Objects are not valid as a React child (found: "+("[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.");return h}
140
- function S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,"","",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b;},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b;});-1===a._status&&(a._status=0,a._result=b);}if(1===a._status)return a._result.default;throw a._result;}
141
- var U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error("act(...) is not supported in production builds of React.");}
142
- react_production_min.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments);},e);},count:function(a){var b=0;S(a,function(){b++;});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error("React.Children.only expected to receive a single React element child.");return a}};react_production_min.Component=E;react_production_min.Fragment=p;react_production_min.Profiler=r;react_production_min.PureComponent=G;react_production_min.StrictMode=q;react_production_min.Suspense=w;
143
- react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;react_production_min.act=X;
144
- react_production_min.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+a+".");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=""+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f]);}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);
145
- for(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g;}return {$$typeof:l$1,type:a.type,key:c,ref:k,props:d,_owner:h}};react_production_min.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};react_production_min.createElement=M;react_production_min.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};react_production_min.createRef=function(){return {current:null}};
146
- react_production_min.forwardRef=function(a){return {$$typeof:v,render:a}};react_production_min.isValidElement=O;react_production_min.lazy=function(a){return {$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};react_production_min.memo=function(a,b){return {$$typeof:x,type:a,compare:void 0===b?null:b}};react_production_min.startTransition=function(a){var b=V.transition;V.transition={};try{a();}finally{V.transition=b;}};react_production_min.unstable_act=X;react_production_min.useCallback=function(a,b){return U.current.useCallback(a,b)};react_production_min.useContext=function(a){return U.current.useContext(a)};
147
- react_production_min.useDebugValue=function(){};react_production_min.useDeferredValue=function(a){return U.current.useDeferredValue(a)};react_production_min.useEffect=function(a,b){return U.current.useEffect(a,b)};react_production_min.useId=function(){return U.current.useId()};react_production_min.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};react_production_min.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};react_production_min.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};
148
- react_production_min.useMemo=function(a,b){return U.current.useMemo(a,b)};react_production_min.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};react_production_min.useRef=function(a){return U.current.useRef(a)};react_production_min.useState=function(a){return U.current.useState(a)};react_production_min.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};react_production_min.useTransition=function(){return U.current.useTransition()};react_production_min.version="18.3.1";
149
-
150
- {
151
- react.exports = react_production_min;
152
- }
153
-
154
- var React = react.exports;
155
- var vanilla = vanilla$1;
156
-
157
- const identity = (arg) => arg;
158
- function useStore(api, selector = identity) {
159
- const slice = React.useSyncExternalStore(
160
- api.subscribe,
161
- () => selector(api.getState()),
162
- () => selector(api.getInitialState())
163
- );
164
- React.useDebugValue(slice);
165
- return slice;
166
- }
167
- const createImpl = (createState) => {
168
- const api = vanilla.createStore(createState);
169
- const useBoundStore = (selector) => useStore(api, selector);
170
- Object.assign(useBoundStore, api);
171
- return useBoundStore;
172
- };
173
- const create = (createState) => createState ? createImpl(createState) : createImpl;
174
-
175
- react$1.create = create;
176
- react$1.useStore = useStore;
177
-
178
- (function (exports) {
179
-
180
- var vanilla = vanilla$1;
181
- var react = react$1;
182
-
183
-
184
-
185
- Object.keys(vanilla).forEach(function (k) {
186
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
187
- enumerable: true,
188
- get: function () { return vanilla[k]; }
189
- });
190
- });
191
- Object.keys(react).forEach(function (k) {
192
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
193
- enumerable: true,
194
- get: function () { return react[k]; }
195
- });
196
- });
197
- }(zustand));
198
-
199
- var f = Object.defineProperty;
200
- var c = (o, t, e) => t in o ? f(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
201
- var l = (o, t, e) => c(o, typeof t != "symbol" ? t + "" : t, e);
202
- class g {
203
- constructor(t) {
204
- l(this, "config");
205
- /**
206
- * Performs a search operation.
207
- * @param {SearchParams} searchParams - The parameters for the search.
208
- * @returns {Promise<SearchcraftResponse>} - Returns the search response or throws an error.
209
- */
210
- l(this, "search", async (t) => {
211
- if ((t.query.match(/"/g) || []).length % 2 !== 0)
212
- throw new Error(
213
- "The search term contains an uneven number of quote characters."
214
- );
215
- try {
216
- const n = this.config.index.join(","), s = `${this.config.endpointURL}/index/${n}/search`, r = {
217
- query: this.buildQueryObject(t),
218
- limit: t.limit ?? 20
219
- // Default to 20 if not provided
220
- };
221
- t.offset !== void 0 && (r.offset = t.offset), t.facets && (r.facets = t.facets), t.order_by && (r.order_by = t.order_by, r.sort = t.sort === "desc" || t.sort === "asc" ? t.sort : "asc");
222
- const u = {
223
- method: "POST",
224
- headers: {
225
- Authorization: this.config.apiKey,
226
- "Content-Type": "application/json"
227
- },
228
- body: JSON.stringify(r)
229
- }, i = await fetch(s, u);
230
- if (!i.ok)
231
- throw new Error(
232
- `Error: ${i.statusText} (Status: ${i.status})`
233
- );
234
- return await i.json();
235
- } catch (n) {
236
- throw console.error("Error parsing response:", n), n;
237
- }
238
- });
239
- if (!t.endpointURL || !t.index || !t.apiKey)
240
- throw new Error(
241
- "Endpoint URL, Index value(s), and API Key must be provided"
242
- );
243
- this.config = t;
244
- }
245
- /**
246
- * Builds a query object for the search request.
247
- * @param {SearchParams} searchParams - The parameters for the search.
248
- * @returns {QueryObject} - A properly formatted query object.
249
- */
250
- buildQueryObject(t) {
251
- var r;
252
- const e = [];
253
- let n = "should";
254
- if (t.yearsRange) {
255
- n = "must";
256
- const u = /* @__PURE__ */ new Date(`${t.yearsRange[0]}-01-01`), i = /* @__PURE__ */ new Date(`${t.yearsRange[1]}-12-31`);
257
- e.push({
258
- occur: n,
259
- normal: {
260
- ctx: `date_published:[${u.toISOString()} TO ${i.toISOString()}]`
261
- }
262
- });
263
- }
264
- const s = Object.keys(((r = t == null ? void 0 : t.facets) == null ? void 0 : r.section.counts) || {});
265
- return s && s.length > 0 && (n = "must", e.push({
266
- occur: n,
267
- normal: {
268
- ctx: `section: IN [${s.join(" ")}]`
269
- }
270
- })), t.sort === "desc" ? t.order_by = "date_published" : t.order_by = "", e.push({
271
- occur: n,
272
- // Valid, as 'occur' is a required property in QueryItem
273
- [t.mode]: { ctx: t.query }
274
- // Ensure dynamic mode is inside queryType
275
- }), e;
276
- }
277
- }
278
- var d = /* @__PURE__ */ ((o) => (o[o.DEBUG = 0] = "DEBUG", o[o.INFO = 1] = "INFO", o[o.WARN = 2] = "WARN", o[o.ERROR = 3] = "ERROR", o))(d || {});
279
- class b {
280
- constructor(t) {
281
- l(this, "logLevel");
282
- l(this, "logFormatter");
283
- this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;
284
- }
285
- defaultFormatter(t, e) {
286
- return `[${d[t]}] ${( new Date()).toISOString()}: ${e}`;
287
- }
288
- debug(t) {
289
- this.logLevel <= 0 && console.log(this.logFormatter(0, t));
290
- }
291
- info(t) {
292
- this.logLevel <= 1 && console.info(this.logFormatter(1, t));
293
- }
294
- warn(t) {
295
- this.logLevel <= 2 && console.warn(this.logFormatter(2, t));
296
- }
297
- error(t) {
298
- this.logLevel <= 3 && console.error(this.logFormatter(3, t));
299
- }
300
- }
301
-
302
- // Zustand store for Searchcraft state
303
- const useSearchcraftStore = zustand.create((set, get) => {
304
- let searchcraft = null;
305
- let debuggerInstance = null;
306
- const log = (level, message) => {
307
- if (debuggerInstance) {
308
- switch (level) {
309
- case d.DEBUG:
310
- debuggerInstance.debug(message);
311
- break;
312
- case d.INFO:
313
- debuggerInstance.info(message);
314
- break;
315
- case d.WARN:
316
- debuggerInstance.warn(message);
317
- break;
318
- case d.ERROR:
319
- debuggerInstance.error(message);
320
- break;
321
- }
322
- }
323
- };
324
- return {
325
- query: '',
326
- isRequesting: false,
327
- searchResults: null,
328
- facets: null,
329
- selectedFilters: [],
330
- searchParams: {
331
- mode: 'fuzzy',
332
- sort: 'asc',
333
- },
334
- setQuery: (query) => set({ query }),
335
- setSearchResults: (results) => set({ searchResults: results }),
336
- setFacets: (facets) => set({ facets }),
337
- setSelectedFilters: (filters) => set({ selectedFilters: filters }),
338
- setIsRequesting: (isRequesting) => set({ isRequesting }),
339
- setSearchParams: (params) => set((state) => ({
340
- searchParams: Object.assign(Object.assign({}, state.searchParams), params),
341
- })),
342
- setYearsRange: (yearsRange) => set((state) => ({
343
- searchParams: Object.assign(Object.assign({}, state.searchParams), { yearsRange }),
344
- })),
345
- search: async () => {
346
- const { query, selectedFilters, setIsRequesting, setSearchResults, setFacets, searchParams, } = get();
347
- if (!searchcraft) {
348
- throw new Error('Searchcraft instance is not initialized.');
349
- }
350
- setIsRequesting(true);
351
- log(d.INFO, `Starting search with query: "${query}"`);
352
- const filters = filterPaths(selectedFilters);
353
- try {
354
- const searchRequest = {
355
- query,
356
- mode: searchParams.mode,
357
- sort: searchParams.sort,
358
- facets: selectedFilters.length > 0
359
- ? {
360
- section: {
361
- counts: Object.fromEntries(filters.map((path) => [path, 1])),
362
- },
363
- }
364
- : null,
365
- yearsRange: searchParams.yearsRange,
366
- };
367
- const results = await searchcraft.search(searchRequest);
368
- setSearchResults(results);
369
- const updatedFacets = results.data.facets || null;
370
- setFacets(updatedFacets);
371
- log(d.DEBUG, `Search results: ${JSON.stringify(results)}`);
372
- log(d.DEBUG, `Updated facets: ${JSON.stringify(updatedFacets)}`);
373
- }
374
- catch (error) {
375
- console.error(`Search failed: ${error.message}`);
376
- log(d.ERROR, `Search failed with error: ${error.message}`);
377
- }
378
- finally {
379
- setIsRequesting(false);
380
- }
381
- },
382
- initialize: (searchcraftInstance, debug = false) => {
383
- searchcraft = searchcraftInstance;
384
- debuggerInstance = debug
385
- ? new b({ logLevel: d.DEBUG })
386
- : null;
387
- log(d.INFO, 'Searchcraft store initialized.');
388
- },
389
- };
390
- });
391
- const useThemeStore = zustand.create((set) => ({
392
- theme: 'light',
393
- toggleTheme: () => set((state) => ({ theme: state.theme === 'light' ? 'dark' : 'light' })),
394
- }));
395
-
396
- exports.extractDynamicProperties = extractDynamicProperties;
397
- exports.flattenFacets = flattenFacets;
398
- exports.g = g;
399
- exports.getFormattedTimeFromNow = getFormattedTimeFromNow;
400
- exports.parseCustomStyles = parseCustomStyles;
401
- exports.parseSearchKeys = parseSearchKeys;
402
- exports.serializeStyles = serializeStyles;
403
- exports.useSearchcraftStore = useSearchcraftStore;
404
- exports.useThemeStore = useThemeStore;
405
-
406
- //# sourceMappingURL=store-f3bec622.js.map
@@ -1 +0,0 @@
1
- {"file":"store-f3bec622.js","mappings":"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","names":["l","reactModule","require$$0","require$$1","create","LogLevel","SDKDebugger"],"sources":["src/utils/utils.ts","../../node_modules/zustand/vanilla.js","../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/zustand/react.js","../../node_modules/zustand/index.js","../core-sdk/dist/index.js","src/provider/store.tsx"],"sourcesContent":["export function parseCustomStyles(\n styles: string | Record<string, string>,\n): Record<string, string> {\n if (typeof styles === 'string') {\n try {\n return JSON.parse(styles);\n } catch (error) {\n console.error('Invalid customStyles format:', styles);\n return {};\n }\n }\n return styles || {};\n}\n\nexport function parseSearchKeys(\n documentAttributesForDisplay: string,\n): string[] {\n try {\n const parsedKeys = JSON.parse(documentAttributesForDisplay);\n if (\n Array.isArray(parsedKeys) &&\n parsedKeys.every((key) => typeof key === 'string')\n ) {\n return parsedKeys;\n }\n console.warn(\n 'searchKeys must be a JSON array of strings. Defaulting to an empty array.',\n );\n return [];\n } catch (error) {\n console.error('Failed to parse searchKeys:', error);\n return [];\n }\n}\n\nexport function extractDynamicProperties(\n document: Record<string, string | number>,\n keys: string[],\n) {\n const extractedProperties: Record<string, string | number> = {};\n keys.forEach((key) => {\n extractedProperties[key] = document[key] || '';\n });\n return extractedProperties;\n}\n\nexport function serializeStyles(\n styles: Record<string, Record<string, string>>,\n): string {\n try {\n return JSON.stringify(styles);\n } catch (error) {\n console.error('Error serializing styles:', error);\n return '{}';\n }\n}\n\nexport function getFormattedTimeFromNow(timestamp: string): string {\n const now = new Date();\n const inputTime = new Date(timestamp);\n const diffInSeconds = Math.floor(\n (now.getTime() - inputTime.getTime()) / 1000,\n );\n\n const minutes = Math.floor(diffInSeconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const years = Math.floor(days / 365);\n\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n if (hours < 24) {\n return `${hours}h ago`;\n }\n if (days < 365) {\n return `${days}d ago`;\n }\n return `${years}y ago`;\n}\n\ntype Section = {\n count: number;\n path: string;\n children: Section[];\n};\n\ntype FacetCheckbox = {\n count: number;\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n children: any[];\n label: string;\n value: string;\n};\n\nexport function flattenFacets(sections: Section[]): FacetCheckbox[] {\n return sections.map((section) => {\n const fullPath = section.path;\n\n // Create the FacetCheckbox object\n const facetCheckbox: FacetCheckbox = {\n label: fullPath.replace(/^\\//, ''), // Format the label without leading slash\n value: fullPath, // The full path as the value\n count: section.count, // Count from the Section\n children: flattenFacets(section.children || []), // Recursively flatten children\n };\n\n return facetCheckbox;\n });\n}\n\nexport function filterPaths(paths) {\n return paths.filter((path) => {\n const parts = path.split('/').filter(Boolean);\n\n if (parts.length > 1) {\n return true;\n }\n\n return !paths.some(\n (otherPath) => otherPath.startsWith(`${path}/`) && otherPath !== path,\n );\n });\n}\n","'use strict';\n\nconst createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexports.createStore = createStore;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nvar React = require('react');\nvar vanilla = require('zustand/vanilla');\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = vanilla.createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexports.create = create;\nexports.useStore = useStore;\n","'use strict';\n\nvar vanilla = require('zustand/vanilla');\nvar react = require('zustand/react');\n\n\n\nObject.keys(vanilla).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return vanilla[k]; }\n\t});\n});\nObject.keys(react).forEach(function (k) {\n\tif (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n\t\tenumerable: true,\n\t\tget: function () { return react[k]; }\n\t});\n});\n","var f = Object.defineProperty;\nvar c = (o, t, e) => t in o ? f(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;\nvar l = (o, t, e) => c(o, typeof t != \"symbol\" ? t + \"\" : t, e);\nclass g {\n constructor(t) {\n l(this, \"config\");\n /**\n * Performs a search operation.\n * @param {SearchParams} searchParams - The parameters for the search.\n * @returns {Promise<SearchcraftResponse>} - Returns the search response or throws an error.\n */\n l(this, \"search\", async (t) => {\n if ((t.query.match(/\"/g) || []).length % 2 !== 0)\n throw new Error(\n \"The search term contains an uneven number of quote characters.\"\n );\n try {\n const n = this.config.index.join(\",\"), s = `${this.config.endpointURL}/index/${n}/search`, r = {\n query: this.buildQueryObject(t),\n limit: t.limit ?? 20\n // Default to 20 if not provided\n };\n t.offset !== void 0 && (r.offset = t.offset), t.facets && (r.facets = t.facets), t.order_by && (r.order_by = t.order_by, r.sort = t.sort === \"desc\" || t.sort === \"asc\" ? t.sort : \"asc\");\n const u = {\n method: \"POST\",\n headers: {\n Authorization: this.config.apiKey,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(r)\n }, i = await fetch(s, u);\n if (!i.ok)\n throw new Error(\n `Error: ${i.statusText} (Status: ${i.status})`\n );\n return await i.json();\n } catch (n) {\n throw console.error(\"Error parsing response:\", n), n;\n }\n });\n if (!t.endpointURL || !t.index || !t.apiKey)\n throw new Error(\n \"Endpoint URL, Index value(s), and API Key must be provided\"\n );\n this.config = t;\n }\n /**\n * Builds a query object for the search request.\n * @param {SearchParams} searchParams - The parameters for the search.\n * @returns {QueryObject} - A properly formatted query object.\n */\n buildQueryObject(t) {\n var r;\n const e = [];\n let n = \"should\";\n if (t.yearsRange) {\n n = \"must\";\n const u = /* @__PURE__ */ new Date(`${t.yearsRange[0]}-01-01`), i = /* @__PURE__ */ new Date(`${t.yearsRange[1]}-12-31`);\n e.push({\n occur: n,\n normal: {\n ctx: `date_published:[${u.toISOString()} TO ${i.toISOString()}]`\n }\n });\n }\n const s = Object.keys(((r = t == null ? void 0 : t.facets) == null ? void 0 : r.section.counts) || {});\n return s && s.length > 0 && (n = \"must\", e.push({\n occur: n,\n normal: {\n ctx: `section: IN [${s.join(\" \")}]`\n }\n })), t.sort === \"desc\" ? t.order_by = \"date_published\" : t.order_by = \"\", e.push({\n occur: n,\n // Valid, as 'occur' is a required property in QueryItem\n [t.mode]: { ctx: t.query }\n // Ensure dynamic mode is inside queryType\n }), e;\n }\n}\nvar d = /* @__PURE__ */ ((o) => (o[o.DEBUG = 0] = \"DEBUG\", o[o.INFO = 1] = \"INFO\", o[o.WARN = 2] = \"WARN\", o[o.ERROR = 3] = \"ERROR\", o))(d || {});\nclass b {\n constructor(t) {\n l(this, \"logLevel\");\n l(this, \"logFormatter\");\n this.logLevel = t.logLevel || 1, this.logFormatter = t.logFormatter || this.defaultFormatter;\n }\n defaultFormatter(t, e) {\n return `[${d[t]}] ${(/* @__PURE__ */ new Date()).toISOString()}: ${e}`;\n }\n debug(t) {\n this.logLevel <= 0 && console.log(this.logFormatter(0, t));\n }\n info(t) {\n this.logLevel <= 1 && console.info(this.logFormatter(1, t));\n }\n warn(t) {\n this.logLevel <= 2 && console.warn(this.logFormatter(2, t));\n }\n error(t) {\n this.logLevel <= 3 && console.error(this.logFormatter(3, t));\n }\n}\nexport {\n g as CoreSDK,\n d as LogLevel,\n b as SDKDebugger\n};\n//# sourceMappingURL=index.js.map\n","import { create } from 'zustand';\n\nimport {\n type CoreSDK as SearchcraftCore,\n SDKDebugger,\n LogLevel,\n type SearchcraftResponse,\n type Facets,\n} from '@searchcraft/core';\n\nimport { filterPaths } from '@utils/utils';\n\ninterface ThemeState {\n theme: 'light' | 'dark';\n toggleTheme: () => void;\n}\n\ninterface SearchParams {\n mode: 'fuzzy' | 'normal';\n sort: 'asc' | 'desc';\n yearsRange?: [number, number];\n}\n\ninterface SearchcraftState {\n facets: Facets | null;\n initialize: (searchcraft: SearchcraftCore, debug?: boolean) => void;\n isRequesting: boolean;\n query: string;\n search: () => Promise<void>;\n searchParams: SearchParams;\n searchResults: SearchcraftResponse | null;\n selectedFilters: string[]; // Add this to store selected filters\n setFacets: (facets: Facets) => void;\n setIsRequesting: (isRequesting: boolean) => void;\n setQuery: (query: string) => void;\n setSearchParams: (params: Partial<SearchParams>) => void;\n setSearchResults: (results: SearchcraftResponse | null) => void;\n setSelectedFilters: (filters: string[]) => void; // Update selected filters\n setYearsRange: (yearsRange: [number, number]) => void;\n}\n\n// Zustand store for Searchcraft state\nconst useSearchcraftStore = create<SearchcraftState>((set, get) => {\n let searchcraft: SearchcraftCore | null = null;\n let debuggerInstance: SDKDebugger | null = null;\n\n const log = (level: LogLevel, message: string) => {\n if (debuggerInstance) {\n switch (level) {\n case LogLevel.DEBUG:\n debuggerInstance.debug(message);\n break;\n case LogLevel.INFO:\n debuggerInstance.info(message);\n break;\n case LogLevel.WARN:\n debuggerInstance.warn(message);\n break;\n case LogLevel.ERROR:\n debuggerInstance.error(message);\n break;\n }\n }\n };\n\n return {\n query: '',\n isRequesting: false,\n searchResults: null,\n facets: null,\n selectedFilters: [],\n searchParams: {\n mode: 'fuzzy',\n sort: 'asc',\n },\n setQuery: (query) => set({ query }),\n setSearchResults: (results) => set({ searchResults: results }),\n setFacets: (facets) => set({ facets }),\n setSelectedFilters: (filters) => set({ selectedFilters: filters }),\n setIsRequesting: (isRequesting) => set({ isRequesting }),\n setSearchParams: (params) =>\n set((state) => ({\n searchParams: {\n ...state.searchParams,\n ...params,\n },\n })),\n setYearsRange: (yearsRange) =>\n set((state) => ({\n searchParams: {\n ...state.searchParams,\n yearsRange,\n },\n })),\n search: async () => {\n const {\n query,\n selectedFilters,\n setIsRequesting,\n setSearchResults,\n setFacets,\n searchParams,\n } = get();\n if (!searchcraft) {\n throw new Error('Searchcraft instance is not initialized.');\n }\n setIsRequesting(true);\n log(LogLevel.INFO, `Starting search with query: \"${query}\"`);\n const filters = filterPaths(selectedFilters);\n try {\n const searchRequest = {\n query,\n mode: searchParams.mode,\n sort: searchParams.sort,\n facets:\n selectedFilters.length > 0\n ? {\n section: {\n counts: Object.fromEntries(\n filters.map((path) => [path, 1]),\n ),\n },\n }\n : null,\n yearsRange: searchParams.yearsRange,\n };\n\n const results = await searchcraft.search(searchRequest);\n setSearchResults(results);\n const updatedFacets = results.data.facets || null;\n setFacets(updatedFacets);\n\n log(LogLevel.DEBUG, `Search results: ${JSON.stringify(results)}`);\n log(LogLevel.DEBUG, `Updated facets: ${JSON.stringify(updatedFacets)}`);\n } catch (error) {\n console.error(`Search failed: ${(error as Error).message}`);\n log(\n LogLevel.ERROR,\n `Search failed with error: ${(error as Error).message}`,\n );\n } finally {\n setIsRequesting(false);\n }\n },\n initialize: (searchcraftInstance, debug = false) => {\n searchcraft = searchcraftInstance;\n debuggerInstance = debug\n ? new SDKDebugger({ logLevel: LogLevel.DEBUG })\n : null;\n\n log(LogLevel.INFO, 'Searchcraft store initialized.');\n },\n };\n});\n\nconst useThemeStore = create<ThemeState>((set) => ({\n theme: 'light',\n toggleTheme: () =>\n set((state) => ({ theme: state.theme === 'light' ? 'dark' : 'light' })),\n}));\n\nexport { useSearchcraftStore, useThemeStore };\n"],"version":3}
@@ -1,67 +0,0 @@
1
- import { p as proxyCustomElement, H, c as createEvent, h } from './p-7498e493.js';
2
- import { c as classNames } from './p-5cdc6210.js';
3
- import { d as defineCustomElement$3 } from './p-70722ab2.js';
4
- import { d as defineCustomElement$2 } from './p-bc3f9025.js';
5
- import { d as defineCustomElement$1 } from './p-bfb22305.js';
6
-
7
- const searchcraftClearInputButtonModuleCss = ":root{--font-stack:Helvetica, Arial, sans-serif}.inputClearButtonLTR{align-items:center;background:none;border:none;display:flex;height:20px;justify-content:center;padding:0;position:absolute;right:0;top:50%;transform:translateY(-50%);width:20px}.inputClearButtonRTL{align-items:center;background:none;border:none;display:flex;height:20px;justify-content:center;left:0px;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:20px}";
8
- const SearchcraftClearInputButtonStyle0 = searchcraftClearInputButtonModuleCss;
9
-
10
- const SearchcraftClearInputButton = /*@__PURE__*/ proxyCustomElement(class SearchcraftClearInputButton extends H {
11
- constructor() {
12
- super();
13
- this.__registerHost();
14
- this.__attachShadow();
15
- this.clearInput = createEvent(this, "clearInput", 7);
16
- this.handleClearClick = (event) => {
17
- event.preventDefault();
18
- this.clearInput.emit();
19
- };
20
- this.isRequesting = false;
21
- this.rightToLeftOrientation = false;
22
- this.theme = 'light';
23
- }
24
- isLightTheme() {
25
- return this.theme === 'light';
26
- }
27
- render() {
28
- return this.rightToLeftOrientation ? (h("button", { class: classNames('inputClearButtonRTL', '.sc-clear-input-button-rtl'), onClick: this.handleClearClick, type: 'button' }, this.isRequesting ? (this.isLightTheme ? (h("searchcraft-spinner-light", null)) : (h("searchcraft-spinner-dark", null))) : this.isLightTheme ? (h("searchcraft-clear-icon-set", { type: 'clear-light' })) : (h("searchcraft-clear-icon-set", { type: 'clear-dark' })))) : (h("button", { class: classNames('inputClearButtonLTR', '.sc-clear-input-button-ltr'), onClick: this.handleClearClick, type: 'button' }, this.isRequesting ? (this.isLightTheme ? (h("searchcraft-spinner-light", null)) : (h("searchcraft-spinner-dark", null))) : this.isLightTheme ? (h("searchcraft-clear-icon-set", { type: 'clear-light' })) : (h("searchcraft-clear-icon-set", { type: 'clear-dark' }))));
29
- }
30
- static get style() { return SearchcraftClearInputButtonStyle0; }
31
- }, [1, "searchcraft-clear-input-button", {
32
- "isRequesting": [4, "is-requesting"],
33
- "rightToLeftOrientation": [4, "right-to-left-orientation"],
34
- "theme": [32]
35
- }]);
36
- function defineCustomElement() {
37
- if (typeof customElements === "undefined") {
38
- return;
39
- }
40
- const components = ["searchcraft-clear-input-button", "searchcraft-clear-icon-set", "searchcraft-spinner-dark", "searchcraft-spinner-light"];
41
- components.forEach(tagName => { switch (tagName) {
42
- case "searchcraft-clear-input-button":
43
- if (!customElements.get(tagName)) {
44
- customElements.define(tagName, SearchcraftClearInputButton);
45
- }
46
- break;
47
- case "searchcraft-clear-icon-set":
48
- if (!customElements.get(tagName)) {
49
- defineCustomElement$3();
50
- }
51
- break;
52
- case "searchcraft-spinner-dark":
53
- if (!customElements.get(tagName)) {
54
- defineCustomElement$2();
55
- }
56
- break;
57
- case "searchcraft-spinner-light":
58
- if (!customElements.get(tagName)) {
59
- defineCustomElement$1();
60
- }
61
- break;
62
- } });
63
- }
64
-
65
- export { SearchcraftClearInputButton as S, defineCustomElement as d };
66
-
67
- //# sourceMappingURL=p-07edaa9b.js.map
@@ -1 +0,0 @@
1
- {"file":"p-07edaa9b.js","mappings":";;;;;;AAAA,MAAM,oCAAoC,GAAG,+bAA+b,CAAC;AAC7e,0CAAe,oCAAoC;;MCctC,2BAA2B;;;;;;QAY9B,qBAAgB,GAAG,CAAC,KAAiB;YAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SACxB,CAAC;4BAdsB,KAAK;sCACI,KAAK;qBAIrB,OAAO;;IAEhB,YAAY;QAClB,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;KAC/B;IAOD,MAAM;QACJ,OAAO,IAAI,CAAC,sBAAsB,IAChC,cACE,KAAK,EAAE,UAAU,CAAC,qBAAqB,EAAE,4BAA4B,CAAC,EACtE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,IAChB,IAAI,CAAC,YAAY,IACf,oCAA6B,KAE7B,mCAA4B,CAC7B,IACC,IAAI,CAAC,YAAY,IACnB,kCAA4B,IAAI,EAAC,aAAa,GAAG,KAEjD,kCAA4B,IAAI,EAAC,YAAY,GAAG,CACjD,CACM,KAET,cACE,KAAK,EAAE,UAAU,CAAC,qBAAqB,EAAE,4BAA4B,CAAC,EACtE,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,IAChB,IAAI,CAAC,YAAY,IACf,oCAA6B,KAE7B,mCAA4B,CAC7B,IACC,IAAI,CAAC,YAAY,IACnB,kCAA4B,IAAI,EAAC,aAAa,GAAG,KAEjD,kCAA4B,IAAI,EAAC,YAAY,GAAG,CACjD,CACM,CACV,CAAC;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-clear-input-button/searchcraft-clear-input-button.module.scss?tag=searchcraft-clear-input-button&encapsulation=shadow","src/components/searchcraft-clear-input-button/searchcraft-clear-input-button.tsx"],"sourcesContent":[":root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n.inputClearButtonLTR {\n align-items: center;\n background: none;\n border: none;\n display: flex;\n height: 20px;\n justify-content: center;\n padding: 0;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}\n\n.inputClearButtonRTL {\n align-items: center;\n background: none;\n border: none;\n display: flex;\n height: 20px;\n justify-content: center;\n left: 0px;\n padding: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 20px;\n}","import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n State,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-clear-input-button',\n styleUrl: 'searchcraft-clear-input-button.module.scss',\n shadow: true,\n})\nexport class SearchcraftClearInputButton {\n @Prop() isRequesting? = false;\n @Prop() rightToLeftOrientation = false;\n\n @Event() clearInput: EventEmitter<void>;\n\n @State() theme = 'light';\n\n private isLightTheme() {\n return this.theme === 'light';\n }\n\n private handleClearClick = (event: MouseEvent) => {\n event.preventDefault();\n this.clearInput.emit();\n };\n\n render() {\n return this.rightToLeftOrientation ? (\n <button\n class={classNames('inputClearButtonRTL', '.sc-clear-input-button-rtl')}\n onClick={this.handleClearClick}\n type='button'\n >\n {this.isRequesting ? (\n this.isLightTheme ? (\n <searchcraft-spinner-light />\n ) : (\n <searchcraft-spinner-dark />\n )\n ) : this.isLightTheme ? (\n <searchcraft-clear-icon-set type='clear-light' />\n ) : (\n <searchcraft-clear-icon-set type='clear-dark' />\n )}\n </button>\n ) : (\n <button\n class={classNames('inputClearButtonLTR', '.sc-clear-input-button-ltr')}\n onClick={this.handleClearClick}\n type='button'\n >\n {this.isRequesting ? (\n this.isLightTheme ? (\n <searchcraft-spinner-light />\n ) : (\n <searchcraft-spinner-dark />\n )\n ) : this.isLightTheme ? (\n <searchcraft-clear-icon-set type='clear-light' />\n ) : (\n <searchcraft-clear-icon-set type='clear-dark' />\n )}\n </button>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-27a6ca57.js","mappings":"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","names":[],"sources":["src/components/searchcraft-input/searchcraft-input.module.scss?tag=searchcraft-input&encapsulation=shadow","src/components/searchcraft-input/searchcraft-input.tsx"],"sourcesContent":["@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin input-container-base {\n position: relative;\n width: 100%;\n}\n\n@mixin input-base {\n border: none;\n border-radius: 8px;\n font-family: 'Brygada 1918';\n outline: none;\n padding-bottom: 15px;\n padding-top: 15px;\n width: 100%;\n\n &::placeholder {\n font-family: 'Brygada 1918';\n font-size: 16px;\n font-weight: 600;\n }\n}\n\n@mixin input-base-light {\n @include input-base;\n background-color: $light-input-background-color;\n color: $light-input-label-color;\n\n &::placeholder {\n color: $light-input-placeholder-color;\n }\n\n &:focus {\n outline: 2px solid $light-input-outline-focus;\n }\n}\n\n@mixin input-base-dark {\n @include input-base;\n background-color: $dark-input-background-color;\n color: $dark-input-label-color;\n\n &::placeholder {\n color: $dark-input-placeholder-color;\n }\n\n &:focus {\n outline: 2px solid $dark-input-outline-focus;\n }\n}\n\n@mixin input-error-base-light {\n @include input-base-light;\n outline: 2px solid $light-input-error-outline;\n\n &:focus-visible {\n outline: 2px solid $light-input-error-outline,\n }\n}\n\n@mixin input-error-base-dark {\n @include input-base-dark;\n outline: 2px solid $dark-input-error-outline;\n\n &:focus-visible {\n outline: 2px solid $dark-input-error-outline;\n }\n}\n\n.inputContainerLTR {\n @include input-container-base;\n}\n\n.inputContainerRTL {\n @include input-container-base;\n margin-left: 8px;\n}\n\n@mixin align-LTR {\n margin-right: 8px;\n padding-left: 36px;\n padding-right: 16px;\n}\n\n.inputLightLTR {\n @include input-base-light;\n @include align-LTR;\n}\n\n.inputDarkLTR {\n @include input-base-dark;\n @include align-LTR;\n}\n\n.inputErrorLightLTR {\n @include input-error-base-light;\n @include align-LTR;\n}\n\n.inputErrorDarkLTR {\n @include input-error-base-dark;\n @include align-LTR;\n}\n\n@mixin align-RTL {\n margin-left: 8px;\n padding-left: 16px;\n padding-right: 36px;\n text-align: right;\n}\n\n.inputLightRTL {\n @include input-base-light;\n @include align-RTL;\n}\n\n.inputDarkRTL {\n @include input-base-dark;\n @include align-RTL;\n}\n\n.inputErrorLightRTL {\n @include input-error-base-light;\n @include align-RTL;\n}\n\n.inputErrorDarkRTL {\n @include input-error-base-dark;\n @include align-RTL;\n}\n\n.inputWrapper {\n align-items: center;\n display: flex;\n position: relative;\n width: 100%;\n}\n","import {\n Component,\n h,\n Prop,\n State,\n Event,\n Fragment,\n type EventEmitter,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\nimport { parseCustomStyles } from '@utils/utils';\n\nexport interface ScInputCustomEvent<T> extends CustomEvent<T> {\n detail: T;\n target: HTMLSearchcraftInputElement;\n}\n\n@Component({\n tag: 'searchcraft-input',\n styleUrl: 'searchcraft-input.module.scss',\n shadow: true,\n})\nexport class SearchcraftInput {\n @Prop() customStyles: string | Record<string, string> = {};\n @Prop() error = false;\n @Prop() formClassName = '';\n @Prop() inputCaptionClassName = '';\n @Prop() inputCaptionValue = '';\n @Prop() inputClassName = '';\n @Prop() inputIconHeight = 20;\n @Prop() inputIconWidth = 20;\n @Prop() isRequesting = false;\n @Prop() placeholderValue = 'Enter Search';\n @Prop() rightToLeftOrientation = false;\n @Prop() query = '';\n\n @Event() clearInput: EventEmitter<void>;\n @Event() searchInputChange: EventEmitter<string>;\n @Event() inputKeyUp: EventEmitter<string>;\n\n @State() theme = 'light';\n\n private get isLightTheme() {\n return this.theme === 'light';\n }\n\n handleInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n this.searchInputChange.emit(input.value);\n }\n\n handleInputKeyUp(event: KeyboardEvent) {\n const input = event.target as HTMLInputElement;\n this.inputKeyUp.emit(input.value);\n }\n\n handleClearInput() {\n if (this.query === '') {\n return;\n }\n this.query = '';\n if (this.clearInput) {\n this.clearInput.emit();\n }\n }\n\n render() {\n const containerClassName = this.rightToLeftOrientation\n ? 'inputContainerRTL'\n : 'inputContainerLTR';\n\n const inputClassName = classNames(\n this.error\n ? this.isLightTheme\n ? 'inputErrorLightRTL'\n : 'inputErrorDarkRTL'\n : this.isLightTheme\n ? 'inputLightLTR'\n : 'inputDarkLTR',\n 'searchcraft-input',\n );\n\n const validatedCustomStyles = parseCustomStyles(this.customStyles);\n\n const placeholderStyle = {\n fontSize: validatedCustomStyles.placeholderFontSize || '16px',\n };\n return (\n <div\n class={classNames(\n containerClassName,\n this.formClassName,\n 'searchcraft-input-form',\n )}\n >\n {this.rightToLeftOrientation ? (\n <Fragment>\n <input\n autoComplete='off'\n class={classNames(inputClassName, 'searchcraft-input')}\n id='searchcraft-input-id'\n onChange={this.handleInputChange.bind(this)}\n onKeyUp={this.handleInputKeyUp.bind(this)}\n placeholder={this.placeholderValue}\n type='text'\n value={this.query}\n style={validatedCustomStyles}\n />\n <style>\n {`\n #searchcraft-input-id::placeholder {\n font-size: ${placeholderStyle.fontSize};\n }\n `}\n </style>\n {this.inputCaptionValue && (\n <searchcraft-input-caption\n inputCaptionClassName={this.inputCaptionClassName}\n inputCaptionValue={this.inputCaptionValue}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n {this.query.length > 0 && (\n <searchcraft-clear-input-button\n isRequesting={this.isRequesting}\n onClearInput={this.handleClearInput}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n <searchcraft-input-icon\n error={this.error}\n height={this.inputIconHeight}\n rightToLeftOrientation={this.rightToLeftOrientation}\n width={this.inputIconWidth}\n />\n </Fragment>\n ) : (\n <Fragment>\n <searchcraft-input-icon\n error={this.error}\n height={this.inputIconHeight}\n rightToLeftOrientation={this.rightToLeftOrientation}\n width={this.inputIconWidth}\n />\n <input\n autoComplete='off'\n class={classNames(inputClassName, 'searchcraft-input')}\n id='searchcraft-input-id'\n onChange={this.handleInputChange.bind(this)}\n onKeyUp={this.handleInputKeyUp.bind(this)}\n placeholder={this.placeholderValue}\n type='text'\n value={this.query}\n style={validatedCustomStyles}\n />\n <style>\n {`\n #searchcraft-input-id::placeholder {\n font-size: ${placeholderStyle.fontSize};\n }\n `}\n </style>\n {this.inputCaptionValue && (\n <searchcraft-input-caption\n inputCaptionClassName={this.inputCaptionClassName}\n inputCaptionValue={this.inputCaptionValue}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n {this.query.length > 0 && (\n <searchcraft-clear-input-button\n isRequesting={this.isRequesting}\n onClearInput={this.handleClearInput}\n rightToLeftOrientation={this.rightToLeftOrientation}\n />\n )}\n </Fragment>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"p-4468fba3.js","mappings":";;;;AAAA,MAAM,0BAA0B,GAAG,y/BAAy/B,CAAC;AAC7hC,gCAAe,0BAA0B;;MCe5B,iBAAiB;;;;;;QAepB,gBAAW,GAAG;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACzB,CAAC;;wBAfiB,KAAK;4BACD,MAAM;qBACb,QAAQ;4BAIA,KAAK;qBACZ,OAAO;;IAEhB,cAAc;QACpB,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,GAAG,aAAa,GAAG,YAAY,CAAC;KAC9D;IAMD,MAAM;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,QACE,EAAC,QAAQ,uDACN,IAAI,CAAC,QAAQ,IACZ,cACE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC,EACpD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,IAChB,mCAA4B,KAE5B,IAAI,CAAC,WAAW,CACjB,CACM,KAET,cACE,KAAK,EAAE,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC,EACpD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,IAAI,EAAC,QAAQ,IAEZ,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,IAChD,WAAK,KAAK,EAAC,sBAAsB,IAC/B,mCAA4B,CACxB,KAEN,IAAI,CAAC,WAAW,CACjB,EACD,YACE,KAAK,EAAE,UAAU,CACf,IAAI,CAAC,YAAY,IAAI,cAAc,EACnC,0BAA0B,CAC3B,IAEA,IAAI,CAAC,KAAK,CACN,CACA,CACV,CACQ,EACX;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/searchcraft-button/searchcraft-button.module.scss?tag=searchcraft-button&encapsulation=shadow","src/components/searchcraft-button/searchcraft-button.tsx"],"sourcesContent":["@import '../../utils/theme';\n\n:root {\n --font-stack: Helvetica, Arial, sans-serif;\n}\n\n@mixin button-base {\n border-radius: 8px;\n display: flex;\n font-family: var(--font-stack);\n font-size: 16px;\n font-weight: 700;\n line-height: 20px;\n padding: 11px 20px;\n position: relative;\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.buttonLight {\n @include button-base;\n background-color: $light-background;\n border: 1px solid $light-button-border;\n color: $light-button-color;\n\n &:hover {\n background-color: $light-button-hover;\n }\n\n &:focus {\n outline: 2px solid $light-button-outline-focus;\n }\n}\n\n.buttonDark {\n @include button-base;\n background-color: $dark-background;\n border: 1px solid $dark-button-border;\n color: $dark-button-color;\n\n &:hover {\n background-color: $dark-button-hover;\n }\n\n &:focus {\n outline: 2px solid $dark-button-outline-focus;\n }\n}\n\n.spinnerMarginRight {\n left: 4px;\n margin-right: 4px;\n position: absolute;\n}\n\n.spinnerMarginLeft {\n left: 4px;\n margin-left: 4px;\n position: absolute;\n}\n\n.buttonLabel {\n animation: right-and-back .2s;\n margin-left: 4px;\n position: relative;\n}\n\n@keyframes right-and-back {\n 0% { right: -6px; }\n 50% { right: -12px; }\n 75% { right: -6px; }\n 100% {right: 0px; }\n}","import {\n Component,\n Event,\n type EventEmitter,\n Prop,\n h,\n State,\n Fragment,\n} from '@stencil/core';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'searchcraft-button',\n styleUrl: 'searchcraft-button.module.scss',\n shadow: true,\n})\nexport class SearchcraftButton {\n @Prop() iconElement?: Element;\n @Prop() iconOnly = false;\n @Prop() iconPosition = 'left';\n @Prop() label = 'Search';\n\n @Event() buttonClick!: EventEmitter<void>;\n\n @State() isRequesting = false;\n @State() theme = 'light';\n\n private getButtonStyle() {\n return this.theme === 'light' ? 'buttonLight' : 'buttonDark';\n }\n\n private handleClick = () => {\n this.buttonClick.emit(); // Emit the event instead of calling a function\n };\n\n render() {\n const buttonStyle = this.getButtonStyle();\n\n return (\n <Fragment>\n {this.iconOnly ? (\n <button\n class={classNames(buttonStyle, 'searchcraft-button')}\n onClick={this.handleClick}\n type='submit'\n >\n {this.isRequesting ? (\n <searchcraft-spinner-dark />\n ) : (\n this.iconElement\n )}\n </button>\n ) : (\n <button\n class={classNames(buttonStyle, 'searchcraft-button')}\n onClick={this.handleClick}\n type='submit'\n >\n {this.iconPosition === 'left' && this.isRequesting ? (\n <div class='spinner-margin-right'>\n <searchcraft-spinner-dark />\n </div>\n ) : (\n this.iconElement\n )}\n <span\n class={classNames(\n this.isRequesting && 'button-label',\n 'searchcraft-button-label',\n )}\n >\n {this.label}\n </span>\n </button>\n )}\n </Fragment>\n );\n }\n}\n"],"version":3}