@constructor-io/constructorio-ui-autocomplete 1.12.0 → 1.13.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.
@@ -8,8 +8,9 @@ const SectionItemText_1 = tslib_1.__importDefault(require("./SectionItemText"));
8
8
  function SectionItem(props) {
9
9
  var _a, _b, _c, _d, _e;
10
10
  const { item, children, displaySearchTermHighlights } = props;
11
- const { getItemProps, advancedParameters, query } = (0, react_1.useContext)(CioAutocompleteProvider_1.CioAutocompleteContext);
12
- const { displaySearchSuggestionImages, displaySearchSuggestionResultCounts } = advancedParameters || {};
11
+ const { getItemProps, advancedParameters, query, featureToggles } = (0, react_1.useContext)(CioAutocompleteProvider_1.CioAutocompleteContext);
12
+ const { featureDisplaySearchSuggestionImages, featureDisplaySearchSuggestionResultCounts } = featureToggles;
13
+ const { displaySearchSuggestionImages = featureDisplaySearchSuggestionImages, displaySearchSuggestionResultCounts = featureDisplaySearchSuggestionResultCounts, } = advancedParameters || {};
13
14
  let defaultChildren;
14
15
  if ((0, typeGuards_1.isProduct)(item)) {
15
16
  defaultChildren = (react_1.default.createElement(react_1.default.Fragment, null,
@@ -26,7 +26,7 @@ const useCioAutocomplete = (options) => {
26
26
  const previousQuery = (0, usePrevious_1.default)(query);
27
27
  const cioClient = (0, useCioClient_1.default)({ apiKey, cioJsClient });
28
28
  // Get autocomplete sections (autocomplete + recommendations + custom)
29
- const { activeSections, activeSectionsWithData, zeroStateActiveSections } = (0, useSections_1.default)(query, cioClient, sections, zeroStateSections, advancedParameters);
29
+ const { activeSections, activeSectionsWithData, zeroStateActiveSections, request } = (0, useSections_1.default)(query, cioClient, sections, zeroStateSections, advancedParameters);
30
30
  // Get dropdown items array from active sections (autocomplete + recommendations + custom)
31
31
  const items = (0, useItems_1.default)(activeSectionsWithData);
32
32
  const downshift = (0, useDownShift_1.default)({ setQuery, items, onSubmit, cioClient, previousQuery });
@@ -36,6 +36,8 @@ const useCioAutocomplete = (options) => {
36
36
  return {
37
37
  query,
38
38
  sections: activeSectionsWithData,
39
+ request,
40
+ featureToggles: (0, utils_1.getSearchSuggestionFeatures)(request),
39
41
  isOpen: isOpen && (items === null || items === void 0 ? void 0 : items.length) > 0,
40
42
  getMenuProps: () => (Object.assign(Object.assign({}, getMenuProps()), { className: 'cio-results', 'data-testid': 'cio-results' })),
41
43
  getLabelProps,
@@ -28,10 +28,13 @@ const transformResponse = (response, options) => {
28
28
  }
29
29
  });
30
30
  });
31
- return newSectionsData;
31
+ return { sectionsData: newSectionsData, request: response === null || response === void 0 ? void 0 : response.request };
32
32
  };
33
33
  const useDebouncedFetchSection = (query, cioClient, autocompleteSections, advancedParameters) => {
34
- const [sectionsData, setSectionsData] = (0, react_1.useState)({});
34
+ const [sectionsData, setSectionsData] = (0, react_1.useState)({
35
+ sectionsData: {},
36
+ request: {},
37
+ });
35
38
  const debouncedSearchTerm = (0, useDebounce_1.default)(query, advancedParameters === null || advancedParameters === void 0 ? void 0 : advancedParameters.debounce);
36
39
  const { numTermsWithGroupSuggestions = 0, numGroupsSuggestedPerTerm = 0 } = advancedParameters || {};
37
40
  const autocompleteParameters = (0, react_1.useMemo)(() => {
@@ -60,7 +63,7 @@ const useDebouncedFetchSection = (query, cioClient, autocompleteSections, advanc
60
63
  }
61
64
  }
62
65
  else if (!debouncedSearchTerm) {
63
- setSectionsData({});
66
+ setSectionsData({ sectionsData: {}, request: {} });
64
67
  }
65
68
  }))();
66
69
  }, [
@@ -9,7 +9,9 @@ const useDownShift = ({ setQuery, items, onSubmit, cioClient, previousQuery = ''
9
9
  onSelectedItemChange({ selectedItem }) {
10
10
  var _a;
11
11
  if (selectedItem) {
12
- setQuery(selectedItem.value || '');
12
+ if ((selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.section) === 'Search Suggestions') {
13
+ setQuery(selectedItem.value || '');
14
+ }
13
15
  if (selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value) {
14
16
  if (onSubmit)
15
17
  onSubmit({ item: selectedItem, originalQuery: previousQuery });
@@ -11,7 +11,7 @@ function useSections(query, cioClient, sections, zeroStateSections, advancedPara
11
11
  const autocompleteSections = (0, react_1.useMemo)(() => activeSections === null || activeSections === void 0 ? void 0 : activeSections.filter((config) => config.type === 'autocomplete' || !config.type), [activeSections]);
12
12
  const recommendationsSections = activeSections === null || activeSections === void 0 ? void 0 : activeSections.filter((config) => config.type === 'recommendations');
13
13
  // Fetch Autocomplete Results
14
- const autocompleteResults = (0, useDebouncedFetchSections_1.default)(query, cioClient, autocompleteSections, advancedParameters);
14
+ const { sectionsData: autocompleteResults, request } = (0, useDebouncedFetchSections_1.default)(query, cioClient, autocompleteSections, advancedParameters);
15
15
  // Fetch Recommendations Results
16
16
  const recommendationsResults = (0, useFetchRecommendationPod_1.default)(cioClient, recommendationsSections);
17
17
  const sectionResults = Object.assign(Object.assign({}, autocompleteResults), recommendationsResults);
@@ -31,6 +31,7 @@ function useSections(query, cioClient, sections, zeroStateSections, advancedPara
31
31
  activeSections,
32
32
  activeSectionsWithData,
33
33
  zeroStateActiveSections,
34
+ request,
34
35
  };
35
36
  }
36
37
  exports.default = useSections;
package/lib/cjs/utils.js CHANGED
@@ -1,10 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.escapeRegExp = exports.getActiveSectionsWithData = exports.getCioClient = exports.disableStoryActions = exports.stringifyWithDefaults = exports.functionStrings = exports.getStoryParams = exports.sleep = exports.clearConstructorRequests = exports.isTrackingRequestSent = exports.camelToStartCase = exports.getItemPosition = void 0;
3
+ exports.escapeRegExp = exports.getActiveSectionsWithData = exports.getCioClient = exports.disableStoryActions = exports.stringifyWithDefaults = exports.functionStrings = exports.getStoryParams = exports.sleep = exports.clearConstructorRequests = exports.isTrackingRequestSent = exports.camelToStartCase = exports.getItemPosition = exports.getSearchSuggestionFeatures = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const constructorio_client_javascript_1 = tslib_1.__importDefault(require("@constructor-io/constructorio-client-javascript"));
6
6
  const typeGuards_1 = require("./typeGuards");
7
7
  const version_1 = tslib_1.__importDefault(require("./version"));
8
+ function getSearchSuggestionFeatures(request) {
9
+ var _a, _b;
10
+ let featureDisplaySearchSuggestionImages = false;
11
+ let featureDisplaySearchSuggestionResultCounts = false;
12
+ if (((_a = request === null || request === void 0 ? void 0 : request.features) === null || _a === void 0 ? void 0 : _a.custom_autosuggest_ui) === true) {
13
+ switch ((_b = request === null || request === void 0 ? void 0 : request.feature_variants) === null || _b === void 0 ? void 0 : _b.custom_autosuggest_ui) {
14
+ case 'custom_autosuggest_ui_result_count':
15
+ featureDisplaySearchSuggestionResultCounts = true;
16
+ break;
17
+ case 'custom_autosuggest_ui_image':
18
+ featureDisplaySearchSuggestionImages = true;
19
+ break;
20
+ case 'custom_autosuggest_ui_image_result_count':
21
+ featureDisplaySearchSuggestionImages = true;
22
+ featureDisplaySearchSuggestionResultCounts = true;
23
+ break;
24
+ default:
25
+ break;
26
+ }
27
+ }
28
+ return {
29
+ featureDisplaySearchSuggestionImages,
30
+ featureDisplaySearchSuggestionResultCounts,
31
+ };
32
+ }
33
+ exports.getSearchSuggestionFeatures = getSearchSuggestionFeatures;
8
34
  const getItemPosition = ({ item, items }) => {
9
35
  var _a;
10
36
  const index = items.findIndex((itemInFlatList) => (itemInFlatList === null || itemInFlatList === void 0 ? void 0 : itemInFlatList.id) === (item === null || item === void 0 ? void 0 : item.id));
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = '1.12.0';
3
+ exports.default = '1.13.0';
@@ -4,8 +4,9 @@ import { isProduct, isInGroupSuggestion, isSearchSuggestion } from '../../../typ
4
4
  import SectionItemText from './SectionItemText';
5
5
  export default function SectionItem(props) {
6
6
  const { item, children, displaySearchTermHighlights } = props;
7
- const { getItemProps, advancedParameters, query } = useContext(CioAutocompleteContext);
8
- const { displaySearchSuggestionImages, displaySearchSuggestionResultCounts } = advancedParameters || {};
7
+ const { getItemProps, advancedParameters, query, featureToggles } = useContext(CioAutocompleteContext);
8
+ const { featureDisplaySearchSuggestionImages, featureDisplaySearchSuggestionResultCounts } = featureToggles;
9
+ const { displaySearchSuggestionImages = featureDisplaySearchSuggestionImages, displaySearchSuggestionResultCounts = featureDisplaySearchSuggestionResultCounts, } = advancedParameters || {};
9
10
  let defaultChildren;
10
11
  if (isProduct(item)) {
11
12
  defaultChildren = (React.createElement(React.Fragment, null,
@@ -2,7 +2,7 @@ import { useState } from 'react';
2
2
  import useCioClient from './useCioClient';
3
3
  import useDownShift from './useDownShift';
4
4
  import usePrevious from './usePrevious';
5
- import { getItemPosition } from '../utils';
5
+ import { getItemPosition, getSearchSuggestionFeatures } from '../utils';
6
6
  import useConsoleErrors from './useConsoleErrors';
7
7
  import useSections from './useSections';
8
8
  import useItems from './useItems';
@@ -22,7 +22,7 @@ const useCioAutocomplete = (options) => {
22
22
  const previousQuery = usePrevious(query);
23
23
  const cioClient = useCioClient({ apiKey, cioJsClient });
24
24
  // Get autocomplete sections (autocomplete + recommendations + custom)
25
- const { activeSections, activeSectionsWithData, zeroStateActiveSections } = useSections(query, cioClient, sections, zeroStateSections, advancedParameters);
25
+ const { activeSections, activeSectionsWithData, zeroStateActiveSections, request } = useSections(query, cioClient, sections, zeroStateSections, advancedParameters);
26
26
  // Get dropdown items array from active sections (autocomplete + recommendations + custom)
27
27
  const items = useItems(activeSectionsWithData);
28
28
  const downshift = useDownShift({ setQuery, items, onSubmit, cioClient, previousQuery });
@@ -32,6 +32,8 @@ const useCioAutocomplete = (options) => {
32
32
  return {
33
33
  query,
34
34
  sections: activeSectionsWithData,
35
+ request,
36
+ featureToggles: getSearchSuggestionFeatures(request),
35
37
  isOpen: isOpen && items?.length > 0,
36
38
  getMenuProps: () => ({
37
39
  ...getMenuProps(),
@@ -29,10 +29,13 @@ const transformResponse = (response, options) => {
29
29
  }
30
30
  });
31
31
  });
32
- return newSectionsData;
32
+ return { sectionsData: newSectionsData, request: response?.request };
33
33
  };
34
34
  const useDebouncedFetchSection = (query, cioClient, autocompleteSections, advancedParameters) => {
35
- const [sectionsData, setSectionsData] = useState({});
35
+ const [sectionsData, setSectionsData] = useState({
36
+ sectionsData: {},
37
+ request: {},
38
+ });
36
39
  const debouncedSearchTerm = useDebounce(query, advancedParameters?.debounce);
37
40
  const { numTermsWithGroupSuggestions = 0, numGroupsSuggestedPerTerm = 0 } = advancedParameters || {};
38
41
  const autocompleteParameters = useMemo(() => {
@@ -66,7 +69,7 @@ const useDebouncedFetchSection = (query, cioClient, autocompleteSections, advanc
66
69
  }
67
70
  }
68
71
  else if (!debouncedSearchTerm) {
69
- setSectionsData({});
72
+ setSectionsData({ sectionsData: {}, request: {} });
70
73
  }
71
74
  })();
72
75
  }, [
@@ -6,7 +6,9 @@ const useDownShift = ({ setQuery, items, onSubmit, cioClient, previousQuery = ''
6
6
  itemToString: (item) => item?.value || '',
7
7
  onSelectedItemChange({ selectedItem }) {
8
8
  if (selectedItem) {
9
- setQuery(selectedItem.value || '');
9
+ if (selectedItem?.section === 'Search Suggestions') {
10
+ setQuery(selectedItem.value || '');
11
+ }
10
12
  if (selectedItem?.value) {
11
13
  if (onSubmit)
12
14
  onSubmit({ item: selectedItem, originalQuery: previousQuery });
@@ -8,7 +8,7 @@ export default function useSections(query, cioClient, sections, zeroStateSection
8
8
  const autocompleteSections = useMemo(() => activeSections?.filter((config) => config.type === 'autocomplete' || !config.type), [activeSections]);
9
9
  const recommendationsSections = activeSections?.filter((config) => config.type === 'recommendations');
10
10
  // Fetch Autocomplete Results
11
- const autocompleteResults = useDebouncedFetchSection(query, cioClient, autocompleteSections, advancedParameters);
11
+ const { sectionsData: autocompleteResults, request } = useDebouncedFetchSection(query, cioClient, autocompleteSections, advancedParameters);
12
12
  // Fetch Recommendations Results
13
13
  const recommendationsResults = useFetchRecommendationPod(cioClient, recommendationsSections);
14
14
  const sectionResults = { ...autocompleteResults, ...recommendationsResults };
@@ -28,5 +28,6 @@ export default function useSections(query, cioClient, sections, zeroStateSection
28
28
  activeSections,
29
29
  activeSectionsWithData,
30
30
  zeroStateActiveSections,
31
+ request,
31
32
  };
32
33
  }
package/lib/mjs/utils.js CHANGED
@@ -1,6 +1,30 @@
1
1
  import ConstructorIOClient from '@constructor-io/constructorio-client-javascript';
2
2
  import { isCustomSection } from './typeGuards';
3
3
  import version from './version';
4
+ export function getSearchSuggestionFeatures(request) {
5
+ let featureDisplaySearchSuggestionImages = false;
6
+ let featureDisplaySearchSuggestionResultCounts = false;
7
+ if (request?.features?.custom_autosuggest_ui === true) {
8
+ switch (request?.feature_variants?.custom_autosuggest_ui) {
9
+ case 'custom_autosuggest_ui_result_count':
10
+ featureDisplaySearchSuggestionResultCounts = true;
11
+ break;
12
+ case 'custom_autosuggest_ui_image':
13
+ featureDisplaySearchSuggestionImages = true;
14
+ break;
15
+ case 'custom_autosuggest_ui_image_result_count':
16
+ featureDisplaySearchSuggestionImages = true;
17
+ featureDisplaySearchSuggestionResultCounts = true;
18
+ break;
19
+ default:
20
+ break;
21
+ }
22
+ }
23
+ return {
24
+ featureDisplaySearchSuggestionImages,
25
+ featureDisplaySearchSuggestionResultCounts,
26
+ };
27
+ }
4
28
  export const getItemPosition = ({ item, items }) => {
5
29
  const index = items.findIndex((itemInFlatList) => itemInFlatList?.id === item?.id);
6
30
  const sectionId = items[index]?.section;
@@ -1 +1 @@
1
- export default '1.12.0';
1
+ export default '1.13.0';
@@ -3,6 +3,11 @@ import { CioAutocompleteProps } from '../../types';
3
3
  export declare const CioAutocompleteContext: React.Context<{
4
4
  query: string;
5
5
  sections: import("../../types").Section[];
6
+ request: Partial<import("@constructor-io/constructorio-client-javascript/lib/types").AutocompleteRequestType>;
7
+ featureToggles: {
8
+ featureDisplaySearchSuggestionImages: boolean;
9
+ featureDisplaySearchSuggestionResultCounts: boolean;
10
+ };
6
11
  isOpen: boolean;
7
12
  getMenuProps: () => any;
8
13
  getLabelProps: (options?: import("downshift").UseComboboxGetLabelPropsOptions | undefined) => any;
@@ -4,6 +4,11 @@ export type UseCioAutocompleteOptions = Omit<CioAutocompleteProps, 'children'>;
4
4
  declare const useCioAutocomplete: (options: UseCioAutocompleteOptions) => {
5
5
  query: string;
6
6
  sections: import("../types").Section[];
7
+ request: Partial<import("@constructor-io/constructorio-client-javascript/lib/types").AutocompleteRequestType>;
8
+ featureToggles: {
9
+ featureDisplaySearchSuggestionImages: boolean;
10
+ featureDisplaySearchSuggestionResultCounts: boolean;
11
+ };
7
12
  isOpen: boolean;
8
13
  getMenuProps: () => any;
9
14
  getLabelProps: (options?: import("downshift").UseComboboxGetLabelPropsOptions | undefined) => any;
@@ -1,5 +1,5 @@
1
1
  import ConstructorIOClient from '@constructor-io/constructorio-client-javascript';
2
2
  import { Nullable } from '@constructor-io/constructorio-client-javascript/lib/types';
3
- import { AutocompleteResultSections, RecommendationsSection } from '../types';
4
- declare const useFetchRecommendationPod: (cioClient: Nullable<ConstructorIOClient>, recommendationPods: RecommendationsSection[]) => AutocompleteResultSections;
3
+ import { RecommendationsSection, SectionsData } from '../types';
4
+ declare const useFetchRecommendationPod: (cioClient: Nullable<ConstructorIOClient>, recommendationPods: RecommendationsSection[]) => SectionsData;
5
5
  export default useFetchRecommendationPod;
@@ -5,4 +5,5 @@ export default function useSections(query: string, cioClient: Nullable<Construct
5
5
  activeSections: UserDefinedSection[];
6
6
  activeSectionsWithData: import("../types").Section[];
7
7
  zeroStateActiveSections: false | UserDefinedSection[] | undefined;
8
+ request: Partial<import("@constructor-io/constructorio-client-javascript/lib/types").AutocompleteRequestType>;
8
9
  };
@@ -1,7 +1,7 @@
1
1
  import { GetItemPropsOptions } from 'downshift';
2
2
  import { ReactNode } from 'react';
3
3
  import ConstructorIOClient from '@constructor-io/constructorio-client-javascript';
4
- import { IAutocompleteParameters, SearchSuggestion as SearchSuggestionFromClient, Product as ProductFromClient, Item as ItemBase } from '@constructor-io/constructorio-client-javascript/lib/types';
4
+ import { IAutocompleteParameters, SearchSuggestion as SearchSuggestionFromClient, Product as ProductFromClient, Item as ItemBase, AutocompleteRequestType } from '@constructor-io/constructorio-client-javascript/lib/types';
5
5
  export type { IAutocompleteParameters } from '@constructor-io/constructorio-client-javascript/lib/types';
6
6
  export type CioClientConfig = {
7
7
  apiKey?: string;
@@ -19,7 +19,7 @@ export type CioAutocompleteProps = CioClientConfig & {
19
19
  openOnFocus?: boolean;
20
20
  onSubmit: OnSubmit;
21
21
  onFocus?: () => void;
22
- onChange?: (string: any) => void;
22
+ onChange?: (input: string) => void;
23
23
  placeholder?: string;
24
24
  children?: ReactNode;
25
25
  sections?: UserDefinedSection[];
@@ -47,9 +47,13 @@ export type GetAutocompleteResultsOptions = {
47
47
  numResults: number;
48
48
  };
49
49
  };
50
+ export type SectionsData = {
51
+ [key: string]: Item[] | undefined;
52
+ };
50
53
  /** CIO API Response Data */
51
54
  export type AutocompleteResultSections = {
52
- [key: string]: Item[] | undefined;
55
+ sectionsData: SectionsData;
56
+ request: Partial<AutocompleteRequestType>;
53
57
  };
54
58
  type SectionType = 'autocomplete' | 'recommendations' | 'custom';
55
59
  export type SectionConfiguration = {
@@ -1,5 +1,6 @@
1
1
  import ConstructorIOClient from '@constructor-io/constructorio-client-javascript';
2
- import { OnSubmit, Item, Section, UserDefinedSection, AutocompleteResultSections } from './types';
2
+ import { AutocompleteRequestType } from '@constructor-io/constructorio-client-javascript/lib/types';
3
+ import { OnSubmit, Item, Section, UserDefinedSection, SectionsData } from './types';
3
4
  export type GetItemPosition = (args: {
4
5
  item: Item;
5
6
  items: Item[];
@@ -7,6 +8,10 @@ export type GetItemPosition = (args: {
7
8
  index: number;
8
9
  sectionId: string;
9
10
  };
11
+ export declare function getSearchSuggestionFeatures(request: Partial<AutocompleteRequestType>): {
12
+ featureDisplaySearchSuggestionImages: boolean;
13
+ featureDisplaySearchSuggestionResultCounts: boolean;
14
+ };
10
15
  export declare const getItemPosition: GetItemPosition;
11
16
  type CamelToStartCase = (camelCaseString: string) => string;
12
17
  export declare const camelToStartCase: CamelToStartCase;
@@ -32,6 +37,6 @@ export declare const stringifyWithDefaults: (obj: {
32
37
  }) => string;
33
38
  export declare const disableStoryActions: (story: any) => void;
34
39
  export declare const getCioClient: (apiKey?: string) => ConstructorIOClient | null;
35
- export declare const getActiveSectionsWithData: (activeSections: UserDefinedSection[], sectionResults: AutocompleteResultSections) => Section[];
40
+ export declare const getActiveSectionsWithData: (activeSections: UserDefinedSection[], sectionResults: SectionsData) => Section[];
36
41
  export declare const escapeRegExp: (string: string) => string;
37
42
  export {};
@@ -1,2 +1,2 @@
1
- declare const _default: "1.12.0";
1
+ declare const _default: "1.13.0";
2
2
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-ui-autocomplete",
3
- "version": "1.12.0",
3
+ "version": "1.13.1",
4
4
  "description": "Constructor.io Autocomplete UI library for web applications",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -13,6 +13,10 @@
13
13
  "import": "./lib/mjs/index.js",
14
14
  "require": "./lib/cjs/index.js"
15
15
  },
16
+ "./cjs": {
17
+ "import": "./lib/cjs/index.js",
18
+ "require": "./lib/cjs/index.js"
19
+ },
16
20
  "./constructorio-ui-autocomplete-bundled": {
17
21
  "import": "./dist/constructorio-ui-autocomplete-bundled.js",
18
22
  "require": "./dist/constructorio-ui-autocomplete-bundled.js"
@@ -35,8 +39,8 @@
35
39
  "serve-built-storybook": "npx http-server docs",
36
40
  "verify-node-version": "chmod +x ./scripts/verify-node-version.sh && ./scripts/verify-node-version.sh",
37
41
  "preversion": "node ./src/generateVersion.js",
38
- "version": "npm run preversion && npm run verify-node-version && npm run build-storybook && git add -u ./docs && git add ./docs/* && git add ./src/version.ts && npm run compile",
39
- "compile": "node ./src/generateVersion.js && rm -rf lib && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && npm run copy-styles && vite build"
42
+ "version": "npm run verify-node-version && npm run build-storybook && git add -u ./docs && git add ./docs/* && git add ./src/version.ts",
43
+ "compile": "rm -rf lib && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json && npm run copy-styles && vite build"
40
44
  },
41
45
  "author": "constructor.io",
42
46
  "license": "MIT",