@tinybigui/react 0.11.2 → 0.13.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/index.cjs CHANGED
@@ -4718,13 +4718,21 @@ var HeadlessDrawerItem = React.forwardRef(
4718
4718
  );
4719
4719
  HeadlessDrawerItem.displayName = "HeadlessDrawerItem";
4720
4720
  var DividerHeadless = React.forwardRef(
4721
- ({ orientation = "horizontal", className }, ref) => {
4721
+ ({ orientation = "horizontal", className, style }, ref) => {
4722
4722
  const { separatorProps } = reactAria.useSeparator({
4723
4723
  orientation,
4724
4724
  elementType: orientation === "vertical" ? "div" : "hr"
4725
4725
  });
4726
4726
  if (orientation === "vertical") {
4727
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...separatorProps, ref, className });
4727
+ return /* @__PURE__ */ jsxRuntime.jsx(
4728
+ "div",
4729
+ {
4730
+ ...separatorProps,
4731
+ ref,
4732
+ className,
4733
+ style
4734
+ }
4735
+ );
4728
4736
  }
4729
4737
  return /* @__PURE__ */ jsxRuntime.jsx(
4730
4738
  "hr",
@@ -4732,32 +4740,46 @@ var DividerHeadless = React.forwardRef(
4732
4740
  ...separatorProps,
4733
4741
  "aria-orientation": "horizontal",
4734
4742
  ref,
4735
- className
4743
+ className,
4744
+ style
4736
4745
  }
4737
4746
  );
4738
4747
  }
4739
4748
  );
4740
4749
  DividerHeadless.displayName = "DividerHeadless";
4741
4750
  var dividerVariants = classVarianceAuthority.cva(
4742
- // Base: always apply the MD3 outline-variant color to the border
4743
- "border-outline-variant",
4751
+ [
4752
+ // Zero border — color comes from background fill (matches md-web strategy)
4753
+ "shrink-0 border-0",
4754
+ // MD3 outline-variant color token
4755
+ "bg-outline-variant",
4756
+ // Default thickness — consumers override via the CSS custom property
4757
+ "[--md-divider-thickness:1px]"
4758
+ ],
4744
4759
  {
4745
4760
  variants: {
4746
4761
  /**
4747
4762
  * Controls the axis of the visual rule.
4763
+ *
4764
+ * horizontal — stretches to full inline width; block size is --md-divider-thickness
4765
+ * vertical — self-stretches to the block axis of the flex/grid parent;
4766
+ * inline size is --md-divider-thickness
4748
4767
  */
4749
4768
  orientation: {
4750
- horizontal: "border-t",
4751
- vertical: "border-l h-auto self-stretch"
4769
+ horizontal: "w-full h-[var(--md-divider-thickness)]",
4770
+ vertical: "self-stretch h-auto w-[var(--md-divider-thickness)]"
4752
4771
  },
4753
4772
  /**
4754
- * Inset — which end(s) are offset by 16dp per MD3 spec.
4773
+ * Inset — logical inline offset per MD3 spec (16dp = 1rem = Tailwind spacing-4).
4774
+ *
4775
+ * Uses logical properties (ms-N / me-N) for correct behaviour under RTL
4776
+ * writing modes (Arabic, Hebrew, etc.).
4755
4777
  */
4756
4778
  inset: {
4757
4779
  none: "",
4758
- start: "ml-4",
4759
- end: "mr-4",
4760
- both: "ml-4 mr-4"
4780
+ start: "ms-4",
4781
+ end: "me-4",
4782
+ both: "ms-4 me-4"
4761
4783
  }
4762
4784
  },
4763
4785
  defaultVariants: {
@@ -4767,44 +4789,15 @@ var dividerVariants = classVarianceAuthority.cva(
4767
4789
  }
4768
4790
  );
4769
4791
  var Divider = React.forwardRef(
4770
- ({ orientation = "horizontal", inset = "none", label, className }, ref) => {
4771
- if (label) {
4772
- return /* @__PURE__ */ jsxRuntime.jsxs(
4773
- "div",
4774
- {
4775
- ref,
4776
- role: "group",
4777
- "aria-label": label,
4778
- className: cn("flex items-center gap-4", className),
4779
- children: [
4780
- /* @__PURE__ */ jsxRuntime.jsx(
4781
- DividerHeadless,
4782
- {
4783
- orientation: "horizontal",
4784
- className: cn(dividerVariants({ orientation: "horizontal", inset: "none" }), "flex-1")
4785
- }
4786
- ),
4787
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-on-surface-variant text-label-large whitespace-nowrap", children: label }),
4788
- /* @__PURE__ */ jsxRuntime.jsx(
4789
- DividerHeadless,
4790
- {
4791
- orientation: "horizontal",
4792
- className: cn(dividerVariants({ orientation: "horizontal", inset: "none" }), "flex-1")
4793
- }
4794
- )
4795
- ]
4796
- }
4797
- );
4792
+ ({ orientation = "horizontal", inset = "none", className, style }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
4793
+ DividerHeadless,
4794
+ {
4795
+ ref,
4796
+ orientation,
4797
+ className: cn(dividerVariants({ orientation, inset }), className),
4798
+ ...style !== void 0 && { style }
4798
4799
  }
4799
- return /* @__PURE__ */ jsxRuntime.jsx(
4800
- DividerHeadless,
4801
- {
4802
- ref,
4803
- orientation,
4804
- className: cn(dividerVariants({ orientation, inset }), className)
4805
- }
4806
- );
4807
- }
4800
+ )
4808
4801
  );
4809
4802
  Divider.displayName = "Divider";
4810
4803
  var drawerVariants = classVarianceAuthority.cva(
@@ -13211,10 +13204,17 @@ function mapToInputProps(props) {
13211
13204
  const { orientation: _orientation, minuteStep: _minuteStep, ...inputProps } = props;
13212
13205
  return inputProps;
13213
13206
  }
13214
- function CalendarCell({ date: date$1, state }) {
13207
+ function CalendarCell({
13208
+ date: date$1,
13209
+ state,
13210
+ className,
13211
+ children
13212
+ }) {
13215
13213
  const ref = React.useRef(null);
13216
13214
  const { cellProps, buttonProps, isSelected, isDisabled, isUnavailable, formattedDate } = reactAria.useCalendarCell({ date: date$1 }, state, ref);
13217
- const { focusProps, isFocusVisible, isFocused } = reactAria.useFocusRing();
13215
+ const { focusProps, isFocusVisible } = reactAria.useFocusRing();
13216
+ const { hoverProps, isHovered } = reactAria.useHover({ isDisabled: isDisabled || isUnavailable });
13217
+ const { pressProps, isPressed } = reactAria.usePress({ isDisabled: isDisabled || isUnavailable });
13218
13218
  const isCurrentDay = date.isSameDay(date$1, date.today(date.getLocalTimeZone()));
13219
13219
  const isOutsideMonth = date$1.month !== state.visibleRange.start.month || date$1.year !== state.visibleRange.start.year;
13220
13220
  let isRangeStart = false;
@@ -13226,28 +13226,38 @@ function CalendarCell({ date: date$1, state }) {
13226
13226
  isRangeEnd = date.isSameDay(date$1, range.end);
13227
13227
  isRangeMiddle = date$1.compare(range.start) > 0 && date$1.compare(range.end) < 0;
13228
13228
  }
13229
- return /* @__PURE__ */ jsxRuntime.jsx("td", { ...cellProps, children: /* @__PURE__ */ jsxRuntime.jsx(
13229
+ return /* @__PURE__ */ jsxRuntime.jsx("td", { ...cellProps, children: /* @__PURE__ */ jsxRuntime.jsxs(
13230
13230
  "div",
13231
13231
  {
13232
- ...reactAria.mergeProps(buttonProps, focusProps),
13232
+ ...reactAria.mergeProps(buttonProps, focusProps, hoverProps, pressProps),
13233
13233
  ref,
13234
+ className,
13234
13235
  "aria-current": isCurrentDay ? "date" : void 0,
13235
- "data-selected": isSelected || void 0,
13236
- "data-today": isCurrentDay || void 0,
13237
- "data-outside-month": isOutsideMonth || void 0,
13238
- "data-range-start": isRangeStart || void 0,
13239
- "data-range-end": isRangeEnd || void 0,
13240
- "data-range-middle": isRangeMiddle || void 0,
13241
- "data-disabled": isDisabled || void 0,
13242
- "data-unavailable": isUnavailable || void 0,
13243
- "data-focused": isFocused || void 0,
13244
- "data-focus-visible": isFocusVisible || void 0,
13245
- children: formattedDate
13236
+ "data-selected": isSelected ? "" : void 0,
13237
+ "data-today": isCurrentDay ? "" : void 0,
13238
+ "data-outside-month": isOutsideMonth ? "" : void 0,
13239
+ "data-range-start": isRangeStart ? "" : void 0,
13240
+ "data-range-end": isRangeEnd ? "" : void 0,
13241
+ "data-range-middle": isRangeMiddle ? "" : void 0,
13242
+ "data-disabled": isDisabled ? "" : void 0,
13243
+ "data-unavailable": isUnavailable ? "" : void 0,
13244
+ "data-focus-visible": isFocusVisible ? "" : void 0,
13245
+ "data-hovered": isHovered ? "" : void 0,
13246
+ "data-pressed": isPressed ? "" : void 0,
13247
+ children: [
13248
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10", children: formattedDate }),
13249
+ children
13250
+ ]
13246
13251
  }
13247
13252
  ) });
13248
13253
  }
13249
13254
  CalendarCell.displayName = "CalendarCell";
13250
- function CalendarGrid({ state, firstDayOfWeek }) {
13255
+ function CalendarGrid({
13256
+ state,
13257
+ firstDayOfWeek,
13258
+ CellComponent = CalendarCell,
13259
+ WeekdayComponent
13260
+ }) {
13251
13261
  const { locale } = reactAria.useLocale();
13252
13262
  const gridOptions = firstDayOfWeek ? { firstDayOfWeek } : {};
13253
13263
  const { gridProps, headerProps, weekDays } = reactAria.useCalendarGrid(gridOptions, state);
@@ -13257,9 +13267,11 @@ function CalendarGrid({ state, firstDayOfWeek }) {
13257
13267
  firstDayOfWeek ?? void 0
13258
13268
  );
13259
13269
  return /* @__PURE__ */ jsxRuntime.jsxs("table", { ...gridProps, children: [
13260
- /* @__PURE__ */ jsxRuntime.jsx("thead", { ...headerProps, "aria-hidden": void 0, children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: weekDays.map((day, index) => /* @__PURE__ */ jsxRuntime.jsx("th", { role: "columnheader", children: day }, index)) }) }),
13270
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { ...headerProps, "aria-hidden": void 0, children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: weekDays.map(
13271
+ (day, index) => WeekdayComponent ? /* @__PURE__ */ jsxRuntime.jsx("th", { role: "columnheader", children: /* @__PURE__ */ jsxRuntime.jsx(WeekdayComponent, { label: day }) }, index) : /* @__PURE__ */ jsxRuntime.jsx("th", { role: "columnheader", children: day }, index)
13272
+ ) }) }),
13261
13273
  /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: [...new Array(weeksInMonth).keys()].map((weekIndex) => /* @__PURE__ */ jsxRuntime.jsx("tr", { children: state.getDatesInWeek(weekIndex).map(
13262
- (date, i) => date ? /* @__PURE__ */ jsxRuntime.jsx(CalendarCell, { state, date }, i) : /* @__PURE__ */ jsxRuntime.jsx("td", {}, i)
13274
+ (date, i) => date ? /* @__PURE__ */ jsxRuntime.jsx(CellComponent, { state, date }, i) : /* @__PURE__ */ jsxRuntime.jsx("td", {}, i)
13263
13275
  ) }, weekIndex)) })
13264
13276
  ] });
13265
13277
  }
@@ -13290,12 +13302,32 @@ function ChevronRightIcon() {
13290
13302
  function DropdownArrowIcon() {
13291
13303
  return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 10l5 5 5-5z" }) });
13292
13304
  }
13305
+ function DefaultTitle({ title, onClick, showDropdownIndicator }) {
13306
+ if (onClick) {
13307
+ return /* @__PURE__ */ jsxRuntime.jsxs(
13308
+ "button",
13309
+ {
13310
+ type: "button",
13311
+ onClick,
13312
+ "data-calendar-title": true,
13313
+ "aria-label": `${title}, click to select year`,
13314
+ children: [
13315
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { "aria-live": "polite", children: title }),
13316
+ showDropdownIndicator && /* @__PURE__ */ jsxRuntime.jsx(DropdownArrowIcon, {})
13317
+ ]
13318
+ }
13319
+ );
13320
+ }
13321
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-calendar-title": true, children: /* @__PURE__ */ jsxRuntime.jsx("h2", { "aria-live": "polite", children: title }) });
13322
+ }
13293
13323
  function CalendarHeader({
13294
13324
  title,
13295
13325
  prevButtonProps,
13296
13326
  nextButtonProps,
13297
13327
  onTitleClick,
13298
- showDropdownIndicator = false
13328
+ showDropdownIndicator = false,
13329
+ NavButtonComponent = NavigationButton,
13330
+ TitleComponent = DefaultTitle
13299
13331
  }) {
13300
13332
  const enhancedPrevProps = {
13301
13333
  ...prevButtonProps,
@@ -13306,22 +13338,17 @@ function CalendarHeader({
13306
13338
  "aria-label": "Next month"
13307
13339
  };
13308
13340
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-calendar-header": true, children: [
13309
- onTitleClick ? /* @__PURE__ */ jsxRuntime.jsxs(
13310
- "button",
13341
+ /* @__PURE__ */ jsxRuntime.jsx(
13342
+ TitleComponent,
13311
13343
  {
13312
- type: "button",
13344
+ title,
13313
13345
  onClick: onTitleClick,
13314
- "data-calendar-title": true,
13315
- "aria-label": `${title}, click to select year`,
13316
- children: [
13317
- /* @__PURE__ */ jsxRuntime.jsx("h2", { "aria-live": "polite", children: title }),
13318
- showDropdownIndicator && /* @__PURE__ */ jsxRuntime.jsx(DropdownArrowIcon, {})
13319
- ]
13346
+ showDropdownIndicator
13320
13347
  }
13321
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { "data-calendar-title": true, children: /* @__PURE__ */ jsxRuntime.jsx("h2", { "aria-live": "polite", children: title }) }),
13348
+ ),
13322
13349
  /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-calendar-nav": true, children: [
13323
- /* @__PURE__ */ jsxRuntime.jsx(NavigationButton, { ...enhancedPrevProps, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, {}) }),
13324
- /* @__PURE__ */ jsxRuntime.jsx(NavigationButton, { ...enhancedNextProps, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, {}) })
13350
+ /* @__PURE__ */ jsxRuntime.jsx(NavButtonComponent, { ...enhancedPrevProps, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, {}) }),
13351
+ /* @__PURE__ */ jsxRuntime.jsx(NavButtonComponent, { ...enhancedNextProps, children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, {}) })
13325
13352
  ] })
13326
13353
  ] });
13327
13354
  }
@@ -13340,7 +13367,8 @@ function YearGrid({
13340
13367
  selectedYear,
13341
13368
  onYearSelect,
13342
13369
  minYear,
13343
- maxYear
13370
+ maxYear,
13371
+ YearItemComponent
13344
13372
  }) {
13345
13373
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
13346
13374
  const startYear = minYear ?? currentYear - YEAR_RANGE_OFFSET;
@@ -13366,6 +13394,17 @@ function YearGrid({
13366
13394
  },
13367
13395
  children: years.map((year) => {
13368
13396
  const isSelected = year === selectedYear;
13397
+ if (YearItemComponent) {
13398
+ return /* @__PURE__ */ jsxRuntime.jsx(
13399
+ YearItemComponent,
13400
+ {
13401
+ year,
13402
+ isSelected,
13403
+ onSelect: onYearSelect
13404
+ },
13405
+ year
13406
+ );
13407
+ }
13369
13408
  return /* @__PURE__ */ jsxRuntime.jsx(
13370
13409
  "button",
13371
13410
  {
@@ -13373,7 +13412,7 @@ function YearGrid({
13373
13412
  role: "gridcell",
13374
13413
  "aria-selected": isSelected,
13375
13414
  "data-year-item": true,
13376
- "data-selected": isSelected || void 0,
13415
+ "data-selected": isSelected ? "" : void 0,
13377
13416
  ref: isSelected ? selectedRef : void 0,
13378
13417
  onClick: () => onYearSelect(year),
13379
13418
  children: year
@@ -13429,6 +13468,7 @@ function SingleCalendarInner({ calendarRef, ...props }) {
13429
13468
  setCurrentView("day");
13430
13469
  props.onViewChange?.("day");
13431
13470
  };
13471
+ const slots = props.slots ?? {};
13432
13472
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...calendarProps, ref: calendarRef, className: props.className, "data-view": currentView, children: [
13433
13473
  /* @__PURE__ */ jsxRuntime.jsx(
13434
13474
  CalendarHeader,
@@ -13437,14 +13477,25 @@ function SingleCalendarInner({ calendarRef, ...props }) {
13437
13477
  prevButtonProps: currentView === "day" ? prevButtonProps : { isDisabled: true },
13438
13478
  nextButtonProps: currentView === "day" ? nextButtonProps : { isDisabled: true },
13439
13479
  onTitleClick: handleTitleClick,
13440
- showDropdownIndicator: true
13480
+ showDropdownIndicator: true,
13481
+ ...slots.NavButtonComponent ? { NavButtonComponent: slots.NavButtonComponent } : {},
13482
+ ...slots.TitleComponent ? { TitleComponent: slots.TitleComponent } : {}
13441
13483
  }
13442
13484
  ),
13443
- currentView === "day" ? /* @__PURE__ */ jsxRuntime.jsx(CalendarGrid, { state, firstDayOfWeek: firstDay }) : /* @__PURE__ */ jsxRuntime.jsx(
13485
+ currentView === "day" ? /* @__PURE__ */ jsxRuntime.jsx(
13486
+ CalendarGrid,
13487
+ {
13488
+ state,
13489
+ firstDayOfWeek: firstDay,
13490
+ ...slots.CellComponent ? { CellComponent: slots.CellComponent } : {},
13491
+ ...slots.WeekdayComponent ? { WeekdayComponent: slots.WeekdayComponent } : {}
13492
+ }
13493
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
13444
13494
  YearGrid,
13445
13495
  {
13446
13496
  selectedYear: state.focusedDate.year,
13447
13497
  onYearSelect: handleYearSelect,
13498
+ ...slots.YearItemComponent ? { YearItemComponent: slots.YearItemComponent } : {},
13448
13499
  ...props.minValue ? { minYear: props.minValue.year } : {},
13449
13500
  ...props.maxValue ? { maxYear: props.maxValue.year } : {}
13450
13501
  }
@@ -13504,6 +13555,7 @@ function RangeCalendarInner({ calendarRef, ...props }) {
13504
13555
  setCurrentView("day");
13505
13556
  props.onViewChange?.("day");
13506
13557
  };
13558
+ const slots = props.slots ?? {};
13507
13559
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...calendarProps, ref: calendarRef, className: props.className, "data-view": currentView, children: [
13508
13560
  /* @__PURE__ */ jsxRuntime.jsx(
13509
13561
  CalendarHeader,
@@ -13512,14 +13564,25 @@ function RangeCalendarInner({ calendarRef, ...props }) {
13512
13564
  prevButtonProps: currentView === "day" ? prevButtonProps : { isDisabled: true },
13513
13565
  nextButtonProps: currentView === "day" ? nextButtonProps : { isDisabled: true },
13514
13566
  onTitleClick: handleTitleClick,
13515
- showDropdownIndicator: true
13567
+ showDropdownIndicator: true,
13568
+ ...slots.NavButtonComponent ? { NavButtonComponent: slots.NavButtonComponent } : {},
13569
+ ...slots.TitleComponent ? { TitleComponent: slots.TitleComponent } : {}
13516
13570
  }
13517
13571
  ),
13518
- currentView === "day" ? /* @__PURE__ */ jsxRuntime.jsx(CalendarGrid, { state, firstDayOfWeek: firstDay }) : /* @__PURE__ */ jsxRuntime.jsx(
13572
+ currentView === "day" ? /* @__PURE__ */ jsxRuntime.jsx(
13573
+ CalendarGrid,
13574
+ {
13575
+ state,
13576
+ firstDayOfWeek: firstDay,
13577
+ ...slots.CellComponent ? { CellComponent: slots.CellComponent } : {},
13578
+ ...slots.WeekdayComponent ? { WeekdayComponent: slots.WeekdayComponent } : {}
13579
+ }
13580
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
13519
13581
  YearGrid,
13520
13582
  {
13521
13583
  selectedYear: state.focusedDate.year,
13522
13584
  onYearSelect: handleYearSelect,
13585
+ ...slots.YearItemComponent ? { YearItemComponent: slots.YearItemComponent } : {},
13523
13586
  ...props.minValue ? { minYear: props.minValue.year } : {},
13524
13587
  ...props.maxValue ? { maxYear: props.maxValue.year } : {}
13525
13588
  }
@@ -13537,6 +13600,24 @@ var CalendarCore = React.forwardRef((props, forwardedRef) => {
13537
13600
  return /* @__PURE__ */ jsxRuntime.jsx(SingleCalendarInner, { ...rest, calendarRef: ref }, "single");
13538
13601
  });
13539
13602
  CalendarCore.displayName = "CalendarCore";
13603
+ function HeadlessActionButton({
13604
+ label,
13605
+ "aria-label": ariaLabel,
13606
+ onPress,
13607
+ isDisabled,
13608
+ "data-action": dataAction
13609
+ }) {
13610
+ const ref = React.useRef(null);
13611
+ const { buttonProps } = reactAria.useButton(
13612
+ {
13613
+ "aria-label": ariaLabel ?? label,
13614
+ isDisabled: isDisabled ?? false,
13615
+ ...onPress ? { onPress } : {}
13616
+ },
13617
+ ref
13618
+ );
13619
+ return /* @__PURE__ */ jsxRuntime.jsx("button", { ...buttonProps, ref, type: "button", "data-action": dataAction, children: label });
13620
+ }
13540
13621
  function DatePickerActions({
13541
13622
  cancelLabel = "Cancel",
13542
13623
  confirmLabel = "OK",
@@ -13546,37 +13627,38 @@ function DatePickerActions({
13546
13627
  onCancel,
13547
13628
  onConfirm,
13548
13629
  onClear,
13549
- className
13630
+ className,
13631
+ ButtonComponent = HeadlessActionButton
13550
13632
  }) {
13551
- const clearRef = React.useRef(null);
13552
- const cancelRef = React.useRef(null);
13553
- const confirmRef = React.useRef(null);
13554
- const { buttonProps: clearButtonProps } = reactAria.useButton(
13555
- {
13556
- "aria-label": clearLabel,
13557
- ...onClear ? { onPress: onClear } : {}
13558
- },
13559
- clearRef
13560
- );
13561
- const { buttonProps: cancelButtonProps } = reactAria.useButton(
13562
- {
13563
- "aria-label": cancelLabel,
13564
- ...onCancel ? { onPress: onCancel } : {}
13565
- },
13566
- cancelRef
13567
- );
13568
- const { buttonProps: confirmButtonProps } = reactAria.useButton(
13569
- {
13570
- "aria-label": confirmLabel,
13571
- isDisabled: isConfirmDisabled,
13572
- ...onConfirm ? { onPress: onConfirm } : {}
13573
- },
13574
- confirmRef
13575
- );
13576
13633
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, "data-actions": true, children: [
13577
- showClear && /* @__PURE__ */ jsxRuntime.jsx("button", { ...clearButtonProps, ref: clearRef, type: "button", "data-action": "clear", children: clearLabel }),
13578
- /* @__PURE__ */ jsxRuntime.jsx("button", { ...cancelButtonProps, ref: cancelRef, type: "button", "data-action": "cancel", children: cancelLabel }),
13579
- /* @__PURE__ */ jsxRuntime.jsx("button", { ...confirmButtonProps, ref: confirmRef, type: "button", "data-action": "confirm", children: confirmLabel })
13634
+ showClear && /* @__PURE__ */ jsxRuntime.jsx(
13635
+ ButtonComponent,
13636
+ {
13637
+ label: clearLabel,
13638
+ "aria-label": clearLabel,
13639
+ onPress: onClear,
13640
+ "data-action": "clear"
13641
+ }
13642
+ ),
13643
+ /* @__PURE__ */ jsxRuntime.jsx(
13644
+ ButtonComponent,
13645
+ {
13646
+ label: cancelLabel,
13647
+ "aria-label": cancelLabel,
13648
+ onPress: onCancel,
13649
+ "data-action": "cancel"
13650
+ }
13651
+ ),
13652
+ /* @__PURE__ */ jsxRuntime.jsx(
13653
+ ButtonComponent,
13654
+ {
13655
+ label: confirmLabel,
13656
+ "aria-label": confirmLabel,
13657
+ onPress: onConfirm,
13658
+ isDisabled: isConfirmDisabled,
13659
+ "data-action": "confirm"
13660
+ }
13661
+ )
13580
13662
  ] });
13581
13663
  }
13582
13664
  DatePickerActions.displayName = "DatePickerActions";
@@ -13615,21 +13697,26 @@ function CalendarTriggerIcon() {
13615
13697
  }
13616
13698
  function PopoverContent({
13617
13699
  popoverRef,
13618
- triggerRef,
13700
+ anchorRef,
13619
13701
  state,
13620
13702
  dialogProps,
13621
13703
  calendarProps,
13622
13704
  cancelLabel,
13623
13705
  confirmLabel,
13624
13706
  onCancel,
13625
- onConfirm
13707
+ onConfirm,
13708
+ slots,
13709
+ ActionButtonComponent,
13710
+ popoverClassName
13626
13711
  }) {
13627
13712
  const { popoverProps } = reactAria.usePopover(
13628
13713
  {
13629
13714
  popoverRef,
13630
- triggerRef,
13715
+ triggerRef: anchorRef,
13631
13716
  placement: "bottom start",
13632
- offset: 4
13717
+ offset: 4,
13718
+ shouldFlip: true,
13719
+ containerPadding: 12
13633
13720
  },
13634
13721
  state
13635
13722
  );
@@ -13643,7 +13730,10 @@ function PopoverContent({
13643
13730
  document.addEventListener("keydown", handleKeyDown);
13644
13731
  return () => document.removeEventListener("keydown", handleKeyDown);
13645
13732
  }, [state]);
13646
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...popoverProps, ref: popoverRef, "data-popover": true, children: [
13733
+ if (typeof document === "undefined") {
13734
+ return null;
13735
+ }
13736
+ const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { ...popoverProps, ref: popoverRef, "data-popover": true, className: cn(popoverClassName), children: [
13647
13737
  /* @__PURE__ */ jsxRuntime.jsx(reactAria.DismissButton, { onDismiss: () => state.close() }),
13648
13738
  /* @__PURE__ */ jsxRuntime.jsxs("div", { ...dialogProps, role: "dialog", children: [
13649
13739
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -13658,7 +13748,8 @@ function PopoverContent({
13658
13748
  ...calendarProps.isReadOnly ? { isReadOnly: calendarProps.isReadOnly } : {},
13659
13749
  ...calendarProps.isDateUnavailable ? { isDateUnavailable: calendarProps.isDateUnavailable } : {}
13660
13750
  },
13661
- "aria-label": calendarProps["aria-label"] ?? "Calendar"
13751
+ "aria-label": calendarProps["aria-label"] ?? "Calendar",
13752
+ ...slots ? { slots } : {}
13662
13753
  }
13663
13754
  ),
13664
13755
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -13667,12 +13758,14 @@ function PopoverContent({
13667
13758
  cancelLabel,
13668
13759
  confirmLabel,
13669
13760
  onCancel,
13670
- onConfirm
13761
+ onConfirm,
13762
+ ...ActionButtonComponent !== void 0 ? { ButtonComponent: ActionButtonComponent } : {}
13671
13763
  }
13672
13764
  )
13673
13765
  ] }),
13674
13766
  /* @__PURE__ */ jsxRuntime.jsx(reactAria.DismissButton, { onDismiss: () => state.close() })
13675
13767
  ] });
13768
+ return reactDom.createPortal(content, document.body);
13676
13769
  }
13677
13770
  var DatePickerDocked = React.forwardRef(
13678
13771
  (props, forwardedRef) => {
@@ -13682,11 +13775,15 @@ var DatePickerDocked = React.forwardRef(
13682
13775
  onCancel,
13683
13776
  onConfirm,
13684
13777
  className,
13778
+ popoverClassName,
13779
+ slots,
13780
+ ActionButtonComponent,
13685
13781
  ...datePickerProps
13686
13782
  } = props;
13687
13783
  const internalRef = React.useRef(null);
13688
13784
  const ref = forwardedRef ?? internalRef;
13689
13785
  const triggerRef = React.useRef(null);
13786
+ const groupRef = React.useRef(null);
13690
13787
  const popoverRef = React.useRef(null);
13691
13788
  const stateProps = {
13692
13789
  ...datePickerProps.value !== void 0 ? { value: datePickerProps.value } : {},
@@ -13717,7 +13814,14 @@ var DatePickerDocked = React.forwardRef(
13717
13814
  dialogProps,
13718
13815
  calendarProps
13719
13816
  } = reactAria.useDatePicker(stateProps, state, ref);
13720
- const { buttonProps: iconButtonProps } = reactAria.useButton(triggerButtonAriaProps, triggerRef);
13817
+ const { buttonProps: iconButtonProps, isPressed: isTriggerPressed } = reactAria.useButton(
13818
+ triggerButtonAriaProps,
13819
+ triggerRef
13820
+ );
13821
+ const { isFocusVisible: isTriggerFocusVisible, focusProps: triggerFocusProps } = reactAria.useFocusRing();
13822
+ const { isHovered: isTriggerHovered, hoverProps: triggerHoverProps } = reactAria.useHover({
13823
+ isDisabled: datePickerProps.isDisabled ?? false
13824
+ });
13721
13825
  const valueBeforeOpenRef = React.useRef(null);
13722
13826
  React.useEffect(() => {
13723
13827
  if (state.isOpen) {
@@ -13746,26 +13850,44 @@ var DatePickerDocked = React.forwardRef(
13746
13850
  ref,
13747
13851
  className,
13748
13852
  "data-variant": "docked",
13749
- "data-open": state.isOpen ?? void 0,
13750
- "data-disabled": datePickerProps.isDisabled ?? void 0,
13853
+ "data-open": state.isOpen ? "" : void 0,
13854
+ "data-disabled": datePickerProps.isDisabled ? "" : void 0,
13751
13855
  children: [
13752
13856
  datePickerProps.label && /* @__PURE__ */ jsxRuntime.jsx("label", { ...labelProps, "data-label": true, children: datePickerProps.label }),
13753
- /* @__PURE__ */ jsxRuntime.jsxs("div", { ...groupProps, "data-field-group": true, children: [
13857
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { ...groupProps, ref: groupRef, "data-field-group": true, children: [
13754
13858
  /* @__PURE__ */ jsxRuntime.jsx(PickerDateField, { fieldProps }),
13755
- /* @__PURE__ */ jsxRuntime.jsx("button", { ...iconButtonProps, ref: triggerRef, type: "button", "data-trigger": true, children: /* @__PURE__ */ jsxRuntime.jsx(CalendarTriggerIcon, {}) })
13859
+ /* @__PURE__ */ jsxRuntime.jsx(
13860
+ "button",
13861
+ {
13862
+ ...reactAria.mergeProps(iconButtonProps, triggerFocusProps, triggerHoverProps),
13863
+ ref: triggerRef,
13864
+ type: "button",
13865
+ "data-trigger": true,
13866
+ ...getInteractionDataAttributes({
13867
+ isHovered: isTriggerHovered,
13868
+ isFocusVisible: isTriggerFocusVisible,
13869
+ isPressed: isTriggerPressed,
13870
+ isDisabled: datePickerProps.isDisabled ?? false
13871
+ }),
13872
+ children: /* @__PURE__ */ jsxRuntime.jsx(CalendarTriggerIcon, {})
13873
+ }
13874
+ )
13756
13875
  ] }),
13757
13876
  state.isOpen && /* @__PURE__ */ jsxRuntime.jsx(
13758
13877
  PopoverContent,
13759
13878
  {
13760
13879
  popoverRef,
13761
- triggerRef,
13880
+ anchorRef: groupRef,
13762
13881
  state,
13763
13882
  dialogProps,
13764
13883
  calendarProps,
13765
13884
  cancelLabel,
13766
13885
  confirmLabel,
13767
13886
  onCancel: handleCancel,
13768
- onConfirm: handleConfirm
13887
+ onConfirm: handleConfirm,
13888
+ ...slots !== void 0 ? { slots } : {},
13889
+ ...ActionButtonComponent !== void 0 ? { ActionButtonComponent } : {},
13890
+ ...popoverClassName !== void 0 ? { popoverClassName } : {}
13769
13891
  }
13770
13892
  )
13771
13893
  ]
@@ -13774,298 +13896,570 @@ var DatePickerDocked = React.forwardRef(
13774
13896
  }
13775
13897
  );
13776
13898
  DatePickerDocked.displayName = "DatePickerDocked";
13777
- var datePickerContainerVariants = classVarianceAuthority.cva(
13899
+ var datePickerContainerVariants = classVarianceAuthority.cva("", {
13900
+ variants: {
13901
+ variant: {
13902
+ docked: "w-[360px]",
13903
+ // NOTE: measurement-derived (360dp fixed width); permitted exception
13904
+ modal: [
13905
+ "bg-surface-container-high",
13906
+ "rounded-3xl",
13907
+ "overflow-hidden",
13908
+ "w-[360px]"
13909
+ // NOTE: measurement-derived (360dp fixed width); permitted exception
13910
+ ],
13911
+ "modal-input": [
13912
+ "bg-surface-container-high",
13913
+ "rounded-3xl",
13914
+ "overflow-hidden",
13915
+ "w-[328px]"
13916
+ // NOTE: measurement-derived (328dp); permitted exception
13917
+ ]
13918
+ }
13919
+ },
13920
+ defaultVariants: {
13921
+ variant: "docked"
13922
+ }
13923
+ });
13924
+ var calendarCellVariants = classVarianceAuthority.cva([
13925
+ // Layout — 48dp circle touch target
13926
+ "relative flex items-center justify-center",
13927
+ "w-[48px] h-[48px]",
13928
+ // NOTE: measurement-derived (48dp touch target); permitted exception
13929
+ "rounded-full",
13930
+ "select-none cursor-pointer",
13931
+ "overflow-hidden",
13932
+ // clips state layer to circle
13933
+ // Typography
13934
+ "text-body-large",
13935
+ // Base text color
13936
+ "text-on-surface",
13937
+ // Effects transition for color changes (not spatial — no overshoot)
13938
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
13939
+ // Remove default focus outline — handled via calendarCellFocusRingVariants
13940
+ "focus-visible:outline-none",
13941
+ // Carries group scope for child slots
13942
+ "group/calendar-cell",
13943
+ // ── Today (unselected) ────────────────────────────────────────────────────
13944
+ "data-[today]:not([data-selected]):text-primary",
13945
+ "data-[today]:not([data-selected]):border data-[today]:not([data-selected]):border-primary",
13946
+ // ── Selected ──────────────────────────────────────────────────────────────
13947
+ "data-[selected]:bg-primary data-[selected]:text-on-primary",
13948
+ // ── Range start/end: half-pill shape (right-flat for start, left-flat for end) ──
13949
+ "data-[range-start]:rounded-r-none",
13950
+ "data-[range-end]:rounded-l-none",
13951
+ // ── Range middle ──────────────────────────────────────────────────────────
13952
+ "data-[range-middle]:bg-secondary-container",
13953
+ "data-[range-middle]:text-on-secondary-container",
13954
+ "data-[range-middle]:rounded-none",
13955
+ // ── Outside month ─────────────────────────────────────────────────────────
13956
+ "data-[outside-month]:not([data-selected]):text-on-surface-variant",
13957
+ // ── Disabled ──────────────────────────────────────────────────────────────
13958
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed",
13959
+ // ── Unavailable ───────────────────────────────────────────────────────────
13960
+ "data-[unavailable]:text-on-surface/38 data-[unavailable]:line-through"
13961
+ ]);
13962
+ var calendarCellStateLayerVariants = classVarianceAuthority.cva([
13963
+ "pointer-events-none absolute inset-0 rounded-[inherit] opacity-0",
13964
+ // Base state-layer color (unselected)
13965
+ "bg-on-surface",
13966
+ // Effects transition — spring standard fast (no spatial overshoot)
13967
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
13968
+ // Selected → state layer color switches to on-primary
13969
+ "group-data-[selected]/calendar-cell:bg-on-primary",
13970
+ // Range middle → state layer color switches to on-secondary-container
13971
+ "group-data-[range-middle]/calendar-cell:bg-on-secondary-container",
13972
+ // Interaction opacities (MD3: hover 8%, focus/pressed 10%)
13973
+ "group-data-[hovered]/calendar-cell:opacity-8",
13974
+ "group-data-[focus-visible]/calendar-cell:opacity-10",
13975
+ "group-data-[pressed]/calendar-cell:opacity-10",
13976
+ // No state layer for disabled/unavailable
13977
+ "group-data-[disabled]/calendar-cell:hidden",
13978
+ "group-data-[unavailable]/calendar-cell:hidden"
13979
+ ]);
13980
+ var calendarCellFocusRingVariants = classVarianceAuthority.cva([
13981
+ "pointer-events-none absolute inset-0 rounded-full",
13982
+ "outline outline-2 outline-offset-0 outline-secondary",
13983
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
13984
+ "opacity-0",
13985
+ "group-data-[focus-visible]/calendar-cell:opacity-100"
13986
+ ]);
13987
+ var calendarHeaderVariants = classVarianceAuthority.cva([
13988
+ "flex items-center justify-between",
13989
+ "px-3 py-2"
13990
+ // NOTE: measurement-derived padding; permitted exception
13991
+ ]);
13992
+ var navButtonVariants = classVarianceAuthority.cva([
13993
+ // Layout
13994
+ "relative flex items-center justify-center",
13995
+ "w-10 h-10 rounded-full",
13996
+ // NOTE: 40dp; permitted exception
13997
+ // Typography
13998
+ "text-on-surface-variant",
13999
+ // Reset
14000
+ "bg-transparent border-none cursor-pointer",
14001
+ "overflow-hidden",
14002
+ // Focus outline removed — ring handled by navButtonFocusRingVariants
14003
+ "focus-visible:outline-none",
14004
+ // Effects transition
14005
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14006
+ // Disabled — self-targeting
14007
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none",
14008
+ // Carries group scope
14009
+ "group/nav-button"
14010
+ ]);
14011
+ var navButtonStateLayerVariants = classVarianceAuthority.cva([
14012
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14013
+ "bg-on-surface-variant",
14014
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14015
+ "group-data-[hovered]/nav-button:opacity-8",
14016
+ "group-data-[focus-visible]/nav-button:opacity-10",
14017
+ "group-data-[pressed]/nav-button:opacity-10",
14018
+ "group-data-[disabled]/nav-button:hidden"
14019
+ ]);
14020
+ var navButtonFocusRingVariants = classVarianceAuthority.cva([
14021
+ "pointer-events-none absolute inset-0 rounded-full",
14022
+ "outline outline-2 outline-offset-0 outline-secondary",
14023
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14024
+ "opacity-0",
14025
+ "group-data-[focus-visible]/nav-button:opacity-100"
14026
+ ]);
14027
+ var calendarTitleVariants = classVarianceAuthority.cva([
14028
+ "relative flex items-center gap-0.5",
14029
+ "bg-transparent border-none cursor-pointer",
14030
+ "rounded-full px-2 py-1",
14031
+ "overflow-hidden",
14032
+ "focus-visible:outline-none",
14033
+ // Effects transition
14034
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14035
+ // Group scope
14036
+ "group/calendar-title"
14037
+ ]);
14038
+ var calendarTitleTextVariants = classVarianceAuthority.cva([
14039
+ "text-label-large text-on-surface-variant m-0 pointer-events-none"
14040
+ ]);
14041
+ var calendarTitleIconVariants = classVarianceAuthority.cva(["text-on-surface-variant pointer-events-none"]);
14042
+ var calendarTitleStateLayerVariants = classVarianceAuthority.cva([
14043
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14044
+ "bg-on-surface-variant",
14045
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14046
+ "group-data-[hovered]/calendar-title:opacity-8",
14047
+ "group-data-[focus-visible]/calendar-title:opacity-10",
14048
+ "group-data-[pressed]/calendar-title:opacity-10"
14049
+ ]);
14050
+ var yearGridVariants = classVarianceAuthority.cva([
14051
+ "grid grid-cols-3 gap-2",
14052
+ "px-3 py-2",
14053
+ "max-h-[280px] overflow-y-auto",
14054
+ // NOTE: measurement-derived max height; permitted exception
14055
+ "place-items-center"
14056
+ ]);
14057
+ var yearItemVariants = classVarianceAuthority.cva([
14058
+ // Layout
14059
+ "relative flex items-center justify-center",
14060
+ "w-[88px] h-[52px]",
14061
+ // NOTE: measurement-derived (88dp×52dp); permitted exception
14062
+ "rounded-full",
14063
+ "cursor-pointer select-none",
14064
+ "overflow-hidden",
14065
+ // Typography
14066
+ "text-body-large",
14067
+ // Reset
14068
+ "bg-transparent border-none",
14069
+ // Focus outline removed — ring handled by yearItemFocusRingVariants
14070
+ "focus-visible:outline-none",
14071
+ // Effects transition
14072
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14073
+ // Group scope
14074
+ "group/year-item",
14075
+ // ── Unselected (base) ─────────────────────────────────────────────────────
14076
+ "text-on-surface-variant",
14077
+ // ── Selected ──────────────────────────────────────────────────────────────
14078
+ "data-[selected]:bg-primary data-[selected]:text-on-primary",
14079
+ // ── Disabled ──────────────────────────────────────────────────────────────
14080
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none"
14081
+ ]);
14082
+ var yearItemStateLayerVariants = classVarianceAuthority.cva([
14083
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14084
+ "bg-on-surface-variant",
14085
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14086
+ // Selected → state layer switches color
14087
+ "group-data-[selected]/year-item:bg-on-primary",
14088
+ // Interaction opacities
14089
+ "group-data-[hovered]/year-item:opacity-8",
14090
+ "group-data-[focus-visible]/year-item:opacity-10",
14091
+ "group-data-[pressed]/year-item:opacity-10",
14092
+ "group-data-[disabled]/year-item:hidden"
14093
+ ]);
14094
+ var yearItemFocusRingVariants = classVarianceAuthority.cva([
14095
+ "pointer-events-none absolute inset-0 rounded-full",
14096
+ "outline outline-2 outline-offset-0 outline-secondary",
14097
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14098
+ "opacity-0",
14099
+ "group-data-[focus-visible]/year-item:opacity-100"
14100
+ ]);
14101
+ var weekdayVariants = classVarianceAuthority.cva([
14102
+ "text-body-small text-on-surface-variant font-normal",
14103
+ "w-[48px] h-[48px]",
14104
+ // NOTE: measurement-derived; permitted exception
14105
+ "flex items-center justify-center",
14106
+ "select-none"
14107
+ ]);
14108
+ var calendarDividerVariants = classVarianceAuthority.cva(["border-t border-outline-variant w-full"]);
14109
+ var actionRowVariants = classVarianceAuthority.cva([
14110
+ "flex items-center justify-end gap-2",
14111
+ "px-3 py-2",
14112
+ "h-12"
14113
+ // NOTE: measurement-derived (48dp action row height); permitted exception
14114
+ ]);
14115
+ var actionButtonVariants = classVarianceAuthority.cva([
14116
+ // Layout
14117
+ "relative flex items-center justify-center",
14118
+ "rounded-full px-3 py-2 min-h-[48px]",
14119
+ // NOTE: 48dp min touch; permitted exception
14120
+ // Typography + color
14121
+ "text-label-large text-primary",
14122
+ // Reset
14123
+ "bg-transparent border-none cursor-pointer",
14124
+ "overflow-hidden",
14125
+ "focus-visible:outline-none",
14126
+ // Effects transition
14127
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14128
+ // Group scope
14129
+ "group/action-button",
14130
+ // Disabled
14131
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none"
14132
+ ]);
14133
+ var actionButtonStateLayerVariants = classVarianceAuthority.cva([
14134
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14135
+ "bg-primary",
14136
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14137
+ "group-data-[hovered]/action-button:opacity-8",
14138
+ "group-data-[focus-visible]/action-button:opacity-10",
14139
+ "group-data-[pressed]/action-button:opacity-10",
14140
+ "group-data-[disabled]/action-button:hidden"
14141
+ ]);
14142
+ var actionButtonFocusRingVariants = classVarianceAuthority.cva([
14143
+ "pointer-events-none absolute inset-0 rounded-full",
14144
+ "outline outline-2 outline-offset-0 outline-primary",
14145
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14146
+ "opacity-0",
14147
+ "group-data-[focus-visible]/action-button:opacity-100"
14148
+ ]);
14149
+ var modalDialogVariants = classVarianceAuthority.cva(
13778
14150
  [
13779
- "bg-surface-container-high",
13780
- "rounded-3xl",
13781
- // NOTE: shape.extra-large = 28dp; mapped via @theme token
13782
- "overflow-hidden"
14151
+ "bg-surface-container-high rounded-3xl overflow-hidden",
14152
+ "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
14153
+ "z-50",
14154
+ "max-h-[90vh] overflow-y-auto"
13783
14155
  ],
13784
14156
  {
13785
14157
  variants: {
13786
14158
  variant: {
13787
- docked: "w-[360px]",
13788
- // NOTE: measurement-derived value from MD3 spec (360dp fixed width); permitted exception
13789
14159
  modal: "w-[360px]",
13790
- // NOTE: measurement-derived value from MD3 spec (360dp fixed width); permitted exception
14160
+ // NOTE: measurement-derived; permitted exception
13791
14161
  "modal-input": "w-[328px]"
13792
- // NOTE: measurement-derived value from MD3 spec (328dp); permitted exception
14162
+ // NOTE: measurement-derived; permitted exception
13793
14163
  }
13794
14164
  },
13795
14165
  defaultVariants: {
13796
- variant: "docked"
14166
+ variant: "modal"
13797
14167
  }
13798
14168
  }
13799
14169
  );
13800
- var calendarCellVariants = classVarianceAuthority.cva(
13801
- [
13802
- "w-[48px]",
13803
- // NOTE: measurement-derived (48dp touch target); permitted exception
13804
- "h-[48px]",
13805
- // NOTE: measurement-derived (48dp); permitted exception
13806
- "rounded-full",
13807
- // shape.full = circle
13808
- "flex",
13809
- "items-center",
13810
- "justify-center",
13811
- "text-body-large",
13812
- "relative",
13813
- "cursor-pointer",
13814
- "select-none",
13815
- "transition-colors",
13816
- "duration-spring-standard-fast-effects",
13817
- "ease-spring-standard-fast-effects"
13818
- ],
13819
- {
13820
- variants: {
13821
- cellType: {
13822
- default: "text-on-surface",
13823
- today: "text-primary border border-primary",
13824
- selected: "bg-primary text-on-primary",
13825
- "selected-range-middle": "bg-secondary-container text-on-secondary-container rounded-none",
13826
- "outside-month": "text-on-surface-variant",
13827
- disabled: "text-on-surface/38 cursor-not-allowed"
13828
- },
13829
- state: {
13830
- enabled: "",
13831
- hovered: "",
13832
- focused: "",
13833
- pressed: ""
13834
- }
13835
- },
13836
- compoundVariants: [
13837
- // Default cell states
13838
- {
13839
- cellType: "default",
13840
- state: "hovered",
13841
- className: "bg-on-surface/8"
13842
- },
13843
- {
13844
- cellType: "default",
13845
- state: "focused",
13846
- className: "bg-on-surface/10 ring-2 ring-on-surface"
13847
- },
13848
- {
13849
- cellType: "default",
13850
- state: "pressed",
13851
- className: "bg-on-surface/10"
13852
- },
13853
- // Today cell states
13854
- {
13855
- cellType: "today",
13856
- state: "hovered",
13857
- className: "bg-primary/8"
13858
- },
13859
- {
13860
- cellType: "today",
13861
- state: "focused",
13862
- className: "bg-primary/10"
13863
- },
13864
- {
13865
- cellType: "today",
13866
- state: "pressed",
13867
- className: "bg-primary/10"
13868
- },
13869
- // Selected cell states
13870
- {
13871
- cellType: "selected",
13872
- state: "hovered",
13873
- className: "bg-primary shadow-sm"
13874
- },
13875
- {
13876
- cellType: "selected",
13877
- state: "focused",
13878
- className: "bg-primary shadow-sm"
13879
- },
13880
- {
13881
- cellType: "selected",
13882
- state: "pressed",
13883
- className: "bg-primary shadow-sm"
13884
- },
13885
- // Range middle states
13886
- {
13887
- cellType: "selected-range-middle",
13888
- state: "hovered",
13889
- className: "bg-secondary-container/80"
13890
- },
13891
- {
13892
- cellType: "selected-range-middle",
13893
- state: "focused",
13894
- className: "bg-secondary-container/80"
13895
- }
13896
- ],
13897
- defaultVariants: {
13898
- cellType: "default",
13899
- state: "enabled"
13900
- }
13901
- }
13902
- );
13903
- var datePickerHeaderVariants = classVarianceAuthority.cva(
13904
- ["px-6", "pt-4", "pb-3"],
14170
+ var modalHeaderVariants = classVarianceAuthority.cva([
14171
+ "flex items-start justify-between",
14172
+ "px-6 pt-4 pb-3"
13905
14173
  // NOTE: measurement-derived padding; permitted exception
13906
- {
13907
- variants: {
13908
- variant: {
13909
- docked: "h-[56px] px-3 flex items-center",
13910
- // NOTE: measurement-derived (56dp header); permitted exception
13911
- modal: "h-auto",
13912
- "modal-input": "h-auto"
13913
- }
13914
- },
13915
- defaultVariants: {
13916
- variant: "docked"
13917
- }
13918
- }
13919
- );
13920
- var datePickerNavVariants = classVarianceAuthority.cva(
13921
- ["text-on-surface-variant", "flex", "items-center", "gap-1"],
13922
- {
13923
- variants: {
13924
- state: {
13925
- enabled: "",
13926
- hovered: "bg-on-surface-variant/8",
13927
- focused: "bg-on-surface-variant/10",
13928
- pressed: "bg-on-surface-variant/10",
13929
- disabled: "text-on-surface/38 cursor-not-allowed"
13930
- }
13931
- },
13932
- defaultVariants: {
13933
- state: "enabled"
13934
- }
13935
- }
13936
- );
13937
- var yearItemVariants = classVarianceAuthority.cva(
13938
- [
13939
- "w-[88px]",
13940
- // NOTE: measurement-derived (88dp); permitted exception
13941
- "h-[52px]",
13942
- // NOTE: measurement-derived (52dp); permitted exception
13943
- "rounded-full",
13944
- // pill shape
13945
- "flex",
13946
- "items-center",
13947
- "justify-center",
13948
- "text-body-large",
13949
- "cursor-pointer",
13950
- "transition-colors",
13951
- "duration-spring-standard-fast-effects",
13952
- "ease-spring-standard-fast-effects"
13953
- ],
13954
- {
13955
- variants: {
13956
- selected: {
13957
- true: "bg-primary text-on-primary",
13958
- false: "text-on-surface-variant"
13959
- },
13960
- state: {
13961
- enabled: "",
13962
- hovered: "",
13963
- focused: "",
13964
- pressed: "",
13965
- disabled: "text-on-surface/38 cursor-not-allowed"
13966
- }
13967
- },
13968
- compoundVariants: [
13969
- {
13970
- selected: false,
13971
- state: "hovered",
13972
- className: "bg-on-surface-variant/8"
13973
- },
13974
- {
13975
- selected: false,
13976
- state: "focused",
13977
- className: "bg-on-surface-variant/10"
13978
- },
13979
- {
13980
- selected: true,
13981
- state: "hovered",
13982
- className: "bg-primary/90"
13983
- },
13984
- {
13985
- selected: true,
13986
- state: "focused",
13987
- className: "bg-primary/90"
13988
- }
13989
- ],
13990
- defaultVariants: {
13991
- selected: false,
13992
- state: "enabled"
13993
- }
13994
- }
13995
- );
13996
- var datePickerDividerVariants = classVarianceAuthority.cva(["border-outline-variant", "border-t", "w-full"]);
13997
- var datePickerActionVariants = classVarianceAuthority.cva([
13998
- "flex",
13999
- "items-center",
14000
- "justify-end",
14001
- "gap-2",
14002
- "px-3",
14003
- "py-2",
14004
- "h-12"
14005
- // NOTE: measurement-derived (48dp action row height); permitted exception
14006
14174
  ]);
14007
- var datePickerActionButtonVariants = classVarianceAuthority.cva([
14008
- "text-primary",
14009
- "text-label-large",
14010
- "rounded-full",
14011
- "px-3",
14012
- "py-2",
14013
- "transition-colors",
14014
- "duration-spring-standard-fast-effects",
14015
- "ease-spring-standard-fast-effects",
14016
- "hover:bg-primary/8",
14017
- "focus-visible:bg-primary/10",
14018
- "active:bg-primary/10"
14175
+ var headlineVariants = classVarianceAuthority.cva(["text-label-large text-on-surface-variant m-0"]);
14176
+ var supportingTextVariants = classVarianceAuthority.cva([
14177
+ "text-headline-large text-on-surface mt-9 m-0"
14178
+ // NOTE: measurement-derived mt; permitted exception
14019
14179
  ]);
14020
- var datePickerWeekdayVariants = classVarianceAuthority.cva([
14021
- "text-body-small",
14022
- "text-on-surface",
14023
- "font-normal",
14024
- "w-[48px]",
14025
- // NOTE: measurement-derived (48dp column width); permitted exception
14026
- "h-[48px]",
14027
- // NOTE: measurement-derived (48dp row height); permitted exception
14028
- "text-center"
14180
+ var modeToggleVariants = classVarianceAuthority.cva([
14181
+ "relative flex items-center justify-center",
14182
+ "w-12 h-12 rounded-full",
14183
+ // NOTE: 48dp; permitted exception
14184
+ "text-on-surface-variant",
14185
+ "bg-transparent border-none cursor-pointer self-end",
14186
+ "overflow-hidden",
14187
+ "focus-visible:outline-none",
14188
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14189
+ "group/mode-toggle"
14029
14190
  ]);
14030
- var datePickerRangeIndicatorVariants = classVarianceAuthority.cva([
14031
- "bg-secondary-container",
14032
- "h-[48px]",
14033
- // NOTE: measurement-derived (48dp range indicator height); permitted exception
14034
- "rounded-none"
14191
+ var modeToggleStateLayerVariants = classVarianceAuthority.cva([
14192
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14193
+ "bg-on-surface-variant",
14194
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14195
+ "group-data-[hovered]/mode-toggle:opacity-8",
14196
+ "group-data-[focus-visible]/mode-toggle:opacity-10",
14197
+ "group-data-[pressed]/mode-toggle:opacity-10"
14035
14198
  ]);
14036
- var datePickerHeadlineVariants = classVarianceAuthority.cva([], {
14037
- variants: {
14038
- variant: {
14039
- docked: "",
14040
- modal: ["text-headline-small", "text-on-surface"],
14041
- "modal-input": ["text-headline-small", "text-on-surface"]
14042
- }
14043
- },
14044
- defaultVariants: {
14045
- variant: "modal"
14046
- }
14047
- });
14048
- var datePickerSupportingTextVariants = classVarianceAuthority.cva([
14049
- "text-label-large",
14050
- "text-on-surface-variant"
14199
+ var scrimVariants2 = classVarianceAuthority.cva([
14200
+ "fixed inset-0 z-40",
14201
+ "bg-scrim opacity-32",
14202
+ "transition-opacity duration-medium2 ease-standard"
14051
14203
  ]);
14052
- var datePickerScrimVariants = classVarianceAuthority.cva([
14053
- "fixed",
14054
- "inset-0",
14055
- "z-40",
14056
- "bg-scrim",
14057
- "opacity-32",
14058
- "transition-opacity",
14059
- "duration-medium2",
14060
- "ease-standard"
14204
+ var dateInputFieldVariants = classVarianceAuthority.cva(["px-6 py-2"]);
14205
+ var dateInputFieldGroupVariants = classVarianceAuthority.cva([
14206
+ "flex items-center",
14207
+ "border border-outline rounded-sm",
14208
+ "px-4 py-3",
14209
+ // NOTE: measurement-derived; permitted exception
14210
+ "text-body-large text-on-surface",
14211
+ // Focus state (data-focused on parent wrapper)
14212
+ "peer-data-[focused]:border-2 peer-data-[focused]:border-primary",
14213
+ // Invalid state
14214
+ "peer-data-[invalid]:border-error peer-data-[invalid]:border-2"
14215
+ ]);
14216
+ var dateInputLabelVariants = classVarianceAuthority.cva(["text-body-small text-on-surface-variant block mb-1"]);
14217
+ var dateInputErrorVariants = classVarianceAuthority.cva(["text-body-small text-error mt-1"]);
14218
+ var dockedFieldGroupVariants = classVarianceAuthority.cva([
14219
+ "flex items-center",
14220
+ "border border-outline rounded",
14221
+ "h-14",
14222
+ // NOTE: measurement-derived (56dp); permitted exception
14223
+ "px-3 gap-2",
14224
+ "bg-transparent",
14225
+ // Focus-within: promote to primary 2dp border
14226
+ "focus-within:border-primary focus-within:border-2"
14227
+ ]);
14228
+ var dockedTriggerVariants = classVarianceAuthority.cva([
14229
+ "relative flex items-center justify-center",
14230
+ "w-10 h-10 rounded-full",
14231
+ // NOTE: 40dp; permitted exception
14232
+ "text-on-surface-variant",
14233
+ "bg-transparent border-none cursor-pointer",
14234
+ "overflow-hidden",
14235
+ "focus-visible:outline-none",
14236
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14237
+ "group/docked-trigger"
14238
+ ]);
14239
+ var dockedTriggerStateLayerVariants = classVarianceAuthority.cva([
14240
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14241
+ "bg-on-surface-variant",
14242
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14243
+ "group-data-[hovered]/docked-trigger:opacity-8",
14244
+ "group-data-[focus-visible]/docked-trigger:opacity-10",
14245
+ "group-data-[pressed]/docked-trigger:opacity-10"
14246
+ ]);
14247
+ var popoverVariants = classVarianceAuthority.cva([
14248
+ "bg-surface-container-high rounded-3xl",
14249
+ "shadow-elevation-2 overflow-hidden",
14250
+ "z-50 w-[360px]"
14061
14251
  ]);
14062
- var CALENDAR_STYLES = [
14063
- // ── Label ─────────────────────────────────────────────────────────────────
14252
+ var dockedLabelVariants = classVarianceAuthority.cva(["text-body-small text-on-surface-variant block mb-1"]);
14253
+ var dateFieldVariants = classVarianceAuthority.cva([
14254
+ "flex items-center flex-1",
14255
+ "text-body-large text-on-surface"
14256
+ ]);
14257
+ var dateSegmentPlaceholderVariants = classVarianceAuthority.cva(["text-on-surface-variant"]);
14258
+ function StyledCalendarCell({ date, state }) {
14259
+ return /* @__PURE__ */ jsxRuntime.jsxs(CalendarCell, { date, state, className: cn(calendarCellVariants()), children: [
14260
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(calendarCellStateLayerVariants()), "aria-hidden": "true" }),
14261
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(calendarCellFocusRingVariants()), "aria-hidden": "true" })
14262
+ ] });
14263
+ }
14264
+ StyledCalendarCell.displayName = "StyledCalendarCell";
14265
+ function StyledNavButton({
14266
+ children,
14267
+ isDisabled,
14268
+ onPress,
14269
+ "aria-label": ariaLabel
14270
+ }) {
14271
+ const ref = React.useRef(null);
14272
+ const { buttonProps, isPressed } = reactAria.useButton(
14273
+ {
14274
+ isDisabled: isDisabled ?? false,
14275
+ ...onPress ? { onPress } : {},
14276
+ ...ariaLabel ? { "aria-label": ariaLabel } : {}
14277
+ },
14278
+ ref
14279
+ );
14280
+ const { isFocusVisible, focusProps } = reactAria.useFocusRing();
14281
+ const { isHovered, hoverProps } = reactAria.useHover({ isDisabled: isDisabled ?? false });
14282
+ return /* @__PURE__ */ jsxRuntime.jsxs(
14283
+ "button",
14284
+ {
14285
+ ...reactAria.mergeProps(buttonProps, focusProps, hoverProps),
14286
+ ref,
14287
+ type: "button",
14288
+ className: cn(navButtonVariants()),
14289
+ ...getInteractionDataAttributes({
14290
+ isHovered,
14291
+ isFocusVisible,
14292
+ isPressed,
14293
+ isDisabled: isDisabled ?? false
14294
+ }),
14295
+ children: [
14296
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(navButtonStateLayerVariants()), "aria-hidden": "true" }),
14297
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(navButtonFocusRingVariants()), "aria-hidden": "true" }),
14298
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10 flex items-center justify-center", children })
14299
+ ]
14300
+ }
14301
+ );
14302
+ }
14303
+ StyledNavButton.displayName = "StyledNavButton";
14304
+ function StyledCalendarTitle({
14305
+ title,
14306
+ onClick,
14307
+ showDropdownIndicator
14308
+ }) {
14309
+ const ref = React.useRef(null);
14310
+ const { isFocusVisible, focusProps } = reactAria.useFocusRing();
14311
+ const { isHovered, hoverProps } = reactAria.useHover({});
14312
+ const { pressProps, isPressed } = reactAria.usePress({});
14313
+ if (onClick) {
14314
+ return /* @__PURE__ */ jsxRuntime.jsxs(
14315
+ "button",
14316
+ {
14317
+ ...reactAria.mergeProps(focusProps, hoverProps, pressProps),
14318
+ ref,
14319
+ type: "button",
14320
+ className: cn(calendarTitleVariants()),
14321
+ "aria-label": `${title}, click to select year`,
14322
+ onClick,
14323
+ ...getInteractionDataAttributes({ isHovered, isFocusVisible, isPressed }),
14324
+ children: [
14325
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(calendarTitleStateLayerVariants()), "aria-hidden": "true" }),
14326
+ /* @__PURE__ */ jsxRuntime.jsx("h2", { "aria-live": "polite", className: cn(calendarTitleTextVariants()), children: title }),
14327
+ showDropdownIndicator && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(calendarTitleIconVariants()), children: /* @__PURE__ */ jsxRuntime.jsx(DropdownArrowIcon, {}) })
14328
+ ]
14329
+ }
14330
+ );
14331
+ }
14332
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(calendarTitleVariants(), "cursor-default"), children: /* @__PURE__ */ jsxRuntime.jsx("h2", { "aria-live": "polite", className: cn(calendarTitleTextVariants()), children: title }) });
14333
+ }
14334
+ StyledCalendarTitle.displayName = "StyledCalendarTitle";
14335
+ calendarHeaderVariants();
14336
+ function StyledYearItem({
14337
+ year,
14338
+ isSelected,
14339
+ onSelect
14340
+ }) {
14341
+ const ref = React.useRef(null);
14342
+ const { isFocusVisible, focusProps } = reactAria.useFocusRing();
14343
+ const { isHovered, hoverProps } = reactAria.useHover({});
14344
+ const { pressProps, isPressed } = reactAria.usePress({});
14345
+ return /* @__PURE__ */ jsxRuntime.jsxs(
14346
+ "button",
14347
+ {
14348
+ ...reactAria.mergeProps(focusProps, hoverProps, pressProps),
14349
+ ref,
14350
+ type: "button",
14351
+ role: "gridcell",
14352
+ "aria-selected": isSelected,
14353
+ className: cn(yearItemVariants()),
14354
+ onClick: () => onSelect(year),
14355
+ ...getInteractionDataAttributes({
14356
+ isHovered,
14357
+ isFocusVisible,
14358
+ isPressed,
14359
+ isSelected
14360
+ }),
14361
+ children: [
14362
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(yearItemStateLayerVariants()), "aria-hidden": "true" }),
14363
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(yearItemFocusRingVariants()), "aria-hidden": "true" }),
14364
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10", children: year })
14365
+ ]
14366
+ }
14367
+ );
14368
+ }
14369
+ StyledYearItem.displayName = "StyledYearItem";
14370
+ function StyledWeekday({ label }) {
14371
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(weekdayVariants()), children: label });
14372
+ }
14373
+ StyledWeekday.displayName = "StyledWeekday";
14374
+ function StyledActionButton({
14375
+ label,
14376
+ "aria-label": ariaLabel,
14377
+ onPress,
14378
+ isDisabled,
14379
+ "data-action": dataAction
14380
+ }) {
14381
+ const ref = React.useRef(null);
14382
+ const { buttonProps, isPressed } = reactAria.useButton(
14383
+ {
14384
+ "aria-label": ariaLabel ?? label,
14385
+ isDisabled: isDisabled ?? false,
14386
+ ...onPress ? { onPress } : {}
14387
+ },
14388
+ ref
14389
+ );
14390
+ const { isFocusVisible, focusProps } = reactAria.useFocusRing();
14391
+ const { isHovered, hoverProps } = reactAria.useHover({ isDisabled: isDisabled ?? false });
14392
+ return /* @__PURE__ */ jsxRuntime.jsxs(
14393
+ "button",
14394
+ {
14395
+ ...reactAria.mergeProps(buttonProps, focusProps, hoverProps),
14396
+ ref,
14397
+ type: "button",
14398
+ "data-action": dataAction,
14399
+ className: cn(actionButtonVariants()),
14400
+ ...getInteractionDataAttributes({
14401
+ isHovered,
14402
+ isFocusVisible,
14403
+ isPressed,
14404
+ isDisabled: isDisabled ?? false
14405
+ }),
14406
+ children: [
14407
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(actionButtonStateLayerVariants()), "aria-hidden": "true" }),
14408
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(actionButtonFocusRingVariants()), "aria-hidden": "true" }),
14409
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "pointer-events-none relative z-10", children: label })
14410
+ ]
14411
+ }
14412
+ );
14413
+ }
14414
+ StyledActionButton.displayName = "StyledActionButton";
14415
+
14416
+ // src/components/DatePicker/datePickerStructuralStyles.ts
14417
+ var CALENDAR_HEADER_STRUCTURAL = [
14418
+ "[&_[data-calendar-header]]:flex",
14419
+ "[&_[data-calendar-header]]:items-center",
14420
+ "[&_[data-calendar-header]]:justify-between",
14421
+ "[&_[data-calendar-header]]:px-3",
14422
+ "[&_[data-calendar-header]]:py-2",
14423
+ // Nav group
14424
+ "[&_[data-calendar-nav]]:flex",
14425
+ "[&_[data-calendar-nav]]:items-center",
14426
+ "[&_[data-calendar-nav]]:gap-1"
14427
+ ];
14428
+ var CALENDAR_GRID_STRUCTURAL = [
14429
+ // Table resets
14430
+ "[&_table]:border-collapse",
14431
+ // Center the fixed-width table so 7×48px = 336px is equally inset within 360px
14432
+ "[&_table]:mx-auto",
14433
+ "[&_th]:p-0",
14434
+ "[&_td]:p-0"
14435
+ ];
14436
+ var YEAR_GRID_STRUCTURAL = [
14437
+ "[&_[data-year-grid]]:grid",
14438
+ "[&_[data-year-grid]]:grid-cols-3",
14439
+ "[&_[data-year-grid]]:gap-2",
14440
+ "[&_[data-year-grid]]:px-3",
14441
+ "[&_[data-year-grid]]:py-2",
14442
+ "[&_[data-year-grid]]:max-h-[280px]",
14443
+ "[&_[data-year-grid]]:overflow-y-auto",
14444
+ "[&_[data-year-grid]]:place-items-center"
14445
+ ];
14446
+ var DIVIDER_STRUCTURAL = ["[&_hr[data-divider]]:border-outline-variant"];
14447
+ var ACTION_ROW_STRUCTURAL = [
14448
+ "[&_[data-actions]]:flex",
14449
+ "[&_[data-actions]]:items-center",
14450
+ "[&_[data-actions]]:justify-end",
14451
+ "[&_[data-actions]]:gap-2",
14452
+ "[&_[data-actions]]:px-3",
14453
+ "[&_[data-actions]]:py-2",
14454
+ "[&_[data-actions]]:h-12"
14455
+ ];
14456
+ var DOCKED_LABEL_STRUCTURAL = [
14064
14457
  "[&_[data-label]]:text-body-small",
14065
14458
  "[&_[data-label]]:text-on-surface-variant",
14066
14459
  "[&_[data-label]]:mb-1",
14067
- "[&_[data-label]]:block",
14068
- // ── Field group (outlined text field container) ───────────────────────────
14460
+ "[&_[data-label]]:block"
14461
+ ];
14462
+ var DOCKED_FIELD_STRUCTURAL = [
14069
14463
  "[&_[data-field-group]]:flex",
14070
14464
  "[&_[data-field-group]]:items-center",
14071
14465
  "[&_[data-field-group]]:border",
@@ -14077,15 +14471,16 @@ var CALENDAR_STYLES = [
14077
14471
  "[&_[data-field-group]]:bg-transparent",
14078
14472
  "[&_[data-field-group]:focus-within]:border-primary",
14079
14473
  "[&_[data-field-group]:focus-within]:border-2",
14080
- // ── Date field segments (inline rendering) ────────────────────────────────
14081
14474
  "[&_[data-field]]:flex",
14082
14475
  "[&_[data-field]]:items-center",
14083
14476
  "[&_[data-field]]:flex-1",
14084
14477
  "[&_[data-field]]:text-body-large",
14085
14478
  "[&_[data-field]]:text-on-surface",
14086
14479
  "[&_[data-segment]]:outline-none",
14087
- "[&_[data-segment][data-placeholder]]:text-on-surface-variant",
14088
- // ── Trigger button (calendar icon) ────────────────────────────────────────
14480
+ "[&_[data-segment][data-placeholder]]:text-on-surface-variant"
14481
+ ];
14482
+ var DOCKED_TRIGGER_STRUCTURAL = [
14483
+ "[&_[data-trigger]]:relative",
14089
14484
  "[&_[data-trigger]]:flex",
14090
14485
  "[&_[data-trigger]]:items-center",
14091
14486
  "[&_[data-trigger]]:justify-center",
@@ -14093,178 +14488,109 @@ var CALENDAR_STYLES = [
14093
14488
  "[&_[data-trigger]]:h-10",
14094
14489
  "[&_[data-trigger]]:rounded-full",
14095
14490
  "[&_[data-trigger]]:text-on-surface-variant",
14491
+ "[&_[data-trigger]]:bg-transparent",
14492
+ "[&_[data-trigger]]:border-none",
14493
+ "[&_[data-trigger]]:cursor-pointer",
14096
14494
  "[&_[data-trigger]]:transition-colors",
14097
14495
  "[&_[data-trigger]]:duration-spring-standard-fast-effects",
14098
14496
  "[&_[data-trigger]]:ease-spring-standard-fast-effects",
14099
- "[&_[data-trigger]:hover]:bg-on-surface/8",
14100
- // ── Popover ───────────────────────────────────────────────────────────────
14101
- "[&_[data-popover]]:bg-surface-container-high",
14102
- "[&_[data-popover]]:rounded-3xl",
14103
- "[&_[data-popover]]:mt-1",
14104
- "[&_[data-popover]]:shadow-elevation-2",
14105
- "[&_[data-popover]]:overflow-hidden",
14106
- "[&_[data-popover]]:z-50",
14107
- // ── Calendar header ───────────────────────────────────────────────────────
14108
- "[&_[data-calendar-header]]:flex",
14109
- "[&_[data-calendar-header]]:items-center",
14110
- "[&_[data-calendar-header]]:justify-between",
14111
- "[&_[data-calendar-header]]:px-3",
14112
- "[&_[data-calendar-header]]:py-2",
14113
- // ── Calendar title (month/year label) ─────────────────────────────────────
14114
- "[&_[data-calendar-title]]:flex",
14115
- "[&_[data-calendar-title]]:items-center",
14116
- "[&_[data-calendar-title]]:gap-0.5",
14117
- "[&_[data-calendar-title]]:bg-transparent",
14118
- "[&_[data-calendar-title]]:border-none",
14119
- "[&_[data-calendar-title]]:cursor-pointer",
14120
- "[&_[data-calendar-title]]:rounded-full",
14121
- "[&_[data-calendar-title]]:px-2",
14122
- "[&_[data-calendar-title]]:py-1",
14123
- "[&_[data-calendar-title]]:transition-colors",
14124
- "[&_[data-calendar-title]]:duration-spring-standard-fast-effects",
14125
- "[&_[data-calendar-title]]:ease-spring-standard-fast-effects",
14126
- "[&_[data-calendar-title]:hover]:bg-on-surface/8",
14127
- "[&_[data-calendar-title]_h2]:text-label-large",
14128
- "[&_[data-calendar-title]_h2]:text-on-surface-variant",
14129
- "[&_[data-calendar-title]_h2]:m-0",
14130
- "[&_[data-calendar-title]_svg]:text-on-surface-variant",
14131
- // ── Calendar navigation buttons ───────────────────────────────────────────
14132
- "[&_[data-calendar-nav]]:flex",
14133
- "[&_[data-calendar-nav]]:items-center",
14134
- "[&_[data-calendar-nav]]:gap-1",
14135
- "[&_[data-nav-button]]:w-10",
14136
- "[&_[data-nav-button]]:h-10",
14137
- "[&_[data-nav-button]]:rounded-full",
14138
- "[&_[data-nav-button]]:flex",
14139
- "[&_[data-nav-button]]:items-center",
14140
- "[&_[data-nav-button]]:justify-center",
14141
- "[&_[data-nav-button]]:text-on-surface-variant",
14142
- "[&_[data-nav-button]]:bg-transparent",
14143
- "[&_[data-nav-button]]:border-none",
14144
- "[&_[data-nav-button]]:transition-colors",
14145
- "[&_[data-nav-button]]:duration-spring-standard-fast-effects",
14146
- "[&_[data-nav-button]]:ease-spring-standard-fast-effects",
14147
- "[&_[data-nav-button]:hover]:bg-on-surface/8",
14148
- "[&_[data-nav-button]:focus-visible]:bg-on-surface/10",
14149
- "[&_[data-nav-button]:disabled]:text-on-surface/38",
14150
- "[&_[data-nav-button]:disabled]:cursor-not-allowed",
14151
- // ── Cell base ─────────────────────────────────────────────────────────────
14152
- "[&_td>div]:w-[48px]",
14153
- "[&_td>div]:h-[48px]",
14154
- "[&_td>div]:rounded-full",
14155
- "[&_td>div]:flex",
14156
- "[&_td>div]:items-center",
14157
- "[&_td>div]:justify-center",
14158
- "[&_td>div]:text-body-large",
14159
- "[&_td>div]:text-on-surface",
14160
- "[&_td>div]:relative",
14161
- "[&_td>div]:cursor-pointer",
14162
- "[&_td>div]:select-none",
14163
- "[&_td>div]:transition-colors",
14164
- "[&_td>div]:duration-spring-standard-fast-effects",
14165
- "[&_td>div]:ease-spring-standard-fast-effects",
14166
- // ── Today (not selected) ──────────────────────────────────────────────────
14167
- "[&_td>div[data-today]:not([data-selected])]:text-primary",
14168
- "[&_td>div[data-today]:not([data-selected])]:border",
14169
- "[&_td>div[data-today]:not([data-selected])]:border-primary",
14170
- // ── Selected ──────────────────────────────────────────────────────────────
14171
- "[&_td>div[data-selected]]:bg-primary",
14172
- "[&_td>div[data-selected]]:text-on-primary",
14173
- // ── Range middle ──────────────────────────────────────────────────────────
14174
- "[&_td>div[data-range-middle]]:bg-secondary-container",
14175
- "[&_td>div[data-range-middle]]:text-on-secondary-container",
14176
- "[&_td>div[data-range-middle]]:rounded-none",
14177
- // ── Outside month ─────────────────────────────────────────────────────────
14178
- "[&_td>div[data-outside-month]:not([data-selected])]:text-on-surface-variant",
14179
- // ── Disabled ──────────────────────────────────────────────────────────────
14180
- "[&_td>div[data-disabled]]:text-on-surface/38",
14181
- "[&_td>div[data-disabled]]:cursor-not-allowed",
14182
- // ── Cell hover states ─────────────────────────────────────────────────────
14183
- "[&_td>div:not([data-selected]):not([data-today]):not([data-disabled]):hover]:bg-on-surface/8",
14184
- "[&_td>div[data-today]:not([data-selected]):hover]:bg-primary/8",
14185
- "[&_td>div[data-selected]:hover]:shadow-sm",
14186
- // ── Cell focus-visible states ─────────────────────────────────────────────
14187
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-2",
14188
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-on-surface",
14189
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:bg-on-surface/10",
14190
- "[&_td>div[data-today][data-focus-visible]:not([data-selected])]:bg-primary/10",
14191
- // ── Weekday labels ────────────────────────────────────────────────────────
14192
- "[&_th]:text-body-small",
14193
- "[&_th]:text-on-surface",
14194
- "[&_th]:font-normal",
14195
- "[&_th]:w-[48px]",
14196
- "[&_th]:h-[48px]",
14197
- // ── Year grid ─────────────────────────────────────────────────────────────
14198
- "[&_[data-year-grid]]:grid",
14199
- "[&_[data-year-grid]]:grid-cols-3",
14200
- "[&_[data-year-grid]]:gap-2",
14201
- "[&_[data-year-grid]]:px-3",
14202
- "[&_[data-year-grid]]:py-2",
14203
- "[&_[data-year-grid]]:max-h-[280px]",
14204
- "[&_[data-year-grid]]:overflow-y-auto",
14205
- "[&_[data-year-grid]]:place-items-center",
14206
- "[&_[data-year-item]]:w-[88px]",
14207
- "[&_[data-year-item]]:h-[52px]",
14208
- "[&_[data-year-item]]:rounded-full",
14209
- "[&_[data-year-item]]:flex",
14210
- "[&_[data-year-item]]:items-center",
14211
- "[&_[data-year-item]]:justify-center",
14212
- "[&_[data-year-item]]:text-body-large",
14213
- "[&_[data-year-item]]:text-on-surface-variant",
14214
- "[&_[data-year-item]]:bg-transparent",
14215
- "[&_[data-year-item]]:border-none",
14216
- "[&_[data-year-item]]:cursor-pointer",
14217
- "[&_[data-year-item]]:transition-colors",
14218
- "[&_[data-year-item]]:duration-spring-standard-fast-effects",
14219
- "[&_[data-year-item]]:ease-spring-standard-fast-effects",
14220
- "[&_[data-year-item]:hover]:bg-on-surface/8",
14221
- "[&_[data-year-item][data-selected]]:bg-primary",
14222
- "[&_[data-year-item][data-selected]]:text-on-primary",
14223
- // ── Divider ───────────────────────────────────────────────────────────────
14224
- "[&_hr[data-divider]]:border-outline-variant",
14225
- // ── Action buttons ────────────────────────────────────────────────────────
14226
- "[&_[data-actions]]:flex",
14227
- "[&_[data-actions]]:items-center",
14228
- "[&_[data-actions]]:justify-end",
14229
- "[&_[data-actions]]:gap-2",
14230
- "[&_[data-actions]]:px-3",
14231
- "[&_[data-actions]]:py-2",
14232
- "[&_[data-action]]:text-primary",
14233
- "[&_[data-action]]:text-label-large",
14234
- "[&_[data-action]]:rounded-full",
14235
- "[&_[data-action]]:px-3",
14236
- "[&_[data-action]]:py-2",
14237
- "[&_[data-action]]:min-h-12",
14238
- "[&_[data-action]]:bg-transparent",
14239
- "[&_[data-action]]:border-none",
14240
- "[&_[data-action]]:transition-colors",
14241
- "[&_[data-action]]:duration-spring-standard-fast-effects",
14242
- "[&_[data-action]]:ease-spring-standard-fast-effects",
14243
- "[&_[data-action]:hover]:bg-primary/8",
14244
- "[&_[data-action]:focus-visible]:ring-2",
14245
- "[&_[data-action]:focus-visible]:ring-primary",
14246
- "[&_[data-action]:focus-visible]:bg-primary/10"
14497
+ // Hover: 8% overlay via bg tint (acceptable for structural trigger)
14498
+ "[&_[data-trigger][data-hovered]]:bg-on-surface-variant/8",
14499
+ "[&_[data-trigger][data-focus-visible]]:bg-on-surface-variant/10",
14500
+ "[&_[data-trigger][data-focus-visible]]:outline",
14501
+ "[&_[data-trigger][data-focus-visible]]:outline-2",
14502
+ "[&_[data-trigger][data-focus-visible]]:outline-secondary",
14503
+ "[&_[data-trigger][data-disabled]]:text-on-surface/38",
14504
+ "[&_[data-trigger][data-disabled]]:cursor-not-allowed"
14505
+ ];
14506
+ var MODAL_HEADER_STRUCTURAL = [
14507
+ "[&_[data-modal-header]]:px-6",
14508
+ "[&_[data-modal-header]]:pt-4",
14509
+ "[&_[data-modal-header]]:pb-3",
14510
+ "[&_[data-modal-header]]:flex",
14511
+ "[&_[data-modal-header]]:items-start",
14512
+ "[&_[data-modal-header]]:justify-between",
14513
+ "[&_[data-headline]]:text-label-large",
14514
+ "[&_[data-headline]]:text-on-surface-variant",
14515
+ "[&_[data-headline]]:m-0",
14516
+ "[&_[data-supporting-text]]:text-headline-large",
14517
+ "[&_[data-supporting-text]]:text-on-surface",
14518
+ "[&_[data-supporting-text]]:mt-9",
14519
+ "[&_[data-supporting-text]]:m-0"
14520
+ ];
14521
+ var MODAL_INPUT_SUPPORTING_TEXT_STRUCTURAL = [
14522
+ "[&_[data-supporting-text]]:text-headline-large",
14523
+ "[&_[data-supporting-text]]:text-on-surface",
14524
+ "[&_[data-supporting-text]]:mt-4",
14525
+ "[&_[data-supporting-text]]:m-0"
14526
+ ];
14527
+ var MODAL_INPUT_FIELD_STRUCTURAL = [
14528
+ "[&_[data-date-input-field]]:px-6",
14529
+ "[&_[data-date-input-field]]:py-2",
14530
+ "[&_[data-date-input-field]_[data-field]]:flex",
14531
+ "[&_[data-date-input-field]_[data-field]]:items-center",
14532
+ "[&_[data-date-input-field]_[data-field]]:border",
14533
+ "[&_[data-date-input-field]_[data-field]]:border-outline",
14534
+ "[&_[data-date-input-field]_[data-field]]:rounded-sm",
14535
+ "[&_[data-date-input-field]_[data-field]]:px-4",
14536
+ "[&_[data-date-input-field]_[data-field]]:py-3",
14537
+ "[&_[data-date-input-field]_[data-field]]:text-body-large",
14538
+ "[&_[data-date-input-field]_[data-field]]:text-on-surface",
14539
+ "[&_[data-date-input-field]_[data-segment]]:outline-none",
14540
+ "[&_[data-date-input-field]_[data-segment][data-placeholder]]:text-on-surface-variant",
14541
+ "[&_[data-date-input-field][data-focused]_[data-field]]:border-primary",
14542
+ "[&_[data-date-input-field][data-focused]_[data-field]]:border-2",
14543
+ "[&_[data-date-input-field][data-invalid]_[data-field]]:border-error",
14544
+ "[&_[data-date-input-field][data-invalid]_[data-field]]:border-2",
14545
+ "[&_[data-date-input-field]_[data-label]]:text-body-small",
14546
+ "[&_[data-date-input-field]_[data-label]]:text-on-surface-variant",
14547
+ "[&_[data-date-input-field]_[data-label]]:block",
14548
+ "[&_[data-date-input-field]_[data-label]]:mb-1",
14549
+ "[&_[data-date-input-field]_[data-error-message]]:text-body-small",
14550
+ "[&_[data-date-input-field]_[data-error-message]]:text-error",
14551
+ "[&_[data-date-input-field]_[data-error-message]]:mt-1"
14552
+ ];
14553
+ var SHARED_CALENDAR_STRUCTURAL = [
14554
+ ...CALENDAR_HEADER_STRUCTURAL,
14555
+ ...CALENDAR_GRID_STRUCTURAL,
14556
+ ...YEAR_GRID_STRUCTURAL,
14557
+ ...DIVIDER_STRUCTURAL,
14558
+ ...ACTION_ROW_STRUCTURAL
14247
14559
  ].join(" ");
14248
- var DOCKED_MOTION_STYLES = [
14249
- // ── Popover container enter ────────────────────────────────────────────────
14250
- "[&_[data-popover]]:transition-[transform,opacity]",
14251
- "[&_[data-popover]]:duration-short3",
14252
- "[&_[data-popover]]:ease-standard-decelerate",
14253
- // ── Popover container exit ─────────────────────────────────────────────────
14254
- "[&_[data-popover][data-exiting]]:duration-short2",
14255
- "[&_[data-popover][data-exiting]]:ease-standard-accelerate",
14256
- // ── Calendar month slide ───────────────────────────────────────────────────
14257
- "[&_table]:transition-transform",
14258
- "[&_table]:duration-medium1",
14259
- "[&_table]:ease-emphasized-decelerate",
14260
- // ── Cell selection animation (scale + background) ──────────────────────────
14261
- "[&_td>div[data-selected]]:transition-[background-color,transform]",
14262
- "[&_td>div[data-selected]]:duration-short2",
14263
- "[&_td>div[data-selected]]:ease-standard",
14264
- // ── State layer opacity ────────────────────────────────────────────────────
14265
- "[&_td>div::after]:transition-opacity",
14266
- "[&_td>div::after]:duration-short1",
14267
- "[&_td>div::after]:ease-standard"
14560
+ var MODAL_CONTENT_STRUCTURAL = [
14561
+ ...MODAL_HEADER_STRUCTURAL,
14562
+ ...CALENDAR_HEADER_STRUCTURAL,
14563
+ ...CALENDAR_GRID_STRUCTURAL,
14564
+ ...YEAR_GRID_STRUCTURAL,
14565
+ ...DIVIDER_STRUCTURAL,
14566
+ ...ACTION_ROW_STRUCTURAL
14567
+ ].join(" ");
14568
+ var MODAL_INPUT_CONTENT_STRUCTURAL = [
14569
+ ...MODAL_HEADER_STRUCTURAL,
14570
+ ...MODAL_INPUT_SUPPORTING_TEXT_STRUCTURAL,
14571
+ ...MODAL_INPUT_FIELD_STRUCTURAL,
14572
+ ...DIVIDER_STRUCTURAL,
14573
+ ...ACTION_ROW_STRUCTURAL
14574
+ ].join(" ");
14575
+ var DOCKED_ROOT_STRUCTURAL = [
14576
+ ...DOCKED_LABEL_STRUCTURAL,
14577
+ ...DOCKED_FIELD_STRUCTURAL,
14578
+ ...DOCKED_TRIGGER_STRUCTURAL
14579
+ ].join(" ");
14580
+ var DOCKED_POPOVER_PANEL_STRUCTURAL = SHARED_CALENDAR_STRUCTURAL;
14581
+ var DOCKED_POPOVER_MOTION = [
14582
+ "transition-[transform,opacity]",
14583
+ "duration-short3",
14584
+ "ease-standard-decelerate",
14585
+ "data-[exiting]:duration-short2",
14586
+ "data-[exiting]:ease-standard-accelerate"
14587
+ ].join(" ");
14588
+ var MODAL_DIALOG_MOTION = [
14589
+ "transition-[transform,opacity]",
14590
+ "duration-medium2",
14591
+ "ease-standard-decelerate",
14592
+ "data-[exiting]:duration-medium1",
14593
+ "data-[exiting]:ease-standard-accelerate"
14268
14594
  ].join(" ");
14269
14595
  var DatePickerDockedStyled = React.forwardRef(
14270
14596
  (props, ref) => {
@@ -14277,10 +14603,22 @@ var DatePickerDockedStyled = React.forwardRef(
14277
14603
  ...rest,
14278
14604
  className: cn(
14279
14605
  datePickerContainerVariants({ variant: "docked" }),
14280
- CALENDAR_STYLES,
14281
- !reducedMotion && DOCKED_MOTION_STYLES,
14606
+ DOCKED_ROOT_STRUCTURAL,
14282
14607
  className
14283
- )
14608
+ ),
14609
+ popoverClassName: cn(
14610
+ popoverVariants(),
14611
+ DOCKED_POPOVER_PANEL_STRUCTURAL,
14612
+ !reducedMotion && DOCKED_POPOVER_MOTION
14613
+ ),
14614
+ slots: {
14615
+ CellComponent: StyledCalendarCell,
14616
+ NavButtonComponent: StyledNavButton,
14617
+ TitleComponent: StyledCalendarTitle,
14618
+ YearItemComponent: StyledYearItem,
14619
+ WeekdayComponent: StyledWeekday
14620
+ },
14621
+ ActionButtonComponent: StyledActionButton
14284
14622
  }
14285
14623
  );
14286
14624
  }
@@ -14353,7 +14691,10 @@ var DatePickerModal = React.forwardRef(
14353
14691
  onCancel,
14354
14692
  onConfirm,
14355
14693
  onClear,
14356
- className
14694
+ className,
14695
+ scrimClassName,
14696
+ slots,
14697
+ ActionButtonComponent
14357
14698
  } = props;
14358
14699
  const internalRef = React.useRef(null);
14359
14700
  const ref = forwardedRef ?? internalRef;
@@ -14477,6 +14818,7 @@ var DatePickerModal = React.forwardRef(
14477
14818
  headlineId,
14478
14819
  onClose: handleClose,
14479
14820
  ...className ? { className } : {},
14821
+ ...scrimClassName ? { scrimClassName } : {},
14480
14822
  isOpen: state.isOpen,
14481
14823
  children: [
14482
14824
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -14498,7 +14840,8 @@ var DatePickerModal = React.forwardRef(
14498
14840
  onChange: handleSingleChange,
14499
14841
  ...minValue ? { minValue } : {},
14500
14842
  ...maxValue ? { maxValue } : {},
14501
- ...isDateUnavailable ? { isDateUnavailable } : {}
14843
+ ...isDateUnavailable ? { isDateUnavailable } : {},
14844
+ ...slots ? { slots } : {}
14502
14845
  }
14503
14846
  ) : /* @__PURE__ */ jsxRuntime.jsx(
14504
14847
  CalendarCore,
@@ -14510,7 +14853,8 @@ var DatePickerModal = React.forwardRef(
14510
14853
  onRangeChange: handleRangeChange,
14511
14854
  ...minValue ? { minValue } : {},
14512
14855
  ...maxValue ? { maxValue } : {},
14513
- ...isDateUnavailable ? { isDateUnavailable } : {}
14856
+ ...isDateUnavailable ? { isDateUnavailable } : {},
14857
+ ...slots ? { slots } : {}
14514
14858
  }
14515
14859
  ),
14516
14860
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -14522,7 +14866,8 @@ var DatePickerModal = React.forwardRef(
14522
14866
  showClear,
14523
14867
  onCancel: handleCancel,
14524
14868
  onConfirm: handleConfirm,
14525
- onClear: handleClear
14869
+ onClear: handleClear,
14870
+ ...ActionButtonComponent ? { ButtonComponent: ActionButtonComponent } : {}
14526
14871
  }
14527
14872
  )
14528
14873
  ]
@@ -14540,6 +14885,7 @@ function ModalOverlay({
14540
14885
  headlineId,
14541
14886
  onClose,
14542
14887
  className,
14888
+ scrimClassName,
14543
14889
  isOpen,
14544
14890
  children
14545
14891
  }) {
@@ -14560,7 +14906,7 @@ function ModalOverlay({
14560
14906
  dialogRef
14561
14907
  );
14562
14908
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14563
- /* @__PURE__ */ jsxRuntime.jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose }),
14909
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose, className: scrimClassName }),
14564
14910
  /* @__PURE__ */ jsxRuntime.jsx(
14565
14911
  "div",
14566
14912
  {
@@ -14578,210 +14924,6 @@ function ModalOverlay({
14578
14924
  ] });
14579
14925
  }
14580
14926
  ModalOverlay.displayName = "ModalOverlay";
14581
- var MODAL_STYLES = [
14582
- // ── Container structure ───────────────────────────────────────────────────
14583
- "[&_[data-modal-dialog]]:bg-surface-container-high",
14584
- "[&_[data-modal-dialog]]:rounded-3xl",
14585
- "[&_[data-modal-dialog]]:overflow-hidden",
14586
- "[&_[data-modal-dialog]]:fixed",
14587
- "[&_[data-modal-dialog]]:top-1/2",
14588
- "[&_[data-modal-dialog]]:left-1/2",
14589
- "[&_[data-modal-dialog]]:-translate-x-1/2",
14590
- "[&_[data-modal-dialog]]:-translate-y-1/2",
14591
- "[&_[data-modal-dialog]]:z-50",
14592
- "[&_[data-modal-dialog]]:w-[360px]",
14593
- "[&_[data-modal-dialog]]:max-h-[90vh]",
14594
- "[&_[data-modal-dialog]]:overflow-y-auto",
14595
- // ── Header ────────────────────────────────────────────────────────────────
14596
- "[&_[data-modal-header]]:px-6",
14597
- "[&_[data-modal-header]]:pt-4",
14598
- "[&_[data-modal-header]]:pb-3",
14599
- "[&_[data-modal-header]]:flex",
14600
- "[&_[data-modal-header]]:items-start",
14601
- "[&_[data-modal-header]]:justify-between",
14602
- "[&_[data-headline]]:text-label-large",
14603
- "[&_[data-headline]]:text-on-surface-variant",
14604
- "[&_[data-headline]]:m-0",
14605
- "[&_[data-supporting-text]]:text-headline-large",
14606
- "[&_[data-supporting-text]]:text-on-surface",
14607
- "[&_[data-supporting-text]]:mt-9",
14608
- "[&_[data-supporting-text]]:m-0",
14609
- "[&_[data-mode-toggle]]:w-12",
14610
- "[&_[data-mode-toggle]]:h-12",
14611
- "[&_[data-mode-toggle]]:rounded-full",
14612
- "[&_[data-mode-toggle]]:flex",
14613
- "[&_[data-mode-toggle]]:items-center",
14614
- "[&_[data-mode-toggle]]:justify-center",
14615
- "[&_[data-mode-toggle]]:text-on-surface-variant",
14616
- "[&_[data-mode-toggle]]:bg-transparent",
14617
- "[&_[data-mode-toggle]]:border-none",
14618
- "[&_[data-mode-toggle]]:self-end",
14619
- "[&_[data-mode-toggle]]:transition-colors",
14620
- "[&_[data-mode-toggle]]:duration-spring-standard-fast-effects",
14621
- "[&_[data-mode-toggle]]:ease-spring-standard-fast-effects",
14622
- "[&_[data-mode-toggle]:hover]:bg-on-surface-variant/8",
14623
- // ── Divider ───────────────────────────────────────────────────────────────
14624
- "[&_hr[data-divider]]:border-outline-variant",
14625
- // ── Calendar header ───────────────────────────────────────────────────────
14626
- "[&_[data-calendar-header]]:flex",
14627
- "[&_[data-calendar-header]]:items-center",
14628
- "[&_[data-calendar-header]]:justify-between",
14629
- "[&_[data-calendar-header]]:px-3",
14630
- "[&_[data-calendar-header]]:py-2",
14631
- "[&_[data-calendar-title]]:flex",
14632
- "[&_[data-calendar-title]]:items-center",
14633
- "[&_[data-calendar-title]]:gap-0.5",
14634
- "[&_[data-calendar-title]]:bg-transparent",
14635
- "[&_[data-calendar-title]]:border-none",
14636
- "[&_[data-calendar-title]]:cursor-pointer",
14637
- "[&_[data-calendar-title]]:rounded-full",
14638
- "[&_[data-calendar-title]]:px-2",
14639
- "[&_[data-calendar-title]]:py-1",
14640
- "[&_[data-calendar-title]]:transition-colors",
14641
- "[&_[data-calendar-title]]:duration-spring-standard-fast-effects",
14642
- "[&_[data-calendar-title]]:ease-spring-standard-fast-effects",
14643
- "[&_[data-calendar-title]:hover]:bg-on-surface/8",
14644
- "[&_[data-calendar-title]_h2]:text-label-large",
14645
- "[&_[data-calendar-title]_h2]:text-on-surface-variant",
14646
- "[&_[data-calendar-title]_h2]:m-0",
14647
- "[&_[data-calendar-title]_svg]:text-on-surface-variant",
14648
- "[&_[data-calendar-nav]]:flex",
14649
- "[&_[data-calendar-nav]]:items-center",
14650
- "[&_[data-calendar-nav]]:gap-1",
14651
- "[&_[data-nav-button]]:w-10",
14652
- "[&_[data-nav-button]]:h-10",
14653
- "[&_[data-nav-button]]:rounded-full",
14654
- "[&_[data-nav-button]]:flex",
14655
- "[&_[data-nav-button]]:items-center",
14656
- "[&_[data-nav-button]]:justify-center",
14657
- "[&_[data-nav-button]]:text-on-surface-variant",
14658
- "[&_[data-nav-button]]:bg-transparent",
14659
- "[&_[data-nav-button]]:border-none",
14660
- "[&_[data-nav-button]]:transition-colors",
14661
- "[&_[data-nav-button]]:duration-spring-standard-fast-effects",
14662
- "[&_[data-nav-button]]:ease-spring-standard-fast-effects",
14663
- "[&_[data-nav-button]:hover]:bg-on-surface/8",
14664
- "[&_[data-nav-button]:focus-visible]:bg-on-surface/10",
14665
- "[&_[data-nav-button]:disabled]:text-on-surface/38",
14666
- "[&_[data-nav-button]:disabled]:cursor-not-allowed",
14667
- // ── Calendar cells ────────────────────────────────────────────────────────
14668
- "[&_td>div]:w-[48px]",
14669
- "[&_td>div]:h-[48px]",
14670
- "[&_td>div]:rounded-full",
14671
- "[&_td>div]:flex",
14672
- "[&_td>div]:items-center",
14673
- "[&_td>div]:justify-center",
14674
- "[&_td>div]:text-body-large",
14675
- "[&_td>div]:text-on-surface",
14676
- "[&_td>div]:relative",
14677
- "[&_td>div]:cursor-pointer",
14678
- "[&_td>div]:select-none",
14679
- "[&_td>div]:transition-colors",
14680
- "[&_td>div]:duration-spring-standard-fast-effects",
14681
- "[&_td>div]:ease-spring-standard-fast-effects",
14682
- "[&_td>div[data-today]:not([data-selected])]:text-primary",
14683
- "[&_td>div[data-today]:not([data-selected])]:border",
14684
- "[&_td>div[data-today]:not([data-selected])]:border-primary",
14685
- "[&_td>div[data-selected]]:bg-primary",
14686
- "[&_td>div[data-selected]]:text-on-primary",
14687
- "[&_td>div[data-range-middle]]:bg-secondary-container",
14688
- "[&_td>div[data-range-middle]]:text-on-secondary-container",
14689
- "[&_td>div[data-range-middle]]:rounded-none",
14690
- "[&_td>div[data-outside-month]:not([data-selected])]:text-on-surface-variant",
14691
- "[&_td>div[data-disabled]]:text-on-surface/38",
14692
- "[&_td>div[data-disabled]]:cursor-not-allowed",
14693
- "[&_td>div:not([data-selected]):not([data-today]):not([data-disabled]):hover]:bg-on-surface/8",
14694
- "[&_td>div[data-today]:not([data-selected]):hover]:bg-primary/8",
14695
- "[&_td>div[data-selected]:hover]:shadow-sm",
14696
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-2",
14697
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-on-surface",
14698
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:bg-on-surface/10",
14699
- "[&_td>div[data-today][data-focus-visible]:not([data-selected])]:bg-primary/10",
14700
- // ── Weekday labels ────────────────────────────────────────────────────────
14701
- "[&_th]:text-body-small",
14702
- "[&_th]:text-on-surface",
14703
- "[&_th]:font-normal",
14704
- "[&_th]:w-[48px]",
14705
- "[&_th]:h-[48px]",
14706
- // ── Year grid ─────────────────────────────────────────────────────────────
14707
- "[&_[data-year-grid]]:grid",
14708
- "[&_[data-year-grid]]:grid-cols-3",
14709
- "[&_[data-year-grid]]:gap-2",
14710
- "[&_[data-year-grid]]:px-3",
14711
- "[&_[data-year-grid]]:py-2",
14712
- "[&_[data-year-grid]]:max-h-[280px]",
14713
- "[&_[data-year-grid]]:overflow-y-auto",
14714
- "[&_[data-year-grid]]:place-items-center",
14715
- "[&_[data-year-item]]:w-[88px]",
14716
- "[&_[data-year-item]]:h-[52px]",
14717
- "[&_[data-year-item]]:rounded-full",
14718
- "[&_[data-year-item]]:flex",
14719
- "[&_[data-year-item]]:items-center",
14720
- "[&_[data-year-item]]:justify-center",
14721
- "[&_[data-year-item]]:text-body-large",
14722
- "[&_[data-year-item]]:text-on-surface-variant",
14723
- "[&_[data-year-item]]:bg-transparent",
14724
- "[&_[data-year-item]]:border-none",
14725
- "[&_[data-year-item]]:cursor-pointer",
14726
- "[&_[data-year-item]]:transition-colors",
14727
- "[&_[data-year-item]]:duration-spring-standard-fast-effects",
14728
- "[&_[data-year-item]]:ease-spring-standard-fast-effects",
14729
- "[&_[data-year-item]:hover]:bg-on-surface/8",
14730
- "[&_[data-year-item][data-selected]]:bg-primary",
14731
- "[&_[data-year-item][data-selected]]:text-on-primary",
14732
- // ── Scrim ─────────────────────────────────────────────────────────────────
14733
- "[&_[data-scrim]]:fixed",
14734
- "[&_[data-scrim]]:inset-0",
14735
- "[&_[data-scrim]]:z-40",
14736
- "[&_[data-scrim]]:bg-scrim",
14737
- "[&_[data-scrim]]:opacity-32",
14738
- "[&_[data-scrim]]:transition-opacity",
14739
- "[&_[data-scrim]]:duration-medium2",
14740
- "[&_[data-scrim]]:ease-standard",
14741
- // ── Action buttons ────────────────────────────────────────────────────────
14742
- "[&_[data-actions]]:flex",
14743
- "[&_[data-actions]]:items-center",
14744
- "[&_[data-actions]]:justify-end",
14745
- "[&_[data-actions]]:gap-2",
14746
- "[&_[data-actions]]:px-3",
14747
- "[&_[data-actions]]:py-2",
14748
- "[&_[data-action]]:text-primary",
14749
- "[&_[data-action]]:text-label-large",
14750
- "[&_[data-action]]:rounded-full",
14751
- "[&_[data-action]]:px-3",
14752
- "[&_[data-action]]:py-2",
14753
- "[&_[data-action]]:min-h-12",
14754
- "[&_[data-action]]:bg-transparent",
14755
- "[&_[data-action]]:border-none",
14756
- "[&_[data-action]]:transition-colors",
14757
- "[&_[data-action]]:duration-spring-standard-fast-effects",
14758
- "[&_[data-action]]:ease-spring-standard-fast-effects",
14759
- "[&_[data-action]:hover]:bg-primary/8",
14760
- "[&_[data-action]:focus-visible]:ring-2",
14761
- "[&_[data-action]:focus-visible]:ring-primary",
14762
- "[&_[data-action]:focus-visible]:bg-primary/10"
14763
- ].join(" ");
14764
- var MODAL_MOTION_STYLES = [
14765
- // ── Modal container enter ──────────────────────────────────────────────────
14766
- "[&_[data-modal-dialog]]:transition-[transform,opacity]",
14767
- "[&_[data-modal-dialog]]:duration-medium2",
14768
- "[&_[data-modal-dialog]]:ease-standard-decelerate",
14769
- // ── Modal container exit ───────────────────────────────────────────────────
14770
- "[&_[data-modal-dialog][data-exiting]]:duration-medium1",
14771
- "[&_[data-modal-dialog][data-exiting]]:ease-standard-accelerate",
14772
- // ── Calendar month slide ───────────────────────────────────────────────────
14773
- "[&_table]:transition-transform",
14774
- "[&_table]:duration-medium1",
14775
- "[&_table]:ease-emphasized-decelerate",
14776
- // ── Cell selection animation (scale + background) ──────────────────────────
14777
- "[&_td>div[data-selected]]:transition-[background-color,transform]",
14778
- "[&_td>div[data-selected]]:duration-short2",
14779
- "[&_td>div[data-selected]]:ease-standard",
14780
- // ── State layer opacity ────────────────────────────────────────────────────
14781
- "[&_td>div::after]:transition-opacity",
14782
- "[&_td>div::after]:duration-short1",
14783
- "[&_td>div::after]:ease-standard"
14784
- ].join(" ");
14785
14927
  var DatePickerModalStyled = React.forwardRef(
14786
14928
  (props, ref) => {
14787
14929
  const { className, ...rest } = props;
@@ -14792,11 +14934,20 @@ var DatePickerModalStyled = React.forwardRef(
14792
14934
  ref,
14793
14935
  ...rest,
14794
14936
  className: cn(
14795
- datePickerContainerVariants({ variant: "modal" }),
14796
- MODAL_STYLES,
14797
- !reducedMotion && MODAL_MOTION_STYLES,
14937
+ modalDialogVariants({ variant: "modal" }),
14938
+ MODAL_CONTENT_STRUCTURAL,
14939
+ !reducedMotion && MODAL_DIALOG_MOTION,
14798
14940
  className
14799
- )
14941
+ ),
14942
+ scrimClassName: cn(scrimVariants2()),
14943
+ slots: {
14944
+ CellComponent: StyledCalendarCell,
14945
+ NavButtonComponent: StyledNavButton,
14946
+ TitleComponent: StyledCalendarTitle,
14947
+ YearItemComponent: StyledYearItem,
14948
+ WeekdayComponent: StyledWeekday
14949
+ },
14950
+ ActionButtonComponent: StyledActionButton
14800
14951
  }
14801
14952
  );
14802
14953
  }
@@ -14943,7 +15094,9 @@ var DatePickerModalInput = React.forwardRef(
14943
15094
  onCancel,
14944
15095
  onConfirm,
14945
15096
  onModeToggle,
14946
- className
15097
+ className,
15098
+ scrimClassName,
15099
+ ActionButtonComponent
14947
15100
  } = props;
14948
15101
  const internalRef = React.useRef(null);
14949
15102
  const ref = forwardedRef ?? internalRef;
@@ -15102,6 +15255,7 @@ var DatePickerModalInput = React.forwardRef(
15102
15255
  headlineId,
15103
15256
  onClose: handleClose,
15104
15257
  ...className ? { className } : {},
15258
+ ...scrimClassName ? { scrimClassName } : {},
15105
15259
  isOpen: state.isOpen,
15106
15260
  children: [
15107
15261
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -15164,7 +15318,8 @@ var DatePickerModalInput = React.forwardRef(
15164
15318
  confirmLabel,
15165
15319
  onCancel: handleCancel,
15166
15320
  onConfirm: handleConfirm,
15167
- isConfirmDisabled: !isFormValid
15321
+ isConfirmDisabled: !isFormValid,
15322
+ ...ActionButtonComponent ? { ButtonComponent: ActionButtonComponent } : {}
15168
15323
  }
15169
15324
  )
15170
15325
  ]
@@ -15182,6 +15337,7 @@ function ModalInputOverlay({
15182
15337
  headlineId,
15183
15338
  onClose,
15184
15339
  className,
15340
+ scrimClassName,
15185
15341
  isOpen,
15186
15342
  children
15187
15343
  }) {
@@ -15202,7 +15358,7 @@ function ModalInputOverlay({
15202
15358
  dialogRef
15203
15359
  );
15204
15360
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
15205
- /* @__PURE__ */ jsxRuntime.jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose }),
15361
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose, className: scrimClassName }),
15206
15362
  /* @__PURE__ */ jsxRuntime.jsx(
15207
15363
  "div",
15208
15364
  {
@@ -15220,98 +15376,6 @@ function ModalInputOverlay({
15220
15376
  ] });
15221
15377
  }
15222
15378
  ModalInputOverlay.displayName = "ModalInputOverlay";
15223
- var MODAL_INPUT_STYLES = [
15224
- // ── Container structure ───────────────────────────────────────────────────
15225
- "[&_[data-modal-dialog]]:bg-surface-container-high",
15226
- "[&_[data-modal-dialog]]:rounded-3xl",
15227
- "[&_[data-modal-dialog]]:overflow-hidden",
15228
- "[&_[data-modal-dialog]]:fixed",
15229
- "[&_[data-modal-dialog]]:top-1/2",
15230
- "[&_[data-modal-dialog]]:left-1/2",
15231
- "[&_[data-modal-dialog]]:-translate-x-1/2",
15232
- "[&_[data-modal-dialog]]:-translate-y-1/2",
15233
- "[&_[data-modal-dialog]]:z-50",
15234
- "[&_[data-modal-dialog]]:w-[328px]",
15235
- // ── Header ────────────────────────────────────────────────────────────────
15236
- "[&_[data-modal-header]]:px-6",
15237
- "[&_[data-modal-header]]:pt-4",
15238
- "[&_[data-modal-header]]:pb-3",
15239
- "[&_[data-modal-header]]:flex",
15240
- "[&_[data-modal-header]]:items-start",
15241
- "[&_[data-modal-header]]:justify-between",
15242
- "[&_[data-headline]]:text-label-large",
15243
- "[&_[data-headline]]:text-on-surface-variant",
15244
- "[&_[data-headline]]:m-0",
15245
- "[&_[data-supporting-text]]:text-headline-large",
15246
- "[&_[data-supporting-text]]:text-on-surface",
15247
- "[&_[data-supporting-text]]:mt-4",
15248
- "[&_[data-supporting-text]]:m-0",
15249
- "[&_[data-mode-toggle]]:w-12",
15250
- "[&_[data-mode-toggle]]:h-12",
15251
- "[&_[data-mode-toggle]]:rounded-full",
15252
- "[&_[data-mode-toggle]]:flex",
15253
- "[&_[data-mode-toggle]]:items-center",
15254
- "[&_[data-mode-toggle]]:justify-center",
15255
- "[&_[data-mode-toggle]]:text-on-surface-variant",
15256
- "[&_[data-mode-toggle]]:bg-transparent",
15257
- "[&_[data-mode-toggle]]:border-none",
15258
- "[&_[data-mode-toggle]]:self-end",
15259
- "[&_[data-mode-toggle]]:transition-colors",
15260
- "[&_[data-mode-toggle]]:duration-spring-standard-fast-effects",
15261
- "[&_[data-mode-toggle]]:ease-spring-standard-fast-effects",
15262
- "[&_[data-mode-toggle]:hover]:bg-on-surface-variant/8",
15263
- // ── Divider ───────────────────────────────────────────────────────────────
15264
- "[&_hr[data-divider]]:border-outline-variant",
15265
- // ── Date input fields ─────────────────────────────────────────────────────
15266
- "[&_[data-date-input-field]]:px-6",
15267
- "[&_[data-date-input-field]]:py-2",
15268
- "[&_[data-date-input-field]_[data-field]]:flex",
15269
- "[&_[data-date-input-field]_[data-field]]:items-center",
15270
- "[&_[data-date-input-field]_[data-field]]:border",
15271
- "[&_[data-date-input-field]_[data-field]]:border-outline",
15272
- "[&_[data-date-input-field]_[data-field]]:rounded-sm",
15273
- "[&_[data-date-input-field]_[data-field]]:px-4",
15274
- "[&_[data-date-input-field]_[data-field]]:py-3",
15275
- "[&_[data-date-input-field]_[data-field]]:text-body-large",
15276
- "[&_[data-date-input-field]_[data-field]]:text-on-surface",
15277
- "[&_[data-date-input-field]_[data-segment]]:outline-none",
15278
- "[&_[data-date-input-field]_[data-segment][data-placeholder]]:text-on-surface-variant",
15279
- "[&_[data-date-input-field][data-focused]_[data-field]]:border-primary",
15280
- "[&_[data-date-input-field][data-focused]_[data-field]]:border-2",
15281
- "[&_[data-date-input-field][data-invalid]_[data-field]]:border-error",
15282
- "[&_[data-date-input-field]_[data-label]]:text-body-small",
15283
- "[&_[data-date-input-field]_[data-label]]:text-on-surface-variant",
15284
- "[&_[data-date-input-field]_[data-error-message]]:text-body-small",
15285
- "[&_[data-date-input-field]_[data-error-message]]:text-error",
15286
- "[&_[data-date-input-field]_[data-error-message]]:mt-1",
15287
- // ── Scrim ─────────────────────────────────────────────────────────────────
15288
- "[&_[data-scrim]]:fixed",
15289
- "[&_[data-scrim]]:inset-0",
15290
- "[&_[data-scrim]]:z-40",
15291
- "[&_[data-scrim]]:bg-scrim",
15292
- "[&_[data-scrim]]:opacity-32",
15293
- "[&_[data-scrim]]:transition-opacity",
15294
- "[&_[data-scrim]]:duration-medium2",
15295
- "[&_[data-scrim]]:ease-standard",
15296
- // ── Action buttons ────────────────────────────────────────────────────────
15297
- "[&_[data-actions]]:flex",
15298
- "[&_[data-actions]]:items-center",
15299
- "[&_[data-actions]]:justify-end",
15300
- "[&_[data-actions]]:gap-2",
15301
- "[&_[data-actions]]:px-3",
15302
- "[&_[data-actions]]:py-2",
15303
- "[&_[data-action]]:text-primary",
15304
- "[&_[data-action]]:text-label-large",
15305
- "[&_[data-action]]:rounded-full",
15306
- "[&_[data-action]]:px-3",
15307
- "[&_[data-action]]:py-2",
15308
- "[&_[data-action]]:bg-transparent",
15309
- "[&_[data-action]]:border-none",
15310
- "[&_[data-action]]:transition-colors",
15311
- "[&_[data-action]]:duration-spring-standard-fast-effects",
15312
- "[&_[data-action]]:ease-spring-standard-fast-effects",
15313
- "[&_[data-action]:hover]:bg-primary/8"
15314
- ].join(" ");
15315
15379
  var DatePickerModalInputStyled = React.forwardRef(
15316
15380
  (props, ref) => {
15317
15381
  const { className, ...rest } = props;
@@ -15321,10 +15385,12 @@ var DatePickerModalInputStyled = React.forwardRef(
15321
15385
  ref,
15322
15386
  ...rest,
15323
15387
  className: cn(
15324
- datePickerContainerVariants({ variant: "modal-input" }),
15325
- MODAL_INPUT_STYLES,
15388
+ modalDialogVariants({ variant: "modal-input" }),
15389
+ MODAL_INPUT_CONTENT_STRUCTURAL,
15326
15390
  className
15327
- )
15391
+ ),
15392
+ scrimClassName: cn(scrimVariants2()),
15393
+ ActionButtonComponent: StyledActionButton
15328
15394
  }
15329
15395
  );
15330
15396
  }
@@ -15540,6 +15606,12 @@ exports.SnackbarHeadless = SnackbarHeadless;
15540
15606
  exports.SnackbarProvider = SnackbarProvider;
15541
15607
  exports.SplitButton = SplitButton;
15542
15608
  exports.SplitButtonHeadless = SplitButtonHeadless;
15609
+ exports.StyledActionButton = StyledActionButton;
15610
+ exports.StyledCalendarCell = StyledCalendarCell;
15611
+ exports.StyledCalendarTitle = StyledCalendarTitle;
15612
+ exports.StyledNavButton = StyledNavButton;
15613
+ exports.StyledWeekday = StyledWeekday;
15614
+ exports.StyledYearItem = StyledYearItem;
15543
15615
  exports.Switch = Switch;
15544
15616
  exports.TYPOGRAPHY_ELEMENT_MAP = TYPOGRAPHY_ELEMENT_MAP;
15545
15617
  exports.TYPOGRAPHY_USAGE = TYPOGRAPHY_USAGE;
@@ -15555,6 +15627,10 @@ exports.Tooltip = Tooltip;
15555
15627
  exports.TooltipOverlayHeadless = TooltipOverlayHeadless;
15556
15628
  exports.TooltipTrigger = TooltipTrigger;
15557
15629
  exports.TooltipTriggerHeadless = TooltipTriggerHeadless;
15630
+ exports.actionButtonFocusRingVariants = actionButtonFocusRingVariants;
15631
+ exports.actionButtonStateLayerVariants = actionButtonStateLayerVariants;
15632
+ exports.actionButtonVariants = actionButtonVariants;
15633
+ exports.actionRowVariants = actionRowVariants;
15558
15634
  exports.applyStateLayer = applyStateLayer;
15559
15635
  exports.badgeVariants = badgeVariants2;
15560
15636
  exports.bottomSheetAnimationVariants = bottomSheetAnimationVariants;
@@ -15565,7 +15641,15 @@ exports.bottomSheetVariants = bottomSheetVariants;
15565
15641
  exports.buttonGroupFocusRingVariants = buttonGroupFocusRingVariants;
15566
15642
  exports.buttonGroupRootVariants = buttonGroupRootVariants;
15567
15643
  exports.buttonGroupVariants = buttonGroupVariants;
15644
+ exports.calendarCellFocusRingVariants = calendarCellFocusRingVariants;
15645
+ exports.calendarCellStateLayerVariants = calendarCellStateLayerVariants;
15568
15646
  exports.calendarCellVariants = calendarCellVariants;
15647
+ exports.calendarDividerVariants = calendarDividerVariants;
15648
+ exports.calendarHeaderVariants = calendarHeaderVariants;
15649
+ exports.calendarTitleIconVariants = calendarTitleIconVariants;
15650
+ exports.calendarTitleStateLayerVariants = calendarTitleStateLayerVariants;
15651
+ exports.calendarTitleTextVariants = calendarTitleTextVariants;
15652
+ exports.calendarTitleVariants = calendarTitleVariants;
15569
15653
  exports.cardVariants = cardVariants;
15570
15654
  exports.chipVariants = chipVariants;
15571
15655
  exports.clockDialContainerVariants = clockDialContainerVariants;
@@ -15574,18 +15658,18 @@ exports.clockHandCenterVariants = clockHandCenterVariants;
15574
15658
  exports.clockHandHandleVariants = clockHandHandleVariants;
15575
15659
  exports.clockHandTrackVariants = clockHandTrackVariants;
15576
15660
  exports.cn = cn;
15577
- exports.datePickerActionButtonVariants = datePickerActionButtonVariants;
15578
- exports.datePickerActionVariants = datePickerActionVariants;
15661
+ exports.dateFieldVariants = dateFieldVariants;
15662
+ exports.dateInputErrorVariants = dateInputErrorVariants;
15663
+ exports.dateInputFieldGroupVariants = dateInputFieldGroupVariants;
15664
+ exports.dateInputFieldVariants = dateInputFieldVariants;
15665
+ exports.dateInputLabelVariants = dateInputLabelVariants;
15579
15666
  exports.datePickerContainerVariants = datePickerContainerVariants;
15580
- exports.datePickerDividerVariants = datePickerDividerVariants;
15581
- exports.datePickerHeaderVariants = datePickerHeaderVariants;
15582
- exports.datePickerHeadlineVariants = datePickerHeadlineVariants;
15583
- exports.datePickerNavVariants = datePickerNavVariants;
15584
- exports.datePickerRangeIndicatorVariants = datePickerRangeIndicatorVariants;
15585
- exports.datePickerScrimVariants = datePickerScrimVariants;
15586
- exports.datePickerSupportingTextVariants = datePickerSupportingTextVariants;
15587
- exports.datePickerWeekdayVariants = datePickerWeekdayVariants;
15667
+ exports.dateSegmentPlaceholderVariants = dateSegmentPlaceholderVariants;
15588
15668
  exports.dividerVariants = dividerVariants;
15669
+ exports.dockedFieldGroupVariants = dockedFieldGroupVariants;
15670
+ exports.dockedLabelVariants = dockedLabelVariants;
15671
+ exports.dockedTriggerStateLayerVariants = dockedTriggerStateLayerVariants;
15672
+ exports.dockedTriggerVariants = dockedTriggerVariants;
15589
15673
  exports.fabMenuItemFocusRingVariants = fabMenuItemFocusRingVariants;
15590
15674
  exports.fabMenuItemIconVariants = fabMenuItemIconVariants;
15591
15675
  exports.fabMenuItemLabelVariants = fabMenuItemLabelVariants;
@@ -15603,15 +15687,25 @@ exports.getTypographyClassName = getTypographyClassName;
15603
15687
  exports.getTypographyForElement = getTypographyForElement;
15604
15688
  exports.getTypographyStyle = getTypographyStyle;
15605
15689
  exports.getTypographyToken = getTypographyToken;
15690
+ exports.headlineVariants = headlineVariants;
15606
15691
  exports.hexToRgb = hexToRgb;
15607
15692
  exports.listItemVariants = listItemVariants;
15608
15693
  exports.listVariants = listVariants;
15694
+ exports.modalDialogVariants = modalDialogVariants;
15695
+ exports.modalHeaderVariants = modalHeaderVariants;
15696
+ exports.modeToggleStateLayerVariants = modeToggleStateLayerVariants;
15697
+ exports.modeToggleVariants = modeToggleVariants;
15698
+ exports.navButtonFocusRingVariants = navButtonFocusRingVariants;
15699
+ exports.navButtonStateLayerVariants = navButtonStateLayerVariants;
15700
+ exports.navButtonVariants = navButtonVariants;
15609
15701
  exports.periodSelectorContainerVariants = periodSelectorContainerVariants;
15610
15702
  exports.periodSelectorItemVariants = periodSelectorItemVariants;
15703
+ exports.popoverVariants = popoverVariants;
15611
15704
  exports.pxToRem = pxToRem;
15612
15705
  exports.remToPx = remToPx;
15613
15706
  exports.rgbToHex = rgbToHex;
15614
15707
  exports.richTooltipVariants = richTooltipVariants;
15708
+ exports.scrimVariants = scrimVariants2;
15615
15709
  exports.searchBarVariants = searchBarVariants;
15616
15710
  exports.searchViewHeaderVariants = searchViewHeaderVariants;
15617
15711
  exports.searchViewVariants = searchViewVariants;
@@ -15625,6 +15719,7 @@ exports.splitButtonContainerVariants = splitButtonContainerVariants;
15625
15719
  exports.splitButtonDropdownVariants = splitButtonDropdownVariants;
15626
15720
  exports.splitButtonPrimaryVariants = splitButtonPrimaryVariants;
15627
15721
  exports.splitButtonVariants = splitButtonVariants;
15722
+ exports.supportingTextVariants = supportingTextVariants;
15628
15723
  exports.timeInputFieldVariants = timeInputFieldVariants;
15629
15724
  exports.timePickerActionButtonVariants = timePickerActionButtonVariants;
15630
15725
  exports.timePickerActionRowVariants = timePickerActionRowVariants;
@@ -15643,7 +15738,11 @@ exports.useFABMenuContext = useFABMenuContext;
15643
15738
  exports.useMenuContext = useMenuContext;
15644
15739
  exports.useOptionalButtonGroup = useOptionalButtonGroup;
15645
15740
  exports.useSnackbar = useSnackbar;
15741
+ exports.weekdayVariants = weekdayVariants;
15646
15742
  exports.withOpacity = withOpacity;
15743
+ exports.yearGridVariants = yearGridVariants;
15744
+ exports.yearItemFocusRingVariants = yearItemFocusRingVariants;
15745
+ exports.yearItemStateLayerVariants = yearItemStateLayerVariants;
15647
15746
  exports.yearItemVariants = yearItemVariants;
15648
15747
  //# sourceMappingURL=index.cjs.map
15649
15748
  //# sourceMappingURL=index.cjs.map