@arcfusionz/arc-primitive-ui 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/components/AILoader/AILoader.d.ts +32 -0
  2. package/dist/components/AILoader/AILoader.js +157 -0
  3. package/dist/components/AILoader/index.d.ts +2 -0
  4. package/dist/components/AILoader/index.js +2 -0
  5. package/dist/components/Accordion/Accordion.d.ts +96 -0
  6. package/dist/components/Accordion/Accordion.js +149 -0
  7. package/dist/components/Accordion/index.d.ts +2 -0
  8. package/dist/components/Accordion/index.js +2 -0
  9. package/dist/components/Avatar/Avatar.d.ts +152 -0
  10. package/dist/components/Avatar/Avatar.js +216 -0
  11. package/dist/components/Avatar/index.d.ts +2 -0
  12. package/dist/components/Avatar/index.js +2 -0
  13. package/dist/components/Badge/Badge.d.ts +87 -0
  14. package/dist/components/Badge/Badge.js +118 -0
  15. package/dist/components/Badge/index.d.ts +2 -0
  16. package/dist/components/Badge/index.js +2 -0
  17. package/dist/components/Breadcrumb/Breadcrumb.d.ts +109 -0
  18. package/dist/components/Breadcrumb/Breadcrumb.js +182 -0
  19. package/dist/components/Breadcrumb/index.d.ts +2 -0
  20. package/dist/components/Breadcrumb/index.js +2 -0
  21. package/dist/components/Button/Button.d.ts +57 -0
  22. package/dist/components/Button/Button.js +177 -0
  23. package/dist/components/Button/index.d.ts +2 -0
  24. package/dist/components/Button/index.js +2 -0
  25. package/dist/components/Calendar/Calendar.d.ts +140 -0
  26. package/dist/components/Calendar/Calendar.js +468 -0
  27. package/dist/components/Calendar/index.d.ts +2 -0
  28. package/dist/components/Calendar/index.js +2 -0
  29. package/dist/components/Checkbox/Checkbox.d.ts +60 -0
  30. package/dist/components/Checkbox/Checkbox.js +129 -0
  31. package/dist/components/Checkbox/index.d.ts +2 -0
  32. package/dist/components/Checkbox/index.js +2 -0
  33. package/dist/components/Combobox/Combobox.d.ts +251 -0
  34. package/dist/components/Combobox/Combobox.js +354 -0
  35. package/dist/components/Combobox/index.d.ts +2 -0
  36. package/dist/components/Combobox/index.js +2 -0
  37. package/dist/components/ContextMenu/ContextMenu.d.ts +129 -0
  38. package/dist/components/ContextMenu/ContextMenu.js +93 -0
  39. package/dist/components/ContextMenu/index.d.ts +2 -0
  40. package/dist/components/ContextMenu/index.js +2 -0
  41. package/dist/components/DatePicker/DatePicker.d.ts +109 -0
  42. package/dist/components/DatePicker/DatePicker.js +145 -0
  43. package/dist/components/DatePicker/index.d.ts +2 -0
  44. package/dist/components/DatePicker/index.js +2 -0
  45. package/dist/components/DateRangePicker/DateRangePicker.d.ts +107 -0
  46. package/dist/components/DateRangePicker/DateRangePicker.js +161 -0
  47. package/dist/components/DateRangePicker/index.d.ts +2 -0
  48. package/dist/components/DateRangePicker/index.js +2 -0
  49. package/dist/components/Dialog/Dialog.d.ts +112 -0
  50. package/dist/components/Dialog/Dialog.js +141 -0
  51. package/dist/components/Dialog/index.d.ts +2 -0
  52. package/dist/components/Dialog/index.js +2 -0
  53. package/dist/components/Drawer/Drawer.d.ts +188 -0
  54. package/dist/components/Drawer/Drawer.js +268 -0
  55. package/dist/components/Drawer/index.d.ts +2 -0
  56. package/dist/components/Drawer/index.js +2 -0
  57. package/dist/components/Field/Field.d.ts +123 -0
  58. package/dist/components/Field/Field.js +241 -0
  59. package/dist/components/Field/FieldContext.d.ts +43 -0
  60. package/dist/components/Field/FieldContext.js +28 -0
  61. package/dist/components/Field/index.d.ts +3 -0
  62. package/dist/components/Field/index.js +3 -0
  63. package/dist/components/Fieldset/Fieldset.d.ts +43 -0
  64. package/dist/components/Fieldset/Fieldset.js +48 -0
  65. package/dist/components/Fieldset/index.d.ts +2 -0
  66. package/dist/components/Fieldset/index.js +2 -0
  67. package/dist/components/Form/Form.d.ts +54 -0
  68. package/dist/components/Form/Form.js +57 -0
  69. package/dist/components/Form/index.d.ts +2 -0
  70. package/dist/components/Form/index.js +2 -0
  71. package/dist/components/Input/Input.d.ts +64 -0
  72. package/dist/components/Input/Input.js +111 -0
  73. package/dist/components/Input/index.d.ts +2 -0
  74. package/dist/components/Input/index.js +2 -0
  75. package/dist/components/Menu/Menu.d.ts +212 -0
  76. package/dist/components/Menu/Menu.js +255 -0
  77. package/dist/components/Menu/index.d.ts +2 -0
  78. package/dist/components/Menu/index.js +2 -0
  79. package/dist/components/Popover/Popover.d.ts +122 -0
  80. package/dist/components/Popover/Popover.js +116 -0
  81. package/dist/components/Popover/index.d.ts +2 -0
  82. package/dist/components/Popover/index.js +2 -0
  83. package/dist/components/Progress/Progress.d.ts +87 -0
  84. package/dist/components/Progress/Progress.js +73 -0
  85. package/dist/components/Progress/index.d.ts +2 -0
  86. package/dist/components/Progress/index.js +2 -0
  87. package/dist/components/Radio/Radio.d.ts +65 -0
  88. package/dist/components/Radio/Radio.js +93 -0
  89. package/dist/components/Radio/index.d.ts +2 -0
  90. package/dist/components/Radio/index.js +2 -0
  91. package/dist/components/Select/Select.d.ts +136 -0
  92. package/dist/components/Select/Select.js +219 -0
  93. package/dist/components/Select/index.d.ts +2 -0
  94. package/dist/components/Select/index.js +2 -0
  95. package/dist/components/Skeleton/Skeleton.d.ts +39 -0
  96. package/dist/components/Skeleton/Skeleton.js +44 -0
  97. package/dist/components/Skeleton/index.d.ts +2 -0
  98. package/dist/components/Skeleton/index.js +2 -0
  99. package/dist/components/Stepper/Stepper.d.ts +161 -0
  100. package/dist/components/Stepper/Stepper.js +344 -0
  101. package/dist/components/Stepper/index.d.ts +2 -0
  102. package/dist/components/Stepper/index.js +2 -0
  103. package/dist/components/Switch/Switch.d.ts +56 -0
  104. package/dist/components/Switch/Switch.js +87 -0
  105. package/dist/components/Switch/index.d.ts +2 -0
  106. package/dist/components/Switch/index.js +2 -0
  107. package/dist/components/Table/Table.d.ts +116 -0
  108. package/dist/components/Table/Table.js +143 -0
  109. package/dist/components/Table/index.d.ts +2 -0
  110. package/dist/components/Table/index.js +2 -0
  111. package/dist/components/Tabs/Tabs.d.ts +116 -0
  112. package/dist/components/Tabs/Tabs.js +158 -0
  113. package/dist/components/Tabs/index.d.ts +2 -0
  114. package/dist/components/Tabs/index.js +2 -0
  115. package/dist/components/Timeline/Timeline.d.ts +137 -0
  116. package/dist/components/Timeline/Timeline.js +243 -0
  117. package/dist/components/Timeline/index.d.ts +2 -0
  118. package/dist/components/Timeline/index.js +2 -0
  119. package/dist/components/Toast/Toast.d.ts +135 -0
  120. package/dist/components/Toast/Toast.js +314 -0
  121. package/dist/components/Toast/index.d.ts +2 -0
  122. package/dist/components/Toast/index.js +2 -0
  123. package/dist/components/Tooltip/Tooltip.d.ts +104 -0
  124. package/dist/components/Tooltip/Tooltip.js +95 -0
  125. package/dist/components/Tooltip/index.d.ts +2 -0
  126. package/dist/components/Tooltip/index.js +2 -0
  127. package/dist/components/Typography/Typography.d.ts +38 -0
  128. package/dist/components/Typography/Typography.js +53 -0
  129. package/dist/components/Typography/index.d.ts +2 -0
  130. package/dist/components/Typography/index.js +2 -0
  131. package/dist/index.d.ts +66 -3398
  132. package/dist/index.js +34 -5343
  133. package/dist/lib/cn.d.ts +6 -0
  134. package/dist/lib/cn.js +9 -0
  135. package/package.json +6 -2
@@ -0,0 +1,129 @@
1
+ import { MenuCheckboxItemProps, MenuGroupLabelProps, MenuGroupProps, MenuItemProps, MenuItemVariant, MenuLinkItemProps, MenuRadioGroupProps, MenuRadioItemProps, MenuSeparatorProps, MenuShortcutProps, MenuSubmenuRootProps, MenuSubmenuTriggerProps } from "../Menu/Menu.js";
2
+ import { ComponentPropsWithoutRef } from "react";
3
+ import { ContextMenu } from "@base-ui/react/context-menu";
4
+ //#region src/components/ContextMenu/ContextMenu.d.ts
5
+ /**
6
+ * Groups the context menu parts and owns the open state. The menu opens at
7
+ * the pointer from a right click — or a long press on touch — anywhere
8
+ * inside `ContextMenuTrigger`. Base UI's `ContextMenu.Root` re-exported
9
+ * unchanged: `open`/`defaultOpen`/`onOpenChange(open, details)`, `disabled`,
10
+ * `loopFocus`, `orientation`, and `highlightItemOnHover` are all available.
11
+ * A context menu is an invisible shortcut — keep a visible path (a kebab
12
+ * `Menu`, toolbar buttons) to the same actions.
13
+ */
14
+ declare const ContextMenu$1: typeof ContextMenu.Root;
15
+ type ContextMenuProps = ComponentPropsWithoutRef<typeof ContextMenu.Root>;
16
+ interface ContextMenuTriggerProps extends Omit<ComponentPropsWithoutRef<typeof ContextMenu.Trigger>, "className"> {
17
+ className?: string;
18
+ }
19
+ /**
20
+ * The region the menu acts on. It opens on right click, on the context-menu
21
+ * key / Shift+F10 (the browser fires `contextmenu` for these while focus is
22
+ * inside the region), and on a 500ms long press on touch — movement cancels
23
+ * the press, and the iOS callout is suppressed automatically. Renders an
24
+ * unstyled `<div>` around its children; make an existing element the region
25
+ * via `render`:
26
+ *
27
+ * <ContextMenuTrigger render={<tr />}>…</ContextMenuTrigger>
28
+ *
29
+ * While its menu is open the element carries `data-popup-open` — the hook
30
+ * for a "this is the target" outline. Keep something inside the region
31
+ * focusable so keyboard users can reach the menu, and consider `select-none`
32
+ * on touch-first surfaces so a long press doesn't also start text selection.
33
+ */
34
+ declare const ContextMenuTrigger: import("react").ForwardRefExoticComponent<ContextMenuTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
35
+ type BasePositionerProps = ComponentPropsWithoutRef<typeof ContextMenu.Positioner>;
36
+ type ContextMenuSide = NonNullable<BasePositionerProps["side"]>;
37
+ type ContextMenuAlign = NonNullable<BasePositionerProps["align"]>;
38
+ interface ContextMenuPopupProps extends Omit<ComponentPropsWithoutRef<typeof ContextMenu.Popup>, "className"> {
39
+ /**
40
+ * Side of the pointer (or `anchor`) to place the popup on. Leave unset for
41
+ * context-menu behavior: below the cursor, shifting — not flipping — along
42
+ * the edges to stay in the viewport; submenus resolve to the inline end.
43
+ */
44
+ side?: ContextMenuSide;
45
+ /**
46
+ * How the popup lines up along the chosen side. Unset defaults to `start`,
47
+ * so the popup's corner sits at the cursor (submenus align to the trigger
48
+ * row instead).
49
+ */
50
+ align?: ContextMenuAlign;
51
+ /**
52
+ * Distance to the anchor in pixels. Unset defaults adapt: Base UI's
53
+ * pointer-tuned 5px overlap at the root, a 4px panel overlap for submenus.
54
+ * When `side` is set explicitly the default is 0 — the popup edge stays
55
+ * exactly at the pointer.
56
+ */
57
+ sideOffset?: BasePositionerProps["sideOffset"];
58
+ /**
59
+ * Additional shift along the alignment axis in pixels. Unset defaults
60
+ * adapt: 2px past the cursor at the root, -4px for submenus so the first
61
+ * item meets the trigger row. 0 when `side` is set explicitly.
62
+ */
63
+ alignOffset?: BasePositionerProps["alignOffset"];
64
+ /** Minimum space kept from the viewport (or collision boundary) edges when repositioning. */
65
+ collisionPadding?: BasePositionerProps["collisionPadding"];
66
+ /**
67
+ * Position against an element (or virtual element) instead of the pointer —
68
+ * e.g. pin the menu to the card that was right-clicked so it opens in the
69
+ * same place regardless of where inside it the click landed.
70
+ */
71
+ anchor?: BasePositionerProps["anchor"];
72
+ /** Keep the popup in the DOM while closed — for SEO or measuring; closed popups normally unmount. */
73
+ keepMounted?: boolean;
74
+ /** Portal destination. Defaults to `document.body`. */
75
+ container?: ComponentPropsWithoutRef<typeof ContextMenu.Portal>["container"];
76
+ /**
77
+ * Applied to the popup panel. Width hooks: the panel is content-sized from
78
+ * 8rem up — set `w-*`/`max-w-*` for a fixed width. Long menus scroll
79
+ * inside the panel; cap them earlier with `max-h-*`.
80
+ */
81
+ className?: string;
82
+ }
83
+ /**
84
+ * The floating list of items, with the portal and positioning plumbing
85
+ * folded in. Anchored to the pointer by default — the panel's corner lands
86
+ * at the cursor and shifts (rather than flips) at viewport edges, matching
87
+ * OS context menus; opens with a motion-safe scale/fade. The same component
88
+ * nests inside `ContextMenuSubmenuRoot`, where its placement defaults switch
89
+ * to the shared submenu conventions (inline-end side, overlapped edges,
90
+ * trigger-row alignment). The panel recipe is shared with `MenuPopup`, so
91
+ * context menus and action menus look identical.
92
+ */
93
+ declare const ContextMenuPopup: import("react").ForwardRefExoticComponent<ContextMenuPopupProps & import("react").RefAttributes<HTMLDivElement>>;
94
+ /** One action in the menu — `MenuItem` shared as-is: same `variant`/`inset` props, icon slot, and 32px rows. */
95
+ declare const ContextMenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
96
+ type ContextMenuItemProps = MenuItemProps;
97
+ type ContextMenuItemVariant = MenuItemVariant;
98
+ /** A navigation entry that keeps real `<a>` semantics — `MenuLinkItem` shared as-is. */
99
+ declare const ContextMenuLinkItem: import("react").ForwardRefExoticComponent<MenuLinkItemProps & import("react").RefAttributes<HTMLAnchorElement>>;
100
+ type ContextMenuLinkItemProps = MenuLinkItemProps;
101
+ /** Right-aligned keyboard hint inside an item — `MenuShortcut` shared as-is (visual only; wire the key handling in the app). */
102
+ declare const ContextMenuShortcut: import("react").ForwardRefExoticComponent<MenuShortcutProps & import("react").RefAttributes<HTMLSpanElement>>;
103
+ type ContextMenuShortcutProps = MenuShortcutProps;
104
+ /** Groups related items under a `ContextMenuGroupLabel` — `MenuGroup` shared as-is. */
105
+ declare const ContextMenuGroup: import("react").ForwardRefExoticComponent<MenuGroupProps & import("react").RefAttributes<HTMLDivElement>>;
106
+ type ContextMenuGroupProps = MenuGroupProps;
107
+ /** Heading for a group, wired via `aria-labelledby` — `MenuGroupLabel` shared as-is. */
108
+ declare const ContextMenuGroupLabel: import("react").ForwardRefExoticComponent<MenuGroupLabelProps & import("react").RefAttributes<HTMLDivElement>>;
109
+ type ContextMenuGroupLabelProps = MenuGroupLabelProps;
110
+ /** Divider between item groups — `MenuSeparator` shared as-is. */
111
+ declare const ContextMenuSeparator: import("react").ForwardRefExoticComponent<MenuSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
112
+ type ContextMenuSeparatorProps = MenuSeparatorProps;
113
+ /** An item that toggles a setting and keeps the menu open — `MenuCheckboxItem` shared as-is. */
114
+ declare const ContextMenuCheckboxItem: import("react").ForwardRefExoticComponent<MenuCheckboxItemProps & import("react").RefAttributes<HTMLDivElement>>;
115
+ type ContextMenuCheckboxItemProps = MenuCheckboxItemProps;
116
+ /** Single-choice set for `ContextMenuRadioItem`s — `MenuRadioGroup` shared as-is. */
117
+ declare const ContextMenuRadioGroup: import("react").ForwardRefExoticComponent<MenuRadioGroupProps & import("react").RefAttributes<HTMLDivElement>>;
118
+ type ContextMenuRadioGroupProps = MenuRadioGroupProps;
119
+ /** One option of a radio group — `MenuRadioItem` shared as-is. */
120
+ declare const ContextMenuRadioItem: import("react").ForwardRefExoticComponent<MenuRadioItemProps & import("react").RefAttributes<HTMLDivElement>>;
121
+ type ContextMenuRadioItemProps = MenuRadioItemProps;
122
+ /** Groups the parts of a nested menu; renders no HTML — `MenuSubmenuRoot` shared as-is. Keep nesting to one level. */
123
+ declare const ContextMenuSubmenuRoot: typeof ContextMenu.SubmenuRoot;
124
+ type ContextMenuSubmenuRootProps = MenuSubmenuRootProps;
125
+ /** The item that opens a submenu (chevron appended, row tinted while open) — `MenuSubmenuTrigger` shared as-is. */
126
+ declare const ContextMenuSubmenuTrigger: import("react").ForwardRefExoticComponent<MenuSubmenuTriggerProps & import("react").RefAttributes<HTMLDivElement>>;
127
+ type ContextMenuSubmenuTriggerProps = MenuSubmenuTriggerProps;
128
+ //#endregion
129
+ export { ContextMenu$1 as ContextMenu, ContextMenuAlign, ContextMenuCheckboxItem, ContextMenuCheckboxItemProps, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuGroupLabelProps, ContextMenuGroupProps, ContextMenuItem, ContextMenuItemProps, ContextMenuItemVariant, ContextMenuLinkItem, ContextMenuLinkItemProps, ContextMenuPopup, ContextMenuPopupProps, ContextMenuProps, ContextMenuRadioGroup, ContextMenuRadioGroupProps, ContextMenuRadioItem, ContextMenuRadioItemProps, ContextMenuSeparator, ContextMenuSeparatorProps, ContextMenuShortcut, ContextMenuShortcutProps, ContextMenuSide, ContextMenuSubmenuRoot, ContextMenuSubmenuRootProps, ContextMenuSubmenuTrigger, ContextMenuSubmenuTriggerProps, ContextMenuTrigger, ContextMenuTriggerProps };
@@ -0,0 +1,93 @@
1
+ import { cn } from "../../lib/cn.js";
2
+ import { MenuCheckboxItem, MenuGroup, MenuGroupLabel, MenuItem, MenuLinkItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSubmenuRoot, MenuSubmenuTrigger, popupBehaviorClasses, popupSurfaceClasses } from "../Menu/Menu.js";
3
+ import { forwardRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { ContextMenu } from "@base-ui/react/context-menu";
6
+ //#region src/components/ContextMenu/ContextMenu.tsx
7
+ /**
8
+ * Groups the context menu parts and owns the open state. The menu opens at
9
+ * the pointer from a right click — or a long press on touch — anywhere
10
+ * inside `ContextMenuTrigger`. Base UI's `ContextMenu.Root` re-exported
11
+ * unchanged: `open`/`defaultOpen`/`onOpenChange(open, details)`, `disabled`,
12
+ * `loopFocus`, `orientation`, and `highlightItemOnHover` are all available.
13
+ * A context menu is an invisible shortcut — keep a visible path (a kebab
14
+ * `Menu`, toolbar buttons) to the same actions.
15
+ */
16
+ const ContextMenu$1 = ContextMenu.Root;
17
+ /**
18
+ * The region the menu acts on. It opens on right click, on the context-menu
19
+ * key / Shift+F10 (the browser fires `contextmenu` for these while focus is
20
+ * inside the region), and on a 500ms long press on touch — movement cancels
21
+ * the press, and the iOS callout is suppressed automatically. Renders an
22
+ * unstyled `<div>` around its children; make an existing element the region
23
+ * via `render`:
24
+ *
25
+ * <ContextMenuTrigger render={<tr />}>…</ContextMenuTrigger>
26
+ *
27
+ * While its menu is open the element carries `data-popup-open` — the hook
28
+ * for a "this is the target" outline. Keep something inside the region
29
+ * focusable so keyboard users can reach the menu, and consider `select-none`
30
+ * on touch-first surfaces so a long press doesn't also start text selection.
31
+ */
32
+ const ContextMenuTrigger = forwardRef(({ className, ...rest }, ref) => /* @__PURE__ */ jsx(ContextMenu.Trigger, {
33
+ ref,
34
+ className,
35
+ ...rest
36
+ }));
37
+ ContextMenuTrigger.displayName = "ContextMenuTrigger";
38
+ const adaptiveSideOffset = ({ side }) => side === "top" || side === "bottom" ? -5 : -4;
39
+ const adaptiveAlignOffset = ({ side }) => side === "top" || side === "bottom" ? 2 : -4;
40
+ /**
41
+ * The floating list of items, with the portal and positioning plumbing
42
+ * folded in. Anchored to the pointer by default — the panel's corner lands
43
+ * at the cursor and shifts (rather than flips) at viewport edges, matching
44
+ * OS context menus; opens with a motion-safe scale/fade. The same component
45
+ * nests inside `ContextMenuSubmenuRoot`, where its placement defaults switch
46
+ * to the shared submenu conventions (inline-end side, overlapped edges,
47
+ * trigger-row alignment). The panel recipe is shared with `MenuPopup`, so
48
+ * context menus and action menus look identical.
49
+ */
50
+ const ContextMenuPopup = forwardRef(({ side, align, sideOffset = side === void 0 ? adaptiveSideOffset : 0, alignOffset = side === void 0 ? adaptiveAlignOffset : 0, collisionPadding, anchor, keepMounted = false, container, className, children, ...rest }, ref) => /* @__PURE__ */ jsx(ContextMenu.Portal, {
51
+ container,
52
+ keepMounted,
53
+ children: /* @__PURE__ */ jsx(ContextMenu.Positioner, {
54
+ side,
55
+ align,
56
+ sideOffset,
57
+ alignOffset,
58
+ collisionPadding,
59
+ anchor,
60
+ className: "z-50 select-none outline-none",
61
+ children: /* @__PURE__ */ jsx(ContextMenu.Popup, {
62
+ ref,
63
+ className: cn(popupSurfaceClasses, popupBehaviorClasses, className),
64
+ ...rest,
65
+ children
66
+ })
67
+ })
68
+ }));
69
+ ContextMenuPopup.displayName = "ContextMenuPopup";
70
+ /** One action in the menu — `MenuItem` shared as-is: same `variant`/`inset` props, icon slot, and 32px rows. */
71
+ const ContextMenuItem = MenuItem;
72
+ /** A navigation entry that keeps real `<a>` semantics — `MenuLinkItem` shared as-is. */
73
+ const ContextMenuLinkItem = MenuLinkItem;
74
+ /** Right-aligned keyboard hint inside an item — `MenuShortcut` shared as-is (visual only; wire the key handling in the app). */
75
+ const ContextMenuShortcut = MenuShortcut;
76
+ /** Groups related items under a `ContextMenuGroupLabel` — `MenuGroup` shared as-is. */
77
+ const ContextMenuGroup = MenuGroup;
78
+ /** Heading for a group, wired via `aria-labelledby` — `MenuGroupLabel` shared as-is. */
79
+ const ContextMenuGroupLabel = MenuGroupLabel;
80
+ /** Divider between item groups — `MenuSeparator` shared as-is. */
81
+ const ContextMenuSeparator = MenuSeparator;
82
+ /** An item that toggles a setting and keeps the menu open — `MenuCheckboxItem` shared as-is. */
83
+ const ContextMenuCheckboxItem = MenuCheckboxItem;
84
+ /** Single-choice set for `ContextMenuRadioItem`s — `MenuRadioGroup` shared as-is. */
85
+ const ContextMenuRadioGroup = MenuRadioGroup;
86
+ /** One option of a radio group — `MenuRadioItem` shared as-is. */
87
+ const ContextMenuRadioItem = MenuRadioItem;
88
+ /** Groups the parts of a nested menu; renders no HTML — `MenuSubmenuRoot` shared as-is. Keep nesting to one level. */
89
+ const ContextMenuSubmenuRoot = MenuSubmenuRoot;
90
+ /** The item that opens a submenu (chevron appended, row tinted while open) — `MenuSubmenuTrigger` shared as-is. */
91
+ const ContextMenuSubmenuTrigger = MenuSubmenuTrigger;
92
+ //#endregion
93
+ export { ContextMenu$1 as ContextMenu, ContextMenuCheckboxItem, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger };
@@ -0,0 +1,2 @@
1
+ import { ContextMenu, ContextMenuAlign, ContextMenuCheckboxItem, ContextMenuCheckboxItemProps, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuGroupLabelProps, ContextMenuGroupProps, ContextMenuItem, ContextMenuItemProps, ContextMenuItemVariant, ContextMenuLinkItem, ContextMenuLinkItemProps, ContextMenuPopup, ContextMenuPopupProps, ContextMenuProps, ContextMenuRadioGroup, ContextMenuRadioGroupProps, ContextMenuRadioItem, ContextMenuRadioItemProps, ContextMenuSeparator, ContextMenuSeparatorProps, ContextMenuShortcut, ContextMenuShortcutProps, ContextMenuSide, ContextMenuSubmenuRoot, ContextMenuSubmenuRootProps, ContextMenuSubmenuTrigger, ContextMenuSubmenuTriggerProps, ContextMenuTrigger, ContextMenuTriggerProps } from "./ContextMenu.js";
2
+ export { ContextMenu, type ContextMenuAlign, ContextMenuCheckboxItem, type ContextMenuCheckboxItemProps, ContextMenuGroup, ContextMenuGroupLabel, type ContextMenuGroupLabelProps, type ContextMenuGroupProps, ContextMenuItem, type ContextMenuItemProps, type ContextMenuItemVariant, ContextMenuLinkItem, type ContextMenuLinkItemProps, ContextMenuPopup, type ContextMenuPopupProps, type ContextMenuProps, ContextMenuRadioGroup, type ContextMenuRadioGroupProps, ContextMenuRadioItem, type ContextMenuRadioItemProps, ContextMenuSeparator, type ContextMenuSeparatorProps, ContextMenuShortcut, type ContextMenuShortcutProps, type ContextMenuSide, ContextMenuSubmenuRoot, type ContextMenuSubmenuRootProps, ContextMenuSubmenuTrigger, type ContextMenuSubmenuTriggerProps, ContextMenuTrigger, type ContextMenuTriggerProps };
@@ -0,0 +1,2 @@
1
+ import { ContextMenu, ContextMenuCheckboxItem, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger } from "./ContextMenu.js";
2
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuGroup, ContextMenuGroupLabel, ContextMenuItem, ContextMenuLinkItem, ContextMenuPopup, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSubmenuRoot, ContextMenuSubmenuTrigger, ContextMenuTrigger };
@@ -0,0 +1,109 @@
1
+ import { CalendarProps } from "../Calendar/Calendar.js";
2
+ import "../Calendar/index.js";
3
+ import { Popover, PopoverPopupProps, PopoverTrigger } from "../Popover/Popover.js";
4
+ import "../Popover/index.js";
5
+ import { CSSProperties, ComponentPropsWithoutRef, ReactNode } from "react";
6
+ //#region src/components/DatePicker/DatePicker.d.ts
7
+ type DatePickerVariant = "outline" | "ghost";
8
+ type DatePickerSize = "sm" | "md" | "lg";
9
+ type BaseTriggerProps = ComponentPropsWithoutRef<typeof PopoverTrigger>;
10
+ type BaseRootProps = ComponentPropsWithoutRef<typeof Popover>;
11
+ type SingleCalendarProps = Extract<CalendarProps, {
12
+ mode?: "single";
13
+ }>;
14
+ /**
15
+ * Calendar configuration accepted by DatePicker. Selection, locale, and
16
+ * disabled/read-only state stay owned by DatePicker so trigger and grid can
17
+ * never drift apart.
18
+ */
19
+ interface DatePickerCalendarProps extends Omit<SingleCalendarProps, "mode" | "value" | "defaultValue" | "onValueChange" | "allowDeselect" | "disabled" | "readOnly" | "locale"> {}
20
+ /** Popup positioning, focus, portal, and ARIA options forwarded to `PopoverPopup`. */
21
+ interface DatePickerPopupProps extends Omit<PopoverPopupProps, "children" | "className"> {}
22
+ interface DatePickerVariantsOptions {
23
+ /** Visual style of the trigger. */
24
+ variant?: DatePickerVariant;
25
+ /** Control height. */
26
+ size?: DatePickerSize;
27
+ /** Stretch the trigger to fill its container. */
28
+ fullWidth?: boolean;
29
+ /** Additional classes merged after the variant recipe. */
30
+ className?: string;
31
+ }
32
+ /** Class list for an element styled as the DatePicker trigger. */
33
+ declare function datePickerVariants({ variant, size, fullWidth, className }?: DatePickerVariantsOptions): string;
34
+ interface DatePickerProps extends Omit<BaseTriggerProps, "children" | "className" | "defaultValue" | "disabled" | "form" | "name" | "value"> {
35
+ /** Selected local calendar date (controlled). `null` represents no selection. */
36
+ value?: Date | null;
37
+ /** Initial selected local calendar date (uncontrolled). */
38
+ defaultValue?: Date | null;
39
+ /** Called when a day is selected, or with `null` when `allowDeselect` clears it. */
40
+ onValueChange?: (value: Date | null) => void;
41
+ /** Let selecting the chosen day again clear the value. @default false */
42
+ allowDeselect?: boolean;
43
+ /** Whether the calendar popup is open (controlled). */
44
+ open?: BaseRootProps["open"];
45
+ /** Whether the calendar popup starts open (uncontrolled). @default false */
46
+ defaultOpen?: BaseRootProps["defaultOpen"];
47
+ /** Called whenever Base UI requests that the popup open or close. */
48
+ onOpenChange?: BaseRootProps["onOpenChange"];
49
+ /** Called after the popup's opening or closing animation completes. */
50
+ onOpenChangeComplete?: BaseRootProps["onOpenChangeComplete"];
51
+ /** Close the popup after a date is selected or deselected. @default true */
52
+ closeOnSelect?: boolean;
53
+ /** Text shown while no date is selected. Localize this consumer-owned string. @default "Pick a date" */
54
+ placeholder?: string;
55
+ /**
56
+ * BCP-47 locale used by the trigger formatter and Calendar. Defaults to the
57
+ * runtime locale.
58
+ */
59
+ locale?: string;
60
+ /** Options passed to `Intl.DateTimeFormat` for the trigger value. @default { dateStyle: "medium" } */
61
+ formatOptions?: Intl.DateTimeFormatOptions;
62
+ /** Replace the default `Intl.DateTimeFormat` trigger text. Must return an accessible text label. */
63
+ formatValue?: (date: Date, locale: string | undefined) => string;
64
+ /** Accessible name for the calendar popup and date grid. Localize it. @default "Choose date" */
65
+ calendarLabel?: string;
66
+ /** Calendar behavior and layout options; DatePicker keeps selection/state props synchronized itself. */
67
+ calendarProps?: DatePickerCalendarProps;
68
+ /** Popover positioning, portal, focus, and ARIA options. Defaults to bottom-start alignment. */
69
+ popupProps?: DatePickerPopupProps;
70
+ /** Additional classes for the calendar popup panel. */
71
+ popupClassName?: string;
72
+ /** Visual style: `outline` is input-like; `ghost` suits toolbars and inline filters. */
73
+ variant?: DatePickerVariant;
74
+ /** Trigger height. `sm` (32px) meets WCAG 2.5.8 AA; prefer `md`/`lg` for touch-first surfaces. */
75
+ size?: DatePickerSize;
76
+ /** Stretch the trigger to fill its container. `anchorWidth` or consumer `style.width` can override it. */
77
+ fullWidth?: boolean;
78
+ /**
79
+ * CSS width of the trigger. Accepts pixels or any CSS width such as
80
+ * `"18rem"`, `"100%"`, or `"max-content"`.
81
+ */
82
+ anchorWidth?: CSSProperties["width"];
83
+ /** Replaces the decorative calendar icon. Pass `null` to hide it. */
84
+ icon?: ReactNode;
85
+ /** Disable the trigger and calendar; a named hidden input is omitted from form submission. */
86
+ disabled?: boolean;
87
+ /** Keep the picker openable and navigable while preventing date changes. */
88
+ readOnly?: boolean;
89
+ /**
90
+ * Name used to submit the selected date through a hidden input as local
91
+ * `YYYY-MM-DD`. Native required validation is intentionally left to the
92
+ * surrounding form-field abstraction.
93
+ */
94
+ name?: string;
95
+ /** ID of the form associated with both the trigger and the hidden date input. */
96
+ form?: string;
97
+ /** Additional classes merged onto the trigger. */
98
+ className?: string;
99
+ }
100
+ /**
101
+ * A localized date trigger with a Calendar in a Base UI Popover.
102
+ *
103
+ * The visible trigger text is always its baseline accessible name. Add
104
+ * `aria-label`/`aria-labelledby` when surrounding context (for example,
105
+ * "Departure date") must be part of the name.
106
+ */
107
+ declare const DatePicker: import("react").ForwardRefExoticComponent<DatePickerProps & import("react").RefAttributes<HTMLButtonElement>>;
108
+ //#endregion
109
+ export { DatePicker, DatePickerCalendarProps, DatePickerPopupProps, DatePickerProps, DatePickerSize, DatePickerVariant, DatePickerVariantsOptions, datePickerVariants };
@@ -0,0 +1,145 @@
1
+ import { cn } from "../../lib/cn.js";
2
+ import { Calendar } from "../Calendar/Calendar.js";
3
+ import { Popover, PopoverPopup, PopoverTrigger } from "../Popover/Popover.js";
4
+ import { forwardRef, useMemo, useRef, useState } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region src/components/DatePicker/DatePicker.tsx
7
+ const triggerBaseClasses = "inline-flex w-64 cursor-pointer items-center justify-start gap-2 rounded-md whitespace-nowrap select-none font-sans text-primary transition-colors duration-150 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring data-empty:text-muted-foreground data-readonly:cursor-default data-invalid:border-destructive data-invalid:focus-visible:outline-destructive aria-invalid:border-destructive aria-invalid:focus-visible:outline-destructive disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4";
8
+ const triggerVariantClasses = {
9
+ outline: "border border-border bg-background hover:bg-primary-50 data-popup-open:bg-primary-50",
10
+ ghost: "border border-transparent bg-transparent hover:bg-primary-50 data-popup-open:bg-primary-50"
11
+ };
12
+ const triggerSizeClasses = {
13
+ sm: "h-8 px-2.5 text-sm",
14
+ md: "h-10 px-3 text-sm",
15
+ lg: "h-12 px-4 text-base [&_svg:not([class*='size-'])]:size-5"
16
+ };
17
+ /** Class list for an element styled as the DatePicker trigger. */
18
+ function datePickerVariants({ variant = "outline", size = "md", fullWidth = false, className } = {}) {
19
+ return cn(triggerBaseClasses, triggerVariantClasses[variant], triggerSizeClasses[size], fullWidth && "w-full", className);
20
+ }
21
+ function CalendarIcon(props) {
22
+ return /* @__PURE__ */ jsxs("svg", {
23
+ viewBox: "0 0 24 24",
24
+ fill: "none",
25
+ stroke: "currentColor",
26
+ strokeWidth: 2,
27
+ strokeLinecap: "round",
28
+ strokeLinejoin: "round",
29
+ "aria-hidden": "true",
30
+ ...props,
31
+ children: [/* @__PURE__ */ jsx("path", { d: "M8 2v4M16 2v4M3 9h18" }), /* @__PURE__ */ jsx("rect", {
32
+ x: "3",
33
+ y: "4",
34
+ width: "18",
35
+ height: "17",
36
+ rx: "2"
37
+ })]
38
+ });
39
+ }
40
+ function mergeAnchorWidth(anchorWidth, style) {
41
+ if (anchorWidth == null) return style;
42
+ const anchorStyle = { width: anchorWidth };
43
+ return typeof style === "function" ? (state) => ({
44
+ ...anchorStyle,
45
+ ...style(state)
46
+ }) : {
47
+ ...anchorStyle,
48
+ ...style ?? {}
49
+ };
50
+ }
51
+ function createFormatter(locale, options) {
52
+ try {
53
+ return new Intl.DateTimeFormat(locale, options);
54
+ } catch {
55
+ return new Intl.DateTimeFormat(void 0, options);
56
+ }
57
+ }
58
+ function toLocalISODate(date) {
59
+ return `${String(date.getFullYear()).padStart(4, "0")}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")}`;
60
+ }
61
+ const emptyDataAttribute = { "data-empty": "" };
62
+ const readOnlyDataAttribute = { "data-readonly": "" };
63
+ const DEFAULT_FORMAT_OPTIONS = { dateStyle: "medium" };
64
+ /**
65
+ * A localized date trigger with a Calendar in a Base UI Popover.
66
+ *
67
+ * The visible trigger text is always its baseline accessible name. Add
68
+ * `aria-label`/`aria-labelledby` when surrounding context (for example,
69
+ * "Departure date") must be part of the name.
70
+ */
71
+ const DatePicker = forwardRef(({ value: valueProp, defaultValue = null, onValueChange, allowDeselect = false, open, defaultOpen = false, onOpenChange, onOpenChangeComplete, closeOnSelect = true, placeholder = "Pick a date", locale, formatOptions = DEFAULT_FORMAT_OPTIONS, formatValue, calendarLabel = "Choose date", calendarProps, popupProps, popupClassName, variant = "outline", size = "md", fullWidth = false, anchorWidth, icon, disabled = false, readOnly = false, name, form, type = "button", style, className, ...rest }, ref) => {
72
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
73
+ const selectedDate = valueProp !== void 0 ? valueProp : uncontrolledValue;
74
+ const actionsRef = useRef(null);
75
+ const popupRef = useRef(null);
76
+ const formatter = useMemo(() => createFormatter(locale, formatOptions), [locale, formatOptions]);
77
+ const valueText = selectedDate ? formatValue?.(selectedDate, locale) ?? formatter.format(selectedDate) : placeholder;
78
+ const handleValueChange = (nextValue) => {
79
+ if (valueProp === void 0) setUncontrolledValue(nextValue);
80
+ onValueChange?.(nextValue);
81
+ if (closeOnSelect) actionsRef.current?.close();
82
+ };
83
+ return /* @__PURE__ */ jsxs(Popover, {
84
+ actionsRef,
85
+ open,
86
+ defaultOpen,
87
+ onOpenChange,
88
+ onOpenChangeComplete,
89
+ children: [
90
+ /* @__PURE__ */ jsxs(PopoverTrigger, {
91
+ ref,
92
+ type,
93
+ disabled,
94
+ form,
95
+ style: mergeAnchorWidth(anchorWidth, style),
96
+ className: cn(datePickerVariants({
97
+ variant,
98
+ size,
99
+ fullWidth
100
+ }), className),
101
+ ...!selectedDate ? emptyDataAttribute : void 0,
102
+ ...readOnly ? readOnlyDataAttribute : void 0,
103
+ ...rest,
104
+ children: [icon !== null && /* @__PURE__ */ jsx("span", {
105
+ "aria-hidden": "true",
106
+ className: "inline-flex shrink-0 text-muted-foreground",
107
+ children: icon ?? /* @__PURE__ */ jsx(CalendarIcon, {})
108
+ }), /* @__PURE__ */ jsx("span", {
109
+ className: "min-w-0 flex-1 truncate text-left font-normal",
110
+ children: valueText
111
+ })]
112
+ }),
113
+ name && /* @__PURE__ */ jsx("input", {
114
+ type: "hidden",
115
+ name,
116
+ form,
117
+ disabled: disabled || void 0,
118
+ value: selectedDate ? toLocalISODate(selectedDate) : ""
119
+ }),
120
+ /* @__PURE__ */ jsx(PopoverPopup, {
121
+ ref: popupRef,
122
+ "aria-label": calendarLabel,
123
+ align: "start",
124
+ initialFocus: () => popupRef.current?.querySelector("[role=\"grid\"] button[tabindex=\"0\"]") ?? true,
125
+ ...popupProps,
126
+ className: cn("w-auto p-0", popupClassName),
127
+ children: /* @__PURE__ */ jsx(Calendar, {
128
+ "aria-label": calendarLabel,
129
+ fixedWeeks: true,
130
+ ...calendarProps,
131
+ mode: "single",
132
+ value: selectedDate,
133
+ onValueChange: handleValueChange,
134
+ allowDeselect,
135
+ disabled,
136
+ readOnly,
137
+ locale
138
+ })
139
+ })
140
+ ]
141
+ });
142
+ });
143
+ DatePicker.displayName = "DatePicker";
144
+ //#endregion
145
+ export { DatePicker, datePickerVariants };
@@ -0,0 +1,2 @@
1
+ import { DatePicker, DatePickerCalendarProps, DatePickerPopupProps, DatePickerProps, DatePickerSize, DatePickerVariant, DatePickerVariantsOptions, datePickerVariants } from "./DatePicker.js";
2
+ export { DatePicker, type DatePickerCalendarProps, type DatePickerPopupProps, type DatePickerProps, type DatePickerSize, type DatePickerVariant, type DatePickerVariantsOptions, datePickerVariants };
@@ -0,0 +1,2 @@
1
+ import { DatePicker, datePickerVariants } from "./DatePicker.js";
2
+ export { DatePicker, datePickerVariants };
@@ -0,0 +1,107 @@
1
+ import { CalendarDateRange, CalendarProps } from "../Calendar/Calendar.js";
2
+ import "../Calendar/index.js";
3
+ import { Popover, PopoverPopupProps, PopoverTrigger } from "../Popover/Popover.js";
4
+ import "../Popover/index.js";
5
+ import { DatePickerSize, DatePickerVariant } from "../DatePicker/DatePicker.js";
6
+ import "../DatePicker/index.js";
7
+ import { CSSProperties, ComponentPropsWithoutRef, ReactNode } from "react";
8
+ //#region src/components/DateRangePicker/DateRangePicker.d.ts
9
+ type DateRangePickerVariant = DatePickerVariant;
10
+ type DateRangePickerSize = DatePickerSize;
11
+ type BaseTriggerProps = ComponentPropsWithoutRef<typeof PopoverTrigger>;
12
+ type BaseRootProps = ComponentPropsWithoutRef<typeof Popover>;
13
+ type RangeCalendarProps = Extract<CalendarProps, {
14
+ mode: "range";
15
+ }>;
16
+ /**
17
+ * Calendar configuration accepted by DateRangePicker. Selection, locale, and
18
+ * disabled/read-only state stay owned by DateRangePicker so trigger and grid
19
+ * can never drift apart.
20
+ */
21
+ interface DateRangePickerCalendarProps extends Omit<RangeCalendarProps, "mode" | "value" | "defaultValue" | "onValueChange" | "disabled" | "readOnly" | "locale"> {}
22
+ /** Popup positioning, focus, portal, and ARIA options forwarded to `PopoverPopup`. */
23
+ interface DateRangePickerPopupProps extends Omit<PopoverPopupProps, "children" | "className"> {}
24
+ interface DateRangePickerVariantsOptions {
25
+ /** Visual style of the trigger. */
26
+ variant?: DateRangePickerVariant;
27
+ /** Control height. */
28
+ size?: DateRangePickerSize;
29
+ /** Stretch the trigger to fill its container. */
30
+ fullWidth?: boolean;
31
+ /** Additional classes merged after the variant recipe. */
32
+ className?: string;
33
+ }
34
+ /** Class list for an element styled as the DateRangePicker trigger. */
35
+ declare function dateRangePickerVariants({ variant, size, fullWidth, className }?: DateRangePickerVariantsOptions): string;
36
+ interface DateRangePickerProps extends Omit<BaseTriggerProps, "children" | "className" | "defaultValue" | "disabled" | "form" | "name" | "value"> {
37
+ /** Selected inclusive local-calendar range (controlled). `null` represents no selection. */
38
+ value?: CalendarDateRange | null;
39
+ /** Initial selected inclusive local-calendar range (uncontrolled). */
40
+ defaultValue?: CalendarDateRange | null;
41
+ /** Called with an ordered, complete range after its second date is chosen. */
42
+ onValueChange?: (value: CalendarDateRange | null) => void;
43
+ /** Whether the calendar popup is open (controlled). */
44
+ open?: BaseRootProps["open"];
45
+ /** Whether the calendar popup starts open (uncontrolled). @default false */
46
+ defaultOpen?: BaseRootProps["defaultOpen"];
47
+ /** Called whenever Base UI requests that the popup open or close. */
48
+ onOpenChange?: BaseRootProps["onOpenChange"];
49
+ /** Called after the popup's opening or closing animation completes. */
50
+ onOpenChangeComplete?: BaseRootProps["onOpenChangeComplete"];
51
+ /** Close the popup after the range's second date is selected. @default true */
52
+ closeOnSelect?: boolean;
53
+ /** Text shown while no complete range is selected. Localize this consumer-owned string. @default "Pick a date range" */
54
+ placeholder?: string;
55
+ /**
56
+ * BCP-47 locale used by the trigger formatter and Calendar. Defaults to the
57
+ * runtime locale.
58
+ */
59
+ locale?: string;
60
+ /** Options passed to `Intl.DateTimeFormat` for the trigger range. @default { dateStyle: "medium" } */
61
+ formatOptions?: Intl.DateTimeFormatOptions;
62
+ /** Replace the default localized trigger text. Must return an accessible plain-text label. */
63
+ formatValue?: (range: CalendarDateRange, locale: string | undefined) => string;
64
+ /** Accessible name for the calendar popup and date grids. Localize it. @default "Choose date range" */
65
+ calendarLabel?: string;
66
+ /** Calendar behavior and layout options; selection/state props stay synchronized by DateRangePicker. */
67
+ calendarProps?: DateRangePickerCalendarProps;
68
+ /** Popover positioning, portal, focus, and ARIA options. Defaults to bottom-start alignment. */
69
+ popupProps?: DateRangePickerPopupProps;
70
+ /** Additional classes for the calendar popup panel. */
71
+ popupClassName?: string;
72
+ /** Visual style: `outline` is input-like; `ghost` suits toolbars and inline filters. */
73
+ variant?: DateRangePickerVariant;
74
+ /** Trigger height. `sm` (32px) meets WCAG 2.5.8 AA; prefer `md`/`lg` for touch-first surfaces. */
75
+ size?: DateRangePickerSize;
76
+ /** Stretch the trigger to fill its container. `anchorWidth` or consumer `style.width` can override it. */
77
+ fullWidth?: boolean;
78
+ /**
79
+ * CSS width of the trigger. Accepts pixels or any CSS width such as
80
+ * `"20rem"`, `"100%"`, or `"max-content"`.
81
+ */
82
+ anchorWidth?: CSSProperties["width"];
83
+ /** Replaces the decorative calendar icon. Pass `null` to hide it. */
84
+ icon?: ReactNode;
85
+ /** Disable the trigger and calendar; named hidden inputs are omitted from form submission. */
86
+ disabled?: boolean;
87
+ /** Keep the picker openable and navigable while preventing range changes. */
88
+ readOnly?: boolean;
89
+ /** Name used to submit the range start as a local `YYYY-MM-DD` hidden value. */
90
+ startName?: string;
91
+ /** Name used to submit the range end as a local `YYYY-MM-DD` hidden value. */
92
+ endName?: string;
93
+ /** ID of the form associated with the trigger and both hidden date inputs. */
94
+ form?: string;
95
+ /** Additional classes merged onto the trigger. */
96
+ className?: string;
97
+ }
98
+ /**
99
+ * A localized date-range trigger with an ArcFusion Calendar in a Base UI Popover.
100
+ *
101
+ * The visible trigger text is always its baseline accessible name. Add
102
+ * `aria-label`/`aria-labelledby` when surrounding context (for example,
103
+ * "Booking dates") must be part of the name.
104
+ */
105
+ declare const DateRangePicker: import("react").ForwardRefExoticComponent<DateRangePickerProps & import("react").RefAttributes<HTMLButtonElement>>;
106
+ //#endregion
107
+ export { DateRangePicker, DateRangePickerCalendarProps, DateRangePickerPopupProps, DateRangePickerProps, DateRangePickerSize, DateRangePickerVariant, DateRangePickerVariantsOptions, dateRangePickerVariants };