@dmsi/wedgekit-react 0.0.916 → 0.0.917

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 (54) hide show
  1. package/dist/{chunk-YV5FS7NV.js → chunk-7IPESTQS.js} +13 -9
  2. package/dist/{chunk-3N34VVYD.js → chunk-ZACRFGND.js} +102 -26
  3. package/dist/components/CalendarRange.cjs +17 -15
  4. package/dist/components/CalendarRange.css +49 -0
  5. package/dist/components/CalendarRange.js +2 -2
  6. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.cjs +3 -1
  7. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.css +49 -0
  8. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.js +2 -2
  9. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.cjs +3 -1
  10. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.css +49 -0
  11. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.js +2 -2
  12. package/dist/components/DataGrid/PinnedColumns.cjs +6 -4
  13. package/dist/components/DataGrid/PinnedColumns.css +49 -0
  14. package/dist/components/DataGrid/PinnedColumns.js +2 -2
  15. package/dist/components/DataGrid/TableBody/LoadingCell.cjs +3 -1
  16. package/dist/components/DataGrid/TableBody/LoadingCell.css +49 -0
  17. package/dist/components/DataGrid/TableBody/LoadingCell.js +2 -2
  18. package/dist/components/DataGrid/TableBody/TableBodyRow.cjs +6 -4
  19. package/dist/components/DataGrid/TableBody/TableBodyRow.css +49 -0
  20. package/dist/components/DataGrid/TableBody/TableBodyRow.js +2 -2
  21. package/dist/components/DataGrid/TableBody/index.cjs +8 -6
  22. package/dist/components/DataGrid/TableBody/index.css +49 -0
  23. package/dist/components/DataGrid/TableBody/index.js +2 -2
  24. package/dist/components/DataGrid/index.cjs +17 -15
  25. package/dist/components/DataGrid/index.css +49 -0
  26. package/dist/components/DataGrid/index.js +2 -2
  27. package/dist/components/DataGrid/utils.cjs +5 -3
  28. package/dist/components/DataGrid/utils.css +49 -0
  29. package/dist/components/DataGrid/utils.js +2 -2
  30. package/dist/components/DateInput.cjs +19 -17
  31. package/dist/components/DateInput.css +49 -0
  32. package/dist/components/DateInput.js +2 -2
  33. package/dist/components/DateRangeInput.cjs +17 -15
  34. package/dist/components/DateRangeInput.css +49 -0
  35. package/dist/components/DateRangeInput.js +2 -2
  36. package/dist/components/EmblaCarousel/ArrowButtons.cjs +13 -9
  37. package/dist/components/EmblaCarousel/ArrowButtons.js +1 -1
  38. package/dist/components/EmblaCarousel/index.cjs +113 -33
  39. package/dist/components/EmblaCarousel/index.js +2 -2
  40. package/dist/components/MobileDataGrid/ColumnList.css +49 -0
  41. package/dist/components/MobileDataGrid/ColumnSelector/index.cjs +3 -1
  42. package/dist/components/MobileDataGrid/ColumnSelector/index.css +49 -0
  43. package/dist/components/MobileDataGrid/ColumnSelector/index.js +2 -2
  44. package/dist/components/MobileDataGrid/MobileDataGridHeader.cjs +3 -1
  45. package/dist/components/MobileDataGrid/MobileDataGridHeader.css +49 -0
  46. package/dist/components/MobileDataGrid/MobileDataGridHeader.js +2 -2
  47. package/dist/components/MobileDataGrid/index.cjs +21 -19
  48. package/dist/components/MobileDataGrid/index.css +49 -0
  49. package/dist/components/MobileDataGrid/index.js +2 -2
  50. package/dist/components/index.cjs +113 -33
  51. package/dist/components/index.css +49 -0
  52. package/dist/components/index.js +2 -2
  53. package/dist/index.css +49 -0
  54. package/package.json +2 -1
@@ -563,6 +563,9 @@
563
563
  .top-0 {
564
564
  top: calc(var(--spacing) * 0);
565
565
  }
566
+ .top-1\/2 {
567
+ top: calc(1/2 * 100%);
568
+ }
566
569
  .top-2 {
567
570
  top: calc(var(--spacing) * 2);
568
571
  }
@@ -756,10 +759,18 @@
756
759
  width: calc(var(--spacing) * 6);
757
760
  height: calc(var(--spacing) * 6);
758
761
  }
762
+ .size-6\! {
763
+ width: calc(var(--spacing) * 6) !important;
764
+ height: calc(var(--spacing) * 6) !important;
765
+ }
759
766
  .size-9 {
760
767
  width: calc(var(--spacing) * 9);
761
768
  height: calc(var(--spacing) * 9);
762
769
  }
770
+ .size-10\! {
771
+ width: calc(var(--spacing) * 10) !important;
772
+ height: calc(var(--spacing) * 10) !important;
773
+ }
763
774
  .\!h-4\.5 {
764
775
  height: calc(var(--spacing) * 4.5) !important;
765
776
  }
@@ -1004,6 +1015,10 @@
1004
1015
  --tw-translate-x: calc(var(--spacing) * 0);
1005
1016
  translate: var(--tw-translate-x) var(--tw-translate-y);
1006
1017
  }
1018
+ .-translate-y-1\/2 {
1019
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
1020
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1021
+ }
1007
1022
  .translate-y-2\/4 {
1008
1023
  --tw-translate-y: calc(2/4 * 100%);
1009
1024
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1463,6 +1478,9 @@
1463
1478
  .border-transparent {
1464
1479
  border-color: transparent;
1465
1480
  }
1481
+ .border-transparent\! {
1482
+ border-color: transparent !important;
1483
+ }
1466
1484
  .border-warning-400 {
1467
1485
  border-color: var(--color-warning-400);
1468
1486
  }
@@ -2782,6 +2800,25 @@
2782
2800
  }
2783
2801
  }
2784
2802
  }
2803
+ .group-hover\:text-text-link-hover {
2804
+ &:is(:where(.group):hover *) {
2805
+ @media (hover: hover) {
2806
+ color: var(--color-text-link-hover);
2807
+ }
2808
+ }
2809
+ }
2810
+ .group-hover\:text-text-link-normal {
2811
+ &:is(:where(.group):hover *) {
2812
+ @media (hover: hover) {
2813
+ color: var(--color-text-link-normal);
2814
+ }
2815
+ }
2816
+ }
2817
+ .group-active\:text-text-link-active {
2818
+ &:is(:where(.group):active *) {
2819
+ color: var(--color-text-link-active);
2820
+ }
2821
+ }
2785
2822
  .group-data-\[checked\]\:translate-x-3 {
2786
2823
  &:is(:where(.group)[data-checked] *) {
2787
2824
  --tw-translate-x: calc(var(--spacing) * 3);
@@ -4265,6 +4302,18 @@
4265
4302
  display: none;
4266
4303
  }
4267
4304
  }
4305
+ .desktop\:size-8\! {
4306
+ @container root (width >= 48rem) {
4307
+ width: calc(var(--spacing) * 8) !important;
4308
+ height: calc(var(--spacing) * 8) !important;
4309
+ }
4310
+ }
4311
+ .desktop\:size-12\! {
4312
+ @container root (width >= 48rem) {
4313
+ width: calc(var(--spacing) * 12) !important;
4314
+ height: calc(var(--spacing) * 12) !important;
4315
+ }
4316
+ }
4268
4317
  .desktop\:h-\[190px\] {
4269
4318
  @container root (width >= 48rem) {
4270
4319
  height: 190px;
@@ -11,13 +11,13 @@ import "../chunk-YCDDBSVU.js";
11
11
  import "../chunk-3X3Y4TMS.js";
12
12
  import "../chunk-BQNPOGD5.js";
13
13
  import "../chunk-Y5GD2FJA.js";
14
- import "../chunk-3N34VVYD.js";
14
+ import "../chunk-ZACRFGND.js";
15
15
  import "../chunk-EJVCDJ7U.js";
16
16
  import "../chunk-27DJTEAB.js";
17
17
  import "../chunk-5IFPG6TS.js";
18
18
  import "../chunk-XWYDWH4W.js";
19
19
  import "../chunk-AJ5M6MVX.js";
20
- import "../chunk-YV5FS7NV.js";
20
+ import "../chunk-7IPESTQS.js";
21
21
  import "../chunk-Z2HPSFEQ.js";
22
22
  import "../chunk-AT4AWD6B.js";
23
23
  import "../chunk-EWGHVZL5.js";
@@ -833,7 +833,7 @@ Currency.displayName = "Currency";
833
833
  Percentage.displayName = "Percentage";
834
834
 
835
835
  // src/components/CalendarRange.tsx
836
- var import_clsx44 = __toESM(require("clsx"), 1);
836
+ var import_clsx45 = __toESM(require("clsx"), 1);
837
837
  var import_react43 = __toESM(require("react"), 1);
838
838
  var import_polyfill = require("@js-temporal/polyfill");
839
839
 
@@ -5744,6 +5744,7 @@ var import_jsx_runtime65 = require("react/jsx-runtime");
5744
5744
  // src/components/EmblaCarousel/index.tsx
5745
5745
  var import_react42 = require("react");
5746
5746
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
5747
+ var import_embla_carousel_autoplay = __toESM(require("embla-carousel-autoplay"), 1);
5747
5748
 
5748
5749
  // src/components/EmblaCarousel/SelectedSnapDisplay.tsx
5749
5750
  var import_jsx_runtime66 = require("react/jsx-runtime");
@@ -5755,13 +5756,14 @@ var import_react40 = require("react");
5755
5756
  var import_clsx43 = __toESM(require("clsx"), 1);
5756
5757
  var import_jsx_runtime67 = require("react/jsx-runtime");
5757
5758
  var arrowButtonStyles = (0, import_clsx43.default)(
5758
- "appearance-none bg-transparent border cursor-pointer p-2 flex items-center justify-center size-9 rounded-full transition-colors duration-300 ease-in-out"
5759
+ "appearance-none bg-transparent border cursor-pointer p-2 flex items-center justify-center size-9 rounded-full transition-colors duration-300 ease-in-out group"
5759
5760
  );
5760
5761
 
5761
5762
  // src/components/EmblaCarousel/usePrevNextButtons.ts
5762
5763
  var import_react41 = require("react");
5763
5764
 
5764
5765
  // src/components/EmblaCarousel/index.tsx
5766
+ var import_clsx44 = __toESM(require("clsx"), 1);
5765
5767
  var import_jsx_runtime68 = require("react/jsx-runtime");
5766
5768
 
5767
5769
  // src/components/CalendarRange.tsx
@@ -5805,7 +5807,7 @@ function DateCell(_a) {
5805
5807
  __spreadProps(__spreadValues({}, props), {
5806
5808
  id,
5807
5809
  "data-testid": testid,
5808
- className: (0, import_clsx44.default)(
5810
+ className: (0, import_clsx45.default)(
5809
5811
  "flex items-center justify-center aspect-square select-none transition-colors border duration-100 font-medium",
5810
5812
  typography.caption,
5811
5813
  cellPadding,
@@ -5961,7 +5963,7 @@ function CalendarRange({
5961
5963
  {
5962
5964
  id,
5963
5965
  "data-testid": testid,
5964
- className: (0, import_clsx44.default)(
5966
+ className: (0, import_clsx45.default)(
5965
5967
  "relative bg-background-grouped-primary-normal rounded-base w-fit",
5966
5968
  layoutPaddding,
5967
5969
  layoutGap,
@@ -5972,7 +5974,7 @@ function CalendarRange({
5972
5974
  children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
5973
5975
  "div",
5974
5976
  {
5975
- className: (0, import_clsx44.default)(
5977
+ className: (0, import_clsx45.default)(
5976
5978
  "flex flex-row items-start justify-start bg-background-primary-normal overflow-clip",
5977
5979
  layoutGap
5978
5980
  ),
@@ -6046,12 +6048,12 @@ function CalendarPane({
6046
6048
  /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6047
6049
  "div",
6048
6050
  {
6049
- className: (0, import_clsx44.default)("flex flex-col"),
6051
+ className: (0, import_clsx45.default)("flex flex-col"),
6050
6052
  children: [
6051
6053
  /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
6052
6054
  "div",
6053
6055
  {
6054
- className: (0, import_clsx44.default)(
6056
+ className: (0, import_clsx45.default)(
6055
6057
  "flex flex-row items-center justify-between",
6056
6058
  typography.label,
6057
6059
  "text-text-action-primary-normal"
@@ -6063,7 +6065,7 @@ function CalendarPane({
6063
6065
  id: id ? `${id}-prev-month-button` : void 0,
6064
6066
  "data-testid": testid ? `${testid}-prev-month-button` : void 0,
6065
6067
  type: "button",
6066
- className: (0, import_clsx44.default)(
6068
+ className: (0, import_clsx45.default)(
6067
6069
  "flex items-center justify-center rounded-base hover:bg-action-100 active:bg-action-300 text-icon-action-primary-normal",
6068
6070
  componentPadding
6069
6071
  ),
@@ -6071,7 +6073,7 @@ function CalendarPane({
6071
6073
  onClick: () => setBaseMonth(baseMonth.subtract({ months: 1 })),
6072
6074
  children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "chevron_left", size: 24 })
6073
6075
  }
6074
- ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: (0, import_clsx44.default)(componentPadding, "mr-1") }),
6076
+ ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: (0, import_clsx45.default)(componentPadding, "mr-1") }),
6075
6077
  /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex gap-desktop-compact-component-padding", children: [
6076
6078
  /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6077
6079
  "button",
@@ -6150,7 +6152,7 @@ function CalendarPane({
6150
6152
  id: id ? `${id}-next-month-button` : void 0,
6151
6153
  "data-testid": testid ? `${testid}-next-month-button` : void 0,
6152
6154
  type: "button",
6153
- className: (0, import_clsx44.default)(
6155
+ className: (0, import_clsx45.default)(
6154
6156
  "flex items-center justify-center rounded-base hover:bg-action-100 active:bg-action-300 text-icon-action-primary-normal",
6155
6157
  componentPadding
6156
6158
  ),
@@ -6158,14 +6160,14 @@ function CalendarPane({
6158
6160
  onClick: () => setBaseMonth(baseMonth.add({ months: 1 })),
6159
6161
  children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "chevron_right", size: 24 })
6160
6162
  }
6161
- ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: (0, import_clsx44.default)(componentPadding, "ml-1") })
6163
+ ) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: (0, import_clsx45.default)(componentPadding, "ml-1") })
6162
6164
  ]
6163
6165
  }
6164
6166
  ),
6165
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: (0, import_clsx44.default)("grid grid-cols-7"), children: weekDays.map((d) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6167
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: (0, import_clsx45.default)("grid grid-cols-7"), children: weekDays.map((d) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6166
6168
  "span",
6167
6169
  {
6168
- className: (0, import_clsx44.default)(
6170
+ className: (0, import_clsx45.default)(
6169
6171
  typography.caption,
6170
6172
  "text-text-secondary-normal text-center",
6171
6173
  "w-10"
@@ -6174,7 +6176,7 @@ function CalendarPane({
6174
6176
  },
6175
6177
  d
6176
6178
  )) }),
6177
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: (0, import_clsx44.default)("grid grid-cols-7"), children: Array.from({ length: totalCells }).map((_, i) => {
6179
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: (0, import_clsx45.default)("grid grid-cols-7"), children: Array.from({ length: totalCells }).map((_, i) => {
6178
6180
  const day = i - emptyCells + 1;
6179
6181
  const date = month.date.with({ day: 1 }).add({
6180
6182
  days: i - emptyCells
@@ -6216,7 +6218,7 @@ function CalendarPane({
6216
6218
  mode === "double" && idx === 0 && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
6217
6219
  "div",
6218
6220
  {
6219
- className: (0, import_clsx44.default)(
6221
+ className: (0, import_clsx45.default)(
6220
6222
  "self-stretch bg-border-primary-normal rounded-base",
6221
6223
  // 1px width, full height, matches Figma divider
6222
6224
  "w-px"
@@ -563,6 +563,9 @@
563
563
  .top-0 {
564
564
  top: calc(var(--spacing) * 0);
565
565
  }
566
+ .top-1\/2 {
567
+ top: calc(1/2 * 100%);
568
+ }
566
569
  .top-2 {
567
570
  top: calc(var(--spacing) * 2);
568
571
  }
@@ -756,10 +759,18 @@
756
759
  width: calc(var(--spacing) * 6);
757
760
  height: calc(var(--spacing) * 6);
758
761
  }
762
+ .size-6\! {
763
+ width: calc(var(--spacing) * 6) !important;
764
+ height: calc(var(--spacing) * 6) !important;
765
+ }
759
766
  .size-9 {
760
767
  width: calc(var(--spacing) * 9);
761
768
  height: calc(var(--spacing) * 9);
762
769
  }
770
+ .size-10\! {
771
+ width: calc(var(--spacing) * 10) !important;
772
+ height: calc(var(--spacing) * 10) !important;
773
+ }
763
774
  .\!h-4\.5 {
764
775
  height: calc(var(--spacing) * 4.5) !important;
765
776
  }
@@ -1004,6 +1015,10 @@
1004
1015
  --tw-translate-x: calc(var(--spacing) * 0);
1005
1016
  translate: var(--tw-translate-x) var(--tw-translate-y);
1006
1017
  }
1018
+ .-translate-y-1\/2 {
1019
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
1020
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1021
+ }
1007
1022
  .translate-y-2\/4 {
1008
1023
  --tw-translate-y: calc(2/4 * 100%);
1009
1024
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1463,6 +1478,9 @@
1463
1478
  .border-transparent {
1464
1479
  border-color: transparent;
1465
1480
  }
1481
+ .border-transparent\! {
1482
+ border-color: transparent !important;
1483
+ }
1466
1484
  .border-warning-400 {
1467
1485
  border-color: var(--color-warning-400);
1468
1486
  }
@@ -2782,6 +2800,25 @@
2782
2800
  }
2783
2801
  }
2784
2802
  }
2803
+ .group-hover\:text-text-link-hover {
2804
+ &:is(:where(.group):hover *) {
2805
+ @media (hover: hover) {
2806
+ color: var(--color-text-link-hover);
2807
+ }
2808
+ }
2809
+ }
2810
+ .group-hover\:text-text-link-normal {
2811
+ &:is(:where(.group):hover *) {
2812
+ @media (hover: hover) {
2813
+ color: var(--color-text-link-normal);
2814
+ }
2815
+ }
2816
+ }
2817
+ .group-active\:text-text-link-active {
2818
+ &:is(:where(.group):active *) {
2819
+ color: var(--color-text-link-active);
2820
+ }
2821
+ }
2785
2822
  .group-data-\[checked\]\:translate-x-3 {
2786
2823
  &:is(:where(.group)[data-checked] *) {
2787
2824
  --tw-translate-x: calc(var(--spacing) * 3);
@@ -4265,6 +4302,18 @@
4265
4302
  display: none;
4266
4303
  }
4267
4304
  }
4305
+ .desktop\:size-8\! {
4306
+ @container root (width >= 48rem) {
4307
+ width: calc(var(--spacing) * 8) !important;
4308
+ height: calc(var(--spacing) * 8) !important;
4309
+ }
4310
+ }
4311
+ .desktop\:size-12\! {
4312
+ @container root (width >= 48rem) {
4313
+ width: calc(var(--spacing) * 12) !important;
4314
+ height: calc(var(--spacing) * 12) !important;
4315
+ }
4316
+ }
4268
4317
  .desktop\:h-\[190px\] {
4269
4318
  @container root (width >= 48rem) {
4270
4319
  height: 190px;
@@ -11,13 +11,13 @@ import "../chunk-YCDDBSVU.js";
11
11
  import "../chunk-3X3Y4TMS.js";
12
12
  import "../chunk-BQNPOGD5.js";
13
13
  import "../chunk-Y5GD2FJA.js";
14
- import "../chunk-3N34VVYD.js";
14
+ import "../chunk-ZACRFGND.js";
15
15
  import "../chunk-EJVCDJ7U.js";
16
16
  import "../chunk-27DJTEAB.js";
17
17
  import "../chunk-5IFPG6TS.js";
18
18
  import "../chunk-XWYDWH4W.js";
19
19
  import "../chunk-AJ5M6MVX.js";
20
- import "../chunk-YV5FS7NV.js";
20
+ import "../chunk-7IPESTQS.js";
21
21
  import "../chunk-Z2HPSFEQ.js";
22
22
  import "../chunk-AT4AWD6B.js";
23
23
  import "../chunk-EWGHVZL5.js";
@@ -66,17 +66,18 @@ module.exports = __toCommonJS(ArrowButtons_exports);
66
66
  var import_clsx = __toESM(require("clsx"), 1);
67
67
  var import_jsx_runtime = require("react/jsx-runtime");
68
68
  var arrowButtonStyles = (0, import_clsx.default)(
69
- "appearance-none bg-transparent border cursor-pointer p-2 flex items-center justify-center size-9 rounded-full transition-colors duration-300 ease-in-out"
69
+ "appearance-none bg-transparent border cursor-pointer p-2 flex items-center justify-center size-9 rounded-full transition-colors duration-300 ease-in-out group"
70
70
  );
71
71
  var PrevButton = (props) => {
72
- const _a = props, { children, disabled } = _a, restProps = __objRest(_a, ["children", "disabled"]);
72
+ const _a = props, { children, disabled, className, iconClassName, circleChevron } = _a, restProps = __objRest(_a, ["children", "disabled", "className", "iconClassName", "circleChevron"]);
73
73
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
74
74
  "button",
75
75
  __spreadProps(__spreadValues({
76
76
  className: (0, import_clsx.default)(
77
77
  arrowButtonStyles,
78
78
  !disabled && "border-border-primary-normal hover:border-border-action-hover active:border-border-action-active",
79
- disabled && "border-border-action-disabled"
79
+ disabled && "border-border-action-disabled",
80
+ className
80
81
  ),
81
82
  type: "button"
82
83
  }, restProps), {
@@ -86,8 +87,9 @@ var PrevButton = (props) => {
86
87
  {
87
88
  className: (0, import_clsx.default)(
88
89
  "size-3 transition-colors duration-300 ease-in-out",
89
- !disabled && "text-text-primary-normal",
90
- disabled && "text-icon-primary-disabled"
90
+ !disabled && circleChevron && "text-text-primary-normal",
91
+ disabled && "text-icon-primary-disabled",
92
+ iconClassName
91
93
  ),
92
94
  viewBox: "0 0 532 532",
93
95
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -105,14 +107,15 @@ var PrevButton = (props) => {
105
107
  );
106
108
  };
107
109
  var NextButton = (props) => {
108
- const _a = props, { children, disabled } = _a, restProps = __objRest(_a, ["children", "disabled"]);
110
+ const _a = props, { children, disabled, className, iconClassName, circleChevron } = _a, restProps = __objRest(_a, ["children", "disabled", "className", "iconClassName", "circleChevron"]);
109
111
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
110
112
  "button",
111
113
  __spreadProps(__spreadValues({
112
114
  className: (0, import_clsx.default)(
113
115
  arrowButtonStyles,
114
116
  !disabled && "border-border-primary-normal hover:border-border-action-hover active:border-border-action-active",
115
- disabled && "border-border-action-disabled"
117
+ disabled && "border-border-action-disabled",
118
+ className
116
119
  ),
117
120
  type: "button"
118
121
  }, restProps), {
@@ -122,8 +125,9 @@ var NextButton = (props) => {
122
125
  {
123
126
  className: (0, import_clsx.default)(
124
127
  "size-3 transition-colors duration-300 ease-in-out",
125
- !disabled && "text-text-primary-normal",
126
- disabled && "text-icon-primary-disabled"
128
+ !disabled && circleChevron && "text-text-primary-normal",
129
+ disabled && "text-icon-primary-disabled",
130
+ iconClassName
127
131
  ),
128
132
  viewBox: "0 0 532 532",
129
133
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  NextButton,
3
3
  PrevButton
4
- } from "../../chunk-YV5FS7NV.js";
4
+ } from "../../chunk-7IPESTQS.js";
5
5
  import "../../chunk-ORMEWXMH.js";
6
6
  export {
7
7
  NextButton,
@@ -65,6 +65,7 @@ __export(EmblaCarousel_exports, {
65
65
  module.exports = __toCommonJS(EmblaCarousel_exports);
66
66
  var import_react4 = require("react");
67
67
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
68
+ var import_embla_carousel_autoplay = __toESM(require("embla-carousel-autoplay"), 1);
68
69
 
69
70
  // src/components/EmblaCarousel/SelectedSnapDisplay.tsx
70
71
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -102,17 +103,18 @@ var useSelectedSnapDisplay = (emblaApi) => {
102
103
  var import_clsx = __toESM(require("clsx"), 1);
103
104
  var import_jsx_runtime2 = require("react/jsx-runtime");
104
105
  var arrowButtonStyles = (0, import_clsx.default)(
105
- "appearance-none bg-transparent border cursor-pointer p-2 flex items-center justify-center size-9 rounded-full transition-colors duration-300 ease-in-out"
106
+ "appearance-none bg-transparent border cursor-pointer p-2 flex items-center justify-center size-9 rounded-full transition-colors duration-300 ease-in-out group"
106
107
  );
107
108
  var PrevButton = (props) => {
108
- const _a = props, { children, disabled } = _a, restProps = __objRest(_a, ["children", "disabled"]);
109
+ const _a = props, { children, disabled, className, iconClassName, circleChevron } = _a, restProps = __objRest(_a, ["children", "disabled", "className", "iconClassName", "circleChevron"]);
109
110
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
110
111
  "button",
111
112
  __spreadProps(__spreadValues({
112
113
  className: (0, import_clsx.default)(
113
114
  arrowButtonStyles,
114
115
  !disabled && "border-border-primary-normal hover:border-border-action-hover active:border-border-action-active",
115
- disabled && "border-border-action-disabled"
116
+ disabled && "border-border-action-disabled",
117
+ className
116
118
  ),
117
119
  type: "button"
118
120
  }, restProps), {
@@ -122,8 +124,9 @@ var PrevButton = (props) => {
122
124
  {
123
125
  className: (0, import_clsx.default)(
124
126
  "size-3 transition-colors duration-300 ease-in-out",
125
- !disabled && "text-text-primary-normal",
126
- disabled && "text-icon-primary-disabled"
127
+ !disabled && circleChevron && "text-text-primary-normal",
128
+ disabled && "text-icon-primary-disabled",
129
+ iconClassName
127
130
  ),
128
131
  viewBox: "0 0 532 532",
129
132
  children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -141,14 +144,15 @@ var PrevButton = (props) => {
141
144
  );
142
145
  };
143
146
  var NextButton = (props) => {
144
- const _a = props, { children, disabled } = _a, restProps = __objRest(_a, ["children", "disabled"]);
147
+ const _a = props, { children, disabled, className, iconClassName, circleChevron } = _a, restProps = __objRest(_a, ["children", "disabled", "className", "iconClassName", "circleChevron"]);
145
148
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
146
149
  "button",
147
150
  __spreadProps(__spreadValues({
148
151
  className: (0, import_clsx.default)(
149
152
  arrowButtonStyles,
150
153
  !disabled && "border-border-primary-normal hover:border-border-action-hover active:border-border-action-active",
151
- disabled && "border-border-action-disabled"
154
+ disabled && "border-border-action-disabled",
155
+ className
152
156
  ),
153
157
  type: "button"
154
158
  }, restProps), {
@@ -158,8 +162,9 @@ var NextButton = (props) => {
158
162
  {
159
163
  className: (0, import_clsx.default)(
160
164
  "size-3 transition-colors duration-300 ease-in-out",
161
- !disabled && "text-text-primary-normal",
162
- disabled && "text-icon-primary-disabled"
165
+ !disabled && circleChevron && "text-text-primary-normal",
166
+ disabled && "text-icon-primary-disabled",
167
+ iconClassName
163
168
  ),
164
169
  viewBox: "0 0 532 532",
165
170
  children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
@@ -223,13 +228,27 @@ var useMatchesMedia = (query) => {
223
228
  var useMatchesMobile = () => useMatchesMedia("(width < 48rem)");
224
229
 
225
230
  // src/components/EmblaCarousel/index.tsx
231
+ var import_clsx2 = __toESM(require("clsx"), 1);
226
232
  var import_jsx_runtime3 = require("react/jsx-runtime");
227
233
  var TWEEN_FACTOR_BASE = 0.2;
228
- var EmblaCarousel = ({ options, children }) => {
229
- const [emblaRef, emblaApi] = (0, import_embla_carousel_react.default)(options);
230
- const tweenFactor = (0, import_react4.useRef)(0);
231
- const tweenNodes = (0, import_react4.useRef)([]);
232
- const isMobile = useMatchesMobile();
234
+ var EmblaCarousel = ({
235
+ options,
236
+ children,
237
+ testid,
238
+ leftRightChevrons = false,
239
+ autoplay = false,
240
+ chevronThemeColor = false
241
+ }) => {
242
+ const autoplayPlugin = (0, import_embla_carousel_autoplay.default)({ delay: 4e3 });
243
+ const [emblaRef, emblaApi] = (0, import_embla_carousel_react.default)(
244
+ options,
245
+ autoplay ? [autoplayPlugin] : []
246
+ );
247
+ (0, import_react4.useEffect)(() => {
248
+ var _a, _b;
249
+ if (!emblaApi || !autoplay) return;
250
+ (_b = (_a = emblaApi.plugins()) == null ? void 0 : _a.autoplay) == null ? void 0 : _b.play();
251
+ }, [emblaApi, autoplay]);
233
252
  const {
234
253
  prevBtnDisabled,
235
254
  nextBtnDisabled,
@@ -237,21 +256,24 @@ var EmblaCarousel = ({ options, children }) => {
237
256
  onNextButtonClick
238
257
  } = usePrevNextButtons(emblaApi);
239
258
  const { selectedSnap, snapCount } = useSelectedSnapDisplay(emblaApi);
240
- const setTweenNodes = (0, import_react4.useCallback)((emblaApi2) => {
241
- tweenNodes.current = emblaApi2.slideNodes().map((slideNode) => {
259
+ const tweenFactor = (0, import_react4.useRef)(0);
260
+ const tweenNodes = (0, import_react4.useRef)([]);
261
+ const isMobile = useMatchesMobile();
262
+ const setTweenNodes = (0, import_react4.useCallback)((api) => {
263
+ tweenNodes.current = api.slideNodes().map((slideNode) => {
242
264
  return slideNode.querySelector(".embla__parallax__layer");
243
265
  });
244
266
  }, []);
245
- const setTweenFactor = (0, import_react4.useCallback)((emblaApi2) => {
246
- tweenFactor.current = TWEEN_FACTOR_BASE * emblaApi2.snapList().length;
267
+ const setTweenFactor = (0, import_react4.useCallback)((api) => {
268
+ tweenFactor.current = TWEEN_FACTOR_BASE * api.snapList().length;
247
269
  }, []);
248
270
  const tweenParallax = (0, import_react4.useCallback)(
249
- (emblaApi2, event) => {
250
- const engine = emblaApi2.internalEngine();
251
- const scrollProgress = emblaApi2.scrollProgress();
252
- const slidesInView = emblaApi2.slidesInView();
271
+ (api, event) => {
272
+ const engine = api.internalEngine();
273
+ const scrollProgress = api.scrollProgress();
274
+ const slidesInView = api.slidesInView();
253
275
  const isScrollEvent = (event == null ? void 0 : event.type) === "scroll";
254
- emblaApi2.snapList().forEach((scrollSnap, snapIndex) => {
276
+ api.snapList().forEach((scrollSnap, snapIndex) => {
255
277
  let diffToTarget = scrollSnap - scrollProgress;
256
278
  const slidesInSnap = engine.scrollSnapList.slidesBySnap[snapIndex];
257
279
  slidesInSnap.forEach((slideIndex) => {
@@ -261,12 +283,10 @@ var EmblaCarousel = ({ options, children }) => {
261
283
  const target = loopItem.target();
262
284
  if (slideIndex === loopItem.index && target !== 0) {
263
285
  const sign = Math.sign(target);
264
- if (sign === -1) {
286
+ if (sign === -1)
265
287
  diffToTarget = scrollSnap - (1 + scrollProgress);
266
- }
267
- if (sign === 1) {
288
+ if (sign === 1)
268
289
  diffToTarget = scrollSnap + (1 - scrollProgress);
269
- }
270
290
  }
271
291
  });
272
292
  }
@@ -286,13 +306,46 @@ var EmblaCarousel = ({ options, children }) => {
286
306
  setTweenFactor(emblaApi);
287
307
  tweenParallax(emblaApi);
288
308
  emblaApi.on("reinit", setTweenNodes).on("reinit", setTweenFactor).on("reinit", tweenParallax).on("scroll", tweenParallax).on("slidefocus", tweenParallax);
289
- }, [emblaApi, tweenParallax, isMobile, setTweenNodes, setTweenFactor]);
290
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("section", { className: "w-full m-auto grid gap-4", children: [
291
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "embla__viewport overflow-hidden", ref: emblaRef, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "embla__container flex touch-pan-y touch-pinch-zoom gap-mobile-layout-gap desktop:gap-desktop-layout-gap compact:gap-compact-layout-gap pb-3", children }) }),
292
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "justify-between hidden desktop:flex", children: [
309
+ }, [emblaApi, isMobile, setTweenNodes, setTweenFactor, tweenParallax]);
310
+ const handlePrev = () => {
311
+ var _a, _b;
312
+ onPrevButtonClick();
313
+ (_b = (_a = emblaApi == null ? void 0 : emblaApi.plugins()) == null ? void 0 : _a.autoplay) == null ? void 0 : _b.reset();
314
+ };
315
+ const handleNext = () => {
316
+ var _a, _b;
317
+ onNextButtonClick();
318
+ (_b = (_a = emblaApi == null ? void 0 : emblaApi.plugins()) == null ? void 0 : _a.autoplay) == null ? void 0 : _b.reset();
319
+ };
320
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("section", { className: "w-full m-auto grid gap-4 relative", "data-testid": testid, children: [
321
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "embla__viewport overflow-hidden", ref: emblaRef, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
322
+ "div",
323
+ {
324
+ className: (0, import_clsx2.default)(
325
+ "embla__container flex touch-pan-y touch-pinch-zoom",
326
+ !leftRightChevrons && "pb-3"
327
+ ),
328
+ children
329
+ }
330
+ ) }),
331
+ !leftRightChevrons ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "justify-between hidden desktop:flex", children: [
293
332
  /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex items-center gap-2", children: [
294
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(PrevButton, { onClick: onPrevButtonClick, disabled: prevBtnDisabled }),
295
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(NextButton, { onClick: onNextButtonClick, disabled: nextBtnDisabled })
333
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
334
+ PrevButton,
335
+ {
336
+ circleChevron: true,
337
+ onClick: handlePrev,
338
+ disabled: prevBtnDisabled
339
+ }
340
+ ),
341
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
342
+ NextButton,
343
+ {
344
+ circleChevron: true,
345
+ onClick: handleNext,
346
+ disabled: nextBtnDisabled
347
+ }
348
+ )
296
349
  ] }),
297
350
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
298
351
  SelectedSnapDisplay,
@@ -301,6 +354,33 @@ var EmblaCarousel = ({ options, children }) => {
301
354
  snapCount
302
355
  }
303
356
  )
357
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
358
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
359
+ PrevButton,
360
+ {
361
+ className: "absolute top-1/2 -translate-y-1/2 left-0 border-transparent! size-10! desktop:size-12!",
362
+ iconClassName: (0, import_clsx2.default)(
363
+ "size-6! desktop:size-8!",
364
+ chevronThemeColor && "text-text-link-normal group-hover:text-text-link-hover group-active:text-text-link-active",
365
+ !chevronThemeColor && "text-white group-hover:text-text-link-normal group-active:text-text-link-active"
366
+ ),
367
+ onClick: handlePrev,
368
+ disabled: prevBtnDisabled
369
+ }
370
+ ),
371
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
372
+ NextButton,
373
+ {
374
+ className: "absolute top-1/2 -translate-y-1/2 right-0 border-transparent! size-10! desktop:size-12!",
375
+ iconClassName: (0, import_clsx2.default)(
376
+ "size-6! desktop:size-8!",
377
+ chevronThemeColor && "text-text-link-normal group-hover:text-text-link-hover group-active:text-text-link-active",
378
+ !chevronThemeColor && "text-white group-hover:text-text-link-normal group-active:text-text-link-active"
379
+ ),
380
+ onClick: handleNext,
381
+ disabled: nextBtnDisabled
382
+ }
383
+ )
304
384
  ] })
305
385
  ] });
306
386
  };