@timmbr/ui 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +9 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.js +32 -0
- package/dist/components/Breadcrumb/Breadcrumb.styles.d.ts +8 -0
- package/dist/components/Breadcrumb/Breadcrumb.styles.d.ts.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.styles.js +20 -0
- package/dist/components/Breadcrumb/Breadcrumb.types.d.ts +27 -0
- package/dist/components/Breadcrumb/Breadcrumb.types.d.ts.map +1 -0
- package/dist/components/Breadcrumb/index.d.ts +4 -0
- package/dist/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/components/Chip/Chip.d.ts.map +1 -1
- package/dist/components/Chip/Chip.js +13 -3
- package/dist/components/Chip/Chip.types.d.ts +5 -0
- package/dist/components/Chip/Chip.types.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.js +4 -4
- package/dist/components/Drawer/Drawer.styles.d.ts +1 -0
- package/dist/components/Drawer/Drawer.styles.d.ts.map +1 -1
- package/dist/components/Drawer/Drawer.styles.js +7 -1
- package/dist/components/Drawer/Drawer.types.d.ts +2 -0
- package/dist/components/Drawer/Drawer.types.d.ts.map +1 -1
- package/dist/components/FilterChips/FilterChips.d.ts +8 -0
- package/dist/components/FilterChips/FilterChips.d.ts.map +1 -0
- package/dist/components/FilterChips/FilterChips.js +39 -0
- package/dist/components/FilterChips/FilterChips.types.d.ts +17 -0
- package/dist/components/FilterChips/FilterChips.types.d.ts.map +1 -0
- package/dist/components/FilterChips/index.d.ts +3 -0
- package/dist/components/FilterChips/index.d.ts.map +1 -0
- package/dist/components/FilterDrawer/FilterDrawer.d.ts +12 -0
- package/dist/components/FilterDrawer/FilterDrawer.d.ts.map +1 -0
- package/dist/components/FilterDrawer/FilterDrawer.js +157 -0
- package/dist/components/FilterDrawer/FilterDrawer.styles.d.ts +12 -0
- package/dist/components/FilterDrawer/FilterDrawer.styles.d.ts.map +1 -0
- package/dist/components/FilterDrawer/FilterDrawer.styles.js +30 -0
- package/dist/components/FilterDrawer/FilterDrawer.types.d.ts +28 -0
- package/dist/components/FilterDrawer/FilterDrawer.types.d.ts.map +1 -0
- package/dist/components/FilterDrawer/index.d.ts +4 -0
- package/dist/components/FilterDrawer/index.d.ts.map +1 -0
- package/dist/components/FilterPanel/FilterPanel.d.ts +33 -0
- package/dist/components/FilterPanel/FilterPanel.d.ts.map +1 -0
- package/dist/components/FilterPanel/FilterPanel.js +239 -0
- package/dist/components/FilterPanel/FilterPanel.styles.d.ts +16 -0
- package/dist/components/FilterPanel/FilterPanel.styles.d.ts.map +1 -0
- package/dist/components/FilterPanel/FilterPanel.styles.js +31 -0
- package/dist/components/FilterPanel/FilterPanel.types.d.ts +80 -0
- package/dist/components/FilterPanel/FilterPanel.types.d.ts.map +1 -0
- package/dist/components/FilterPanel/FilterPanel.types.js +3 -0
- package/dist/components/FilterPanel/index.d.ts +4 -0
- package/dist/components/FilterPanel/index.d.ts.map +1 -0
- package/dist/components/ImageUpload/ImageUpload.styles.d.ts +3 -3
- package/dist/components/MediaCard/MediaCard.d.ts.map +1 -1
- package/dist/components/MediaCard/MediaCard.js +3 -1
- package/dist/components/NavHeader/NavHeader.styles.d.ts +7 -0
- package/dist/components/NavHeader/NavHeader.styles.d.ts.map +1 -1
- package/dist/components/NavHeader/NavHeader.styles.js +20 -2
- package/dist/components/NavHeader/NavHeader.types.d.ts +59 -9
- package/dist/components/NavHeader/NavHeader.types.d.ts.map +1 -1
- package/dist/components/NavHeader/index.d.ts +3 -2
- package/dist/components/NavHeader/index.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavActions.d.ts +4 -4
- package/dist/components/NavHeader/subcomponents/NavActions.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavActions.js +31 -25
- package/dist/components/NavHeader/subcomponents/NavMobileSearchDrawer.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavMobileSearchDrawer.js +15 -33
- package/dist/components/NavHeader/subcomponents/NavSearch.d.ts.map +1 -1
- package/dist/components/NavHeader/subcomponents/NavSearch.js +37 -83
- package/dist/components/NavHeader/subcomponents/NavSearchPanel.d.ts +63 -0
- package/dist/components/NavHeader/subcomponents/NavSearchPanel.d.ts.map +1 -0
- package/dist/components/NavHeader/subcomponents/NavSearchPanel.js +289 -0
- package/dist/components/NavMenuColumns/NavMenuColumns.styles.js +1 -1
- package/dist/components/OptionPicker/OptionPicker.d.ts +10 -0
- package/dist/components/OptionPicker/OptionPicker.d.ts.map +1 -0
- package/dist/components/OptionPicker/OptionPicker.js +116 -0
- package/dist/components/OptionPicker/OptionPicker.styles.d.ts +20 -0
- package/dist/components/OptionPicker/OptionPicker.styles.d.ts.map +1 -0
- package/dist/components/OptionPicker/OptionPicker.styles.js +60 -0
- package/dist/components/OptionPicker/OptionPicker.types.d.ts +39 -0
- package/dist/components/OptionPicker/OptionPicker.types.d.ts.map +1 -0
- package/dist/components/OptionPicker/index.d.ts +4 -0
- package/dist/components/OptionPicker/index.d.ts.map +1 -0
- package/dist/components/Price/Price.styles.d.ts.map +1 -1
- package/dist/components/Price/Price.styles.js +3 -2
- package/dist/components/ProductGallery/ProductGallery.d.ts +10 -0
- package/dist/components/ProductGallery/ProductGallery.d.ts.map +1 -0
- package/dist/components/ProductGallery/ProductGallery.js +306 -0
- package/dist/components/ProductGallery/ProductGallery.styles.d.ts +32 -0
- package/dist/components/ProductGallery/ProductGallery.styles.d.ts.map +1 -0
- package/dist/components/ProductGallery/ProductGallery.styles.js +86 -0
- package/dist/components/ProductGallery/ProductGallery.types.d.ts +55 -0
- package/dist/components/ProductGallery/ProductGallery.types.d.ts.map +1 -0
- package/dist/components/ProductGallery/ProductGalleryLightbox.d.ts +20 -0
- package/dist/components/ProductGallery/ProductGalleryLightbox.d.ts.map +1 -0
- package/dist/components/ProductGallery/ProductGalleryLightbox.js +210 -0
- package/dist/components/ProductGallery/index.d.ts +4 -0
- package/dist/components/ProductGallery/index.d.ts.map +1 -0
- package/dist/components/QuantityStepper/QuantityStepper.d.ts +8 -0
- package/dist/components/QuantityStepper/QuantityStepper.d.ts.map +1 -0
- package/dist/components/QuantityStepper/QuantityStepper.js +65 -0
- package/dist/components/QuantityStepper/QuantityStepper.styles.d.ts +8 -0
- package/dist/components/QuantityStepper/QuantityStepper.styles.d.ts.map +1 -0
- package/dist/components/QuantityStepper/QuantityStepper.styles.js +24 -0
- package/dist/components/QuantityStepper/QuantityStepper.types.d.ts +20 -0
- package/dist/components/QuantityStepper/QuantityStepper.types.d.ts.map +1 -0
- package/dist/components/QuantityStepper/index.d.ts +4 -0
- package/dist/components/QuantityStepper/index.d.ts.map +1 -0
- package/dist/components/RadioCard/RadioCard.d.ts +9 -0
- package/dist/components/RadioCard/RadioCard.d.ts.map +1 -0
- package/dist/components/RadioCard/RadioCard.js +40 -0
- package/dist/components/RadioCard/RadioCard.styles.d.ts +9 -0
- package/dist/components/RadioCard/RadioCard.styles.d.ts.map +1 -0
- package/dist/components/RadioCard/RadioCard.styles.js +24 -0
- package/dist/components/RadioCard/RadioCard.types.d.ts +28 -0
- package/dist/components/RadioCard/RadioCard.types.d.ts.map +1 -0
- package/dist/components/RadioCard/index.d.ts +4 -0
- package/dist/components/RadioCard/index.d.ts.map +1 -0
- package/dist/components/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/dist/components/RangeSlider/RangeSlider.js +5 -3
- package/dist/components/RangeSlider/RangeSlider.types.d.ts +7 -0
- package/dist/components/RangeSlider/RangeSlider.types.d.ts.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +14 -1
- package/dist/components/Select/Select.types.d.ts +4 -0
- package/dist/components/Select/Select.types.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.styles.d.ts +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +9 -0
- package/dist/components/Snackbar/Snackbar.d.ts.map +1 -0
- package/dist/components/Snackbar/Snackbar.js +108 -0
- package/dist/components/Snackbar/Snackbar.styles.d.ts +17 -0
- package/dist/components/Snackbar/Snackbar.styles.d.ts.map +1 -0
- package/dist/components/Snackbar/Snackbar.styles.js +37 -0
- package/dist/components/Snackbar/Snackbar.types.d.ts +36 -0
- package/dist/components/Snackbar/Snackbar.types.d.ts.map +1 -0
- package/dist/components/Snackbar/SnackbarHost.d.ts +4 -0
- package/dist/components/Snackbar/SnackbarHost.d.ts.map +1 -0
- package/dist/components/Snackbar/SnackbarHost.js +24 -0
- package/dist/components/Snackbar/index.d.ts +6 -0
- package/dist/components/Snackbar/index.d.ts.map +1 -0
- package/dist/components/Snackbar/snackbarStore.d.ts +42 -0
- package/dist/components/Snackbar/snackbarStore.d.ts.map +1 -0
- package/dist/components/Snackbar/snackbarStore.js +87 -0
- package/dist/components/StockMeter/StockMeter.d.ts +8 -0
- package/dist/components/StockMeter/StockMeter.d.ts.map +1 -0
- package/dist/components/StockMeter/StockMeter.js +19 -0
- package/dist/components/StockMeter/StockMeter.styles.d.ts +4 -0
- package/dist/components/StockMeter/StockMeter.styles.d.ts.map +1 -0
- package/dist/components/StockMeter/StockMeter.styles.js +7 -0
- package/dist/components/StockMeter/StockMeter.types.d.ts +10 -0
- package/dist/components/StockMeter/StockMeter.types.d.ts.map +1 -0
- package/dist/components/StockMeter/index.d.ts +4 -0
- package/dist/components/StockMeter/index.d.ts.map +1 -0
- package/dist/components/Swatch/Swatch.d.ts +11 -0
- package/dist/components/Swatch/Swatch.d.ts.map +1 -0
- package/dist/components/Swatch/Swatch.js +40 -0
- package/dist/components/Swatch/Swatch.styles.d.ts +8 -0
- package/dist/components/Swatch/Swatch.styles.d.ts.map +1 -0
- package/dist/components/Swatch/Swatch.styles.js +26 -0
- package/dist/components/Swatch/Swatch.types.d.ts +11 -0
- package/dist/components/Swatch/Swatch.types.d.ts.map +1 -0
- package/dist/components/Swatch/index.d.ts +4 -0
- package/dist/components/Swatch/index.d.ts.map +1 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/Toast/Toast.js +49 -42
- package/dist/components/Toast/Toast.types.d.ts +7 -0
- package/dist/components/Toast/Toast.types.d.ts.map +1 -1
- package/dist/components/Toast/ToastContainer.d.ts.map +1 -1
- package/dist/components/Toast/ToastContainer.js +5 -0
- package/dist/components/Toast/toastStore.d.ts +11 -0
- package/dist/components/Toast/toastStore.d.ts.map +1 -1
- package/dist/components/Toast/toastStore.js +70 -30
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -1
- package/dist/providers/TimmbrConfigProvider.d.ts.map +1 -1
- package/dist/providers/TimmbrConfigProvider.js +5 -9
- package/package.json +5 -5
|
@@ -82,6 +82,38 @@ export interface PopularSearchTag {
|
|
|
82
82
|
zone?: string;
|
|
83
83
|
onClick?: (tag: PopularSearchTag) => void;
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* A product (or any destination) suggested under the search box while typing.
|
|
87
|
+
*/
|
|
88
|
+
export interface NavSearchResult {
|
|
89
|
+
id: string;
|
|
90
|
+
href: string;
|
|
91
|
+
title: string;
|
|
92
|
+
/** Secondary line, e.g. the brand. */
|
|
93
|
+
subtitle?: string;
|
|
94
|
+
/** Preformatted price, e.g. "₹24,999". */
|
|
95
|
+
price?: string;
|
|
96
|
+
imageUrl?: string;
|
|
97
|
+
imageAlt?: string;
|
|
98
|
+
/** The link leaves this zone: rendered as a plain <a> (full page load) instead of `linkComponent`. */
|
|
99
|
+
crossZone?: boolean;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Suggestions shown while typing (once the query reaches `minQueryLength`).
|
|
103
|
+
*/
|
|
104
|
+
export interface NavSearchResults {
|
|
105
|
+
items: NavSearchResult[];
|
|
106
|
+
/** A request for the current query is in flight (shows placeholders when there are no items yet). */
|
|
107
|
+
loading?: boolean;
|
|
108
|
+
/** Section title. Defaults to "Products". */
|
|
109
|
+
title?: string;
|
|
110
|
+
/** Shown when the query has no matches. Defaults to "No products match". */
|
|
111
|
+
emptyLabel?: string;
|
|
112
|
+
/** Label of the last row, which submits the query. Defaults to `See all results for "…"`. */
|
|
113
|
+
viewAllLabel?: (query: string) => string;
|
|
114
|
+
/** Characters needed before suggestions show (recent searches show below it). Defaults to 2. */
|
|
115
|
+
minQueryLength?: number;
|
|
116
|
+
}
|
|
85
117
|
/**
|
|
86
118
|
* Configuration for the expandable search bar and its suggestions popover.
|
|
87
119
|
*/
|
|
@@ -108,12 +140,28 @@ export interface NavSearchConfig {
|
|
|
108
140
|
popoverContent?: React.ReactNode;
|
|
109
141
|
/** Custom suggestions node rendered inside search drawer */
|
|
110
142
|
suggestions?: React.ReactNode;
|
|
111
|
-
/**
|
|
143
|
+
/** Popular search chips, shown while the input is empty. None by default. */
|
|
112
144
|
popularSearches?: PopularSearchTag[];
|
|
113
145
|
/** Title for the popular searches section. Defaults to "Popular Searches" */
|
|
114
146
|
popularSearchesTitle?: string;
|
|
115
147
|
/** Callback fired when user clicks a popular search chip */
|
|
116
148
|
onPopularSearchClick?: (tag: PopularSearchTag) => void;
|
|
149
|
+
/** The shopper's recent searches (newest first), shown while the input is empty. Picking one submits it. */
|
|
150
|
+
recentSearches?: string[];
|
|
151
|
+
/** Title for the recent searches section. Defaults to "Recent searches" */
|
|
152
|
+
recentSearchesTitle?: string;
|
|
153
|
+
/** Removes one recent search (shows a remove button per row; Delete key on the active row). */
|
|
154
|
+
onRecentSearchRemove?: (query: string) => void;
|
|
155
|
+
/** Clears all recent searches (shows a "Clear" button). */
|
|
156
|
+
onClearRecentSearches?: () => void;
|
|
157
|
+
/** Label of the clear button. Defaults to "Clear" */
|
|
158
|
+
clearRecentSearchesLabel?: string;
|
|
159
|
+
/** Accessible label of a row's remove button. Defaults to `Remove "…" from recent searches` */
|
|
160
|
+
removeRecentSearchLabel?: (query: string) => string;
|
|
161
|
+
/** Suggestions while typing (e.g. matching products). */
|
|
162
|
+
results?: NavSearchResults;
|
|
163
|
+
/** Called when a suggested result is picked (before navigation). */
|
|
164
|
+
onResultSelect?: (result: NavSearchResult) => void;
|
|
117
165
|
/** Custom aria-label for search input */
|
|
118
166
|
ariaLabel?: string;
|
|
119
167
|
/** Display mode for search on mobile/tablet viewports (< 1024px). Defaults to 'bar' */
|
|
@@ -220,13 +268,15 @@ export interface NavActionsConfig {
|
|
|
220
268
|
/** Pre-configured profile action */
|
|
221
269
|
profile?: Partial<NavActionItem>;
|
|
222
270
|
/** Pre-configured wishlist action with optional badge count */
|
|
223
|
-
wishlist
|
|
271
|
+
/** Header wishlist action; `false` hides it (e.g. checkout). */
|
|
272
|
+
wishlist?: (Partial<NavActionItem> & {
|
|
224
273
|
count?: number;
|
|
225
|
-
};
|
|
274
|
+
}) | false;
|
|
226
275
|
/** Pre-configured cart action with optional badge count */
|
|
227
|
-
cart
|
|
276
|
+
/** Header cart action; `false` hides it (e.g. checkout). */
|
|
277
|
+
cart?: (Partial<NavActionItem> & {
|
|
228
278
|
count?: number;
|
|
229
|
-
};
|
|
279
|
+
}) | false;
|
|
230
280
|
/** Auth trigger mode: 'modal' triggers popup flow, 'redirect' fallbacks to /auth page */
|
|
231
281
|
authMode?: 'modal' | 'redirect';
|
|
232
282
|
/** Callback fired when user triggers auth in modal mode */
|
|
@@ -331,13 +381,13 @@ export interface NavHeaderProps extends MotionProps, Omit<React.HTMLAttributes<H
|
|
|
331
381
|
/** Shorthand profile action configuration. */
|
|
332
382
|
profileAction?: Partial<NavActionItem>;
|
|
333
383
|
/** Shorthand wishlist action configuration with optional badge count. */
|
|
334
|
-
wishlistAction?: Partial<NavActionItem> & {
|
|
384
|
+
wishlistAction?: (Partial<NavActionItem> & {
|
|
335
385
|
count?: number;
|
|
336
|
-
};
|
|
386
|
+
}) | false;
|
|
337
387
|
/** Shorthand cart action configuration with optional badge count. */
|
|
338
|
-
cartAction?: Partial<NavActionItem> & {
|
|
388
|
+
cartAction?: (Partial<NavActionItem> & {
|
|
339
389
|
count?: number;
|
|
340
|
-
};
|
|
390
|
+
}) | false;
|
|
341
391
|
/** Shorthand auth mode: 'modal' triggers modal popup, 'redirect' falls back to /auth page. Defaults to 'modal'. */
|
|
342
392
|
authMode?: 'modal' | 'redirect';
|
|
343
393
|
/** Shorthand callback fired when user triggers auth in modal mode. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavHeader.types.d.ts","sourceRoot":"","sources":["../../../src/components/NavHeader/NavHeader.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"NavHeader.types.d.ts","sourceRoot":"","sources":["../../../src/components/NavHeader/NavHeader.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export { NavHeader, Header } from './NavHeader';
|
|
2
|
-
export type { NavHeaderProps, NavHeaderItem, NavHeaderBranding, OfferBannerConfig, NavSearchConfig, PopularSearchTag, NavActionItem, NavActionMenuItem, } from './NavHeader.types';
|
|
2
|
+
export type { NavHeaderProps, NavHeaderItem, NavHeaderBranding, OfferBannerConfig, NavSearchConfig, PopularSearchTag, NavSearchResult, NavSearchResults, NavActionItem, NavActionMenuItem, } from './NavHeader.types';
|
|
3
3
|
export { useNavHeaderContext } from './NavHeader.context';
|
|
4
|
-
export { offerBannerVariants, navHeaderVariants, navHeaderContainerVariants, navHeaderItemVariants, navActionVariants, megaMenuCardVariants, searchPopoverCardVariants, } from './NavHeader.styles';
|
|
4
|
+
export { offerBannerVariants, navHeaderVariants, navHeaderContainerVariants, navHeaderItemVariants, navActionVariants, megaMenuCardVariants, searchPopoverCardVariants, searchPanelOptionVariants, } from './NavHeader.styles';
|
|
5
5
|
export { OfferBanner } from './subcomponents/OfferBanner';
|
|
6
6
|
export { NavBrand } from './subcomponents/NavBrand';
|
|
7
7
|
export { NavItems } from './subcomponents/NavItems';
|
|
8
8
|
export { NavMegaMenu } from './subcomponents/NavMegaMenu';
|
|
9
9
|
export { NavSearch } from './subcomponents/NavSearch';
|
|
10
|
+
export { NavSearchPanel, useNavSearchCombobox } from './subcomponents/NavSearchPanel';
|
|
10
11
|
export { NavActions } from './subcomponents/NavActions';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NavHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/NavHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -10,12 +10,12 @@ export declare const PROFILE_LABEL_CLASS = "min-w-[35px] max-w-16 truncate text-
|
|
|
10
10
|
export interface NavActionsProps {
|
|
11
11
|
actions?: NavActionItem[];
|
|
12
12
|
profileAction?: Partial<NavActionItem>;
|
|
13
|
-
wishlistAction?: Partial<NavActionItem> & {
|
|
13
|
+
wishlistAction?: (Partial<NavActionItem> & {
|
|
14
14
|
count?: number;
|
|
15
|
-
};
|
|
16
|
-
cartAction?: Partial<NavActionItem> & {
|
|
15
|
+
}) | false;
|
|
16
|
+
cartAction?: (Partial<NavActionItem> & {
|
|
17
17
|
count?: number;
|
|
18
|
-
};
|
|
18
|
+
}) | false;
|
|
19
19
|
authMode?: 'modal' | 'redirect';
|
|
20
20
|
onAuthTrigger?: () => void;
|
|
21
21
|
maxVisibleActions?: number | 'auto';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavActions.d.ts","sourceRoot":"","sources":["../../../../src/components/NavHeader/subcomponents/NavActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAWxD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,+CAA+C,CAAC;AAEhF,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"NavActions.d.ts","sourceRoot":"","sources":["../../../../src/components/NavHeader/subcomponents/NavActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAWxD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,+CAA+C,CAAC;AAEhF,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;IACvE,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC;IACnE,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACrC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqWhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -52,31 +52,37 @@ const NavActions = ({
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
};
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
55
|
+
const wishlist = wishlistAction === false ? void 0 : wishlistAction;
|
|
56
|
+
if (wishlistAction !== false) {
|
|
57
|
+
const wishCount = wishlist?.count;
|
|
58
|
+
defaultItems.push({
|
|
59
|
+
id: "wishlist",
|
|
60
|
+
label: wishlist?.label ?? "WISH LIST",
|
|
61
|
+
icon: wishlist?.icon ?? /* @__PURE__ */ jsx(Heart, { size: 22, className: "stroke-[1.8]" }),
|
|
62
|
+
href: wishlist?.href ?? "/wishlist",
|
|
63
|
+
zone: wishlist?.zone,
|
|
64
|
+
crossZone: wishlist?.crossZone,
|
|
65
|
+
badge: wishlist?.badge ?? (wishCount && wishCount > 0 ? wishCount : void 0),
|
|
66
|
+
onClick: wishlist?.onClick,
|
|
67
|
+
ariaLabel: wishlist?.ariaLabel ?? (wishCount ? `Wishlist with ${wishCount} items` : "Wishlist")
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const cart = cartAction === false ? void 0 : cartAction;
|
|
71
|
+
if (cartAction !== false) {
|
|
72
|
+
const cartCount = cart?.count;
|
|
73
|
+
defaultItems.push({
|
|
74
|
+
id: "cart",
|
|
75
|
+
label: cart?.label ?? "CART",
|
|
76
|
+
icon: cart?.icon ?? /* @__PURE__ */ jsx(ShoppingCart, { size: 22, className: "stroke-[1.8]" }),
|
|
77
|
+
href: cart?.href ?? "/cart",
|
|
78
|
+
zone: cart?.zone,
|
|
79
|
+
crossZone: cart?.crossZone,
|
|
80
|
+
badge: cart?.badge ?? (cartCount && cartCount > 0 ? cartCount : void 0),
|
|
81
|
+
onClick: cart?.onClick,
|
|
82
|
+
ariaLabel: cart?.ariaLabel ?? (cartCount ? `Shopping cart with ${cartCount} items` : "Shopping cart"),
|
|
83
|
+
priority: "high"
|
|
84
|
+
});
|
|
85
|
+
}
|
|
80
86
|
defaultItems.push({
|
|
81
87
|
id: "profile",
|
|
82
88
|
label: profileAction?.label ?? "LOGIN",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavMobileSearchDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/NavHeader/subcomponents/NavMobileSearchDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"NavMobileSearchDrawer.d.ts","sourceRoot":"","sources":["../../../../src/components/NavHeader/subcomponents/NavMobileSearchDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA6ItE,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { AnimatePresence, motion } from '@timmbr/motion';
|
|
|
6
6
|
import { ArrowLeft, Search, X } from '@timmbr/icons';
|
|
7
7
|
import { cn } from '@timmbr/utils';
|
|
8
8
|
import { mobileSearchDrawerVariants } from '../NavHeader.styles.js';
|
|
9
|
+
import { useNavSearchCombobox, NavSearchPanel } from './NavSearchPanel.js';
|
|
9
10
|
|
|
10
11
|
const NavMobileSearchDrawer = ({
|
|
11
12
|
isOpen,
|
|
@@ -15,11 +16,13 @@ const NavMobileSearchDrawer = ({
|
|
|
15
16
|
onSubmit,
|
|
16
17
|
config = {},
|
|
17
18
|
shouldAnimate = true,
|
|
18
|
-
motionClass
|
|
19
|
+
motionClass,
|
|
20
|
+
linkComponent
|
|
19
21
|
}) => {
|
|
20
22
|
const [mounted, setMounted] = React.useState(false);
|
|
21
23
|
const searchConfig = typeof config === "object" ? config : {};
|
|
22
24
|
const inputRef = React.useRef(null);
|
|
25
|
+
const combobox = useNavSearchCombobox({ config, value, onChange, onSubmit, onClose });
|
|
23
26
|
React.useEffect(() => {
|
|
24
27
|
setMounted(true);
|
|
25
28
|
}, []);
|
|
@@ -56,15 +59,10 @@ const NavMobileSearchDrawer = ({
|
|
|
56
59
|
const handleFormSubmit = (e) => {
|
|
57
60
|
e.preventDefault();
|
|
58
61
|
if (value.trim()) {
|
|
59
|
-
onSubmit(value);
|
|
62
|
+
onSubmit(value.trim());
|
|
60
63
|
onClose();
|
|
61
64
|
}
|
|
62
65
|
};
|
|
63
|
-
const handlePopularSearchClick = (tagLabel) => {
|
|
64
|
-
onChange(tagLabel);
|
|
65
|
-
onSubmit(tagLabel);
|
|
66
|
-
onClose();
|
|
67
|
-
};
|
|
68
66
|
const drawerContent = /* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsxs(
|
|
69
67
|
motion.div,
|
|
70
68
|
{
|
|
@@ -78,7 +76,7 @@ const NavMobileSearchDrawer = ({
|
|
|
78
76
|
className: cn(mobileSearchDrawerVariants(), motionClass),
|
|
79
77
|
"data-slot": "nav-mobile-search-drawer",
|
|
80
78
|
children: [
|
|
81
|
-
/* @__PURE__ */ jsxs("div", { className: "w-full bg-
|
|
79
|
+
/* @__PURE__ */ jsxs("div", { className: "w-full bg-bg-2 border-b border-border-warm px-3 py-3 flex items-center gap-3 shrink-0 shadow-xs", children: [
|
|
82
80
|
/* @__PURE__ */ jsx(
|
|
83
81
|
"button",
|
|
84
82
|
{
|
|
@@ -91,24 +89,20 @@ const NavMobileSearchDrawer = ({
|
|
|
91
89
|
}
|
|
92
90
|
),
|
|
93
91
|
/* @__PURE__ */ jsx("form", { onSubmit: handleFormSubmit, className: "flex-1 relative flex items-center", children: /* @__PURE__ */ jsxs("div", { className: "relative w-full flex items-center", children: [
|
|
94
|
-
/* @__PURE__ */ jsx(
|
|
95
|
-
Search,
|
|
96
|
-
{
|
|
97
|
-
size: 18,
|
|
98
|
-
className: "absolute left-3.5 text-grey-500 pointer-events-none stroke-[2]"
|
|
99
|
-
}
|
|
100
|
-
),
|
|
92
|
+
/* @__PURE__ */ jsx(Search, { size: 18, className: "absolute left-3.5 text-grey-500 pointer-events-none stroke-[2]" }),
|
|
101
93
|
/* @__PURE__ */ jsx(
|
|
102
94
|
"input",
|
|
103
95
|
{
|
|
104
96
|
ref: inputRef,
|
|
105
|
-
type: "
|
|
106
|
-
|
|
107
|
-
|
|
97
|
+
type: "search",
|
|
98
|
+
enterKeyHint: "search",
|
|
99
|
+
autoComplete: "off",
|
|
100
|
+
"aria-label": searchConfig.ariaLabel ?? "Search store products",
|
|
101
|
+
...combobox.inputProps,
|
|
108
102
|
value,
|
|
109
103
|
onChange: (e) => onChange(e.target.value),
|
|
110
104
|
placeholder: searchConfig.placeholder ?? "Search for furniture, decor, and more...",
|
|
111
|
-
className: "w-full h-11 pl-10 pr-9 rounded-full bg-grey-50 border border-border-warm text-body-2 text-grey-900 placeholder:text-grey-400 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all shadow-xs"
|
|
105
|
+
className: "w-full h-11 pl-10 pr-9 rounded-full [&::-webkit-search-cancel-button]:hidden bg-grey-50 border border-border-warm text-body-2 text-grey-900 placeholder:text-grey-400 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all shadow-xs"
|
|
112
106
|
}
|
|
113
107
|
),
|
|
114
108
|
value.length > 0 && /* @__PURE__ */ jsx(
|
|
@@ -123,20 +117,8 @@ const NavMobileSearchDrawer = ({
|
|
|
123
117
|
)
|
|
124
118
|
] }) })
|
|
125
119
|
] }),
|
|
126
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-
|
|
127
|
-
|
|
128
|
-
/* @__PURE__ */ jsx("h4", { className: "font-title! text-body-3 font-semibold text-grey-500 uppercase tracking-wider", children: "POPULAR SEARCHES" }),
|
|
129
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: searchConfig.popularSearches.map((item) => /* @__PURE__ */ jsx(
|
|
130
|
-
"button",
|
|
131
|
-
{
|
|
132
|
-
type: "button",
|
|
133
|
-
onClick: () => handlePopularSearchClick(item.label),
|
|
134
|
-
className: "px-3.5 py-1.5 rounded-full bg-grey-50 border border-border-warm text-body-3 font-semibold text-grey-700 hover:border-primary hover:text-primary hover:bg-grey-50 transition-colors cursor-pointer shadow-xs",
|
|
135
|
-
children: item.label
|
|
136
|
-
},
|
|
137
|
-
item.id
|
|
138
|
-
)) })
|
|
139
|
-
] }),
|
|
120
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 overflow-y-auto p-3 sm:p-5 space-y-6 bg-bg-2", children: [
|
|
121
|
+
combobox.hasContent && /* @__PURE__ */ jsx(NavSearchPanel, { ...combobox.panelProps, linkComponent }),
|
|
140
122
|
searchConfig.suggestions && /* @__PURE__ */ jsx("div", { className: "pt-2", children: searchConfig.suggestions })
|
|
141
123
|
] })
|
|
142
124
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavSearch.d.ts","sourceRoot":"","sources":["../../../../src/components/NavHeader/subcomponents/NavSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NavSearch.d.ts","sourceRoot":"","sources":["../../../../src/components/NavHeader/subcomponents/NavSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAiL9C,CAAC"}
|
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs, jsx
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { AnimatePresence, motion } from '@timmbr/motion';
|
|
5
|
-
import { Search, X
|
|
5
|
+
import { Search, X } from '@timmbr/icons';
|
|
6
6
|
import { cn } from '@timmbr/utils';
|
|
7
7
|
import { navActionVariants, searchPopoverCardVariants } from '../NavHeader.styles.js';
|
|
8
|
-
import {
|
|
9
|
-
import { useTimmbrConfig } from '../../../providers/TimmbrConfigProvider.js';
|
|
8
|
+
import { useNavSearchCombobox, NavSearchPanel } from './NavSearchPanel.js';
|
|
10
9
|
|
|
11
|
-
const defaultPopularSearches = [
|
|
12
|
-
{ id: "1", label: "Centre Tables" },
|
|
13
|
-
{ id: "2", label: "TV Units" },
|
|
14
|
-
{ id: "3", label: "bed" },
|
|
15
|
-
{ id: "4", label: "bedsheet" },
|
|
16
|
-
{ id: "5", label: "mirror" },
|
|
17
|
-
{ id: "6", label: "office chair" },
|
|
18
|
-
{ id: "7", label: "shoe rack" },
|
|
19
|
-
{ id: "8", label: "sofa cum bed" }
|
|
20
|
-
];
|
|
21
10
|
const NavSearch = ({
|
|
22
11
|
config,
|
|
23
12
|
isOpen,
|
|
@@ -27,21 +16,25 @@ const NavSearch = ({
|
|
|
27
16
|
onSubmit,
|
|
28
17
|
shouldAnimate = true,
|
|
29
18
|
motionClass,
|
|
30
|
-
linkComponent
|
|
19
|
+
linkComponent
|
|
31
20
|
}) => {
|
|
32
|
-
const globalConfig = useTimmbrConfig();
|
|
33
21
|
const searchConfig = typeof config === "object" ? config : {};
|
|
34
22
|
const {
|
|
35
23
|
placeholder = "Search for furniture, decor, and more...",
|
|
36
24
|
popoverContent,
|
|
37
|
-
popularSearches = defaultPopularSearches,
|
|
38
|
-
popularSearchesTitle = "Popular Searches",
|
|
39
|
-
onPopularSearchClick,
|
|
40
25
|
ariaLabel = "Search store products"
|
|
41
26
|
} = searchConfig;
|
|
42
27
|
const [showPopover, setShowPopover] = React.useState(false);
|
|
43
28
|
const containerRef = React.useRef(null);
|
|
44
29
|
const inputRef = React.useRef(null);
|
|
30
|
+
const combobox = useNavSearchCombobox({
|
|
31
|
+
config,
|
|
32
|
+
value,
|
|
33
|
+
onChange,
|
|
34
|
+
onSubmit,
|
|
35
|
+
onClose: () => setShowPopover(false)
|
|
36
|
+
});
|
|
37
|
+
const popoverVisible = showPopover && (popoverContent ? true : combobox.hasContent);
|
|
45
38
|
React.useEffect(() => {
|
|
46
39
|
if (isOpen) {
|
|
47
40
|
inputRef.current?.focus();
|
|
@@ -71,22 +64,22 @@ const NavSearch = ({
|
|
|
71
64
|
}
|
|
72
65
|
};
|
|
73
66
|
const handleKeyDown = (e) => {
|
|
74
|
-
if (e.key === "
|
|
75
|
-
e.preventDefault();
|
|
76
|
-
onSubmit(value);
|
|
77
|
-
setShowPopover(false);
|
|
78
|
-
} else if (e.key === "Escape") {
|
|
67
|
+
if (e.key === "Escape") {
|
|
79
68
|
e.preventDefault();
|
|
80
69
|
setShowPopover(false);
|
|
81
70
|
onOpenChange(false);
|
|
71
|
+
return;
|
|
82
72
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
73
|
+
if (popoverContent) {
|
|
74
|
+
if (e.key === "Enter" && value.trim()) {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
onSubmit(value.trim());
|
|
77
|
+
setShowPopover(false);
|
|
78
|
+
}
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!showPopover && (e.key === "ArrowDown" || e.key === "ArrowUp")) setShowPopover(true);
|
|
82
|
+
combobox.inputProps.onKeyDown(e);
|
|
90
83
|
};
|
|
91
84
|
return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: "relative flex items-center", "data-slot": "nav-search-container", children: [
|
|
92
85
|
!isOpen && /* @__PURE__ */ jsxs(
|
|
@@ -125,13 +118,19 @@ const NavSearch = ({
|
|
|
125
118
|
"input",
|
|
126
119
|
{
|
|
127
120
|
ref: inputRef,
|
|
128
|
-
type: "
|
|
129
|
-
|
|
121
|
+
type: "search",
|
|
122
|
+
enterKeyHint: "search",
|
|
130
123
|
autoComplete: "off",
|
|
131
124
|
value,
|
|
132
125
|
placeholder,
|
|
133
126
|
"aria-label": ariaLabel,
|
|
134
|
-
|
|
127
|
+
...combobox.inputProps,
|
|
128
|
+
"aria-expanded": popoverVisible && !popoverContent,
|
|
129
|
+
...popoverContent && { "aria-controls": void 0, "aria-activedescendant": void 0 },
|
|
130
|
+
onChange: (e) => {
|
|
131
|
+
onChange(e.target.value);
|
|
132
|
+
setShowPopover(true);
|
|
133
|
+
},
|
|
135
134
|
onFocus: () => setShowPopover(true),
|
|
136
135
|
onKeyDown: handleKeyDown,
|
|
137
136
|
className: "w-full h-full pl-10 pr-9 bg-transparent text-body-2 text-grey-950 placeholder:text-grey-400 border-none focus:outline-none [&::-webkit-search-cancel-button]:hidden [&::-webkit-search-decoration]:hidden",
|
|
@@ -145,17 +144,18 @@ const NavSearch = ({
|
|
|
145
144
|
onClick: () => {
|
|
146
145
|
if (value) {
|
|
147
146
|
onChange("");
|
|
147
|
+
inputRef.current?.focus();
|
|
148
148
|
} else {
|
|
149
149
|
onOpenChange(false);
|
|
150
150
|
}
|
|
151
151
|
},
|
|
152
|
-
"aria-label": "Close search",
|
|
152
|
+
"aria-label": value ? "Clear search" : "Close search",
|
|
153
153
|
className: "absolute right-2.5 top-1/2 -translate-y-1/2 p-1 text-grey-400 hover:text-grey-700 rounded-full hover:bg-grey-100 transition-colors shrink-0",
|
|
154
154
|
children: /* @__PURE__ */ jsx(X, { size: 15 })
|
|
155
155
|
}
|
|
156
156
|
)
|
|
157
157
|
] }),
|
|
158
|
-
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, children:
|
|
158
|
+
/* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: popoverVisible && /* @__PURE__ */ jsx(
|
|
159
159
|
motion.div,
|
|
160
160
|
{
|
|
161
161
|
initial: shouldAnimate ? { opacity: 0, y: 4 } : false,
|
|
@@ -164,53 +164,7 @@ const NavSearch = ({
|
|
|
164
164
|
transition: { duration: 0.18, ease: [0.25, 1, 0.5, 1] },
|
|
165
165
|
className: cn(searchPopoverCardVariants(), !shouldAnimate && "transition-none", motionClass),
|
|
166
166
|
"data-slot": "nav-search-popover",
|
|
167
|
-
children: popoverContent
|
|
168
|
-
popularSearchesTitle && /* @__PURE__ */ jsx("h4", { className: "font-bold text-body-2 tracking-wide text-destructive mb-3 uppercase flex items-center gap-1.5", children: /* @__PURE__ */ jsx("span", { children: popularSearchesTitle }) }),
|
|
169
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: popularSearches.map((tag, idx) => {
|
|
170
|
-
const resolvedTagHref = resolveNavDestination(tag.href, tag.zone, globalConfig.zones?.zones);
|
|
171
|
-
const requiresCrossZone = isCrossZoneNavigation(tag.zone, globalConfig.zones?.currentZone);
|
|
172
|
-
const tagContent = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
173
|
-
/* @__PURE__ */ jsx(TrendingUp, { size: 13, className: "text-grey-500 shrink-0" }),
|
|
174
|
-
/* @__PURE__ */ jsx("span", { children: tag.label })
|
|
175
|
-
] });
|
|
176
|
-
const tagClass = "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg border border-grey-200 bg-grey-50 hover:border-grey-400 hover:bg-grey-50 text-body-3 font-medium text-grey-800 transition-all cursor-pointer";
|
|
177
|
-
if (resolvedTagHref) {
|
|
178
|
-
if (CustomLink && !requiresCrossZone) {
|
|
179
|
-
return /* @__PURE__ */ jsx(
|
|
180
|
-
CustomLink,
|
|
181
|
-
{
|
|
182
|
-
href: resolvedTagHref,
|
|
183
|
-
className: tagClass,
|
|
184
|
-
onClick: () => handleTagClick(tag),
|
|
185
|
-
children: tagContent
|
|
186
|
-
},
|
|
187
|
-
tag.id ?? idx
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
|
-
return /* @__PURE__ */ jsx(
|
|
191
|
-
"a",
|
|
192
|
-
{
|
|
193
|
-
href: resolvedTagHref,
|
|
194
|
-
"data-cross-zone": requiresCrossZone ? "true" : void 0,
|
|
195
|
-
className: tagClass,
|
|
196
|
-
onClick: () => handleTagClick(tag),
|
|
197
|
-
children: tagContent
|
|
198
|
-
},
|
|
199
|
-
tag.id ?? idx
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
return /* @__PURE__ */ jsx(
|
|
203
|
-
"button",
|
|
204
|
-
{
|
|
205
|
-
type: "button",
|
|
206
|
-
onClick: () => handleTagClick(tag),
|
|
207
|
-
className: tagClass,
|
|
208
|
-
children: tagContent
|
|
209
|
-
},
|
|
210
|
-
tag.id ?? idx
|
|
211
|
-
);
|
|
212
|
-
}) })
|
|
213
|
-
] })
|
|
167
|
+
children: popoverContent ?? /* @__PURE__ */ jsx(NavSearchPanel, { ...combobox.panelProps, linkComponent })
|
|
214
168
|
}
|
|
215
169
|
) })
|
|
216
170
|
]
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { NavSearchConfig, NavSearchResult, PopularSearchTag } from '../NavHeader.types';
|
|
3
|
+
type SearchOption = {
|
|
4
|
+
kind: 'recent';
|
|
5
|
+
id: string;
|
|
6
|
+
query: string;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'result';
|
|
9
|
+
id: string;
|
|
10
|
+
result: NavSearchResult;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'viewAll';
|
|
13
|
+
id: string;
|
|
14
|
+
};
|
|
15
|
+
export interface UseNavSearchComboboxOptions {
|
|
16
|
+
config?: NavSearchConfig | boolean;
|
|
17
|
+
value: string;
|
|
18
|
+
onChange: (value: string) => void;
|
|
19
|
+
onSubmit: (query: string) => void;
|
|
20
|
+
/** Close the panel (and whatever hosts it) after a pick. */
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
}
|
|
23
|
+
export interface NavSearchCombobox {
|
|
24
|
+
/** The panel has something to show. */
|
|
25
|
+
hasContent: boolean;
|
|
26
|
+
/** Props for the search <input>: combobox role, ARIA wiring and keyboard handling. */
|
|
27
|
+
inputProps: {
|
|
28
|
+
role: 'combobox';
|
|
29
|
+
'aria-expanded': boolean;
|
|
30
|
+
'aria-controls': string;
|
|
31
|
+
'aria-autocomplete': 'list';
|
|
32
|
+
'aria-activedescendant': string | undefined;
|
|
33
|
+
onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
34
|
+
};
|
|
35
|
+
/** Props for <NavSearchPanel>. */
|
|
36
|
+
panelProps: NavSearchPanelProps;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Shared search behaviour for the desktop popover and the mobile drawer: which rows show
|
|
40
|
+
* (recent searches while the input is empty, suggestions once the query is long enough), the
|
|
41
|
+
* active row, and the keyboard (arrows move, Enter picks or submits, Delete removes a recent
|
|
42
|
+
* search). Focus stays in the input; the active row is announced via aria-activedescendant.
|
|
43
|
+
*/
|
|
44
|
+
export declare function useNavSearchCombobox({ config, value, onChange, onSubmit, onClose, }: UseNavSearchComboboxOptions): NavSearchCombobox;
|
|
45
|
+
export interface NavSearchPanelProps {
|
|
46
|
+
config?: NavSearchConfig | boolean;
|
|
47
|
+
listId: string;
|
|
48
|
+
mode: 'idle' | 'results' | 'none';
|
|
49
|
+
query: string;
|
|
50
|
+
options: SearchOption[];
|
|
51
|
+
activeId?: string;
|
|
52
|
+
onHover: (id: string) => void;
|
|
53
|
+
onPickRecent: (query: string) => void;
|
|
54
|
+
onPickResult: (result: NavSearchResult) => void;
|
|
55
|
+
onViewAll: () => void;
|
|
56
|
+
onPopularPick: (tag: PopularSearchTag) => void;
|
|
57
|
+
linkComponent?: React.ComponentType<any>;
|
|
58
|
+
className?: string;
|
|
59
|
+
}
|
|
60
|
+
/** The rows under the search input: recent searches, popular chips, or suggestions. */
|
|
61
|
+
export declare const NavSearchPanel: React.FC<NavSearchPanelProps>;
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=NavSearchPanel.d.ts.map
|