@timmbr/ui 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/components/Breadcrumb/Breadcrumb.d.ts +9 -0
  2. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  3. package/dist/components/Breadcrumb/Breadcrumb.js +32 -0
  4. package/dist/components/Breadcrumb/Breadcrumb.styles.d.ts +8 -0
  5. package/dist/components/Breadcrumb/Breadcrumb.styles.d.ts.map +1 -0
  6. package/dist/components/Breadcrumb/Breadcrumb.styles.js +20 -0
  7. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts +27 -0
  8. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts.map +1 -0
  9. package/dist/components/Breadcrumb/index.d.ts +4 -0
  10. package/dist/components/Breadcrumb/index.d.ts.map +1 -0
  11. package/dist/components/Chip/Chip.d.ts.map +1 -1
  12. package/dist/components/Chip/Chip.js +13 -3
  13. package/dist/components/Chip/Chip.types.d.ts +5 -0
  14. package/dist/components/Chip/Chip.types.d.ts.map +1 -1
  15. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  16. package/dist/components/Drawer/Drawer.js +4 -4
  17. package/dist/components/Drawer/Drawer.styles.d.ts +1 -0
  18. package/dist/components/Drawer/Drawer.styles.d.ts.map +1 -1
  19. package/dist/components/Drawer/Drawer.styles.js +7 -1
  20. package/dist/components/Drawer/Drawer.types.d.ts +2 -0
  21. package/dist/components/Drawer/Drawer.types.d.ts.map +1 -1
  22. package/dist/components/FilterChips/FilterChips.d.ts +8 -0
  23. package/dist/components/FilterChips/FilterChips.d.ts.map +1 -0
  24. package/dist/components/FilterChips/FilterChips.js +39 -0
  25. package/dist/components/FilterChips/FilterChips.types.d.ts +17 -0
  26. package/dist/components/FilterChips/FilterChips.types.d.ts.map +1 -0
  27. package/dist/components/FilterChips/index.d.ts +3 -0
  28. package/dist/components/FilterChips/index.d.ts.map +1 -0
  29. package/dist/components/FilterDrawer/FilterDrawer.d.ts +12 -0
  30. package/dist/components/FilterDrawer/FilterDrawer.d.ts.map +1 -0
  31. package/dist/components/FilterDrawer/FilterDrawer.js +157 -0
  32. package/dist/components/FilterDrawer/FilterDrawer.styles.d.ts +12 -0
  33. package/dist/components/FilterDrawer/FilterDrawer.styles.d.ts.map +1 -0
  34. package/dist/components/FilterDrawer/FilterDrawer.styles.js +30 -0
  35. package/dist/components/FilterDrawer/FilterDrawer.types.d.ts +28 -0
  36. package/dist/components/FilterDrawer/FilterDrawer.types.d.ts.map +1 -0
  37. package/dist/components/FilterDrawer/index.d.ts +4 -0
  38. package/dist/components/FilterDrawer/index.d.ts.map +1 -0
  39. package/dist/components/FilterPanel/FilterPanel.d.ts +33 -0
  40. package/dist/components/FilterPanel/FilterPanel.d.ts.map +1 -0
  41. package/dist/components/FilterPanel/FilterPanel.js +239 -0
  42. package/dist/components/FilterPanel/FilterPanel.styles.d.ts +16 -0
  43. package/dist/components/FilterPanel/FilterPanel.styles.d.ts.map +1 -0
  44. package/dist/components/FilterPanel/FilterPanel.styles.js +31 -0
  45. package/dist/components/FilterPanel/FilterPanel.types.d.ts +80 -0
  46. package/dist/components/FilterPanel/FilterPanel.types.d.ts.map +1 -0
  47. package/dist/components/FilterPanel/FilterPanel.types.js +3 -0
  48. package/dist/components/FilterPanel/index.d.ts +4 -0
  49. package/dist/components/FilterPanel/index.d.ts.map +1 -0
  50. package/dist/components/ImageUpload/ImageUpload.styles.d.ts +3 -3
  51. package/dist/components/MediaCard/MediaCard.d.ts.map +1 -1
  52. package/dist/components/MediaCard/MediaCard.js +3 -1
  53. package/dist/components/NavHeader/NavHeader.styles.d.ts +7 -0
  54. package/dist/components/NavHeader/NavHeader.styles.d.ts.map +1 -1
  55. package/dist/components/NavHeader/NavHeader.styles.js +20 -2
  56. package/dist/components/NavHeader/NavHeader.types.d.ts +49 -1
  57. package/dist/components/NavHeader/NavHeader.types.d.ts.map +1 -1
  58. package/dist/components/NavHeader/index.d.ts +3 -2
  59. package/dist/components/NavHeader/index.d.ts.map +1 -1
  60. package/dist/components/NavHeader/subcomponents/NavMobileSearchDrawer.d.ts.map +1 -1
  61. package/dist/components/NavHeader/subcomponents/NavMobileSearchDrawer.js +15 -33
  62. package/dist/components/NavHeader/subcomponents/NavSearch.d.ts.map +1 -1
  63. package/dist/components/NavHeader/subcomponents/NavSearch.js +37 -83
  64. package/dist/components/NavHeader/subcomponents/NavSearchPanel.d.ts +63 -0
  65. package/dist/components/NavHeader/subcomponents/NavSearchPanel.d.ts.map +1 -0
  66. package/dist/components/NavHeader/subcomponents/NavSearchPanel.js +289 -0
  67. package/dist/components/NavMenuColumns/NavMenuColumns.styles.js +1 -1
  68. package/dist/components/OptionPicker/OptionPicker.d.ts +10 -0
  69. package/dist/components/OptionPicker/OptionPicker.d.ts.map +1 -0
  70. package/dist/components/OptionPicker/OptionPicker.js +116 -0
  71. package/dist/components/OptionPicker/OptionPicker.styles.d.ts +20 -0
  72. package/dist/components/OptionPicker/OptionPicker.styles.d.ts.map +1 -0
  73. package/dist/components/OptionPicker/OptionPicker.styles.js +60 -0
  74. package/dist/components/OptionPicker/OptionPicker.types.d.ts +39 -0
  75. package/dist/components/OptionPicker/OptionPicker.types.d.ts.map +1 -0
  76. package/dist/components/OptionPicker/index.d.ts +4 -0
  77. package/dist/components/OptionPicker/index.d.ts.map +1 -0
  78. package/dist/components/Price/Price.styles.d.ts.map +1 -1
  79. package/dist/components/Price/Price.styles.js +3 -2
  80. package/dist/components/ProductGallery/ProductGallery.d.ts +10 -0
  81. package/dist/components/ProductGallery/ProductGallery.d.ts.map +1 -0
  82. package/dist/components/ProductGallery/ProductGallery.js +306 -0
  83. package/dist/components/ProductGallery/ProductGallery.styles.d.ts +32 -0
  84. package/dist/components/ProductGallery/ProductGallery.styles.d.ts.map +1 -0
  85. package/dist/components/ProductGallery/ProductGallery.styles.js +86 -0
  86. package/dist/components/ProductGallery/ProductGallery.types.d.ts +55 -0
  87. package/dist/components/ProductGallery/ProductGallery.types.d.ts.map +1 -0
  88. package/dist/components/ProductGallery/ProductGalleryLightbox.d.ts +20 -0
  89. package/dist/components/ProductGallery/ProductGalleryLightbox.d.ts.map +1 -0
  90. package/dist/components/ProductGallery/ProductGalleryLightbox.js +210 -0
  91. package/dist/components/ProductGallery/index.d.ts +4 -0
  92. package/dist/components/ProductGallery/index.d.ts.map +1 -0
  93. package/dist/components/QuantityStepper/QuantityStepper.d.ts +8 -0
  94. package/dist/components/QuantityStepper/QuantityStepper.d.ts.map +1 -0
  95. package/dist/components/QuantityStepper/QuantityStepper.js +65 -0
  96. package/dist/components/QuantityStepper/QuantityStepper.styles.d.ts +8 -0
  97. package/dist/components/QuantityStepper/QuantityStepper.styles.d.ts.map +1 -0
  98. package/dist/components/QuantityStepper/QuantityStepper.styles.js +24 -0
  99. package/dist/components/QuantityStepper/QuantityStepper.types.d.ts +20 -0
  100. package/dist/components/QuantityStepper/QuantityStepper.types.d.ts.map +1 -0
  101. package/dist/components/QuantityStepper/index.d.ts +4 -0
  102. package/dist/components/QuantityStepper/index.d.ts.map +1 -0
  103. package/dist/components/RangeSlider/RangeSlider.d.ts.map +1 -1
  104. package/dist/components/RangeSlider/RangeSlider.js +5 -3
  105. package/dist/components/RangeSlider/RangeSlider.types.d.ts +7 -0
  106. package/dist/components/RangeSlider/RangeSlider.types.d.ts.map +1 -1
  107. package/dist/components/Select/Select.d.ts.map +1 -1
  108. package/dist/components/Select/Select.js +14 -1
  109. package/dist/components/Select/Select.types.d.ts +4 -0
  110. package/dist/components/Select/Select.types.d.ts.map +1 -1
  111. package/dist/components/Snackbar/Snackbar.d.ts +9 -0
  112. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -0
  113. package/dist/components/Snackbar/Snackbar.js +108 -0
  114. package/dist/components/Snackbar/Snackbar.styles.d.ts +17 -0
  115. package/dist/components/Snackbar/Snackbar.styles.d.ts.map +1 -0
  116. package/dist/components/Snackbar/Snackbar.styles.js +37 -0
  117. package/dist/components/Snackbar/Snackbar.types.d.ts +36 -0
  118. package/dist/components/Snackbar/Snackbar.types.d.ts.map +1 -0
  119. package/dist/components/Snackbar/SnackbarHost.d.ts +4 -0
  120. package/dist/components/Snackbar/SnackbarHost.d.ts.map +1 -0
  121. package/dist/components/Snackbar/SnackbarHost.js +24 -0
  122. package/dist/components/Snackbar/index.d.ts +6 -0
  123. package/dist/components/Snackbar/index.d.ts.map +1 -0
  124. package/dist/components/Snackbar/snackbarStore.d.ts +42 -0
  125. package/dist/components/Snackbar/snackbarStore.d.ts.map +1 -0
  126. package/dist/components/Snackbar/snackbarStore.js +87 -0
  127. package/dist/components/StockMeter/StockMeter.d.ts +8 -0
  128. package/dist/components/StockMeter/StockMeter.d.ts.map +1 -0
  129. package/dist/components/StockMeter/StockMeter.js +19 -0
  130. package/dist/components/StockMeter/StockMeter.styles.d.ts +4 -0
  131. package/dist/components/StockMeter/StockMeter.styles.d.ts.map +1 -0
  132. package/dist/components/StockMeter/StockMeter.styles.js +7 -0
  133. package/dist/components/StockMeter/StockMeter.types.d.ts +10 -0
  134. package/dist/components/StockMeter/StockMeter.types.d.ts.map +1 -0
  135. package/dist/components/StockMeter/index.d.ts +4 -0
  136. package/dist/components/StockMeter/index.d.ts.map +1 -0
  137. package/dist/components/Swatch/Swatch.d.ts +11 -0
  138. package/dist/components/Swatch/Swatch.d.ts.map +1 -0
  139. package/dist/components/Swatch/Swatch.js +40 -0
  140. package/dist/components/Swatch/Swatch.styles.d.ts +8 -0
  141. package/dist/components/Swatch/Swatch.styles.d.ts.map +1 -0
  142. package/dist/components/Swatch/Swatch.styles.js +26 -0
  143. package/dist/components/Swatch/Swatch.types.d.ts +11 -0
  144. package/dist/components/Swatch/Swatch.types.d.ts.map +1 -0
  145. package/dist/components/Swatch/index.d.ts +4 -0
  146. package/dist/components/Swatch/index.d.ts.map +1 -0
  147. package/dist/components/Toast/Toast.d.ts.map +1 -1
  148. package/dist/components/Toast/Toast.js +49 -42
  149. package/dist/components/Toast/Toast.types.d.ts +7 -0
  150. package/dist/components/Toast/Toast.types.d.ts.map +1 -1
  151. package/dist/components/Toast/ToastContainer.d.ts.map +1 -1
  152. package/dist/components/Toast/ToastContainer.js +5 -0
  153. package/dist/components/Toast/toastStore.d.ts +11 -0
  154. package/dist/components/Toast/toastStore.d.ts.map +1 -1
  155. package/dist/components/Toast/toastStore.js +70 -30
  156. package/dist/index.d.ts +10 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +24 -1
  159. package/dist/providers/TimmbrConfigProvider.d.ts.map +1 -1
  160. package/dist/providers/TimmbrConfigProvider.js +5 -9
  161. package/package.json +5 -5
@@ -14,8 +14,13 @@ const VARIANT_ICONS = {
14
14
  warning: AlertTriangle,
15
15
  destructive: AlertCircle
16
16
  };
17
+ const useIsomorphicLayoutEffect = typeof window === "undefined" ? React.useEffect : React.useLayoutEffect;
17
18
  const ToastContainer = ({ config }) => {
18
19
  const [toasts, setToasts] = React.useState(() => toastStore.getToasts());
20
+ useIsomorphicLayoutEffect(() => {
21
+ toastStore.setMobileLayout(config?.mobileLayout ?? "snackbar");
22
+ toastStore.setDefaultDuration(config?.duration);
23
+ }, [config?.mobileLayout, config?.duration]);
19
24
  React.useEffect(() => {
20
25
  if (config?.maxVisible) {
21
26
  toastStore.setMaxVisible(config.maxVisible);
@@ -5,10 +5,21 @@ declare class ToastStore {
5
5
  private toasts;
6
6
  private listeners;
7
7
  private maxVisible;
8
+ private mobileLayout;
9
+ private defaultDuration;
8
10
  subscribe(listener: ToastSubscriber): () => void;
9
11
  private notify;
10
12
  getToasts(): ToastItem[];
11
13
  setMaxVisible(max: number): void;
14
+ setMobileLayout(layout: 'snackbar' | 'toast'): void;
15
+ /** ToastContainer's `config.duration`, so routed snackbars stay as long as toasts would. */
16
+ setDefaultDuration(duration: number | undefined): void;
17
+ /**
18
+ * Whether this toast shows as a snackbar (phones by default; see ToastOptions.layout). Only when
19
+ * a SnackbarHost is mounted, and only for content a snackbar can show: a JSX action or a
20
+ * non-dismissible toast stays a toast.
21
+ */
22
+ private asSnackbar;
12
23
  addToast(options: ToastOptions): string;
13
24
  dismiss(id?: string): void;
14
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toastStore.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/toastStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAElC,cAAM,UAAU;IACd,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,UAAU,CAAa;IAE/B,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAOhD,OAAO,CAAC,MAAM;IAId,SAAS,IAAI,SAAS,EAAE;IAIxB,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAuBvC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;CAkBpB;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC;IAChC,KAAK,EAAE,CACL,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAC5B,MAAM,CAAC;IACZ,OAAO,EAAE,CACP,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAC5B,MAAM,CAAC;IACZ,OAAO,EAAE,CACP,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAC5B,MAAM,CAAC;IACZ,IAAI,EAAE,CACJ,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAC7B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAC5B,MAAM,CAAC;IACZ,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,KAAK,EAAE,aAiDnB,CAAC;AAEF,wBAAgB,QAAQ;;mBAWa,MAAM;;EAG1C"}
1
+ {"version":3,"file":"toastStore.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/toastStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAUhF,KAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AAElC,cAAM,UAAU;IACd,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAAqB;IAE5C,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAOhD,OAAO,CAAC,MAAM;IAId,SAAS,IAAI,SAAS,EAAE;IAIxB,aAAa,CAAC,GAAG,EAAE,MAAM;IAIzB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAI5C,4FAA4F;IAC5F,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAI/C;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IA2CvC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM;CAmBpB;AAED,eAAO,MAAM,UAAU,YAAmB,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;IAC1G,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;IAC5G,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;IAC5G,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC;IACzG,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,KAAK,EAAE,aA8BlB,CAAC;AAEH,wBAAgB,QAAQ;;mBAWa,MAAM;;EAG1C"}
@@ -1,10 +1,17 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
+ import { snackbarStore } from '../Snackbar/snackbarStore.js';
3
4
 
5
+ const PHONE_QUERY = "(max-width: 639.98px)";
6
+ function isActionConfig(action) {
7
+ return !!action && typeof action === "object" && "label" in action && "onClick" in action;
8
+ }
4
9
  class ToastStore {
5
10
  toasts = [];
6
11
  listeners = /* @__PURE__ */ new Set();
7
12
  maxVisible = 5;
13
+ mobileLayout = "snackbar";
14
+ defaultDuration;
8
15
  subscribe(listener) {
9
16
  this.listeners.add(listener);
10
17
  return () => {
@@ -20,8 +27,43 @@ class ToastStore {
20
27
  setMaxVisible(max) {
21
28
  this.maxVisible = max;
22
29
  }
30
+ setMobileLayout(layout) {
31
+ this.mobileLayout = layout;
32
+ }
33
+ /** ToastContainer's `config.duration`, so routed snackbars stay as long as toasts would. */
34
+ setDefaultDuration(duration) {
35
+ this.defaultDuration = duration;
36
+ }
37
+ /**
38
+ * Whether this toast shows as a snackbar (phones by default; see ToastOptions.layout). Only when
39
+ * a SnackbarHost is mounted, and only for content a snackbar can show: a JSX action or a
40
+ * non-dismissible toast stays a toast.
41
+ */
42
+ asSnackbar(options) {
43
+ if (!snackbarStore.hasHost()) return false;
44
+ if (options.layout === "snackbar") return true;
45
+ if (options.layout === "toast" || this.mobileLayout === "toast") return false;
46
+ if (options.action && !isActionConfig(options.action) || options.dismissible === false) return false;
47
+ return typeof window !== "undefined" && !!window.matchMedia?.(PHONE_QUERY).matches;
48
+ }
23
49
  addToast(options) {
24
50
  const id = options.id || Math.random().toString(36).substring(2, 9);
51
+ if (this.asSnackbar(options)) {
52
+ return snackbarStore.show(options.title ?? options.description, {
53
+ id,
54
+ description: options.title ? options.description : void 0,
55
+ variant: options.variant,
56
+ duration: options.duration ?? this.defaultDuration,
57
+ action: isActionConfig(options.action) ? {
58
+ label: options.action.label,
59
+ onClick: (event) => options.action.onClick(event)
60
+ } : void 0,
61
+ onDismiss: () => {
62
+ options.onDismiss?.();
63
+ options.onOpenChange?.(false);
64
+ }
65
+ });
66
+ }
25
67
  const existingIndex = this.toasts.findIndex((t) => t.id === id);
26
68
  const newToast = {
27
69
  ...options,
@@ -40,6 +82,7 @@ class ToastStore {
40
82
  return id;
41
83
  }
42
84
  dismiss(id) {
85
+ snackbarStore.dismiss(id);
43
86
  if (!id) {
44
87
  this.toasts = this.toasts.map((t) => ({ ...t, open: false }));
45
88
  } else {
@@ -57,36 +100,33 @@ class ToastStore {
57
100
  }
58
101
  }
59
102
  const toastStore = new ToastStore();
60
- const toast = Object.assign(
61
- (options) => toastStore.addToast(options),
62
- {
63
- error: (title, description, options) => toastStore.addToast({
64
- ...options,
65
- title,
66
- description,
67
- variant: "destructive"
68
- }),
69
- success: (title, description, options) => toastStore.addToast({
70
- ...options,
71
- title,
72
- description,
73
- variant: "success"
74
- }),
75
- warning: (title, description, options) => toastStore.addToast({
76
- ...options,
77
- title,
78
- description,
79
- variant: "warning"
80
- }),
81
- info: (title, description, options) => toastStore.addToast({
82
- ...options,
83
- title,
84
- description,
85
- variant: "info"
86
- }),
87
- dismiss: (id) => toastStore.dismiss(id)
88
- }
89
- );
103
+ const toast = Object.assign((options) => toastStore.addToast(options), {
104
+ error: (title, description, options) => toastStore.addToast({
105
+ ...options,
106
+ title,
107
+ description,
108
+ variant: "destructive"
109
+ }),
110
+ success: (title, description, options) => toastStore.addToast({
111
+ ...options,
112
+ title,
113
+ description,
114
+ variant: "success"
115
+ }),
116
+ warning: (title, description, options) => toastStore.addToast({
117
+ ...options,
118
+ title,
119
+ description,
120
+ variant: "warning"
121
+ }),
122
+ info: (title, description, options) => toastStore.addToast({
123
+ ...options,
124
+ title,
125
+ description,
126
+ variant: "info"
127
+ }),
128
+ dismiss: (id) => toastStore.dismiss(id)
129
+ });
90
130
  function useToast() {
91
131
  const [toasts, setToasts] = React.useState(() => toastStore.getToasts());
92
132
  React.useEffect(() => {
package/dist/index.d.ts CHANGED
@@ -13,6 +13,8 @@ export * from './components/Radio';
13
13
  export * from './components/Checkbox';
14
14
  export * from './components/Switch';
15
15
  export * from './components/RangeSlider';
16
+ export * from './components/FilterPanel';
17
+ export * from './components/FilterDrawer';
16
18
  export * from './components/Label';
17
19
  export * from './components/FormField';
18
20
  export * from './components/ImageUpload';
@@ -24,11 +26,13 @@ export * from './components/ResponsiveDialog';
24
26
  export * from './components/Dropdown';
25
27
  export * from './components/Popover';
26
28
  export * from './components/Toast';
29
+ export * from './components/Snackbar';
27
30
  export * from './components/Tooltip';
28
31
  export * from './components/Tabs';
29
32
  export * from './components/SideBarNavigation';
30
33
  export * from './components/NavHeader';
31
34
  export * from './components/NavMenuColumns';
35
+ export * from './components/Breadcrumb';
32
36
  export * from './components/NavFooter';
33
37
  export * from './components/AuthModal';
34
38
  export * from './components/Button';
@@ -51,6 +55,12 @@ export * from './components/Pagination';
51
55
  export * from './components/DataList';
52
56
  export * from './components/List';
53
57
  export * from './components/Chip';
58
+ export * from './components/FilterChips';
59
+ export * from './components/Swatch';
60
+ export * from './components/OptionPicker';
61
+ export * from './components/QuantityStepper';
62
+ export * from './components/StockMeter';
63
+ export * from './components/ProductGallery';
54
64
  export * from './components/Stat';
55
65
  export * from './components/SubNav';
56
66
  export * from './components/PageHeader';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG3D,cAAc,aAAa,CAAC;AAG5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG3D,cAAc,aAAa,CAAC;AAG5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ export { AuthModalSetPasswordForm } from './components/AuthModal/subcomponents/A
13
13
  export { AuthModalSuccess } from './components/AuthModal/subcomponents/AuthModalSuccess.js';
14
14
  export { Avatar } from './components/Avatar/Avatar.js';
15
15
  export { Badge } from './components/Badge/Badge.js';
16
+ export { Breadcrumb } from './components/Breadcrumb/Breadcrumb.js';
16
17
  export { Button } from './components/Button/Button.js';
17
18
  export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/Card/Card.js';
18
19
  export { Center } from './components/Center/Center.js';
@@ -22,6 +23,8 @@ export { ConfirmDialog } from './components/ConfirmDialog/ConfirmDialog.js';
22
23
  export { Container } from './components/Container/Container.js';
23
24
  export { DEFAULT_ALL_ACCEPT, DEFAULT_IMAGE_ACCEPT, DEFAULT_IMAGE_MAX_SIZE, DEFAULT_VIDEO_ACCEPT, DEFAULT_VIDEO_MAX_SIZE, GRID_COLS_MAP, VIDEO_EXTENSIONS, isVideoMedia, normalizeUploadItems, validateUploadFiles } from './components/ImageUpload/ImageUpload.helpers.js';
24
25
  export { DEFAULT_AUTH_MODAL_LABELS } from './components/AuthModal/AuthModal.labels.js';
26
+ export { DEFAULT_FILTER_DRAWER_LABELS, FilterDrawer } from './components/FilterDrawer/FilterDrawer.js';
27
+ export { DEFAULT_FILTER_LABELS, FilterOptionList, FilterPanel, FilterPriceSlider, FilterToggleRow, isOptionDisabled } from './components/FilterPanel/FilterPanel.js';
25
28
  export { DEFAULT_FOOTER_LEGAL_LINKS, DEFAULT_FOOTER_SECTIONS, DEFAULT_FOOTER_SOCIAL_LINKS, isCrossZoneNavigation, resolveNavDestination } from './components/NavFooter/NavFooter.helpers.js';
26
29
  export { DEFAULT_STORAGE_KEY, isNavItemActive, isRouteActive, readStoredCollapsed, writeStoredCollapsed } from './components/SideBarNavigation/SideBarNavigation.helpers.js';
27
30
  export { DataList, DataListAction, DataListItem, DataListLabel, DataListValue } from './components/DataList/DataList.js';
@@ -32,6 +35,7 @@ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMe
32
35
  export { EmptyState } from './components/EmptyState/EmptyState.js';
33
36
  export { Fieldset } from './components/Fieldset/Fieldset.js';
34
37
  export { FilmIcon, ImageIcon, PlayIcon, UploadCloudIcon } from './components/ImageUpload/subcomponents/ImageUploadIcons.js';
38
+ export { FilterChips } from './components/FilterChips/FilterChips.js';
35
39
  export { Footer, NavFooter } from './components/NavFooter/NavFooter.js';
36
40
  export { FormActions } from './components/FormActions/FormActions.js';
37
41
  export { FormField } from './components/FormField/FormField.js';
@@ -57,18 +61,24 @@ export { NavBrand } from './components/NavHeader/subcomponents/NavBrand.js';
57
61
  export { NavItems } from './components/NavHeader/subcomponents/NavItems.js';
58
62
  export { NavMegaMenu } from './components/NavHeader/subcomponents/NavMegaMenu.js';
59
63
  export { NavSearch } from './components/NavHeader/subcomponents/NavSearch.js';
64
+ export { NavSearchPanel, useNavSearchCombobox } from './components/NavHeader/subcomponents/NavSearchPanel.js';
60
65
  export { OAuthButton } from './components/AuthModal/subcomponents/OAuthButton.js';
61
66
  export { OfferBanner } from './components/NavHeader/subcomponents/OfferBanner.js';
67
+ export { OptionPicker } from './components/OptionPicker/OptionPicker.js';
62
68
  export { OtpInput } from './components/OtpInput/OtpInput.js';
69
+ export { PRICE_GROUP_KEY } from './components/FilterPanel/FilterPanel.types.js';
63
70
  export { PageHeader } from './components/PageHeader/PageHeader.js';
64
71
  export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PaginationSummary } from './components/Pagination/Pagination.js';
65
72
  export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger } from './components/Popover/Popover.js';
66
73
  export { Price, discountPercent } from './components/Price/Price.js';
74
+ export { ProductGallery } from './components/ProductGallery/ProductGallery.js';
67
75
  export { Progress } from './components/Progress/Progress.js';
76
+ export { QuantityStepper } from './components/QuantityStepper/QuantityStepper.js';
68
77
  export { RESPONSIVE_DIALOG_BREAKPOINT, ResponsiveDialog, ResponsiveDialogBody, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogForm, ResponsiveDialogHeader, ResponsiveDialogTitle, useResponsiveDialogMode } from './components/ResponsiveDialog/ResponsiveDialog.js';
69
78
  export { Radio, RadioGroup, RadioItem } from './components/Radio/Radio.js';
70
79
  export { RangeSlider } from './components/RangeSlider/RangeSlider.js';
71
80
  export { Rating } from './components/Rating/Rating.js';
81
+ export { SNACKBAR_EXIT_MS, snackbar, snackbarStore } from './components/Snackbar/snackbarStore.js';
72
82
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectRoot, SelectSeparator, SelectTrigger, SelectValue } from './components/Select/Select.js';
73
83
  export { SideBarNavigation } from './components/SideBarNavigation/SideBarNavigation.js';
74
84
  export { SidebarBranding } from './components/SideBarNavigation/subcomponents/SidebarBranding.js';
@@ -80,11 +90,15 @@ export { SidebarProfile } from './components/SideBarNavigation/subcomponents/Sid
80
90
  export { SidebarSubItem } from './components/SideBarNavigation/subcomponents/SidebarSubItem.js';
81
91
  export { SidebarToggle } from './components/SideBarNavigation/subcomponents/SidebarToggle.js';
82
92
  export { Skeleton } from './components/Skeleton/Skeleton.js';
93
+ export { Snackbar } from './components/Snackbar/Snackbar.js';
94
+ export { SnackbarHost } from './components/Snackbar/SnackbarHost.js';
83
95
  export { Spinner } from './components/Spinner/Spinner.js';
84
96
  export { Stack } from './components/Stack/Stack.js';
85
97
  export { Stat, StatHelpText, StatIndicator, StatLabel, StatValue } from './components/Stat/Stat.js';
86
98
  export { Stepper } from './components/Stepper/Stepper.js';
99
+ export { StockMeter } from './components/StockMeter/StockMeter.js';
87
100
  export { SubNav, SubNavAction, isSubNavItemActive } from './components/SubNav/SubNav.js';
101
+ export { Swatch, swatchLuminance } from './components/Swatch/Swatch.js';
88
102
  export { Switch } from './components/Switch/Switch.js';
89
103
  export { TABS_SCROLL_FADE, tabsContentVariants, tabsListVariants, tabsScrollButtonVariants, tabsScrollEdgeVariants, tabsTriggerVariants } from './components/Tabs/Tabs.styles.js';
90
104
  export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from './components/Table/Table.js';
@@ -103,6 +117,7 @@ export { alertIconVariants, alertVariants } from './components/Alert/Alert.style
103
117
  export { authModalBannerVariants, authModalCardVariants, authModalContainerVariants, authModalHeadingVariants, authModalInputVariants, authModalLinkVariants, authModalSecondaryButtonVariants, authModalSubmitButtonVariants, authModalSubtitleVariants } from './components/AuthModal/AuthModal.styles.js';
104
118
  export { avatarRootVariants, avatarStatusVariants } from './components/Avatar/Avatar.styles.js';
105
119
  export { badgeVariants } from './components/Badge/Badge.styles.js';
120
+ export { breadcrumbCurrentVariants, breadcrumbItemVariants, breadcrumbLinkVariants, breadcrumbListVariants, breadcrumbSeparatorVariants } from './components/Breadcrumb/Breadcrumb.styles.js';
106
121
  export { buttonVariants } from './components/Button/Button.styles.js';
107
122
  export { cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardSectionFooterPadding, cardSectionPadding, cardTitleVariants, cardVariants } from './components/Card/Card.styles.js';
108
123
  export { centerVariants } from './components/Center/Center.styles.js';
@@ -116,6 +131,8 @@ export { dividerVariants } from './components/Divider/Divider.styles.js';
116
131
  export { drawerBodyVariants, drawerContentVariants, drawerDescriptionVariants, drawerFooterVariants, drawerHeaderVariants, drawerOverlayVariants, drawerTitleVariants } from './components/Drawer/Drawer.styles.js';
117
132
  export { dropdownContentVariants, dropdownItemIconVariants, dropdownItemVariants } from './components/Dropdown/Dropdown.styles.js';
118
133
  export { emptyStateIconWrapperVariants, emptyStateVariants } from './components/EmptyState/EmptyState.styles.js';
134
+ export { filterDrawerBadgeVariants, filterDrawerContentVariants, filterDrawerFooterVariants, filterDrawerHeaderVariants, filterDrawerNavItemVariants, filterDrawerNavVariants, filterDrawerPanesVariants } from './components/FilterDrawer/FilterDrawer.styles.js';
135
+ export { filterLinkButtonVariants, filterOptionCountVariants, filterOptionLabelVariants, filterOptionRowVariants, filterPanelBodyVariants, filterPanelHeaderVariants, filterPanelTitleVariants, filterPanelVariants, filterSectionContentVariants, filterSectionTriggerVariants, filterToggleListVariants } from './components/FilterPanel/FilterPanel.styles.js';
119
136
  export { footerLegalBarVariants, footerLegalLinkVariants, footerNavLinkVariants, footerOfficeBlockVariants, footerSectionTitleVariants, footerSocialButtonVariants, navFooterContainerVariants, navFooterRootVariants } from './components/NavFooter/NavFooter.styles.js';
120
137
  export { formFieldVariants } from './components/FormField/FormField.styles.js';
121
138
  export { headingVariants } from './components/Heading/Heading.styles.js';
@@ -128,25 +145,31 @@ export { labelVariants } from './components/Label/Label.styles.js';
128
145
  export { linkButtonVariants } from './components/LinkButton/LinkButton.styles.js';
129
146
  export { listDividedClass, listItemActionVariants, listItemIconVariants, listItemTextVariants, listItemVariants, listVariants } from './components/List/List.styles.js';
130
147
  export { mediaCardMediaVariants, mediaCardOverlayVariants, mediaCardVariants } from './components/MediaCard/MediaCard.styles.js';
131
- export { megaMenuCardVariants, navActionVariants, navHeaderContainerVariants, navHeaderItemVariants, navHeaderVariants, offerBannerVariants, searchPopoverCardVariants } from './components/NavHeader/NavHeader.styles.js';
148
+ export { megaMenuCardVariants, navActionVariants, navHeaderContainerVariants, navHeaderItemVariants, navHeaderVariants, offerBannerVariants, searchPanelOptionVariants, searchPopoverCardVariants } from './components/NavHeader/NavHeader.styles.js';
132
149
  export { navBadgeVariants, navItemVariants, sidebarContainerVariants, sidebarToggleVariants, subItemVariants } from './components/SideBarNavigation/SideBarNavigation.styles.js';
133
150
  export { navMenuAsideVariants, navMenuColumnVariants, navMenuColumnsGridVariants, navMenuLinkVariants, navMenuMoreVariants, navMenuPromoTitleVariants, navMenuPromoVariants, navMenuTileImageVariants, navMenuTileLabelVariants, navMenuTileVariants, navMenuTilesVariants, navMenuTitleVariants } from './components/NavMenuColumns/NavMenuColumns.styles.js';
151
+ export { optionImageVariants, optionPickerLegendVariants, optionPickerVariants, optionPillVariants, optionStrikeVariants, optionSwatchVariants } from './components/OptionPicker/OptionPicker.styles.js';
134
152
  export { otpContainerVariants, otpSlotVariants } from './components/OtpInput/OtpInput.styles.js';
135
153
  export { pageHeaderTitleVariants, pageHeaderVariants } from './components/PageHeader/PageHeader.styles.js';
136
154
  export { paginationLinkVariants } from './components/Pagination/Pagination.styles.js';
137
155
  export { popoverContentVariants } from './components/Popover/Popover.styles.js';
138
156
  export { priceAmountVariants, priceCompareVariants, priceDiscountVariants, priceVariants } from './components/Price/Price.styles.js';
157
+ export { productGalleryArrowVariants, productGalleryCounterVariants, productGalleryFrameVariants, productGalleryLensVariants, productGalleryLightboxButtonVariants, productGalleryLightboxVariants, productGallerySlideVariants, productGalleryStageVariants, productGalleryThumbListVariants, productGalleryThumbVariants, productGalleryThumbsVariants, productGalleryTrackVariants, productGalleryVariants, productGalleryZoomPaneVariants } from './components/ProductGallery/ProductGallery.styles.js';
139
158
  export { progressIndicatorVariants, progressRootVariants } from './components/Progress/Progress.styles.js';
159
+ export { quantityStepperButtonVariants, quantityStepperValueVariants, quantityStepperVariants } from './components/QuantityStepper/QuantityStepper.styles.js';
140
160
  export { radioIndicatorVariants, radioItemVariants } from './components/Radio/Radio.styles.js';
141
161
  export { rangeSliderRangeVariants, rangeSliderRootVariants, rangeSliderThumbVariants, rangeSliderTrackVariants } from './components/RangeSlider/RangeSlider.styles.js';
142
162
  export { ratingVariants } from './components/Rating/Rating.styles.js';
143
163
  export { selectContentVariants, selectItemVariants, selectTriggerVariants } from './components/Select/Select.styles.js';
144
164
  export { skeletonVariants } from './components/Skeleton/Skeleton.styles.js';
165
+ export { snackbarActionVariants, snackbarCloseVariants, snackbarHostVariants, snackbarIconVariants, snackbarVariants } from './components/Snackbar/Snackbar.styles.js';
145
166
  export { spinnerIconVariants, spinnerVariants } from './components/Spinner/Spinner.styles.js';
146
167
  export { stackVariants } from './components/Stack/Stack.styles.js';
147
168
  export { statHelpTextVariants, statIndicatorVariants, statLabelVariants, statValueVariants, statVariants } from './components/Stat/Stat.styles.js';
148
169
  export { stepConnectorVariants, stepIndicatorVariants, stepperVariants } from './components/Stepper/Stepper.styles.js';
170
+ export { stockMeterFillVariants, stockMeterTrackVariants, stockMeterVariants } from './components/StockMeter/StockMeter.styles.js';
149
171
  export { subNavFooterVariants, subNavIconVariants, subNavItemVariants, subNavListVariants } from './components/SubNav/SubNav.styles.js';
172
+ export { swatchVariants } from './components/Swatch/Swatch.styles.js';
150
173
  export { switchThumbVariants, switchVariants } from './components/Switch/Switch.styles.js';
151
174
  export { tableCellVariants, tableContainerVariants, tableFooterVariants, tableHeadVariants, tablePaginationVariants, tableRowVariants, tableVariants } from './components/Table/Table.styles.js';
152
175
  export { textVariants } from './components/Text/Text.styles.js';
@@ -1 +1 @@
1
- {"version":3,"file":"TimmbrConfigProvider.d.ts","sourceRoot":"","sources":["../../src/providers/TimmbrConfigProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIzE,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;KAChD,CAAC;IACF,SAAS,CAAC,EAAE;QACV,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;KACpC,CAAC;IACF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,MAAM,CAOR;AAED,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,YAAY,CA8BtD,CAAC;AAIF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAkEpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,YAElC,CAAC"}
1
+ {"version":3,"file":"TimmbrConfigProvider.d.ts","sourceRoot":"","sources":["../../src/providers/TimmbrConfigProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKzE,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;QACjD,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;KAChD,CAAC;IACF,SAAS,CAAC,EAAE;QACV,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;KACpC,CAAC;IACF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAOnG;AAED,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,YAAY,CA8BtD,CAAC;AAIF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6DpE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,QAAO,YAElC,CAAC"}
@@ -3,6 +3,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import * as React from 'react';
4
4
  import { ToastProvider } from '../components/Toast/Toast.js';
5
5
  import { ToastContainer } from '../components/Toast/ToastContainer.js';
6
+ import { SnackbarHost } from '../components/Snackbar/SnackbarHost.js';
6
7
 
7
8
  function resolveZoneHref(href, zone, zones) {
8
9
  if (!zone || !zones || !zones[zone]) {
@@ -44,10 +45,7 @@ const defaultTimmbrConfig = {
44
45
  }
45
46
  };
46
47
  const TimmbrConfigContext = React.createContext(defaultTimmbrConfig);
47
- const TimmbrConfigProvider = ({
48
- children,
49
- config
50
- }) => {
48
+ const TimmbrConfigProvider = ({ children, config }) => {
51
49
  const mergedConfig = React.useMemo(() => {
52
50
  return {
53
51
  animations: {
@@ -88,10 +86,7 @@ const TimmbrConfigProvider = ({
88
86
  const animationsDisabled = mergedConfig.animations?.enabled === false;
89
87
  React.useEffect(() => {
90
88
  if (typeof document !== "undefined") {
91
- document.documentElement.setAttribute(
92
- "data-animations-disabled",
93
- animationsDisabled ? "true" : "false"
94
- );
89
+ document.documentElement.setAttribute("data-animations-disabled", animationsDisabled ? "true" : "false");
95
90
  }
96
91
  return () => {
97
92
  if (typeof document !== "undefined") {
@@ -101,7 +96,8 @@ const TimmbrConfigProvider = ({
101
96
  }, [animationsDisabled]);
102
97
  return /* @__PURE__ */ jsx(TimmbrConfigContext.Provider, { value: mergedConfig, children: /* @__PURE__ */ jsxs(ToastProvider, { swipeDirection: mergedConfig.toast?.swipeDirection ?? "right", children: [
103
98
  children,
104
- /* @__PURE__ */ jsx(ToastContainer, { config: mergedConfig.toast })
99
+ /* @__PURE__ */ jsx(ToastContainer, { config: mergedConfig.toast }),
100
+ /* @__PURE__ */ jsx(SnackbarHost, {})
105
101
  ] }) });
106
102
  };
107
103
  const useTimmbrConfig = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timmbr/ui",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "High-performance, Next.js App Router-compatible UI design system components for Timmbr",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,11 +42,11 @@
42
42
  "@radix-ui/react-tooltip": "^1.2.16",
43
43
  "class-variance-authority": "^0.7.1",
44
44
  "input-otp": "^1.5.0",
45
- "@timmbr/hooks": "1.0.0",
46
- "@timmbr/motion": "1.2.3",
47
- "@timmbr/utils": "1.5.0",
45
+ "@timmbr/icons": "1.5.0",
46
+ "@timmbr/hooks": "1.1.0",
47
+ "@timmbr/utils": "1.6.0",
48
48
  "@timmbr/theme": "1.3.0",
49
- "@timmbr/icons": "1.4.1"
49
+ "@timmbr/motion": "1.2.4"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "next": ">=13.0.0 || >=14.0.0 || >=15.0.0 || >=16.0.0",