@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.js CHANGED
@@ -5,7 +5,7 @@ export { argbFromHex, hexFromArgb } from '@material/material-color-utilities';
5
5
  import React, { forwardRef, useRef, createContext, useState, useCallback, useId, useMemo, useEffect, useContext, useLayoutEffect, Children, isValidElement, cloneElement } from 'react';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { cva } from 'class-variance-authority';
8
- import { useButton, useHover, useFocusRing, mergeProps as mergeProps$1, useTextField, useCheckbox, VisuallyHidden, useSwitch, useRadioGroup, useRadio, useTabList, useTab, useTabPanel, FocusScope, usePreventScroll, useDialog, useOverlay, useLink, useSeparator, useProgressBar, useToggleButton, useListBox, useOption, useSearchField, useSlider, useDatePicker, useLocale, useDateField, useSliderThumb, useRangeCalendar, useCalendar, usePopover, DismissButton, useDateSegment, useCalendarGrid, useCalendarCell, useTooltipTrigger, useTooltip, useOverlayPosition } from 'react-aria';
8
+ import { useButton, useHover, useFocusRing, mergeProps as mergeProps$1, useTextField, useCheckbox, VisuallyHidden, useSwitch, useRadioGroup, useRadio, useTabList, useTab, useTabPanel, FocusScope, usePreventScroll, useDialog, useOverlay, useLink, useSeparator, useProgressBar, useToggleButton, useListBox, useOption, useSearchField, useSlider, useDatePicker, useLocale, useDateField, useSliderThumb, useRangeCalendar, useCalendar, usePopover, DismissButton, usePress, useDateSegment, useCalendarGrid, useCalendarCell, useTooltipTrigger, useTooltip, useOverlayPosition } from 'react-aria';
9
9
  import { mergeProps, filterDOMProps } from '@react-aria/utils';
10
10
  import { useToggleState, useRadioGroupState, useTabListState, Item, useOverlayTriggerState, useListState, useSearchFieldState, useMenuTriggerState, useSliderState, useDatePickerState, useDateFieldState, useRangeCalendarState, useCalendarState, useTooltipTriggerState } from 'react-stately';
11
11
  import { MenuItem as MenuItem$1, Menu as Menu$1, MenuTrigger as MenuTrigger$1, Popover, MenuSection as MenuSection$1, Separator, Header, useSlottedContext, ButtonContext } from 'react-aria-components';
@@ -4713,13 +4713,21 @@ var HeadlessDrawerItem = forwardRef(
4713
4713
  );
4714
4714
  HeadlessDrawerItem.displayName = "HeadlessDrawerItem";
4715
4715
  var DividerHeadless = forwardRef(
4716
- ({ orientation = "horizontal", className }, ref) => {
4716
+ ({ orientation = "horizontal", className, style }, ref) => {
4717
4717
  const { separatorProps } = useSeparator({
4718
4718
  orientation,
4719
4719
  elementType: orientation === "vertical" ? "div" : "hr"
4720
4720
  });
4721
4721
  if (orientation === "vertical") {
4722
- return /* @__PURE__ */ jsx("div", { ...separatorProps, ref, className });
4722
+ return /* @__PURE__ */ jsx(
4723
+ "div",
4724
+ {
4725
+ ...separatorProps,
4726
+ ref,
4727
+ className,
4728
+ style
4729
+ }
4730
+ );
4723
4731
  }
4724
4732
  return /* @__PURE__ */ jsx(
4725
4733
  "hr",
@@ -4727,32 +4735,46 @@ var DividerHeadless = forwardRef(
4727
4735
  ...separatorProps,
4728
4736
  "aria-orientation": "horizontal",
4729
4737
  ref,
4730
- className
4738
+ className,
4739
+ style
4731
4740
  }
4732
4741
  );
4733
4742
  }
4734
4743
  );
4735
4744
  DividerHeadless.displayName = "DividerHeadless";
4736
4745
  var dividerVariants = cva(
4737
- // Base: always apply the MD3 outline-variant color to the border
4738
- "border-outline-variant",
4746
+ [
4747
+ // Zero border — color comes from background fill (matches md-web strategy)
4748
+ "shrink-0 border-0",
4749
+ // MD3 outline-variant color token
4750
+ "bg-outline-variant",
4751
+ // Default thickness — consumers override via the CSS custom property
4752
+ "[--md-divider-thickness:1px]"
4753
+ ],
4739
4754
  {
4740
4755
  variants: {
4741
4756
  /**
4742
4757
  * Controls the axis of the visual rule.
4758
+ *
4759
+ * horizontal — stretches to full inline width; block size is --md-divider-thickness
4760
+ * vertical — self-stretches to the block axis of the flex/grid parent;
4761
+ * inline size is --md-divider-thickness
4743
4762
  */
4744
4763
  orientation: {
4745
- horizontal: "border-t",
4746
- vertical: "border-l h-auto self-stretch"
4764
+ horizontal: "w-full h-[var(--md-divider-thickness)]",
4765
+ vertical: "self-stretch h-auto w-[var(--md-divider-thickness)]"
4747
4766
  },
4748
4767
  /**
4749
- * Inset — which end(s) are offset by 16dp per MD3 spec.
4768
+ * Inset — logical inline offset per MD3 spec (16dp = 1rem = Tailwind spacing-4).
4769
+ *
4770
+ * Uses logical properties (ms-N / me-N) for correct behaviour under RTL
4771
+ * writing modes (Arabic, Hebrew, etc.).
4750
4772
  */
4751
4773
  inset: {
4752
4774
  none: "",
4753
- start: "ml-4",
4754
- end: "mr-4",
4755
- both: "ml-4 mr-4"
4775
+ start: "ms-4",
4776
+ end: "me-4",
4777
+ both: "ms-4 me-4"
4756
4778
  }
4757
4779
  },
4758
4780
  defaultVariants: {
@@ -4762,44 +4784,15 @@ var dividerVariants = cva(
4762
4784
  }
4763
4785
  );
4764
4786
  var Divider = forwardRef(
4765
- ({ orientation = "horizontal", inset = "none", label, className }, ref) => {
4766
- if (label) {
4767
- return /* @__PURE__ */ jsxs(
4768
- "div",
4769
- {
4770
- ref,
4771
- role: "group",
4772
- "aria-label": label,
4773
- className: cn("flex items-center gap-4", className),
4774
- children: [
4775
- /* @__PURE__ */ jsx(
4776
- DividerHeadless,
4777
- {
4778
- orientation: "horizontal",
4779
- className: cn(dividerVariants({ orientation: "horizontal", inset: "none" }), "flex-1")
4780
- }
4781
- ),
4782
- /* @__PURE__ */ jsx("span", { className: "text-on-surface-variant text-label-large whitespace-nowrap", children: label }),
4783
- /* @__PURE__ */ jsx(
4784
- DividerHeadless,
4785
- {
4786
- orientation: "horizontal",
4787
- className: cn(dividerVariants({ orientation: "horizontal", inset: "none" }), "flex-1")
4788
- }
4789
- )
4790
- ]
4791
- }
4792
- );
4787
+ ({ orientation = "horizontal", inset = "none", className, style }, ref) => /* @__PURE__ */ jsx(
4788
+ DividerHeadless,
4789
+ {
4790
+ ref,
4791
+ orientation,
4792
+ className: cn(dividerVariants({ orientation, inset }), className),
4793
+ ...style !== void 0 && { style }
4793
4794
  }
4794
- return /* @__PURE__ */ jsx(
4795
- DividerHeadless,
4796
- {
4797
- ref,
4798
- orientation,
4799
- className: cn(dividerVariants({ orientation, inset }), className)
4800
- }
4801
- );
4802
- }
4795
+ )
4803
4796
  );
4804
4797
  Divider.displayName = "Divider";
4805
4798
  var drawerVariants = cva(
@@ -13206,10 +13199,17 @@ function mapToInputProps(props) {
13206
13199
  const { orientation: _orientation, minuteStep: _minuteStep, ...inputProps } = props;
13207
13200
  return inputProps;
13208
13201
  }
13209
- function CalendarCell({ date, state }) {
13202
+ function CalendarCell({
13203
+ date,
13204
+ state,
13205
+ className,
13206
+ children
13207
+ }) {
13210
13208
  const ref = useRef(null);
13211
13209
  const { cellProps, buttonProps, isSelected, isDisabled, isUnavailable, formattedDate } = useCalendarCell({ date }, state, ref);
13212
- const { focusProps, isFocusVisible, isFocused } = useFocusRing();
13210
+ const { focusProps, isFocusVisible } = useFocusRing();
13211
+ const { hoverProps, isHovered } = useHover({ isDisabled: isDisabled || isUnavailable });
13212
+ const { pressProps, isPressed } = usePress({ isDisabled: isDisabled || isUnavailable });
13213
13213
  const isCurrentDay = isSameDay(date, today(getLocalTimeZone()));
13214
13214
  const isOutsideMonth = date.month !== state.visibleRange.start.month || date.year !== state.visibleRange.start.year;
13215
13215
  let isRangeStart = false;
@@ -13221,28 +13221,38 @@ function CalendarCell({ date, state }) {
13221
13221
  isRangeEnd = isSameDay(date, range.end);
13222
13222
  isRangeMiddle = date.compare(range.start) > 0 && date.compare(range.end) < 0;
13223
13223
  }
13224
- return /* @__PURE__ */ jsx("td", { ...cellProps, children: /* @__PURE__ */ jsx(
13224
+ return /* @__PURE__ */ jsx("td", { ...cellProps, children: /* @__PURE__ */ jsxs(
13225
13225
  "div",
13226
13226
  {
13227
- ...mergeProps$1(buttonProps, focusProps),
13227
+ ...mergeProps$1(buttonProps, focusProps, hoverProps, pressProps),
13228
13228
  ref,
13229
+ className,
13229
13230
  "aria-current": isCurrentDay ? "date" : void 0,
13230
- "data-selected": isSelected || void 0,
13231
- "data-today": isCurrentDay || void 0,
13232
- "data-outside-month": isOutsideMonth || void 0,
13233
- "data-range-start": isRangeStart || void 0,
13234
- "data-range-end": isRangeEnd || void 0,
13235
- "data-range-middle": isRangeMiddle || void 0,
13236
- "data-disabled": isDisabled || void 0,
13237
- "data-unavailable": isUnavailable || void 0,
13238
- "data-focused": isFocused || void 0,
13239
- "data-focus-visible": isFocusVisible || void 0,
13240
- children: formattedDate
13231
+ "data-selected": isSelected ? "" : void 0,
13232
+ "data-today": isCurrentDay ? "" : void 0,
13233
+ "data-outside-month": isOutsideMonth ? "" : void 0,
13234
+ "data-range-start": isRangeStart ? "" : void 0,
13235
+ "data-range-end": isRangeEnd ? "" : void 0,
13236
+ "data-range-middle": isRangeMiddle ? "" : void 0,
13237
+ "data-disabled": isDisabled ? "" : void 0,
13238
+ "data-unavailable": isUnavailable ? "" : void 0,
13239
+ "data-focus-visible": isFocusVisible ? "" : void 0,
13240
+ "data-hovered": isHovered ? "" : void 0,
13241
+ "data-pressed": isPressed ? "" : void 0,
13242
+ children: [
13243
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none relative z-10", children: formattedDate }),
13244
+ children
13245
+ ]
13241
13246
  }
13242
13247
  ) });
13243
13248
  }
13244
13249
  CalendarCell.displayName = "CalendarCell";
13245
- function CalendarGrid({ state, firstDayOfWeek }) {
13250
+ function CalendarGrid({
13251
+ state,
13252
+ firstDayOfWeek,
13253
+ CellComponent = CalendarCell,
13254
+ WeekdayComponent
13255
+ }) {
13246
13256
  const { locale } = useLocale();
13247
13257
  const gridOptions = firstDayOfWeek ? { firstDayOfWeek } : {};
13248
13258
  const { gridProps, headerProps, weekDays } = useCalendarGrid(gridOptions, state);
@@ -13252,9 +13262,11 @@ function CalendarGrid({ state, firstDayOfWeek }) {
13252
13262
  firstDayOfWeek ?? void 0
13253
13263
  );
13254
13264
  return /* @__PURE__ */ jsxs("table", { ...gridProps, children: [
13255
- /* @__PURE__ */ jsx("thead", { ...headerProps, "aria-hidden": void 0, children: /* @__PURE__ */ jsx("tr", { children: weekDays.map((day, index) => /* @__PURE__ */ jsx("th", { role: "columnheader", children: day }, index)) }) }),
13265
+ /* @__PURE__ */ jsx("thead", { ...headerProps, "aria-hidden": void 0, children: /* @__PURE__ */ jsx("tr", { children: weekDays.map(
13266
+ (day, index) => WeekdayComponent ? /* @__PURE__ */ jsx("th", { role: "columnheader", children: /* @__PURE__ */ jsx(WeekdayComponent, { label: day }) }, index) : /* @__PURE__ */ jsx("th", { role: "columnheader", children: day }, index)
13267
+ ) }) }),
13256
13268
  /* @__PURE__ */ jsx("tbody", { children: [...new Array(weeksInMonth).keys()].map((weekIndex) => /* @__PURE__ */ jsx("tr", { children: state.getDatesInWeek(weekIndex).map(
13257
- (date, i) => date ? /* @__PURE__ */ jsx(CalendarCell, { state, date }, i) : /* @__PURE__ */ jsx("td", {}, i)
13269
+ (date, i) => date ? /* @__PURE__ */ jsx(CellComponent, { state, date }, i) : /* @__PURE__ */ jsx("td", {}, i)
13258
13270
  ) }, weekIndex)) })
13259
13271
  ] });
13260
13272
  }
@@ -13285,12 +13297,32 @@ function ChevronRightIcon() {
13285
13297
  function DropdownArrowIcon() {
13286
13298
  return /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M7 10l5 5 5-5z" }) });
13287
13299
  }
13300
+ function DefaultTitle({ title, onClick, showDropdownIndicator }) {
13301
+ if (onClick) {
13302
+ return /* @__PURE__ */ jsxs(
13303
+ "button",
13304
+ {
13305
+ type: "button",
13306
+ onClick,
13307
+ "data-calendar-title": true,
13308
+ "aria-label": `${title}, click to select year`,
13309
+ children: [
13310
+ /* @__PURE__ */ jsx("h2", { "aria-live": "polite", children: title }),
13311
+ showDropdownIndicator && /* @__PURE__ */ jsx(DropdownArrowIcon, {})
13312
+ ]
13313
+ }
13314
+ );
13315
+ }
13316
+ return /* @__PURE__ */ jsx("div", { "data-calendar-title": true, children: /* @__PURE__ */ jsx("h2", { "aria-live": "polite", children: title }) });
13317
+ }
13288
13318
  function CalendarHeader({
13289
13319
  title,
13290
13320
  prevButtonProps,
13291
13321
  nextButtonProps,
13292
13322
  onTitleClick,
13293
- showDropdownIndicator = false
13323
+ showDropdownIndicator = false,
13324
+ NavButtonComponent = NavigationButton,
13325
+ TitleComponent = DefaultTitle
13294
13326
  }) {
13295
13327
  const enhancedPrevProps = {
13296
13328
  ...prevButtonProps,
@@ -13301,22 +13333,17 @@ function CalendarHeader({
13301
13333
  "aria-label": "Next month"
13302
13334
  };
13303
13335
  return /* @__PURE__ */ jsxs("div", { "data-calendar-header": true, children: [
13304
- onTitleClick ? /* @__PURE__ */ jsxs(
13305
- "button",
13336
+ /* @__PURE__ */ jsx(
13337
+ TitleComponent,
13306
13338
  {
13307
- type: "button",
13339
+ title,
13308
13340
  onClick: onTitleClick,
13309
- "data-calendar-title": true,
13310
- "aria-label": `${title}, click to select year`,
13311
- children: [
13312
- /* @__PURE__ */ jsx("h2", { "aria-live": "polite", children: title }),
13313
- showDropdownIndicator && /* @__PURE__ */ jsx(DropdownArrowIcon, {})
13314
- ]
13341
+ showDropdownIndicator
13315
13342
  }
13316
- ) : /* @__PURE__ */ jsx("div", { "data-calendar-title": true, children: /* @__PURE__ */ jsx("h2", { "aria-live": "polite", children: title }) }),
13343
+ ),
13317
13344
  /* @__PURE__ */ jsxs("div", { "data-calendar-nav": true, children: [
13318
- /* @__PURE__ */ jsx(NavigationButton, { ...enhancedPrevProps, children: /* @__PURE__ */ jsx(ChevronLeftIcon, {}) }),
13319
- /* @__PURE__ */ jsx(NavigationButton, { ...enhancedNextProps, children: /* @__PURE__ */ jsx(ChevronRightIcon, {}) })
13345
+ /* @__PURE__ */ jsx(NavButtonComponent, { ...enhancedPrevProps, children: /* @__PURE__ */ jsx(ChevronLeftIcon, {}) }),
13346
+ /* @__PURE__ */ jsx(NavButtonComponent, { ...enhancedNextProps, children: /* @__PURE__ */ jsx(ChevronRightIcon, {}) })
13320
13347
  ] })
13321
13348
  ] });
13322
13349
  }
@@ -13335,7 +13362,8 @@ function YearGrid({
13335
13362
  selectedYear,
13336
13363
  onYearSelect,
13337
13364
  minYear,
13338
- maxYear
13365
+ maxYear,
13366
+ YearItemComponent
13339
13367
  }) {
13340
13368
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
13341
13369
  const startYear = minYear ?? currentYear - YEAR_RANGE_OFFSET;
@@ -13361,6 +13389,17 @@ function YearGrid({
13361
13389
  },
13362
13390
  children: years.map((year) => {
13363
13391
  const isSelected = year === selectedYear;
13392
+ if (YearItemComponent) {
13393
+ return /* @__PURE__ */ jsx(
13394
+ YearItemComponent,
13395
+ {
13396
+ year,
13397
+ isSelected,
13398
+ onSelect: onYearSelect
13399
+ },
13400
+ year
13401
+ );
13402
+ }
13364
13403
  return /* @__PURE__ */ jsx(
13365
13404
  "button",
13366
13405
  {
@@ -13368,7 +13407,7 @@ function YearGrid({
13368
13407
  role: "gridcell",
13369
13408
  "aria-selected": isSelected,
13370
13409
  "data-year-item": true,
13371
- "data-selected": isSelected || void 0,
13410
+ "data-selected": isSelected ? "" : void 0,
13372
13411
  ref: isSelected ? selectedRef : void 0,
13373
13412
  onClick: () => onYearSelect(year),
13374
13413
  children: year
@@ -13424,6 +13463,7 @@ function SingleCalendarInner({ calendarRef, ...props }) {
13424
13463
  setCurrentView("day");
13425
13464
  props.onViewChange?.("day");
13426
13465
  };
13466
+ const slots = props.slots ?? {};
13427
13467
  return /* @__PURE__ */ jsxs("div", { ...calendarProps, ref: calendarRef, className: props.className, "data-view": currentView, children: [
13428
13468
  /* @__PURE__ */ jsx(
13429
13469
  CalendarHeader,
@@ -13432,14 +13472,25 @@ function SingleCalendarInner({ calendarRef, ...props }) {
13432
13472
  prevButtonProps: currentView === "day" ? prevButtonProps : { isDisabled: true },
13433
13473
  nextButtonProps: currentView === "day" ? nextButtonProps : { isDisabled: true },
13434
13474
  onTitleClick: handleTitleClick,
13435
- showDropdownIndicator: true
13475
+ showDropdownIndicator: true,
13476
+ ...slots.NavButtonComponent ? { NavButtonComponent: slots.NavButtonComponent } : {},
13477
+ ...slots.TitleComponent ? { TitleComponent: slots.TitleComponent } : {}
13436
13478
  }
13437
13479
  ),
13438
- currentView === "day" ? /* @__PURE__ */ jsx(CalendarGrid, { state, firstDayOfWeek: firstDay }) : /* @__PURE__ */ jsx(
13480
+ currentView === "day" ? /* @__PURE__ */ jsx(
13481
+ CalendarGrid,
13482
+ {
13483
+ state,
13484
+ firstDayOfWeek: firstDay,
13485
+ ...slots.CellComponent ? { CellComponent: slots.CellComponent } : {},
13486
+ ...slots.WeekdayComponent ? { WeekdayComponent: slots.WeekdayComponent } : {}
13487
+ }
13488
+ ) : /* @__PURE__ */ jsx(
13439
13489
  YearGrid,
13440
13490
  {
13441
13491
  selectedYear: state.focusedDate.year,
13442
13492
  onYearSelect: handleYearSelect,
13493
+ ...slots.YearItemComponent ? { YearItemComponent: slots.YearItemComponent } : {},
13443
13494
  ...props.minValue ? { minYear: props.minValue.year } : {},
13444
13495
  ...props.maxValue ? { maxYear: props.maxValue.year } : {}
13445
13496
  }
@@ -13499,6 +13550,7 @@ function RangeCalendarInner({ calendarRef, ...props }) {
13499
13550
  setCurrentView("day");
13500
13551
  props.onViewChange?.("day");
13501
13552
  };
13553
+ const slots = props.slots ?? {};
13502
13554
  return /* @__PURE__ */ jsxs("div", { ...calendarProps, ref: calendarRef, className: props.className, "data-view": currentView, children: [
13503
13555
  /* @__PURE__ */ jsx(
13504
13556
  CalendarHeader,
@@ -13507,14 +13559,25 @@ function RangeCalendarInner({ calendarRef, ...props }) {
13507
13559
  prevButtonProps: currentView === "day" ? prevButtonProps : { isDisabled: true },
13508
13560
  nextButtonProps: currentView === "day" ? nextButtonProps : { isDisabled: true },
13509
13561
  onTitleClick: handleTitleClick,
13510
- showDropdownIndicator: true
13562
+ showDropdownIndicator: true,
13563
+ ...slots.NavButtonComponent ? { NavButtonComponent: slots.NavButtonComponent } : {},
13564
+ ...slots.TitleComponent ? { TitleComponent: slots.TitleComponent } : {}
13511
13565
  }
13512
13566
  ),
13513
- currentView === "day" ? /* @__PURE__ */ jsx(CalendarGrid, { state, firstDayOfWeek: firstDay }) : /* @__PURE__ */ jsx(
13567
+ currentView === "day" ? /* @__PURE__ */ jsx(
13568
+ CalendarGrid,
13569
+ {
13570
+ state,
13571
+ firstDayOfWeek: firstDay,
13572
+ ...slots.CellComponent ? { CellComponent: slots.CellComponent } : {},
13573
+ ...slots.WeekdayComponent ? { WeekdayComponent: slots.WeekdayComponent } : {}
13574
+ }
13575
+ ) : /* @__PURE__ */ jsx(
13514
13576
  YearGrid,
13515
13577
  {
13516
13578
  selectedYear: state.focusedDate.year,
13517
13579
  onYearSelect: handleYearSelect,
13580
+ ...slots.YearItemComponent ? { YearItemComponent: slots.YearItemComponent } : {},
13518
13581
  ...props.minValue ? { minYear: props.minValue.year } : {},
13519
13582
  ...props.maxValue ? { maxYear: props.maxValue.year } : {}
13520
13583
  }
@@ -13532,6 +13595,24 @@ var CalendarCore = forwardRef((props, forwardedRef) => {
13532
13595
  return /* @__PURE__ */ jsx(SingleCalendarInner, { ...rest, calendarRef: ref }, "single");
13533
13596
  });
13534
13597
  CalendarCore.displayName = "CalendarCore";
13598
+ function HeadlessActionButton({
13599
+ label,
13600
+ "aria-label": ariaLabel,
13601
+ onPress,
13602
+ isDisabled,
13603
+ "data-action": dataAction
13604
+ }) {
13605
+ const ref = useRef(null);
13606
+ const { buttonProps } = useButton(
13607
+ {
13608
+ "aria-label": ariaLabel ?? label,
13609
+ isDisabled: isDisabled ?? false,
13610
+ ...onPress ? { onPress } : {}
13611
+ },
13612
+ ref
13613
+ );
13614
+ return /* @__PURE__ */ jsx("button", { ...buttonProps, ref, type: "button", "data-action": dataAction, children: label });
13615
+ }
13535
13616
  function DatePickerActions({
13536
13617
  cancelLabel = "Cancel",
13537
13618
  confirmLabel = "OK",
@@ -13541,37 +13622,38 @@ function DatePickerActions({
13541
13622
  onCancel,
13542
13623
  onConfirm,
13543
13624
  onClear,
13544
- className
13625
+ className,
13626
+ ButtonComponent = HeadlessActionButton
13545
13627
  }) {
13546
- const clearRef = useRef(null);
13547
- const cancelRef = useRef(null);
13548
- const confirmRef = useRef(null);
13549
- const { buttonProps: clearButtonProps } = useButton(
13550
- {
13551
- "aria-label": clearLabel,
13552
- ...onClear ? { onPress: onClear } : {}
13553
- },
13554
- clearRef
13555
- );
13556
- const { buttonProps: cancelButtonProps } = useButton(
13557
- {
13558
- "aria-label": cancelLabel,
13559
- ...onCancel ? { onPress: onCancel } : {}
13560
- },
13561
- cancelRef
13562
- );
13563
- const { buttonProps: confirmButtonProps } = useButton(
13564
- {
13565
- "aria-label": confirmLabel,
13566
- isDisabled: isConfirmDisabled,
13567
- ...onConfirm ? { onPress: onConfirm } : {}
13568
- },
13569
- confirmRef
13570
- );
13571
13628
  return /* @__PURE__ */ jsxs("div", { className, "data-actions": true, children: [
13572
- showClear && /* @__PURE__ */ jsx("button", { ...clearButtonProps, ref: clearRef, type: "button", "data-action": "clear", children: clearLabel }),
13573
- /* @__PURE__ */ jsx("button", { ...cancelButtonProps, ref: cancelRef, type: "button", "data-action": "cancel", children: cancelLabel }),
13574
- /* @__PURE__ */ jsx("button", { ...confirmButtonProps, ref: confirmRef, type: "button", "data-action": "confirm", children: confirmLabel })
13629
+ showClear && /* @__PURE__ */ jsx(
13630
+ ButtonComponent,
13631
+ {
13632
+ label: clearLabel,
13633
+ "aria-label": clearLabel,
13634
+ onPress: onClear,
13635
+ "data-action": "clear"
13636
+ }
13637
+ ),
13638
+ /* @__PURE__ */ jsx(
13639
+ ButtonComponent,
13640
+ {
13641
+ label: cancelLabel,
13642
+ "aria-label": cancelLabel,
13643
+ onPress: onCancel,
13644
+ "data-action": "cancel"
13645
+ }
13646
+ ),
13647
+ /* @__PURE__ */ jsx(
13648
+ ButtonComponent,
13649
+ {
13650
+ label: confirmLabel,
13651
+ "aria-label": confirmLabel,
13652
+ onPress: onConfirm,
13653
+ isDisabled: isConfirmDisabled,
13654
+ "data-action": "confirm"
13655
+ }
13656
+ )
13575
13657
  ] });
13576
13658
  }
13577
13659
  DatePickerActions.displayName = "DatePickerActions";
@@ -13610,21 +13692,26 @@ function CalendarTriggerIcon() {
13610
13692
  }
13611
13693
  function PopoverContent({
13612
13694
  popoverRef,
13613
- triggerRef,
13695
+ anchorRef,
13614
13696
  state,
13615
13697
  dialogProps,
13616
13698
  calendarProps,
13617
13699
  cancelLabel,
13618
13700
  confirmLabel,
13619
13701
  onCancel,
13620
- onConfirm
13702
+ onConfirm,
13703
+ slots,
13704
+ ActionButtonComponent,
13705
+ popoverClassName
13621
13706
  }) {
13622
13707
  const { popoverProps } = usePopover(
13623
13708
  {
13624
13709
  popoverRef,
13625
- triggerRef,
13710
+ triggerRef: anchorRef,
13626
13711
  placement: "bottom start",
13627
- offset: 4
13712
+ offset: 4,
13713
+ shouldFlip: true,
13714
+ containerPadding: 12
13628
13715
  },
13629
13716
  state
13630
13717
  );
@@ -13638,7 +13725,10 @@ function PopoverContent({
13638
13725
  document.addEventListener("keydown", handleKeyDown);
13639
13726
  return () => document.removeEventListener("keydown", handleKeyDown);
13640
13727
  }, [state]);
13641
- return /* @__PURE__ */ jsxs("div", { ...popoverProps, ref: popoverRef, "data-popover": true, children: [
13728
+ if (typeof document === "undefined") {
13729
+ return null;
13730
+ }
13731
+ const content = /* @__PURE__ */ jsxs("div", { ...popoverProps, ref: popoverRef, "data-popover": true, className: cn(popoverClassName), children: [
13642
13732
  /* @__PURE__ */ jsx(DismissButton, { onDismiss: () => state.close() }),
13643
13733
  /* @__PURE__ */ jsxs("div", { ...dialogProps, role: "dialog", children: [
13644
13734
  /* @__PURE__ */ jsx(
@@ -13653,7 +13743,8 @@ function PopoverContent({
13653
13743
  ...calendarProps.isReadOnly ? { isReadOnly: calendarProps.isReadOnly } : {},
13654
13744
  ...calendarProps.isDateUnavailable ? { isDateUnavailable: calendarProps.isDateUnavailable } : {}
13655
13745
  },
13656
- "aria-label": calendarProps["aria-label"] ?? "Calendar"
13746
+ "aria-label": calendarProps["aria-label"] ?? "Calendar",
13747
+ ...slots ? { slots } : {}
13657
13748
  }
13658
13749
  ),
13659
13750
  /* @__PURE__ */ jsx(
@@ -13662,12 +13753,14 @@ function PopoverContent({
13662
13753
  cancelLabel,
13663
13754
  confirmLabel,
13664
13755
  onCancel,
13665
- onConfirm
13756
+ onConfirm,
13757
+ ...ActionButtonComponent !== void 0 ? { ButtonComponent: ActionButtonComponent } : {}
13666
13758
  }
13667
13759
  )
13668
13760
  ] }),
13669
13761
  /* @__PURE__ */ jsx(DismissButton, { onDismiss: () => state.close() })
13670
13762
  ] });
13763
+ return createPortal(content, document.body);
13671
13764
  }
13672
13765
  var DatePickerDocked = forwardRef(
13673
13766
  (props, forwardedRef) => {
@@ -13677,11 +13770,15 @@ var DatePickerDocked = forwardRef(
13677
13770
  onCancel,
13678
13771
  onConfirm,
13679
13772
  className,
13773
+ popoverClassName,
13774
+ slots,
13775
+ ActionButtonComponent,
13680
13776
  ...datePickerProps
13681
13777
  } = props;
13682
13778
  const internalRef = useRef(null);
13683
13779
  const ref = forwardedRef ?? internalRef;
13684
13780
  const triggerRef = useRef(null);
13781
+ const groupRef = useRef(null);
13685
13782
  const popoverRef = useRef(null);
13686
13783
  const stateProps = {
13687
13784
  ...datePickerProps.value !== void 0 ? { value: datePickerProps.value } : {},
@@ -13712,7 +13809,14 @@ var DatePickerDocked = forwardRef(
13712
13809
  dialogProps,
13713
13810
  calendarProps
13714
13811
  } = useDatePicker(stateProps, state, ref);
13715
- const { buttonProps: iconButtonProps } = useButton(triggerButtonAriaProps, triggerRef);
13812
+ const { buttonProps: iconButtonProps, isPressed: isTriggerPressed } = useButton(
13813
+ triggerButtonAriaProps,
13814
+ triggerRef
13815
+ );
13816
+ const { isFocusVisible: isTriggerFocusVisible, focusProps: triggerFocusProps } = useFocusRing();
13817
+ const { isHovered: isTriggerHovered, hoverProps: triggerHoverProps } = useHover({
13818
+ isDisabled: datePickerProps.isDisabled ?? false
13819
+ });
13716
13820
  const valueBeforeOpenRef = useRef(null);
13717
13821
  useEffect(() => {
13718
13822
  if (state.isOpen) {
@@ -13741,26 +13845,44 @@ var DatePickerDocked = forwardRef(
13741
13845
  ref,
13742
13846
  className,
13743
13847
  "data-variant": "docked",
13744
- "data-open": state.isOpen ?? void 0,
13745
- "data-disabled": datePickerProps.isDisabled ?? void 0,
13848
+ "data-open": state.isOpen ? "" : void 0,
13849
+ "data-disabled": datePickerProps.isDisabled ? "" : void 0,
13746
13850
  children: [
13747
13851
  datePickerProps.label && /* @__PURE__ */ jsx("label", { ...labelProps, "data-label": true, children: datePickerProps.label }),
13748
- /* @__PURE__ */ jsxs("div", { ...groupProps, "data-field-group": true, children: [
13852
+ /* @__PURE__ */ jsxs("div", { ...groupProps, ref: groupRef, "data-field-group": true, children: [
13749
13853
  /* @__PURE__ */ jsx(PickerDateField, { fieldProps }),
13750
- /* @__PURE__ */ jsx("button", { ...iconButtonProps, ref: triggerRef, type: "button", "data-trigger": true, children: /* @__PURE__ */ jsx(CalendarTriggerIcon, {}) })
13854
+ /* @__PURE__ */ jsx(
13855
+ "button",
13856
+ {
13857
+ ...mergeProps$1(iconButtonProps, triggerFocusProps, triggerHoverProps),
13858
+ ref: triggerRef,
13859
+ type: "button",
13860
+ "data-trigger": true,
13861
+ ...getInteractionDataAttributes({
13862
+ isHovered: isTriggerHovered,
13863
+ isFocusVisible: isTriggerFocusVisible,
13864
+ isPressed: isTriggerPressed,
13865
+ isDisabled: datePickerProps.isDisabled ?? false
13866
+ }),
13867
+ children: /* @__PURE__ */ jsx(CalendarTriggerIcon, {})
13868
+ }
13869
+ )
13751
13870
  ] }),
13752
13871
  state.isOpen && /* @__PURE__ */ jsx(
13753
13872
  PopoverContent,
13754
13873
  {
13755
13874
  popoverRef,
13756
- triggerRef,
13875
+ anchorRef: groupRef,
13757
13876
  state,
13758
13877
  dialogProps,
13759
13878
  calendarProps,
13760
13879
  cancelLabel,
13761
13880
  confirmLabel,
13762
13881
  onCancel: handleCancel,
13763
- onConfirm: handleConfirm
13882
+ onConfirm: handleConfirm,
13883
+ ...slots !== void 0 ? { slots } : {},
13884
+ ...ActionButtonComponent !== void 0 ? { ActionButtonComponent } : {},
13885
+ ...popoverClassName !== void 0 ? { popoverClassName } : {}
13764
13886
  }
13765
13887
  )
13766
13888
  ]
@@ -13769,298 +13891,570 @@ var DatePickerDocked = forwardRef(
13769
13891
  }
13770
13892
  );
13771
13893
  DatePickerDocked.displayName = "DatePickerDocked";
13772
- var datePickerContainerVariants = cva(
13894
+ var datePickerContainerVariants = cva("", {
13895
+ variants: {
13896
+ variant: {
13897
+ docked: "w-[360px]",
13898
+ // NOTE: measurement-derived (360dp fixed width); permitted exception
13899
+ modal: [
13900
+ "bg-surface-container-high",
13901
+ "rounded-3xl",
13902
+ "overflow-hidden",
13903
+ "w-[360px]"
13904
+ // NOTE: measurement-derived (360dp fixed width); permitted exception
13905
+ ],
13906
+ "modal-input": [
13907
+ "bg-surface-container-high",
13908
+ "rounded-3xl",
13909
+ "overflow-hidden",
13910
+ "w-[328px]"
13911
+ // NOTE: measurement-derived (328dp); permitted exception
13912
+ ]
13913
+ }
13914
+ },
13915
+ defaultVariants: {
13916
+ variant: "docked"
13917
+ }
13918
+ });
13919
+ var calendarCellVariants = cva([
13920
+ // Layout — 48dp circle touch target
13921
+ "relative flex items-center justify-center",
13922
+ "w-[48px] h-[48px]",
13923
+ // NOTE: measurement-derived (48dp touch target); permitted exception
13924
+ "rounded-full",
13925
+ "select-none cursor-pointer",
13926
+ "overflow-hidden",
13927
+ // clips state layer to circle
13928
+ // Typography
13929
+ "text-body-large",
13930
+ // Base text color
13931
+ "text-on-surface",
13932
+ // Effects transition for color changes (not spatial — no overshoot)
13933
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
13934
+ // Remove default focus outline — handled via calendarCellFocusRingVariants
13935
+ "focus-visible:outline-none",
13936
+ // Carries group scope for child slots
13937
+ "group/calendar-cell",
13938
+ // ── Today (unselected) ────────────────────────────────────────────────────
13939
+ "data-[today]:not([data-selected]):text-primary",
13940
+ "data-[today]:not([data-selected]):border data-[today]:not([data-selected]):border-primary",
13941
+ // ── Selected ──────────────────────────────────────────────────────────────
13942
+ "data-[selected]:bg-primary data-[selected]:text-on-primary",
13943
+ // ── Range start/end: half-pill shape (right-flat for start, left-flat for end) ──
13944
+ "data-[range-start]:rounded-r-none",
13945
+ "data-[range-end]:rounded-l-none",
13946
+ // ── Range middle ──────────────────────────────────────────────────────────
13947
+ "data-[range-middle]:bg-secondary-container",
13948
+ "data-[range-middle]:text-on-secondary-container",
13949
+ "data-[range-middle]:rounded-none",
13950
+ // ── Outside month ─────────────────────────────────────────────────────────
13951
+ "data-[outside-month]:not([data-selected]):text-on-surface-variant",
13952
+ // ── Disabled ──────────────────────────────────────────────────────────────
13953
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed",
13954
+ // ── Unavailable ───────────────────────────────────────────────────────────
13955
+ "data-[unavailable]:text-on-surface/38 data-[unavailable]:line-through"
13956
+ ]);
13957
+ var calendarCellStateLayerVariants = cva([
13958
+ "pointer-events-none absolute inset-0 rounded-[inherit] opacity-0",
13959
+ // Base state-layer color (unselected)
13960
+ "bg-on-surface",
13961
+ // Effects transition — spring standard fast (no spatial overshoot)
13962
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
13963
+ // Selected → state layer color switches to on-primary
13964
+ "group-data-[selected]/calendar-cell:bg-on-primary",
13965
+ // Range middle → state layer color switches to on-secondary-container
13966
+ "group-data-[range-middle]/calendar-cell:bg-on-secondary-container",
13967
+ // Interaction opacities (MD3: hover 8%, focus/pressed 10%)
13968
+ "group-data-[hovered]/calendar-cell:opacity-8",
13969
+ "group-data-[focus-visible]/calendar-cell:opacity-10",
13970
+ "group-data-[pressed]/calendar-cell:opacity-10",
13971
+ // No state layer for disabled/unavailable
13972
+ "group-data-[disabled]/calendar-cell:hidden",
13973
+ "group-data-[unavailable]/calendar-cell:hidden"
13974
+ ]);
13975
+ var calendarCellFocusRingVariants = cva([
13976
+ "pointer-events-none absolute inset-0 rounded-full",
13977
+ "outline outline-2 outline-offset-0 outline-secondary",
13978
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
13979
+ "opacity-0",
13980
+ "group-data-[focus-visible]/calendar-cell:opacity-100"
13981
+ ]);
13982
+ var calendarHeaderVariants = cva([
13983
+ "flex items-center justify-between",
13984
+ "px-3 py-2"
13985
+ // NOTE: measurement-derived padding; permitted exception
13986
+ ]);
13987
+ var navButtonVariants = cva([
13988
+ // Layout
13989
+ "relative flex items-center justify-center",
13990
+ "w-10 h-10 rounded-full",
13991
+ // NOTE: 40dp; permitted exception
13992
+ // Typography
13993
+ "text-on-surface-variant",
13994
+ // Reset
13995
+ "bg-transparent border-none cursor-pointer",
13996
+ "overflow-hidden",
13997
+ // Focus outline removed — ring handled by navButtonFocusRingVariants
13998
+ "focus-visible:outline-none",
13999
+ // Effects transition
14000
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14001
+ // Disabled — self-targeting
14002
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none",
14003
+ // Carries group scope
14004
+ "group/nav-button"
14005
+ ]);
14006
+ var navButtonStateLayerVariants = cva([
14007
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14008
+ "bg-on-surface-variant",
14009
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14010
+ "group-data-[hovered]/nav-button:opacity-8",
14011
+ "group-data-[focus-visible]/nav-button:opacity-10",
14012
+ "group-data-[pressed]/nav-button:opacity-10",
14013
+ "group-data-[disabled]/nav-button:hidden"
14014
+ ]);
14015
+ var navButtonFocusRingVariants = cva([
14016
+ "pointer-events-none absolute inset-0 rounded-full",
14017
+ "outline outline-2 outline-offset-0 outline-secondary",
14018
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14019
+ "opacity-0",
14020
+ "group-data-[focus-visible]/nav-button:opacity-100"
14021
+ ]);
14022
+ var calendarTitleVariants = cva([
14023
+ "relative flex items-center gap-0.5",
14024
+ "bg-transparent border-none cursor-pointer",
14025
+ "rounded-full px-2 py-1",
14026
+ "overflow-hidden",
14027
+ "focus-visible:outline-none",
14028
+ // Effects transition
14029
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14030
+ // Group scope
14031
+ "group/calendar-title"
14032
+ ]);
14033
+ var calendarTitleTextVariants = cva([
14034
+ "text-label-large text-on-surface-variant m-0 pointer-events-none"
14035
+ ]);
14036
+ var calendarTitleIconVariants = cva(["text-on-surface-variant pointer-events-none"]);
14037
+ var calendarTitleStateLayerVariants = cva([
14038
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14039
+ "bg-on-surface-variant",
14040
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14041
+ "group-data-[hovered]/calendar-title:opacity-8",
14042
+ "group-data-[focus-visible]/calendar-title:opacity-10",
14043
+ "group-data-[pressed]/calendar-title:opacity-10"
14044
+ ]);
14045
+ var yearGridVariants = cva([
14046
+ "grid grid-cols-3 gap-2",
14047
+ "px-3 py-2",
14048
+ "max-h-[280px] overflow-y-auto",
14049
+ // NOTE: measurement-derived max height; permitted exception
14050
+ "place-items-center"
14051
+ ]);
14052
+ var yearItemVariants = cva([
14053
+ // Layout
14054
+ "relative flex items-center justify-center",
14055
+ "w-[88px] h-[52px]",
14056
+ // NOTE: measurement-derived (88dp×52dp); permitted exception
14057
+ "rounded-full",
14058
+ "cursor-pointer select-none",
14059
+ "overflow-hidden",
14060
+ // Typography
14061
+ "text-body-large",
14062
+ // Reset
14063
+ "bg-transparent border-none",
14064
+ // Focus outline removed — ring handled by yearItemFocusRingVariants
14065
+ "focus-visible:outline-none",
14066
+ // Effects transition
14067
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14068
+ // Group scope
14069
+ "group/year-item",
14070
+ // ── Unselected (base) ─────────────────────────────────────────────────────
14071
+ "text-on-surface-variant",
14072
+ // ── Selected ──────────────────────────────────────────────────────────────
14073
+ "data-[selected]:bg-primary data-[selected]:text-on-primary",
14074
+ // ── Disabled ──────────────────────────────────────────────────────────────
14075
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none"
14076
+ ]);
14077
+ var yearItemStateLayerVariants = cva([
14078
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14079
+ "bg-on-surface-variant",
14080
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14081
+ // Selected → state layer switches color
14082
+ "group-data-[selected]/year-item:bg-on-primary",
14083
+ // Interaction opacities
14084
+ "group-data-[hovered]/year-item:opacity-8",
14085
+ "group-data-[focus-visible]/year-item:opacity-10",
14086
+ "group-data-[pressed]/year-item:opacity-10",
14087
+ "group-data-[disabled]/year-item:hidden"
14088
+ ]);
14089
+ var yearItemFocusRingVariants = cva([
14090
+ "pointer-events-none absolute inset-0 rounded-full",
14091
+ "outline outline-2 outline-offset-0 outline-secondary",
14092
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14093
+ "opacity-0",
14094
+ "group-data-[focus-visible]/year-item:opacity-100"
14095
+ ]);
14096
+ var weekdayVariants = cva([
14097
+ "text-body-small text-on-surface-variant font-normal",
14098
+ "w-[48px] h-[48px]",
14099
+ // NOTE: measurement-derived; permitted exception
14100
+ "flex items-center justify-center",
14101
+ "select-none"
14102
+ ]);
14103
+ var calendarDividerVariants = cva(["border-t border-outline-variant w-full"]);
14104
+ var actionRowVariants = cva([
14105
+ "flex items-center justify-end gap-2",
14106
+ "px-3 py-2",
14107
+ "h-12"
14108
+ // NOTE: measurement-derived (48dp action row height); permitted exception
14109
+ ]);
14110
+ var actionButtonVariants = cva([
14111
+ // Layout
14112
+ "relative flex items-center justify-center",
14113
+ "rounded-full px-3 py-2 min-h-[48px]",
14114
+ // NOTE: 48dp min touch; permitted exception
14115
+ // Typography + color
14116
+ "text-label-large text-primary",
14117
+ // Reset
14118
+ "bg-transparent border-none cursor-pointer",
14119
+ "overflow-hidden",
14120
+ "focus-visible:outline-none",
14121
+ // Effects transition
14122
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14123
+ // Group scope
14124
+ "group/action-button",
14125
+ // Disabled
14126
+ "data-[disabled]:text-on-surface/38 data-[disabled]:cursor-not-allowed data-[disabled]:pointer-events-none"
14127
+ ]);
14128
+ var actionButtonStateLayerVariants = cva([
14129
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14130
+ "bg-primary",
14131
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14132
+ "group-data-[hovered]/action-button:opacity-8",
14133
+ "group-data-[focus-visible]/action-button:opacity-10",
14134
+ "group-data-[pressed]/action-button:opacity-10",
14135
+ "group-data-[disabled]/action-button:hidden"
14136
+ ]);
14137
+ var actionButtonFocusRingVariants = cva([
14138
+ "pointer-events-none absolute inset-0 rounded-full",
14139
+ "outline outline-2 outline-offset-0 outline-primary",
14140
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14141
+ "opacity-0",
14142
+ "group-data-[focus-visible]/action-button:opacity-100"
14143
+ ]);
14144
+ var modalDialogVariants = cva(
13773
14145
  [
13774
- "bg-surface-container-high",
13775
- "rounded-3xl",
13776
- // NOTE: shape.extra-large = 28dp; mapped via @theme token
13777
- "overflow-hidden"
14146
+ "bg-surface-container-high rounded-3xl overflow-hidden",
14147
+ "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",
14148
+ "z-50",
14149
+ "max-h-[90vh] overflow-y-auto"
13778
14150
  ],
13779
14151
  {
13780
14152
  variants: {
13781
14153
  variant: {
13782
- docked: "w-[360px]",
13783
- // NOTE: measurement-derived value from MD3 spec (360dp fixed width); permitted exception
13784
14154
  modal: "w-[360px]",
13785
- // NOTE: measurement-derived value from MD3 spec (360dp fixed width); permitted exception
14155
+ // NOTE: measurement-derived; permitted exception
13786
14156
  "modal-input": "w-[328px]"
13787
- // NOTE: measurement-derived value from MD3 spec (328dp); permitted exception
14157
+ // NOTE: measurement-derived; permitted exception
13788
14158
  }
13789
14159
  },
13790
14160
  defaultVariants: {
13791
- variant: "docked"
14161
+ variant: "modal"
13792
14162
  }
13793
14163
  }
13794
14164
  );
13795
- var calendarCellVariants = cva(
13796
- [
13797
- "w-[48px]",
13798
- // NOTE: measurement-derived (48dp touch target); permitted exception
13799
- "h-[48px]",
13800
- // NOTE: measurement-derived (48dp); permitted exception
13801
- "rounded-full",
13802
- // shape.full = circle
13803
- "flex",
13804
- "items-center",
13805
- "justify-center",
13806
- "text-body-large",
13807
- "relative",
13808
- "cursor-pointer",
13809
- "select-none",
13810
- "transition-colors",
13811
- "duration-spring-standard-fast-effects",
13812
- "ease-spring-standard-fast-effects"
13813
- ],
13814
- {
13815
- variants: {
13816
- cellType: {
13817
- default: "text-on-surface",
13818
- today: "text-primary border border-primary",
13819
- selected: "bg-primary text-on-primary",
13820
- "selected-range-middle": "bg-secondary-container text-on-secondary-container rounded-none",
13821
- "outside-month": "text-on-surface-variant",
13822
- disabled: "text-on-surface/38 cursor-not-allowed"
13823
- },
13824
- state: {
13825
- enabled: "",
13826
- hovered: "",
13827
- focused: "",
13828
- pressed: ""
13829
- }
13830
- },
13831
- compoundVariants: [
13832
- // Default cell states
13833
- {
13834
- cellType: "default",
13835
- state: "hovered",
13836
- className: "bg-on-surface/8"
13837
- },
13838
- {
13839
- cellType: "default",
13840
- state: "focused",
13841
- className: "bg-on-surface/10 ring-2 ring-on-surface"
13842
- },
13843
- {
13844
- cellType: "default",
13845
- state: "pressed",
13846
- className: "bg-on-surface/10"
13847
- },
13848
- // Today cell states
13849
- {
13850
- cellType: "today",
13851
- state: "hovered",
13852
- className: "bg-primary/8"
13853
- },
13854
- {
13855
- cellType: "today",
13856
- state: "focused",
13857
- className: "bg-primary/10"
13858
- },
13859
- {
13860
- cellType: "today",
13861
- state: "pressed",
13862
- className: "bg-primary/10"
13863
- },
13864
- // Selected cell states
13865
- {
13866
- cellType: "selected",
13867
- state: "hovered",
13868
- className: "bg-primary shadow-sm"
13869
- },
13870
- {
13871
- cellType: "selected",
13872
- state: "focused",
13873
- className: "bg-primary shadow-sm"
13874
- },
13875
- {
13876
- cellType: "selected",
13877
- state: "pressed",
13878
- className: "bg-primary shadow-sm"
13879
- },
13880
- // Range middle states
13881
- {
13882
- cellType: "selected-range-middle",
13883
- state: "hovered",
13884
- className: "bg-secondary-container/80"
13885
- },
13886
- {
13887
- cellType: "selected-range-middle",
13888
- state: "focused",
13889
- className: "bg-secondary-container/80"
13890
- }
13891
- ],
13892
- defaultVariants: {
13893
- cellType: "default",
13894
- state: "enabled"
13895
- }
13896
- }
13897
- );
13898
- var datePickerHeaderVariants = cva(
13899
- ["px-6", "pt-4", "pb-3"],
14165
+ var modalHeaderVariants = cva([
14166
+ "flex items-start justify-between",
14167
+ "px-6 pt-4 pb-3"
13900
14168
  // NOTE: measurement-derived padding; permitted exception
13901
- {
13902
- variants: {
13903
- variant: {
13904
- docked: "h-[56px] px-3 flex items-center",
13905
- // NOTE: measurement-derived (56dp header); permitted exception
13906
- modal: "h-auto",
13907
- "modal-input": "h-auto"
13908
- }
13909
- },
13910
- defaultVariants: {
13911
- variant: "docked"
13912
- }
13913
- }
13914
- );
13915
- var datePickerNavVariants = cva(
13916
- ["text-on-surface-variant", "flex", "items-center", "gap-1"],
13917
- {
13918
- variants: {
13919
- state: {
13920
- enabled: "",
13921
- hovered: "bg-on-surface-variant/8",
13922
- focused: "bg-on-surface-variant/10",
13923
- pressed: "bg-on-surface-variant/10",
13924
- disabled: "text-on-surface/38 cursor-not-allowed"
13925
- }
13926
- },
13927
- defaultVariants: {
13928
- state: "enabled"
13929
- }
13930
- }
13931
- );
13932
- var yearItemVariants = cva(
13933
- [
13934
- "w-[88px]",
13935
- // NOTE: measurement-derived (88dp); permitted exception
13936
- "h-[52px]",
13937
- // NOTE: measurement-derived (52dp); permitted exception
13938
- "rounded-full",
13939
- // pill shape
13940
- "flex",
13941
- "items-center",
13942
- "justify-center",
13943
- "text-body-large",
13944
- "cursor-pointer",
13945
- "transition-colors",
13946
- "duration-spring-standard-fast-effects",
13947
- "ease-spring-standard-fast-effects"
13948
- ],
13949
- {
13950
- variants: {
13951
- selected: {
13952
- true: "bg-primary text-on-primary",
13953
- false: "text-on-surface-variant"
13954
- },
13955
- state: {
13956
- enabled: "",
13957
- hovered: "",
13958
- focused: "",
13959
- pressed: "",
13960
- disabled: "text-on-surface/38 cursor-not-allowed"
13961
- }
13962
- },
13963
- compoundVariants: [
13964
- {
13965
- selected: false,
13966
- state: "hovered",
13967
- className: "bg-on-surface-variant/8"
13968
- },
13969
- {
13970
- selected: false,
13971
- state: "focused",
13972
- className: "bg-on-surface-variant/10"
13973
- },
13974
- {
13975
- selected: true,
13976
- state: "hovered",
13977
- className: "bg-primary/90"
13978
- },
13979
- {
13980
- selected: true,
13981
- state: "focused",
13982
- className: "bg-primary/90"
13983
- }
13984
- ],
13985
- defaultVariants: {
13986
- selected: false,
13987
- state: "enabled"
13988
- }
13989
- }
13990
- );
13991
- var datePickerDividerVariants = cva(["border-outline-variant", "border-t", "w-full"]);
13992
- var datePickerActionVariants = cva([
13993
- "flex",
13994
- "items-center",
13995
- "justify-end",
13996
- "gap-2",
13997
- "px-3",
13998
- "py-2",
13999
- "h-12"
14000
- // NOTE: measurement-derived (48dp action row height); permitted exception
14001
14169
  ]);
14002
- var datePickerActionButtonVariants = cva([
14003
- "text-primary",
14004
- "text-label-large",
14005
- "rounded-full",
14006
- "px-3",
14007
- "py-2",
14008
- "transition-colors",
14009
- "duration-spring-standard-fast-effects",
14010
- "ease-spring-standard-fast-effects",
14011
- "hover:bg-primary/8",
14012
- "focus-visible:bg-primary/10",
14013
- "active:bg-primary/10"
14170
+ var headlineVariants = cva(["text-label-large text-on-surface-variant m-0"]);
14171
+ var supportingTextVariants = cva([
14172
+ "text-headline-large text-on-surface mt-9 m-0"
14173
+ // NOTE: measurement-derived mt; permitted exception
14014
14174
  ]);
14015
- var datePickerWeekdayVariants = cva([
14016
- "text-body-small",
14017
- "text-on-surface",
14018
- "font-normal",
14019
- "w-[48px]",
14020
- // NOTE: measurement-derived (48dp column width); permitted exception
14021
- "h-[48px]",
14022
- // NOTE: measurement-derived (48dp row height); permitted exception
14023
- "text-center"
14175
+ var modeToggleVariants = cva([
14176
+ "relative flex items-center justify-center",
14177
+ "w-12 h-12 rounded-full",
14178
+ // NOTE: 48dp; permitted exception
14179
+ "text-on-surface-variant",
14180
+ "bg-transparent border-none cursor-pointer self-end",
14181
+ "overflow-hidden",
14182
+ "focus-visible:outline-none",
14183
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14184
+ "group/mode-toggle"
14024
14185
  ]);
14025
- var datePickerRangeIndicatorVariants = cva([
14026
- "bg-secondary-container",
14027
- "h-[48px]",
14028
- // NOTE: measurement-derived (48dp range indicator height); permitted exception
14029
- "rounded-none"
14186
+ var modeToggleStateLayerVariants = cva([
14187
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14188
+ "bg-on-surface-variant",
14189
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14190
+ "group-data-[hovered]/mode-toggle:opacity-8",
14191
+ "group-data-[focus-visible]/mode-toggle:opacity-10",
14192
+ "group-data-[pressed]/mode-toggle:opacity-10"
14030
14193
  ]);
14031
- var datePickerHeadlineVariants = cva([], {
14032
- variants: {
14033
- variant: {
14034
- docked: "",
14035
- modal: ["text-headline-small", "text-on-surface"],
14036
- "modal-input": ["text-headline-small", "text-on-surface"]
14037
- }
14038
- },
14039
- defaultVariants: {
14040
- variant: "modal"
14041
- }
14042
- });
14043
- var datePickerSupportingTextVariants = cva([
14044
- "text-label-large",
14045
- "text-on-surface-variant"
14194
+ var scrimVariants2 = cva([
14195
+ "fixed inset-0 z-40",
14196
+ "bg-scrim opacity-32",
14197
+ "transition-opacity duration-medium2 ease-standard"
14046
14198
  ]);
14047
- var datePickerScrimVariants = cva([
14048
- "fixed",
14049
- "inset-0",
14050
- "z-40",
14051
- "bg-scrim",
14052
- "opacity-32",
14053
- "transition-opacity",
14054
- "duration-medium2",
14055
- "ease-standard"
14199
+ var dateInputFieldVariants = cva(["px-6 py-2"]);
14200
+ var dateInputFieldGroupVariants = cva([
14201
+ "flex items-center",
14202
+ "border border-outline rounded-sm",
14203
+ "px-4 py-3",
14204
+ // NOTE: measurement-derived; permitted exception
14205
+ "text-body-large text-on-surface",
14206
+ // Focus state (data-focused on parent wrapper)
14207
+ "peer-data-[focused]:border-2 peer-data-[focused]:border-primary",
14208
+ // Invalid state
14209
+ "peer-data-[invalid]:border-error peer-data-[invalid]:border-2"
14210
+ ]);
14211
+ var dateInputLabelVariants = cva(["text-body-small text-on-surface-variant block mb-1"]);
14212
+ var dateInputErrorVariants = cva(["text-body-small text-error mt-1"]);
14213
+ var dockedFieldGroupVariants = cva([
14214
+ "flex items-center",
14215
+ "border border-outline rounded",
14216
+ "h-14",
14217
+ // NOTE: measurement-derived (56dp); permitted exception
14218
+ "px-3 gap-2",
14219
+ "bg-transparent",
14220
+ // Focus-within: promote to primary 2dp border
14221
+ "focus-within:border-primary focus-within:border-2"
14222
+ ]);
14223
+ var dockedTriggerVariants = cva([
14224
+ "relative flex items-center justify-center",
14225
+ "w-10 h-10 rounded-full",
14226
+ // NOTE: 40dp; permitted exception
14227
+ "text-on-surface-variant",
14228
+ "bg-transparent border-none cursor-pointer",
14229
+ "overflow-hidden",
14230
+ "focus-visible:outline-none",
14231
+ "transition-colors duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14232
+ "group/docked-trigger"
14233
+ ]);
14234
+ var dockedTriggerStateLayerVariants = cva([
14235
+ "pointer-events-none absolute inset-0 rounded-full opacity-0",
14236
+ "bg-on-surface-variant",
14237
+ "transition-opacity duration-spring-standard-fast-effects ease-spring-standard-fast-effects",
14238
+ "group-data-[hovered]/docked-trigger:opacity-8",
14239
+ "group-data-[focus-visible]/docked-trigger:opacity-10",
14240
+ "group-data-[pressed]/docked-trigger:opacity-10"
14241
+ ]);
14242
+ var popoverVariants = cva([
14243
+ "bg-surface-container-high rounded-3xl",
14244
+ "shadow-elevation-2 overflow-hidden",
14245
+ "z-50 w-[360px]"
14056
14246
  ]);
14057
- var CALENDAR_STYLES = [
14058
- // ── Label ─────────────────────────────────────────────────────────────────
14247
+ var dockedLabelVariants = cva(["text-body-small text-on-surface-variant block mb-1"]);
14248
+ var dateFieldVariants = cva([
14249
+ "flex items-center flex-1",
14250
+ "text-body-large text-on-surface"
14251
+ ]);
14252
+ var dateSegmentPlaceholderVariants = cva(["text-on-surface-variant"]);
14253
+ function StyledCalendarCell({ date, state }) {
14254
+ return /* @__PURE__ */ jsxs(CalendarCell, { date, state, className: cn(calendarCellVariants()), children: [
14255
+ /* @__PURE__ */ jsx("span", { className: cn(calendarCellStateLayerVariants()), "aria-hidden": "true" }),
14256
+ /* @__PURE__ */ jsx("span", { className: cn(calendarCellFocusRingVariants()), "aria-hidden": "true" })
14257
+ ] });
14258
+ }
14259
+ StyledCalendarCell.displayName = "StyledCalendarCell";
14260
+ function StyledNavButton({
14261
+ children,
14262
+ isDisabled,
14263
+ onPress,
14264
+ "aria-label": ariaLabel
14265
+ }) {
14266
+ const ref = useRef(null);
14267
+ const { buttonProps, isPressed } = useButton(
14268
+ {
14269
+ isDisabled: isDisabled ?? false,
14270
+ ...onPress ? { onPress } : {},
14271
+ ...ariaLabel ? { "aria-label": ariaLabel } : {}
14272
+ },
14273
+ ref
14274
+ );
14275
+ const { isFocusVisible, focusProps } = useFocusRing();
14276
+ const { isHovered, hoverProps } = useHover({ isDisabled: isDisabled ?? false });
14277
+ return /* @__PURE__ */ jsxs(
14278
+ "button",
14279
+ {
14280
+ ...mergeProps$1(buttonProps, focusProps, hoverProps),
14281
+ ref,
14282
+ type: "button",
14283
+ className: cn(navButtonVariants()),
14284
+ ...getInteractionDataAttributes({
14285
+ isHovered,
14286
+ isFocusVisible,
14287
+ isPressed,
14288
+ isDisabled: isDisabled ?? false
14289
+ }),
14290
+ children: [
14291
+ /* @__PURE__ */ jsx("span", { className: cn(navButtonStateLayerVariants()), "aria-hidden": "true" }),
14292
+ /* @__PURE__ */ jsx("span", { className: cn(navButtonFocusRingVariants()), "aria-hidden": "true" }),
14293
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none relative z-10 flex items-center justify-center", children })
14294
+ ]
14295
+ }
14296
+ );
14297
+ }
14298
+ StyledNavButton.displayName = "StyledNavButton";
14299
+ function StyledCalendarTitle({
14300
+ title,
14301
+ onClick,
14302
+ showDropdownIndicator
14303
+ }) {
14304
+ const ref = useRef(null);
14305
+ const { isFocusVisible, focusProps } = useFocusRing();
14306
+ const { isHovered, hoverProps } = useHover({});
14307
+ const { pressProps, isPressed } = usePress({});
14308
+ if (onClick) {
14309
+ return /* @__PURE__ */ jsxs(
14310
+ "button",
14311
+ {
14312
+ ...mergeProps$1(focusProps, hoverProps, pressProps),
14313
+ ref,
14314
+ type: "button",
14315
+ className: cn(calendarTitleVariants()),
14316
+ "aria-label": `${title}, click to select year`,
14317
+ onClick,
14318
+ ...getInteractionDataAttributes({ isHovered, isFocusVisible, isPressed }),
14319
+ children: [
14320
+ /* @__PURE__ */ jsx("span", { className: cn(calendarTitleStateLayerVariants()), "aria-hidden": "true" }),
14321
+ /* @__PURE__ */ jsx("h2", { "aria-live": "polite", className: cn(calendarTitleTextVariants()), children: title }),
14322
+ showDropdownIndicator && /* @__PURE__ */ jsx("span", { className: cn(calendarTitleIconVariants()), children: /* @__PURE__ */ jsx(DropdownArrowIcon, {}) })
14323
+ ]
14324
+ }
14325
+ );
14326
+ }
14327
+ return /* @__PURE__ */ jsx("div", { className: cn(calendarTitleVariants(), "cursor-default"), children: /* @__PURE__ */ jsx("h2", { "aria-live": "polite", className: cn(calendarTitleTextVariants()), children: title }) });
14328
+ }
14329
+ StyledCalendarTitle.displayName = "StyledCalendarTitle";
14330
+ calendarHeaderVariants();
14331
+ function StyledYearItem({
14332
+ year,
14333
+ isSelected,
14334
+ onSelect
14335
+ }) {
14336
+ const ref = useRef(null);
14337
+ const { isFocusVisible, focusProps } = useFocusRing();
14338
+ const { isHovered, hoverProps } = useHover({});
14339
+ const { pressProps, isPressed } = usePress({});
14340
+ return /* @__PURE__ */ jsxs(
14341
+ "button",
14342
+ {
14343
+ ...mergeProps$1(focusProps, hoverProps, pressProps),
14344
+ ref,
14345
+ type: "button",
14346
+ role: "gridcell",
14347
+ "aria-selected": isSelected,
14348
+ className: cn(yearItemVariants()),
14349
+ onClick: () => onSelect(year),
14350
+ ...getInteractionDataAttributes({
14351
+ isHovered,
14352
+ isFocusVisible,
14353
+ isPressed,
14354
+ isSelected
14355
+ }),
14356
+ children: [
14357
+ /* @__PURE__ */ jsx("span", { className: cn(yearItemStateLayerVariants()), "aria-hidden": "true" }),
14358
+ /* @__PURE__ */ jsx("span", { className: cn(yearItemFocusRingVariants()), "aria-hidden": "true" }),
14359
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none relative z-10", children: year })
14360
+ ]
14361
+ }
14362
+ );
14363
+ }
14364
+ StyledYearItem.displayName = "StyledYearItem";
14365
+ function StyledWeekday({ label }) {
14366
+ return /* @__PURE__ */ jsx("span", { className: cn(weekdayVariants()), children: label });
14367
+ }
14368
+ StyledWeekday.displayName = "StyledWeekday";
14369
+ function StyledActionButton({
14370
+ label,
14371
+ "aria-label": ariaLabel,
14372
+ onPress,
14373
+ isDisabled,
14374
+ "data-action": dataAction
14375
+ }) {
14376
+ const ref = useRef(null);
14377
+ const { buttonProps, isPressed } = useButton(
14378
+ {
14379
+ "aria-label": ariaLabel ?? label,
14380
+ isDisabled: isDisabled ?? false,
14381
+ ...onPress ? { onPress } : {}
14382
+ },
14383
+ ref
14384
+ );
14385
+ const { isFocusVisible, focusProps } = useFocusRing();
14386
+ const { isHovered, hoverProps } = useHover({ isDisabled: isDisabled ?? false });
14387
+ return /* @__PURE__ */ jsxs(
14388
+ "button",
14389
+ {
14390
+ ...mergeProps$1(buttonProps, focusProps, hoverProps),
14391
+ ref,
14392
+ type: "button",
14393
+ "data-action": dataAction,
14394
+ className: cn(actionButtonVariants()),
14395
+ ...getInteractionDataAttributes({
14396
+ isHovered,
14397
+ isFocusVisible,
14398
+ isPressed,
14399
+ isDisabled: isDisabled ?? false
14400
+ }),
14401
+ children: [
14402
+ /* @__PURE__ */ jsx("span", { className: cn(actionButtonStateLayerVariants()), "aria-hidden": "true" }),
14403
+ /* @__PURE__ */ jsx("span", { className: cn(actionButtonFocusRingVariants()), "aria-hidden": "true" }),
14404
+ /* @__PURE__ */ jsx("span", { className: "pointer-events-none relative z-10", children: label })
14405
+ ]
14406
+ }
14407
+ );
14408
+ }
14409
+ StyledActionButton.displayName = "StyledActionButton";
14410
+
14411
+ // src/components/DatePicker/datePickerStructuralStyles.ts
14412
+ var CALENDAR_HEADER_STRUCTURAL = [
14413
+ "[&_[data-calendar-header]]:flex",
14414
+ "[&_[data-calendar-header]]:items-center",
14415
+ "[&_[data-calendar-header]]:justify-between",
14416
+ "[&_[data-calendar-header]]:px-3",
14417
+ "[&_[data-calendar-header]]:py-2",
14418
+ // Nav group
14419
+ "[&_[data-calendar-nav]]:flex",
14420
+ "[&_[data-calendar-nav]]:items-center",
14421
+ "[&_[data-calendar-nav]]:gap-1"
14422
+ ];
14423
+ var CALENDAR_GRID_STRUCTURAL = [
14424
+ // Table resets
14425
+ "[&_table]:border-collapse",
14426
+ // Center the fixed-width table so 7×48px = 336px is equally inset within 360px
14427
+ "[&_table]:mx-auto",
14428
+ "[&_th]:p-0",
14429
+ "[&_td]:p-0"
14430
+ ];
14431
+ var YEAR_GRID_STRUCTURAL = [
14432
+ "[&_[data-year-grid]]:grid",
14433
+ "[&_[data-year-grid]]:grid-cols-3",
14434
+ "[&_[data-year-grid]]:gap-2",
14435
+ "[&_[data-year-grid]]:px-3",
14436
+ "[&_[data-year-grid]]:py-2",
14437
+ "[&_[data-year-grid]]:max-h-[280px]",
14438
+ "[&_[data-year-grid]]:overflow-y-auto",
14439
+ "[&_[data-year-grid]]:place-items-center"
14440
+ ];
14441
+ var DIVIDER_STRUCTURAL = ["[&_hr[data-divider]]:border-outline-variant"];
14442
+ var ACTION_ROW_STRUCTURAL = [
14443
+ "[&_[data-actions]]:flex",
14444
+ "[&_[data-actions]]:items-center",
14445
+ "[&_[data-actions]]:justify-end",
14446
+ "[&_[data-actions]]:gap-2",
14447
+ "[&_[data-actions]]:px-3",
14448
+ "[&_[data-actions]]:py-2",
14449
+ "[&_[data-actions]]:h-12"
14450
+ ];
14451
+ var DOCKED_LABEL_STRUCTURAL = [
14059
14452
  "[&_[data-label]]:text-body-small",
14060
14453
  "[&_[data-label]]:text-on-surface-variant",
14061
14454
  "[&_[data-label]]:mb-1",
14062
- "[&_[data-label]]:block",
14063
- // ── Field group (outlined text field container) ───────────────────────────
14455
+ "[&_[data-label]]:block"
14456
+ ];
14457
+ var DOCKED_FIELD_STRUCTURAL = [
14064
14458
  "[&_[data-field-group]]:flex",
14065
14459
  "[&_[data-field-group]]:items-center",
14066
14460
  "[&_[data-field-group]]:border",
@@ -14072,15 +14466,16 @@ var CALENDAR_STYLES = [
14072
14466
  "[&_[data-field-group]]:bg-transparent",
14073
14467
  "[&_[data-field-group]:focus-within]:border-primary",
14074
14468
  "[&_[data-field-group]:focus-within]:border-2",
14075
- // ── Date field segments (inline rendering) ────────────────────────────────
14076
14469
  "[&_[data-field]]:flex",
14077
14470
  "[&_[data-field]]:items-center",
14078
14471
  "[&_[data-field]]:flex-1",
14079
14472
  "[&_[data-field]]:text-body-large",
14080
14473
  "[&_[data-field]]:text-on-surface",
14081
14474
  "[&_[data-segment]]:outline-none",
14082
- "[&_[data-segment][data-placeholder]]:text-on-surface-variant",
14083
- // ── Trigger button (calendar icon) ────────────────────────────────────────
14475
+ "[&_[data-segment][data-placeholder]]:text-on-surface-variant"
14476
+ ];
14477
+ var DOCKED_TRIGGER_STRUCTURAL = [
14478
+ "[&_[data-trigger]]:relative",
14084
14479
  "[&_[data-trigger]]:flex",
14085
14480
  "[&_[data-trigger]]:items-center",
14086
14481
  "[&_[data-trigger]]:justify-center",
@@ -14088,178 +14483,109 @@ var CALENDAR_STYLES = [
14088
14483
  "[&_[data-trigger]]:h-10",
14089
14484
  "[&_[data-trigger]]:rounded-full",
14090
14485
  "[&_[data-trigger]]:text-on-surface-variant",
14486
+ "[&_[data-trigger]]:bg-transparent",
14487
+ "[&_[data-trigger]]:border-none",
14488
+ "[&_[data-trigger]]:cursor-pointer",
14091
14489
  "[&_[data-trigger]]:transition-colors",
14092
14490
  "[&_[data-trigger]]:duration-spring-standard-fast-effects",
14093
14491
  "[&_[data-trigger]]:ease-spring-standard-fast-effects",
14094
- "[&_[data-trigger]:hover]:bg-on-surface/8",
14095
- // ── Popover ───────────────────────────────────────────────────────────────
14096
- "[&_[data-popover]]:bg-surface-container-high",
14097
- "[&_[data-popover]]:rounded-3xl",
14098
- "[&_[data-popover]]:mt-1",
14099
- "[&_[data-popover]]:shadow-elevation-2",
14100
- "[&_[data-popover]]:overflow-hidden",
14101
- "[&_[data-popover]]:z-50",
14102
- // ── Calendar header ───────────────────────────────────────────────────────
14103
- "[&_[data-calendar-header]]:flex",
14104
- "[&_[data-calendar-header]]:items-center",
14105
- "[&_[data-calendar-header]]:justify-between",
14106
- "[&_[data-calendar-header]]:px-3",
14107
- "[&_[data-calendar-header]]:py-2",
14108
- // ── Calendar title (month/year label) ─────────────────────────────────────
14109
- "[&_[data-calendar-title]]:flex",
14110
- "[&_[data-calendar-title]]:items-center",
14111
- "[&_[data-calendar-title]]:gap-0.5",
14112
- "[&_[data-calendar-title]]:bg-transparent",
14113
- "[&_[data-calendar-title]]:border-none",
14114
- "[&_[data-calendar-title]]:cursor-pointer",
14115
- "[&_[data-calendar-title]]:rounded-full",
14116
- "[&_[data-calendar-title]]:px-2",
14117
- "[&_[data-calendar-title]]:py-1",
14118
- "[&_[data-calendar-title]]:transition-colors",
14119
- "[&_[data-calendar-title]]:duration-spring-standard-fast-effects",
14120
- "[&_[data-calendar-title]]:ease-spring-standard-fast-effects",
14121
- "[&_[data-calendar-title]:hover]:bg-on-surface/8",
14122
- "[&_[data-calendar-title]_h2]:text-label-large",
14123
- "[&_[data-calendar-title]_h2]:text-on-surface-variant",
14124
- "[&_[data-calendar-title]_h2]:m-0",
14125
- "[&_[data-calendar-title]_svg]:text-on-surface-variant",
14126
- // ── Calendar navigation buttons ───────────────────────────────────────────
14127
- "[&_[data-calendar-nav]]:flex",
14128
- "[&_[data-calendar-nav]]:items-center",
14129
- "[&_[data-calendar-nav]]:gap-1",
14130
- "[&_[data-nav-button]]:w-10",
14131
- "[&_[data-nav-button]]:h-10",
14132
- "[&_[data-nav-button]]:rounded-full",
14133
- "[&_[data-nav-button]]:flex",
14134
- "[&_[data-nav-button]]:items-center",
14135
- "[&_[data-nav-button]]:justify-center",
14136
- "[&_[data-nav-button]]:text-on-surface-variant",
14137
- "[&_[data-nav-button]]:bg-transparent",
14138
- "[&_[data-nav-button]]:border-none",
14139
- "[&_[data-nav-button]]:transition-colors",
14140
- "[&_[data-nav-button]]:duration-spring-standard-fast-effects",
14141
- "[&_[data-nav-button]]:ease-spring-standard-fast-effects",
14142
- "[&_[data-nav-button]:hover]:bg-on-surface/8",
14143
- "[&_[data-nav-button]:focus-visible]:bg-on-surface/10",
14144
- "[&_[data-nav-button]:disabled]:text-on-surface/38",
14145
- "[&_[data-nav-button]:disabled]:cursor-not-allowed",
14146
- // ── Cell base ─────────────────────────────────────────────────────────────
14147
- "[&_td>div]:w-[48px]",
14148
- "[&_td>div]:h-[48px]",
14149
- "[&_td>div]:rounded-full",
14150
- "[&_td>div]:flex",
14151
- "[&_td>div]:items-center",
14152
- "[&_td>div]:justify-center",
14153
- "[&_td>div]:text-body-large",
14154
- "[&_td>div]:text-on-surface",
14155
- "[&_td>div]:relative",
14156
- "[&_td>div]:cursor-pointer",
14157
- "[&_td>div]:select-none",
14158
- "[&_td>div]:transition-colors",
14159
- "[&_td>div]:duration-spring-standard-fast-effects",
14160
- "[&_td>div]:ease-spring-standard-fast-effects",
14161
- // ── Today (not selected) ──────────────────────────────────────────────────
14162
- "[&_td>div[data-today]:not([data-selected])]:text-primary",
14163
- "[&_td>div[data-today]:not([data-selected])]:border",
14164
- "[&_td>div[data-today]:not([data-selected])]:border-primary",
14165
- // ── Selected ──────────────────────────────────────────────────────────────
14166
- "[&_td>div[data-selected]]:bg-primary",
14167
- "[&_td>div[data-selected]]:text-on-primary",
14168
- // ── Range middle ──────────────────────────────────────────────────────────
14169
- "[&_td>div[data-range-middle]]:bg-secondary-container",
14170
- "[&_td>div[data-range-middle]]:text-on-secondary-container",
14171
- "[&_td>div[data-range-middle]]:rounded-none",
14172
- // ── Outside month ─────────────────────────────────────────────────────────
14173
- "[&_td>div[data-outside-month]:not([data-selected])]:text-on-surface-variant",
14174
- // ── Disabled ──────────────────────────────────────────────────────────────
14175
- "[&_td>div[data-disabled]]:text-on-surface/38",
14176
- "[&_td>div[data-disabled]]:cursor-not-allowed",
14177
- // ── Cell hover states ─────────────────────────────────────────────────────
14178
- "[&_td>div:not([data-selected]):not([data-today]):not([data-disabled]):hover]:bg-on-surface/8",
14179
- "[&_td>div[data-today]:not([data-selected]):hover]:bg-primary/8",
14180
- "[&_td>div[data-selected]:hover]:shadow-sm",
14181
- // ── Cell focus-visible states ─────────────────────────────────────────────
14182
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-2",
14183
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-on-surface",
14184
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:bg-on-surface/10",
14185
- "[&_td>div[data-today][data-focus-visible]:not([data-selected])]:bg-primary/10",
14186
- // ── Weekday labels ────────────────────────────────────────────────────────
14187
- "[&_th]:text-body-small",
14188
- "[&_th]:text-on-surface",
14189
- "[&_th]:font-normal",
14190
- "[&_th]:w-[48px]",
14191
- "[&_th]:h-[48px]",
14192
- // ── Year grid ─────────────────────────────────────────────────────────────
14193
- "[&_[data-year-grid]]:grid",
14194
- "[&_[data-year-grid]]:grid-cols-3",
14195
- "[&_[data-year-grid]]:gap-2",
14196
- "[&_[data-year-grid]]:px-3",
14197
- "[&_[data-year-grid]]:py-2",
14198
- "[&_[data-year-grid]]:max-h-[280px]",
14199
- "[&_[data-year-grid]]:overflow-y-auto",
14200
- "[&_[data-year-grid]]:place-items-center",
14201
- "[&_[data-year-item]]:w-[88px]",
14202
- "[&_[data-year-item]]:h-[52px]",
14203
- "[&_[data-year-item]]:rounded-full",
14204
- "[&_[data-year-item]]:flex",
14205
- "[&_[data-year-item]]:items-center",
14206
- "[&_[data-year-item]]:justify-center",
14207
- "[&_[data-year-item]]:text-body-large",
14208
- "[&_[data-year-item]]:text-on-surface-variant",
14209
- "[&_[data-year-item]]:bg-transparent",
14210
- "[&_[data-year-item]]:border-none",
14211
- "[&_[data-year-item]]:cursor-pointer",
14212
- "[&_[data-year-item]]:transition-colors",
14213
- "[&_[data-year-item]]:duration-spring-standard-fast-effects",
14214
- "[&_[data-year-item]]:ease-spring-standard-fast-effects",
14215
- "[&_[data-year-item]:hover]:bg-on-surface/8",
14216
- "[&_[data-year-item][data-selected]]:bg-primary",
14217
- "[&_[data-year-item][data-selected]]:text-on-primary",
14218
- // ── Divider ───────────────────────────────────────────────────────────────
14219
- "[&_hr[data-divider]]:border-outline-variant",
14220
- // ── Action buttons ────────────────────────────────────────────────────────
14221
- "[&_[data-actions]]:flex",
14222
- "[&_[data-actions]]:items-center",
14223
- "[&_[data-actions]]:justify-end",
14224
- "[&_[data-actions]]:gap-2",
14225
- "[&_[data-actions]]:px-3",
14226
- "[&_[data-actions]]:py-2",
14227
- "[&_[data-action]]:text-primary",
14228
- "[&_[data-action]]:text-label-large",
14229
- "[&_[data-action]]:rounded-full",
14230
- "[&_[data-action]]:px-3",
14231
- "[&_[data-action]]:py-2",
14232
- "[&_[data-action]]:min-h-12",
14233
- "[&_[data-action]]:bg-transparent",
14234
- "[&_[data-action]]:border-none",
14235
- "[&_[data-action]]:transition-colors",
14236
- "[&_[data-action]]:duration-spring-standard-fast-effects",
14237
- "[&_[data-action]]:ease-spring-standard-fast-effects",
14238
- "[&_[data-action]:hover]:bg-primary/8",
14239
- "[&_[data-action]:focus-visible]:ring-2",
14240
- "[&_[data-action]:focus-visible]:ring-primary",
14241
- "[&_[data-action]:focus-visible]:bg-primary/10"
14492
+ // Hover: 8% overlay via bg tint (acceptable for structural trigger)
14493
+ "[&_[data-trigger][data-hovered]]:bg-on-surface-variant/8",
14494
+ "[&_[data-trigger][data-focus-visible]]:bg-on-surface-variant/10",
14495
+ "[&_[data-trigger][data-focus-visible]]:outline",
14496
+ "[&_[data-trigger][data-focus-visible]]:outline-2",
14497
+ "[&_[data-trigger][data-focus-visible]]:outline-secondary",
14498
+ "[&_[data-trigger][data-disabled]]:text-on-surface/38",
14499
+ "[&_[data-trigger][data-disabled]]:cursor-not-allowed"
14500
+ ];
14501
+ var MODAL_HEADER_STRUCTURAL = [
14502
+ "[&_[data-modal-header]]:px-6",
14503
+ "[&_[data-modal-header]]:pt-4",
14504
+ "[&_[data-modal-header]]:pb-3",
14505
+ "[&_[data-modal-header]]:flex",
14506
+ "[&_[data-modal-header]]:items-start",
14507
+ "[&_[data-modal-header]]:justify-between",
14508
+ "[&_[data-headline]]:text-label-large",
14509
+ "[&_[data-headline]]:text-on-surface-variant",
14510
+ "[&_[data-headline]]:m-0",
14511
+ "[&_[data-supporting-text]]:text-headline-large",
14512
+ "[&_[data-supporting-text]]:text-on-surface",
14513
+ "[&_[data-supporting-text]]:mt-9",
14514
+ "[&_[data-supporting-text]]:m-0"
14515
+ ];
14516
+ var MODAL_INPUT_SUPPORTING_TEXT_STRUCTURAL = [
14517
+ "[&_[data-supporting-text]]:text-headline-large",
14518
+ "[&_[data-supporting-text]]:text-on-surface",
14519
+ "[&_[data-supporting-text]]:mt-4",
14520
+ "[&_[data-supporting-text]]:m-0"
14521
+ ];
14522
+ var MODAL_INPUT_FIELD_STRUCTURAL = [
14523
+ "[&_[data-date-input-field]]:px-6",
14524
+ "[&_[data-date-input-field]]:py-2",
14525
+ "[&_[data-date-input-field]_[data-field]]:flex",
14526
+ "[&_[data-date-input-field]_[data-field]]:items-center",
14527
+ "[&_[data-date-input-field]_[data-field]]:border",
14528
+ "[&_[data-date-input-field]_[data-field]]:border-outline",
14529
+ "[&_[data-date-input-field]_[data-field]]:rounded-sm",
14530
+ "[&_[data-date-input-field]_[data-field]]:px-4",
14531
+ "[&_[data-date-input-field]_[data-field]]:py-3",
14532
+ "[&_[data-date-input-field]_[data-field]]:text-body-large",
14533
+ "[&_[data-date-input-field]_[data-field]]:text-on-surface",
14534
+ "[&_[data-date-input-field]_[data-segment]]:outline-none",
14535
+ "[&_[data-date-input-field]_[data-segment][data-placeholder]]:text-on-surface-variant",
14536
+ "[&_[data-date-input-field][data-focused]_[data-field]]:border-primary",
14537
+ "[&_[data-date-input-field][data-focused]_[data-field]]:border-2",
14538
+ "[&_[data-date-input-field][data-invalid]_[data-field]]:border-error",
14539
+ "[&_[data-date-input-field][data-invalid]_[data-field]]:border-2",
14540
+ "[&_[data-date-input-field]_[data-label]]:text-body-small",
14541
+ "[&_[data-date-input-field]_[data-label]]:text-on-surface-variant",
14542
+ "[&_[data-date-input-field]_[data-label]]:block",
14543
+ "[&_[data-date-input-field]_[data-label]]:mb-1",
14544
+ "[&_[data-date-input-field]_[data-error-message]]:text-body-small",
14545
+ "[&_[data-date-input-field]_[data-error-message]]:text-error",
14546
+ "[&_[data-date-input-field]_[data-error-message]]:mt-1"
14547
+ ];
14548
+ var SHARED_CALENDAR_STRUCTURAL = [
14549
+ ...CALENDAR_HEADER_STRUCTURAL,
14550
+ ...CALENDAR_GRID_STRUCTURAL,
14551
+ ...YEAR_GRID_STRUCTURAL,
14552
+ ...DIVIDER_STRUCTURAL,
14553
+ ...ACTION_ROW_STRUCTURAL
14242
14554
  ].join(" ");
14243
- var DOCKED_MOTION_STYLES = [
14244
- // ── Popover container enter ────────────────────────────────────────────────
14245
- "[&_[data-popover]]:transition-[transform,opacity]",
14246
- "[&_[data-popover]]:duration-short3",
14247
- "[&_[data-popover]]:ease-standard-decelerate",
14248
- // ── Popover container exit ─────────────────────────────────────────────────
14249
- "[&_[data-popover][data-exiting]]:duration-short2",
14250
- "[&_[data-popover][data-exiting]]:ease-standard-accelerate",
14251
- // ── Calendar month slide ───────────────────────────────────────────────────
14252
- "[&_table]:transition-transform",
14253
- "[&_table]:duration-medium1",
14254
- "[&_table]:ease-emphasized-decelerate",
14255
- // ── Cell selection animation (scale + background) ──────────────────────────
14256
- "[&_td>div[data-selected]]:transition-[background-color,transform]",
14257
- "[&_td>div[data-selected]]:duration-short2",
14258
- "[&_td>div[data-selected]]:ease-standard",
14259
- // ── State layer opacity ────────────────────────────────────────────────────
14260
- "[&_td>div::after]:transition-opacity",
14261
- "[&_td>div::after]:duration-short1",
14262
- "[&_td>div::after]:ease-standard"
14555
+ var MODAL_CONTENT_STRUCTURAL = [
14556
+ ...MODAL_HEADER_STRUCTURAL,
14557
+ ...CALENDAR_HEADER_STRUCTURAL,
14558
+ ...CALENDAR_GRID_STRUCTURAL,
14559
+ ...YEAR_GRID_STRUCTURAL,
14560
+ ...DIVIDER_STRUCTURAL,
14561
+ ...ACTION_ROW_STRUCTURAL
14562
+ ].join(" ");
14563
+ var MODAL_INPUT_CONTENT_STRUCTURAL = [
14564
+ ...MODAL_HEADER_STRUCTURAL,
14565
+ ...MODAL_INPUT_SUPPORTING_TEXT_STRUCTURAL,
14566
+ ...MODAL_INPUT_FIELD_STRUCTURAL,
14567
+ ...DIVIDER_STRUCTURAL,
14568
+ ...ACTION_ROW_STRUCTURAL
14569
+ ].join(" ");
14570
+ var DOCKED_ROOT_STRUCTURAL = [
14571
+ ...DOCKED_LABEL_STRUCTURAL,
14572
+ ...DOCKED_FIELD_STRUCTURAL,
14573
+ ...DOCKED_TRIGGER_STRUCTURAL
14574
+ ].join(" ");
14575
+ var DOCKED_POPOVER_PANEL_STRUCTURAL = SHARED_CALENDAR_STRUCTURAL;
14576
+ var DOCKED_POPOVER_MOTION = [
14577
+ "transition-[transform,opacity]",
14578
+ "duration-short3",
14579
+ "ease-standard-decelerate",
14580
+ "data-[exiting]:duration-short2",
14581
+ "data-[exiting]:ease-standard-accelerate"
14582
+ ].join(" ");
14583
+ var MODAL_DIALOG_MOTION = [
14584
+ "transition-[transform,opacity]",
14585
+ "duration-medium2",
14586
+ "ease-standard-decelerate",
14587
+ "data-[exiting]:duration-medium1",
14588
+ "data-[exiting]:ease-standard-accelerate"
14263
14589
  ].join(" ");
14264
14590
  var DatePickerDockedStyled = forwardRef(
14265
14591
  (props, ref) => {
@@ -14272,10 +14598,22 @@ var DatePickerDockedStyled = forwardRef(
14272
14598
  ...rest,
14273
14599
  className: cn(
14274
14600
  datePickerContainerVariants({ variant: "docked" }),
14275
- CALENDAR_STYLES,
14276
- !reducedMotion && DOCKED_MOTION_STYLES,
14601
+ DOCKED_ROOT_STRUCTURAL,
14277
14602
  className
14278
- )
14603
+ ),
14604
+ popoverClassName: cn(
14605
+ popoverVariants(),
14606
+ DOCKED_POPOVER_PANEL_STRUCTURAL,
14607
+ !reducedMotion && DOCKED_POPOVER_MOTION
14608
+ ),
14609
+ slots: {
14610
+ CellComponent: StyledCalendarCell,
14611
+ NavButtonComponent: StyledNavButton,
14612
+ TitleComponent: StyledCalendarTitle,
14613
+ YearItemComponent: StyledYearItem,
14614
+ WeekdayComponent: StyledWeekday
14615
+ },
14616
+ ActionButtonComponent: StyledActionButton
14279
14617
  }
14280
14618
  );
14281
14619
  }
@@ -14348,7 +14686,10 @@ var DatePickerModal = forwardRef(
14348
14686
  onCancel,
14349
14687
  onConfirm,
14350
14688
  onClear,
14351
- className
14689
+ className,
14690
+ scrimClassName,
14691
+ slots,
14692
+ ActionButtonComponent
14352
14693
  } = props;
14353
14694
  const internalRef = useRef(null);
14354
14695
  const ref = forwardedRef ?? internalRef;
@@ -14472,6 +14813,7 @@ var DatePickerModal = forwardRef(
14472
14813
  headlineId,
14473
14814
  onClose: handleClose,
14474
14815
  ...className ? { className } : {},
14816
+ ...scrimClassName ? { scrimClassName } : {},
14475
14817
  isOpen: state.isOpen,
14476
14818
  children: [
14477
14819
  /* @__PURE__ */ jsx(
@@ -14493,7 +14835,8 @@ var DatePickerModal = forwardRef(
14493
14835
  onChange: handleSingleChange,
14494
14836
  ...minValue ? { minValue } : {},
14495
14837
  ...maxValue ? { maxValue } : {},
14496
- ...isDateUnavailable ? { isDateUnavailable } : {}
14838
+ ...isDateUnavailable ? { isDateUnavailable } : {},
14839
+ ...slots ? { slots } : {}
14497
14840
  }
14498
14841
  ) : /* @__PURE__ */ jsx(
14499
14842
  CalendarCore,
@@ -14505,7 +14848,8 @@ var DatePickerModal = forwardRef(
14505
14848
  onRangeChange: handleRangeChange,
14506
14849
  ...minValue ? { minValue } : {},
14507
14850
  ...maxValue ? { maxValue } : {},
14508
- ...isDateUnavailable ? { isDateUnavailable } : {}
14851
+ ...isDateUnavailable ? { isDateUnavailable } : {},
14852
+ ...slots ? { slots } : {}
14509
14853
  }
14510
14854
  ),
14511
14855
  /* @__PURE__ */ jsx(
@@ -14517,7 +14861,8 @@ var DatePickerModal = forwardRef(
14517
14861
  showClear,
14518
14862
  onCancel: handleCancel,
14519
14863
  onConfirm: handleConfirm,
14520
- onClear: handleClear
14864
+ onClear: handleClear,
14865
+ ...ActionButtonComponent ? { ButtonComponent: ActionButtonComponent } : {}
14521
14866
  }
14522
14867
  )
14523
14868
  ]
@@ -14535,6 +14880,7 @@ function ModalOverlay({
14535
14880
  headlineId,
14536
14881
  onClose,
14537
14882
  className,
14883
+ scrimClassName,
14538
14884
  isOpen,
14539
14885
  children
14540
14886
  }) {
@@ -14555,7 +14901,7 @@ function ModalOverlay({
14555
14901
  dialogRef
14556
14902
  );
14557
14903
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14558
- /* @__PURE__ */ jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose }),
14904
+ /* @__PURE__ */ jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose, className: scrimClassName }),
14559
14905
  /* @__PURE__ */ jsx(
14560
14906
  "div",
14561
14907
  {
@@ -14573,210 +14919,6 @@ function ModalOverlay({
14573
14919
  ] });
14574
14920
  }
14575
14921
  ModalOverlay.displayName = "ModalOverlay";
14576
- var MODAL_STYLES = [
14577
- // ── Container structure ───────────────────────────────────────────────────
14578
- "[&_[data-modal-dialog]]:bg-surface-container-high",
14579
- "[&_[data-modal-dialog]]:rounded-3xl",
14580
- "[&_[data-modal-dialog]]:overflow-hidden",
14581
- "[&_[data-modal-dialog]]:fixed",
14582
- "[&_[data-modal-dialog]]:top-1/2",
14583
- "[&_[data-modal-dialog]]:left-1/2",
14584
- "[&_[data-modal-dialog]]:-translate-x-1/2",
14585
- "[&_[data-modal-dialog]]:-translate-y-1/2",
14586
- "[&_[data-modal-dialog]]:z-50",
14587
- "[&_[data-modal-dialog]]:w-[360px]",
14588
- "[&_[data-modal-dialog]]:max-h-[90vh]",
14589
- "[&_[data-modal-dialog]]:overflow-y-auto",
14590
- // ── Header ────────────────────────────────────────────────────────────────
14591
- "[&_[data-modal-header]]:px-6",
14592
- "[&_[data-modal-header]]:pt-4",
14593
- "[&_[data-modal-header]]:pb-3",
14594
- "[&_[data-modal-header]]:flex",
14595
- "[&_[data-modal-header]]:items-start",
14596
- "[&_[data-modal-header]]:justify-between",
14597
- "[&_[data-headline]]:text-label-large",
14598
- "[&_[data-headline]]:text-on-surface-variant",
14599
- "[&_[data-headline]]:m-0",
14600
- "[&_[data-supporting-text]]:text-headline-large",
14601
- "[&_[data-supporting-text]]:text-on-surface",
14602
- "[&_[data-supporting-text]]:mt-9",
14603
- "[&_[data-supporting-text]]:m-0",
14604
- "[&_[data-mode-toggle]]:w-12",
14605
- "[&_[data-mode-toggle]]:h-12",
14606
- "[&_[data-mode-toggle]]:rounded-full",
14607
- "[&_[data-mode-toggle]]:flex",
14608
- "[&_[data-mode-toggle]]:items-center",
14609
- "[&_[data-mode-toggle]]:justify-center",
14610
- "[&_[data-mode-toggle]]:text-on-surface-variant",
14611
- "[&_[data-mode-toggle]]:bg-transparent",
14612
- "[&_[data-mode-toggle]]:border-none",
14613
- "[&_[data-mode-toggle]]:self-end",
14614
- "[&_[data-mode-toggle]]:transition-colors",
14615
- "[&_[data-mode-toggle]]:duration-spring-standard-fast-effects",
14616
- "[&_[data-mode-toggle]]:ease-spring-standard-fast-effects",
14617
- "[&_[data-mode-toggle]:hover]:bg-on-surface-variant/8",
14618
- // ── Divider ───────────────────────────────────────────────────────────────
14619
- "[&_hr[data-divider]]:border-outline-variant",
14620
- // ── Calendar header ───────────────────────────────────────────────────────
14621
- "[&_[data-calendar-header]]:flex",
14622
- "[&_[data-calendar-header]]:items-center",
14623
- "[&_[data-calendar-header]]:justify-between",
14624
- "[&_[data-calendar-header]]:px-3",
14625
- "[&_[data-calendar-header]]:py-2",
14626
- "[&_[data-calendar-title]]:flex",
14627
- "[&_[data-calendar-title]]:items-center",
14628
- "[&_[data-calendar-title]]:gap-0.5",
14629
- "[&_[data-calendar-title]]:bg-transparent",
14630
- "[&_[data-calendar-title]]:border-none",
14631
- "[&_[data-calendar-title]]:cursor-pointer",
14632
- "[&_[data-calendar-title]]:rounded-full",
14633
- "[&_[data-calendar-title]]:px-2",
14634
- "[&_[data-calendar-title]]:py-1",
14635
- "[&_[data-calendar-title]]:transition-colors",
14636
- "[&_[data-calendar-title]]:duration-spring-standard-fast-effects",
14637
- "[&_[data-calendar-title]]:ease-spring-standard-fast-effects",
14638
- "[&_[data-calendar-title]:hover]:bg-on-surface/8",
14639
- "[&_[data-calendar-title]_h2]:text-label-large",
14640
- "[&_[data-calendar-title]_h2]:text-on-surface-variant",
14641
- "[&_[data-calendar-title]_h2]:m-0",
14642
- "[&_[data-calendar-title]_svg]:text-on-surface-variant",
14643
- "[&_[data-calendar-nav]]:flex",
14644
- "[&_[data-calendar-nav]]:items-center",
14645
- "[&_[data-calendar-nav]]:gap-1",
14646
- "[&_[data-nav-button]]:w-10",
14647
- "[&_[data-nav-button]]:h-10",
14648
- "[&_[data-nav-button]]:rounded-full",
14649
- "[&_[data-nav-button]]:flex",
14650
- "[&_[data-nav-button]]:items-center",
14651
- "[&_[data-nav-button]]:justify-center",
14652
- "[&_[data-nav-button]]:text-on-surface-variant",
14653
- "[&_[data-nav-button]]:bg-transparent",
14654
- "[&_[data-nav-button]]:border-none",
14655
- "[&_[data-nav-button]]:transition-colors",
14656
- "[&_[data-nav-button]]:duration-spring-standard-fast-effects",
14657
- "[&_[data-nav-button]]:ease-spring-standard-fast-effects",
14658
- "[&_[data-nav-button]:hover]:bg-on-surface/8",
14659
- "[&_[data-nav-button]:focus-visible]:bg-on-surface/10",
14660
- "[&_[data-nav-button]:disabled]:text-on-surface/38",
14661
- "[&_[data-nav-button]:disabled]:cursor-not-allowed",
14662
- // ── Calendar cells ────────────────────────────────────────────────────────
14663
- "[&_td>div]:w-[48px]",
14664
- "[&_td>div]:h-[48px]",
14665
- "[&_td>div]:rounded-full",
14666
- "[&_td>div]:flex",
14667
- "[&_td>div]:items-center",
14668
- "[&_td>div]:justify-center",
14669
- "[&_td>div]:text-body-large",
14670
- "[&_td>div]:text-on-surface",
14671
- "[&_td>div]:relative",
14672
- "[&_td>div]:cursor-pointer",
14673
- "[&_td>div]:select-none",
14674
- "[&_td>div]:transition-colors",
14675
- "[&_td>div]:duration-spring-standard-fast-effects",
14676
- "[&_td>div]:ease-spring-standard-fast-effects",
14677
- "[&_td>div[data-today]:not([data-selected])]:text-primary",
14678
- "[&_td>div[data-today]:not([data-selected])]:border",
14679
- "[&_td>div[data-today]:not([data-selected])]:border-primary",
14680
- "[&_td>div[data-selected]]:bg-primary",
14681
- "[&_td>div[data-selected]]:text-on-primary",
14682
- "[&_td>div[data-range-middle]]:bg-secondary-container",
14683
- "[&_td>div[data-range-middle]]:text-on-secondary-container",
14684
- "[&_td>div[data-range-middle]]:rounded-none",
14685
- "[&_td>div[data-outside-month]:not([data-selected])]:text-on-surface-variant",
14686
- "[&_td>div[data-disabled]]:text-on-surface/38",
14687
- "[&_td>div[data-disabled]]:cursor-not-allowed",
14688
- "[&_td>div:not([data-selected]):not([data-today]):not([data-disabled]):hover]:bg-on-surface/8",
14689
- "[&_td>div[data-today]:not([data-selected]):hover]:bg-primary/8",
14690
- "[&_td>div[data-selected]:hover]:shadow-sm",
14691
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-2",
14692
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:ring-on-surface",
14693
- "[&_td>div[data-focus-visible]:not([data-selected]):not([data-today])]:bg-on-surface/10",
14694
- "[&_td>div[data-today][data-focus-visible]:not([data-selected])]:bg-primary/10",
14695
- // ── Weekday labels ────────────────────────────────────────────────────────
14696
- "[&_th]:text-body-small",
14697
- "[&_th]:text-on-surface",
14698
- "[&_th]:font-normal",
14699
- "[&_th]:w-[48px]",
14700
- "[&_th]:h-[48px]",
14701
- // ── Year grid ─────────────────────────────────────────────────────────────
14702
- "[&_[data-year-grid]]:grid",
14703
- "[&_[data-year-grid]]:grid-cols-3",
14704
- "[&_[data-year-grid]]:gap-2",
14705
- "[&_[data-year-grid]]:px-3",
14706
- "[&_[data-year-grid]]:py-2",
14707
- "[&_[data-year-grid]]:max-h-[280px]",
14708
- "[&_[data-year-grid]]:overflow-y-auto",
14709
- "[&_[data-year-grid]]:place-items-center",
14710
- "[&_[data-year-item]]:w-[88px]",
14711
- "[&_[data-year-item]]:h-[52px]",
14712
- "[&_[data-year-item]]:rounded-full",
14713
- "[&_[data-year-item]]:flex",
14714
- "[&_[data-year-item]]:items-center",
14715
- "[&_[data-year-item]]:justify-center",
14716
- "[&_[data-year-item]]:text-body-large",
14717
- "[&_[data-year-item]]:text-on-surface-variant",
14718
- "[&_[data-year-item]]:bg-transparent",
14719
- "[&_[data-year-item]]:border-none",
14720
- "[&_[data-year-item]]:cursor-pointer",
14721
- "[&_[data-year-item]]:transition-colors",
14722
- "[&_[data-year-item]]:duration-spring-standard-fast-effects",
14723
- "[&_[data-year-item]]:ease-spring-standard-fast-effects",
14724
- "[&_[data-year-item]:hover]:bg-on-surface/8",
14725
- "[&_[data-year-item][data-selected]]:bg-primary",
14726
- "[&_[data-year-item][data-selected]]:text-on-primary",
14727
- // ── Scrim ─────────────────────────────────────────────────────────────────
14728
- "[&_[data-scrim]]:fixed",
14729
- "[&_[data-scrim]]:inset-0",
14730
- "[&_[data-scrim]]:z-40",
14731
- "[&_[data-scrim]]:bg-scrim",
14732
- "[&_[data-scrim]]:opacity-32",
14733
- "[&_[data-scrim]]:transition-opacity",
14734
- "[&_[data-scrim]]:duration-medium2",
14735
- "[&_[data-scrim]]:ease-standard",
14736
- // ── Action buttons ────────────────────────────────────────────────────────
14737
- "[&_[data-actions]]:flex",
14738
- "[&_[data-actions]]:items-center",
14739
- "[&_[data-actions]]:justify-end",
14740
- "[&_[data-actions]]:gap-2",
14741
- "[&_[data-actions]]:px-3",
14742
- "[&_[data-actions]]:py-2",
14743
- "[&_[data-action]]:text-primary",
14744
- "[&_[data-action]]:text-label-large",
14745
- "[&_[data-action]]:rounded-full",
14746
- "[&_[data-action]]:px-3",
14747
- "[&_[data-action]]:py-2",
14748
- "[&_[data-action]]:min-h-12",
14749
- "[&_[data-action]]:bg-transparent",
14750
- "[&_[data-action]]:border-none",
14751
- "[&_[data-action]]:transition-colors",
14752
- "[&_[data-action]]:duration-spring-standard-fast-effects",
14753
- "[&_[data-action]]:ease-spring-standard-fast-effects",
14754
- "[&_[data-action]:hover]:bg-primary/8",
14755
- "[&_[data-action]:focus-visible]:ring-2",
14756
- "[&_[data-action]:focus-visible]:ring-primary",
14757
- "[&_[data-action]:focus-visible]:bg-primary/10"
14758
- ].join(" ");
14759
- var MODAL_MOTION_STYLES = [
14760
- // ── Modal container enter ──────────────────────────────────────────────────
14761
- "[&_[data-modal-dialog]]:transition-[transform,opacity]",
14762
- "[&_[data-modal-dialog]]:duration-medium2",
14763
- "[&_[data-modal-dialog]]:ease-standard-decelerate",
14764
- // ── Modal container exit ───────────────────────────────────────────────────
14765
- "[&_[data-modal-dialog][data-exiting]]:duration-medium1",
14766
- "[&_[data-modal-dialog][data-exiting]]:ease-standard-accelerate",
14767
- // ── Calendar month slide ───────────────────────────────────────────────────
14768
- "[&_table]:transition-transform",
14769
- "[&_table]:duration-medium1",
14770
- "[&_table]:ease-emphasized-decelerate",
14771
- // ── Cell selection animation (scale + background) ──────────────────────────
14772
- "[&_td>div[data-selected]]:transition-[background-color,transform]",
14773
- "[&_td>div[data-selected]]:duration-short2",
14774
- "[&_td>div[data-selected]]:ease-standard",
14775
- // ── State layer opacity ────────────────────────────────────────────────────
14776
- "[&_td>div::after]:transition-opacity",
14777
- "[&_td>div::after]:duration-short1",
14778
- "[&_td>div::after]:ease-standard"
14779
- ].join(" ");
14780
14922
  var DatePickerModalStyled = forwardRef(
14781
14923
  (props, ref) => {
14782
14924
  const { className, ...rest } = props;
@@ -14787,11 +14929,20 @@ var DatePickerModalStyled = forwardRef(
14787
14929
  ref,
14788
14930
  ...rest,
14789
14931
  className: cn(
14790
- datePickerContainerVariants({ variant: "modal" }),
14791
- MODAL_STYLES,
14792
- !reducedMotion && MODAL_MOTION_STYLES,
14932
+ modalDialogVariants({ variant: "modal" }),
14933
+ MODAL_CONTENT_STRUCTURAL,
14934
+ !reducedMotion && MODAL_DIALOG_MOTION,
14793
14935
  className
14794
- )
14936
+ ),
14937
+ scrimClassName: cn(scrimVariants2()),
14938
+ slots: {
14939
+ CellComponent: StyledCalendarCell,
14940
+ NavButtonComponent: StyledNavButton,
14941
+ TitleComponent: StyledCalendarTitle,
14942
+ YearItemComponent: StyledYearItem,
14943
+ WeekdayComponent: StyledWeekday
14944
+ },
14945
+ ActionButtonComponent: StyledActionButton
14795
14946
  }
14796
14947
  );
14797
14948
  }
@@ -14938,7 +15089,9 @@ var DatePickerModalInput = forwardRef(
14938
15089
  onCancel,
14939
15090
  onConfirm,
14940
15091
  onModeToggle,
14941
- className
15092
+ className,
15093
+ scrimClassName,
15094
+ ActionButtonComponent
14942
15095
  } = props;
14943
15096
  const internalRef = useRef(null);
14944
15097
  const ref = forwardedRef ?? internalRef;
@@ -15097,6 +15250,7 @@ var DatePickerModalInput = forwardRef(
15097
15250
  headlineId,
15098
15251
  onClose: handleClose,
15099
15252
  ...className ? { className } : {},
15253
+ ...scrimClassName ? { scrimClassName } : {},
15100
15254
  isOpen: state.isOpen,
15101
15255
  children: [
15102
15256
  /* @__PURE__ */ jsx(
@@ -15159,7 +15313,8 @@ var DatePickerModalInput = forwardRef(
15159
15313
  confirmLabel,
15160
15314
  onCancel: handleCancel,
15161
15315
  onConfirm: handleConfirm,
15162
- isConfirmDisabled: !isFormValid
15316
+ isConfirmDisabled: !isFormValid,
15317
+ ...ActionButtonComponent ? { ButtonComponent: ActionButtonComponent } : {}
15163
15318
  }
15164
15319
  )
15165
15320
  ]
@@ -15177,6 +15332,7 @@ function ModalInputOverlay({
15177
15332
  headlineId,
15178
15333
  onClose,
15179
15334
  className,
15335
+ scrimClassName,
15180
15336
  isOpen,
15181
15337
  children
15182
15338
  }) {
@@ -15197,7 +15353,7 @@ function ModalInputOverlay({
15197
15353
  dialogRef
15198
15354
  );
15199
15355
  return /* @__PURE__ */ jsxs(Fragment, { children: [
15200
- /* @__PURE__ */ jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose }),
15356
+ /* @__PURE__ */ jsx("div", { "data-scrim": true, "aria-hidden": "true", onClick: onClose, className: scrimClassName }),
15201
15357
  /* @__PURE__ */ jsx(
15202
15358
  "div",
15203
15359
  {
@@ -15215,98 +15371,6 @@ function ModalInputOverlay({
15215
15371
  ] });
15216
15372
  }
15217
15373
  ModalInputOverlay.displayName = "ModalInputOverlay";
15218
- var MODAL_INPUT_STYLES = [
15219
- // ── Container structure ───────────────────────────────────────────────────
15220
- "[&_[data-modal-dialog]]:bg-surface-container-high",
15221
- "[&_[data-modal-dialog]]:rounded-3xl",
15222
- "[&_[data-modal-dialog]]:overflow-hidden",
15223
- "[&_[data-modal-dialog]]:fixed",
15224
- "[&_[data-modal-dialog]]:top-1/2",
15225
- "[&_[data-modal-dialog]]:left-1/2",
15226
- "[&_[data-modal-dialog]]:-translate-x-1/2",
15227
- "[&_[data-modal-dialog]]:-translate-y-1/2",
15228
- "[&_[data-modal-dialog]]:z-50",
15229
- "[&_[data-modal-dialog]]:w-[328px]",
15230
- // ── Header ────────────────────────────────────────────────────────────────
15231
- "[&_[data-modal-header]]:px-6",
15232
- "[&_[data-modal-header]]:pt-4",
15233
- "[&_[data-modal-header]]:pb-3",
15234
- "[&_[data-modal-header]]:flex",
15235
- "[&_[data-modal-header]]:items-start",
15236
- "[&_[data-modal-header]]:justify-between",
15237
- "[&_[data-headline]]:text-label-large",
15238
- "[&_[data-headline]]:text-on-surface-variant",
15239
- "[&_[data-headline]]:m-0",
15240
- "[&_[data-supporting-text]]:text-headline-large",
15241
- "[&_[data-supporting-text]]:text-on-surface",
15242
- "[&_[data-supporting-text]]:mt-4",
15243
- "[&_[data-supporting-text]]:m-0",
15244
- "[&_[data-mode-toggle]]:w-12",
15245
- "[&_[data-mode-toggle]]:h-12",
15246
- "[&_[data-mode-toggle]]:rounded-full",
15247
- "[&_[data-mode-toggle]]:flex",
15248
- "[&_[data-mode-toggle]]:items-center",
15249
- "[&_[data-mode-toggle]]:justify-center",
15250
- "[&_[data-mode-toggle]]:text-on-surface-variant",
15251
- "[&_[data-mode-toggle]]:bg-transparent",
15252
- "[&_[data-mode-toggle]]:border-none",
15253
- "[&_[data-mode-toggle]]:self-end",
15254
- "[&_[data-mode-toggle]]:transition-colors",
15255
- "[&_[data-mode-toggle]]:duration-spring-standard-fast-effects",
15256
- "[&_[data-mode-toggle]]:ease-spring-standard-fast-effects",
15257
- "[&_[data-mode-toggle]:hover]:bg-on-surface-variant/8",
15258
- // ── Divider ───────────────────────────────────────────────────────────────
15259
- "[&_hr[data-divider]]:border-outline-variant",
15260
- // ── Date input fields ─────────────────────────────────────────────────────
15261
- "[&_[data-date-input-field]]:px-6",
15262
- "[&_[data-date-input-field]]:py-2",
15263
- "[&_[data-date-input-field]_[data-field]]:flex",
15264
- "[&_[data-date-input-field]_[data-field]]:items-center",
15265
- "[&_[data-date-input-field]_[data-field]]:border",
15266
- "[&_[data-date-input-field]_[data-field]]:border-outline",
15267
- "[&_[data-date-input-field]_[data-field]]:rounded-sm",
15268
- "[&_[data-date-input-field]_[data-field]]:px-4",
15269
- "[&_[data-date-input-field]_[data-field]]:py-3",
15270
- "[&_[data-date-input-field]_[data-field]]:text-body-large",
15271
- "[&_[data-date-input-field]_[data-field]]:text-on-surface",
15272
- "[&_[data-date-input-field]_[data-segment]]:outline-none",
15273
- "[&_[data-date-input-field]_[data-segment][data-placeholder]]:text-on-surface-variant",
15274
- "[&_[data-date-input-field][data-focused]_[data-field]]:border-primary",
15275
- "[&_[data-date-input-field][data-focused]_[data-field]]:border-2",
15276
- "[&_[data-date-input-field][data-invalid]_[data-field]]:border-error",
15277
- "[&_[data-date-input-field]_[data-label]]:text-body-small",
15278
- "[&_[data-date-input-field]_[data-label]]:text-on-surface-variant",
15279
- "[&_[data-date-input-field]_[data-error-message]]:text-body-small",
15280
- "[&_[data-date-input-field]_[data-error-message]]:text-error",
15281
- "[&_[data-date-input-field]_[data-error-message]]:mt-1",
15282
- // ── Scrim ─────────────────────────────────────────────────────────────────
15283
- "[&_[data-scrim]]:fixed",
15284
- "[&_[data-scrim]]:inset-0",
15285
- "[&_[data-scrim]]:z-40",
15286
- "[&_[data-scrim]]:bg-scrim",
15287
- "[&_[data-scrim]]:opacity-32",
15288
- "[&_[data-scrim]]:transition-opacity",
15289
- "[&_[data-scrim]]:duration-medium2",
15290
- "[&_[data-scrim]]:ease-standard",
15291
- // ── Action buttons ────────────────────────────────────────────────────────
15292
- "[&_[data-actions]]:flex",
15293
- "[&_[data-actions]]:items-center",
15294
- "[&_[data-actions]]:justify-end",
15295
- "[&_[data-actions]]:gap-2",
15296
- "[&_[data-actions]]:px-3",
15297
- "[&_[data-actions]]:py-2",
15298
- "[&_[data-action]]:text-primary",
15299
- "[&_[data-action]]:text-label-large",
15300
- "[&_[data-action]]:rounded-full",
15301
- "[&_[data-action]]:px-3",
15302
- "[&_[data-action]]:py-2",
15303
- "[&_[data-action]]:bg-transparent",
15304
- "[&_[data-action]]:border-none",
15305
- "[&_[data-action]]:transition-colors",
15306
- "[&_[data-action]]:duration-spring-standard-fast-effects",
15307
- "[&_[data-action]]:ease-spring-standard-fast-effects",
15308
- "[&_[data-action]:hover]:bg-primary/8"
15309
- ].join(" ");
15310
15374
  var DatePickerModalInputStyled = forwardRef(
15311
15375
  (props, ref) => {
15312
15376
  const { className, ...rest } = props;
@@ -15316,10 +15380,12 @@ var DatePickerModalInputStyled = forwardRef(
15316
15380
  ref,
15317
15381
  ...rest,
15318
15382
  className: cn(
15319
- datePickerContainerVariants({ variant: "modal-input" }),
15320
- MODAL_INPUT_STYLES,
15383
+ modalDialogVariants({ variant: "modal-input" }),
15384
+ MODAL_INPUT_CONTENT_STRUCTURAL,
15321
15385
  className
15322
- )
15386
+ ),
15387
+ scrimClassName: cn(scrimVariants2()),
15388
+ ActionButtonComponent: StyledActionButton
15323
15389
  }
15324
15390
  );
15325
15391
  }
@@ -15430,6 +15496,6 @@ var DateField = forwardRef((props, forwardedRef) => {
15430
15496
  });
15431
15497
  DateField.displayName = "DateField";
15432
15498
 
15433
- export { AppBar, AppBarHeadless, Badge, BadgeContent, BadgeHeadless, BottomSheet, BottomSheetContext, BottomSheetHandle, BottomSheetHeadless, Button, ButtonGroup, ButtonGroupContext, ButtonGroupHeadless, CalendarCore, Card, CardActions, CardContent, CardHeader, CardHeadless, CardMedia, Checkbox, Chip, ChipHeadless, ChipSet, DateField, DatePicker, DatePickerDocked, DatePickerModal, DatePickerModalInput, Dialog, DialogActions, DialogContent, DialogContext, DialogHeadless, DialogHeadline, Divider, DividerHeadless, Drawer, DrawerIconOnlyContext, DrawerItem, DrawerSection, FAB, FABHeadless, FABMenu, FABMenuContext, FABMenuHeadless, FABMenuItem, HeadlessDrawer, HeadlessDrawerItem, HeadlessMenu, HeadlessMenuDivider, HeadlessMenuItem, HeadlessMenuSection, HeadlessMenuTrigger, HeadlessNavigationBar, HeadlessNavigationBarItem, HeadlessTab, HeadlessTabList, HeadlessTabPanel, IconButton, IconButtonHeadless, List, ListHeadless, ListItem, ListItemHeadless, ListItemLeading, ListItemText, ListItemTrailing, Menu, MenuContext, MenuDivider, MenuItem, MenuSection, MenuTrigger, NavigationBar, NavigationBarItem, Progress, ProgressHeadless, Radio, RadioGroup, RadioGroupHeadless, RadioHeadless, RichTooltip, STATE_LAYER_OPACITY, Search, SearchBar, SearchBarHeadless, SearchView, SearchViewHeadless, Slider, SliderHeadless, Snackbar, SnackbarContext, SnackbarHeadless, SnackbarProvider, SplitButton, SplitButtonHeadless, Switch, TYPOGRAPHY_ELEMENT_MAP, TYPOGRAPHY_USAGE, Tab, TabList, TabPanel, Tabs, TextField, TimePicker, TimePickerDial, TimePickerInput, Tooltip, TooltipOverlayHeadless, TooltipTrigger, TooltipTriggerHeadless, applyStateLayer, badgeVariants2 as badgeVariants, bottomSheetAnimationVariants, bottomSheetHandlePillVariants, bottomSheetHandleWrapperVariants, bottomSheetScrimVariants, bottomSheetVariants, buttonGroupFocusRingVariants, buttonGroupRootVariants, buttonGroupVariants, calendarCellVariants, cardVariants, chipVariants, clockDialContainerVariants, clockDialNumberVariants, clockHandCenterVariants, clockHandHandleVariants, clockHandTrackVariants, cn, datePickerActionButtonVariants, datePickerActionVariants, datePickerContainerVariants, datePickerDividerVariants, datePickerHeaderVariants, datePickerHeadlineVariants, datePickerNavVariants, datePickerRangeIndicatorVariants, datePickerScrimVariants, datePickerSupportingTextVariants, datePickerWeekdayVariants, dividerVariants, fabMenuItemFocusRingVariants, fabMenuItemIconVariants, fabMenuItemLabelVariants, fabMenuItemStateLayerVariants, fabMenuItemVariants, fabMenuListVariants, fabMenuVariants, generateMD3Theme, getColorValue, getConnectedRadiusClasses, getFontFamily, getMD3Color, getResponsiveTypography, getTypographyClassName, getTypographyForElement, getTypographyStyle, getTypographyToken, hexToRgb, listItemVariants, listVariants, periodSelectorContainerVariants, periodSelectorItemVariants, pxToRem, remToPx, rgbToHex, richTooltipVariants, searchBarVariants, searchViewHeaderVariants, searchViewVariants, sliderActiveTrackVariants, sliderContainerVariants, sliderHandleStateLayerVariants, sliderHandleVariants, sliderInactiveTrackVariants, sliderTrackLayoutVariants, splitButtonContainerVariants, splitButtonDropdownVariants, splitButtonPrimaryVariants, splitButtonVariants, timeInputFieldVariants, timePickerActionButtonVariants, timePickerActionRowVariants, timePickerContainerVariants, timePickerHeadlineVariants, timePickerModeToggleVariants, timeSelectorContainerVariants, timeSeparatorVariants, tooltipVariants, truncateText, useBottomSheetContext, useBottomSheetDrag, useButtonGroup, useDialogContext, useFABMenuContext, useMenuContext, useOptionalButtonGroup, useSnackbar, withOpacity, yearItemVariants };
15499
+ export { AppBar, AppBarHeadless, Badge, BadgeContent, BadgeHeadless, BottomSheet, BottomSheetContext, BottomSheetHandle, BottomSheetHeadless, Button, ButtonGroup, ButtonGroupContext, ButtonGroupHeadless, CalendarCore, Card, CardActions, CardContent, CardHeader, CardHeadless, CardMedia, Checkbox, Chip, ChipHeadless, ChipSet, DateField, DatePicker, DatePickerDocked, DatePickerModal, DatePickerModalInput, Dialog, DialogActions, DialogContent, DialogContext, DialogHeadless, DialogHeadline, Divider, DividerHeadless, Drawer, DrawerIconOnlyContext, DrawerItem, DrawerSection, FAB, FABHeadless, FABMenu, FABMenuContext, FABMenuHeadless, FABMenuItem, HeadlessDrawer, HeadlessDrawerItem, HeadlessMenu, HeadlessMenuDivider, HeadlessMenuItem, HeadlessMenuSection, HeadlessMenuTrigger, HeadlessNavigationBar, HeadlessNavigationBarItem, HeadlessTab, HeadlessTabList, HeadlessTabPanel, IconButton, IconButtonHeadless, List, ListHeadless, ListItem, ListItemHeadless, ListItemLeading, ListItemText, ListItemTrailing, Menu, MenuContext, MenuDivider, MenuItem, MenuSection, MenuTrigger, NavigationBar, NavigationBarItem, Progress, ProgressHeadless, Radio, RadioGroup, RadioGroupHeadless, RadioHeadless, RichTooltip, STATE_LAYER_OPACITY, Search, SearchBar, SearchBarHeadless, SearchView, SearchViewHeadless, Slider, SliderHeadless, Snackbar, SnackbarContext, SnackbarHeadless, SnackbarProvider, SplitButton, SplitButtonHeadless, StyledActionButton, StyledCalendarCell, StyledCalendarTitle, StyledNavButton, StyledWeekday, StyledYearItem, Switch, TYPOGRAPHY_ELEMENT_MAP, TYPOGRAPHY_USAGE, Tab, TabList, TabPanel, Tabs, TextField, TimePicker, TimePickerDial, TimePickerInput, Tooltip, TooltipOverlayHeadless, TooltipTrigger, TooltipTriggerHeadless, actionButtonFocusRingVariants, actionButtonStateLayerVariants, actionButtonVariants, actionRowVariants, applyStateLayer, badgeVariants2 as badgeVariants, bottomSheetAnimationVariants, bottomSheetHandlePillVariants, bottomSheetHandleWrapperVariants, bottomSheetScrimVariants, bottomSheetVariants, buttonGroupFocusRingVariants, buttonGroupRootVariants, buttonGroupVariants, calendarCellFocusRingVariants, calendarCellStateLayerVariants, calendarCellVariants, calendarDividerVariants, calendarHeaderVariants, calendarTitleIconVariants, calendarTitleStateLayerVariants, calendarTitleTextVariants, calendarTitleVariants, cardVariants, chipVariants, clockDialContainerVariants, clockDialNumberVariants, clockHandCenterVariants, clockHandHandleVariants, clockHandTrackVariants, cn, dateFieldVariants, dateInputErrorVariants, dateInputFieldGroupVariants, dateInputFieldVariants, dateInputLabelVariants, datePickerContainerVariants, dateSegmentPlaceholderVariants, dividerVariants, dockedFieldGroupVariants, dockedLabelVariants, dockedTriggerStateLayerVariants, dockedTriggerVariants, fabMenuItemFocusRingVariants, fabMenuItemIconVariants, fabMenuItemLabelVariants, fabMenuItemStateLayerVariants, fabMenuItemVariants, fabMenuListVariants, fabMenuVariants, generateMD3Theme, getColorValue, getConnectedRadiusClasses, getFontFamily, getMD3Color, getResponsiveTypography, getTypographyClassName, getTypographyForElement, getTypographyStyle, getTypographyToken, headlineVariants, hexToRgb, listItemVariants, listVariants, modalDialogVariants, modalHeaderVariants, modeToggleStateLayerVariants, modeToggleVariants, navButtonFocusRingVariants, navButtonStateLayerVariants, navButtonVariants, periodSelectorContainerVariants, periodSelectorItemVariants, popoverVariants, pxToRem, remToPx, rgbToHex, richTooltipVariants, scrimVariants2 as scrimVariants, searchBarVariants, searchViewHeaderVariants, searchViewVariants, sliderActiveTrackVariants, sliderContainerVariants, sliderHandleStateLayerVariants, sliderHandleVariants, sliderInactiveTrackVariants, sliderTrackLayoutVariants, splitButtonContainerVariants, splitButtonDropdownVariants, splitButtonPrimaryVariants, splitButtonVariants, supportingTextVariants, timeInputFieldVariants, timePickerActionButtonVariants, timePickerActionRowVariants, timePickerContainerVariants, timePickerHeadlineVariants, timePickerModeToggleVariants, timeSelectorContainerVariants, timeSeparatorVariants, tooltipVariants, truncateText, useBottomSheetContext, useBottomSheetDrag, useButtonGroup, useDialogContext, useFABMenuContext, useMenuContext, useOptionalButtonGroup, useSnackbar, weekdayVariants, withOpacity, yearGridVariants, yearItemFocusRingVariants, yearItemStateLayerVariants, yearItemVariants };
15434
15500
  //# sourceMappingURL=index.js.map
15435
15501
  //# sourceMappingURL=index.js.map