@webiny/admin-ui 6.4.12-beta.4 → 6.5.0-beta.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 (298) hide show
  1. package/Accordion/Accordion.d.ts +7 -6
  2. package/Accordion/components/AccordionContent.js +4 -1
  3. package/Accordion/components/AccordionContent.js.map +1 -1
  4. package/Accordion/components/AccordionItem.d.ts +8 -6
  5. package/Accordion/components/AccordionItem.js.map +1 -1
  6. package/Accordion/components/AccordionItemAction.d.ts +7 -6
  7. package/Accordion/components/AccordionItemDragHandle.d.ts +2 -1
  8. package/Accordion/components/AccordionItemDragHandle.js +2 -1
  9. package/Accordion/components/AccordionItemDragHandle.js.map +1 -1
  10. package/Accordion/components/AccordionItemIcon.d.ts +7 -6
  11. package/Accordion/components/AccordionItemSeparator.d.ts +7 -6
  12. package/Accordion/components/AccordionTrigger.js +4 -2
  13. package/Accordion/components/AccordionTrigger.js.map +1 -1
  14. package/Alert/Alert.d.ts +21 -19
  15. package/AutoComplete/AutoComplete.d.ts +7 -6
  16. package/AutoComplete/primitives/AutoCompletePrimitive.d.ts +7 -6
  17. package/Avatar/Avatar.d.ts +9 -8
  18. package/Avatar/components/AvatarFallback.d.ts +7 -6
  19. package/Avatar/components/AvatarImage.d.ts +7 -6
  20. package/BetaBadge/BetaBadge.d.ts +6 -0
  21. package/BetaBadge/BetaBadge.js +7 -0
  22. package/BetaBadge/BetaBadge.js.map +1 -0
  23. package/Button/Button.d.ts +10 -9
  24. package/Button/CopyButton.d.ts +7 -6
  25. package/Button/IconButton.d.ts +10 -9
  26. package/Calendar/Calendar.d.ts +7 -6
  27. package/Calendar/calendarClassNames.js +1 -1
  28. package/Calendar/calendarClassNames.js.map +1 -1
  29. package/Card/Card.d.ts +8 -22
  30. package/Card/components/CancelAction.d.ts +8 -6
  31. package/Card/components/CardContent.d.ts +6 -6
  32. package/Card/components/CardTitle.d.ts +2 -2
  33. package/Card/components/ConfirmAction.d.ts +8 -6
  34. package/Card/components/Icon.d.ts +7 -6
  35. package/Checkbox/Checkbox.d.ts +7 -6
  36. package/Checkbox/primitives/CheckboxPrimitive.d.ts +17 -12
  37. package/CheckboxGroup/CheckboxGroup.d.ts +7 -6
  38. package/CheckboxGroup/primitives/CheckboxGroupPrimitive.d.ts +20 -12
  39. package/CodeEditor/CodeEditor.d.ts +7 -6
  40. package/CodeEditor/CodeEditorPrimitive.d.ts +7 -6
  41. package/CodeEditor/CodeEditorPrimitive.js +3 -1
  42. package/CodeEditor/CodeEditorPrimitive.js.map +1 -1
  43. package/ColorPicker/ColorPicker.d.ts +7 -6
  44. package/ColorPicker/primitives/ColorPickerPrimitive.d.ts +7 -6
  45. package/Command/Command.d.ts +10 -8
  46. package/DataList/DataListModal.d.ts +6 -3
  47. package/DataTable/DataTable.d.ts +13 -22
  48. package/DataTable/DataTable.js +6 -14
  49. package/DataTable/DataTable.js.map +1 -1
  50. package/DataTable/components/ColumnsVisibility.d.ts +4 -5
  51. package/DataTable/components/ColumnsVisibility.js +3 -6
  52. package/DataTable/components/ColumnsVisibility.js.map +1 -1
  53. package/DatePicker/DatePicker.d.ts +11 -7
  54. package/DatePicker/DatePicker.js +10 -2
  55. package/DatePicker/DatePicker.js.map +1 -1
  56. package/DatePicker/primitives/DatePickerPrimitive.d.ts +7 -6
  57. package/DatePicker/primitives/DateTimePicker.d.ts +1 -1
  58. package/DatePicker/primitives/DateTimePicker.js +23 -16
  59. package/DatePicker/primitives/DateTimePicker.js.map +1 -1
  60. package/DatePicker/primitives/components/DatePickerTrigger.js +1 -1
  61. package/DatePicker/primitives/components/DatePickerTrigger.js.map +1 -1
  62. package/DatePicker/utils/dateHelpers.d.ts +1 -1
  63. package/DatePicker/utils/dateHelpers.js +2 -1
  64. package/DatePicker/utils/dateHelpers.js.map +1 -1
  65. package/DatePicker/utils/timezoneHelpers.d.ts +3 -0
  66. package/DatePicker/utils/timezoneHelpers.js +32 -0
  67. package/DatePicker/utils/timezoneHelpers.js.map +1 -0
  68. package/DatePicker/utils/types.d.ts +2 -0
  69. package/Dialog/Dialog.d.ts +8 -22
  70. package/Dialog/components/CancelAction.d.ts +8 -6
  71. package/Dialog/components/ConfirmAction.d.ts +8 -6
  72. package/Dialog/components/DialogContent.d.ts +1 -1
  73. package/Dialog/components/DialogFooter.d.ts +1 -1
  74. package/Dialog/components/DialogTitle.d.ts +1 -1
  75. package/Dialog/components/Icon.d.ts +7 -6
  76. package/Drawer/Drawer.d.ts +8 -22
  77. package/Drawer/Drawer.stories.js +1 -0
  78. package/Drawer/Drawer.stories.js.map +1 -1
  79. package/Drawer/components/CancelButton.d.ts +8 -6
  80. package/Drawer/components/ConfirmButton.d.ts +8 -6
  81. package/Drawer/components/DrawerContent.d.ts +1 -1
  82. package/Drawer/components/Icon.d.ts +7 -6
  83. package/DropdownMenu/components/DropdownMenuItem.d.ts +3 -2
  84. package/DropdownMenu/components/DropdownMenuItem.js +9 -2
  85. package/DropdownMenu/components/DropdownMenuItem.js.map +1 -1
  86. package/DropdownMenu/components/DropdownMenuLink.d.ts +9 -8
  87. package/DropdownMenu/components/DropdownMenuSeparator.d.ts +7 -6
  88. package/EditableTitle/EditableTitle.d.ts +7 -6
  89. package/EmptyState/EmptyState.d.ts +43 -0
  90. package/EmptyState/EmptyState.js +93 -0
  91. package/EmptyState/EmptyState.js.map +1 -0
  92. package/EmptyState/EmptyState.stories.d.ts +13 -0
  93. package/EmptyState/EmptyState.stories.js +136 -0
  94. package/EmptyState/EmptyState.stories.js.map +1 -0
  95. package/EmptyState/illustrations/ContentIllustration.d.ts +2 -0
  96. package/EmptyState/illustrations/ContentIllustration.js +100 -0
  97. package/EmptyState/illustrations/ContentIllustration.js.map +1 -0
  98. package/EmptyState/illustrations/LayoutIllustration.d.ts +2 -0
  99. package/EmptyState/illustrations/LayoutIllustration.js +93 -0
  100. package/EmptyState/illustrations/LayoutIllustration.js.map +1 -0
  101. package/EmptyState/illustrations/ListingIllustration.d.ts +2 -0
  102. package/EmptyState/illustrations/ListingIllustration.js +92 -0
  103. package/EmptyState/illustrations/ListingIllustration.js.map +1 -0
  104. package/EmptyState/illustrations/SelectIllustration.d.ts +2 -0
  105. package/EmptyState/illustrations/SelectIllustration.js +100 -0
  106. package/EmptyState/illustrations/SelectIllustration.js.map +1 -0
  107. package/EmptyState/illustrations/TableIllustration.d.ts +2 -0
  108. package/EmptyState/illustrations/TableIllustration.js +233 -0
  109. package/EmptyState/illustrations/TableIllustration.js.map +1 -0
  110. package/EmptyState/illustrations/UploadIllustration.d.ts +2 -0
  111. package/EmptyState/illustrations/UploadIllustration.js +77 -0
  112. package/EmptyState/illustrations/UploadIllustration.js.map +1 -0
  113. package/EmptyState/illustrations/index.d.ts +6 -0
  114. package/EmptyState/illustrations/index.js +6 -0
  115. package/EmptyState/index.d.ts +1 -0
  116. package/EmptyState/index.js +1 -0
  117. package/FilePicker/FilePicker.d.ts +19 -18
  118. package/FilePicker/FilePicker.stories.d.ts +0 -6
  119. package/FilePicker/FilePicker.stories.js +1 -24
  120. package/FilePicker/FilePicker.stories.js.map +1 -1
  121. package/FilePicker/primitives/FilePickerPrimitive.d.ts +20 -19
  122. package/FilePicker/primitives/components/Trigger.d.ts +1 -1
  123. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.d.ts +19 -7
  124. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.js +15 -6
  125. package/FilePicker/primitives/components/previews/ImagePreview/ImagePreview.js.map +1 -1
  126. package/FilePicker/primitives/components/previews/ItemActions.js.map +1 -1
  127. package/FilePicker/primitives/components/previews/ItemDescription.js +1 -1
  128. package/FilePicker/primitives/components/previews/ItemDescription.js.map +1 -1
  129. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.d.ts +0 -4
  130. package/FilePicker/primitives/components/previews/RichItemPreview/FileType.js.map +1 -1
  131. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.d.ts +0 -3
  132. package/FilePicker/primitives/components/previews/RichItemPreview/Placeholder.js.map +1 -1
  133. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.d.ts +12 -6
  134. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.js +6 -4
  135. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemPreview.js.map +1 -1
  136. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.d.ts +6 -1
  137. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.js +3 -2
  138. package/FilePicker/primitives/components/previews/RichItemPreview/RichItemThumbnail.js.map +1 -1
  139. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.d.ts +5 -5
  140. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.js +7 -3
  141. package/FilePicker/primitives/components/previews/RichItemPreview/Thumbnail.js.map +1 -1
  142. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.d.ts +0 -5
  143. package/FilePicker/primitives/components/previews/RichItemPreview/ThumbnailActions.js.map +1 -1
  144. package/FilePicker/primitives/components/previews/TextOnlyPreview/TextOnlyPreview.d.ts +7 -6
  145. package/FilePicker/primitives/components/previews/TruncatedFileName.d.ts +0 -4
  146. package/FilePicker/primitives/components/previews/TruncatedFileName.js.map +1 -1
  147. package/FilePicker/primitives/components/previews/fileName.d.ts +0 -8
  148. package/FilePicker/primitives/components/previews/fileName.js.map +1 -1
  149. package/FilePicker/primitives/components/previews/variants.d.ts +1 -1
  150. package/FillViewport/FillViewport.d.ts +21 -18
  151. package/FormComponent/Description.d.ts +7 -6
  152. package/FormComponent/ErrorMessage.d.ts +7 -6
  153. package/FormComponent/Label.d.ts +7 -6
  154. package/FormComponent/Note.d.ts +7 -6
  155. package/Grid/Grid.d.ts +24 -22
  156. package/HeaderBar/HeaderBar.d.ts +7 -6
  157. package/Heading/Heading.d.ts +8 -7
  158. package/Icon/Icon.d.ts +9 -8
  159. package/IconPicker/IconPicker.d.ts +7 -6
  160. package/IconPicker/domains/IconPickerIcon.js +1 -1
  161. package/IconPicker/domains/IconPickerIcon.js.map +1 -1
  162. package/IconPicker/primitives/IconPickerPrimitive.d.ts +1 -1
  163. package/IconPicker/primitives/components/IconPickerTrigger.d.ts +1 -1
  164. package/ImageEditor/AspectRatioPreview.d.ts +16 -0
  165. package/ImageEditor/AspectRatioPreview.js +26 -0
  166. package/ImageEditor/AspectRatioPreview.js.map +1 -0
  167. package/ImageEditor/CropHotspotEditor.d.ts +22 -0
  168. package/ImageEditor/CropHotspotEditor.js +402 -0
  169. package/ImageEditor/CropHotspotEditor.js.map +1 -0
  170. package/ImageEditor/ImageEditor.d.ts +18 -0
  171. package/ImageEditor/ImageEditor.js +151 -0
  172. package/ImageEditor/ImageEditor.js.map +1 -0
  173. package/ImageEditor/ImageEditor.stories.d.ts +6 -0
  174. package/ImageEditor/ImageEditor.stories.js +42 -0
  175. package/ImageEditor/ImageEditor.stories.js.map +1 -0
  176. package/ImageEditor/MetaFields.d.ts +12 -0
  177. package/ImageEditor/MetaFields.js +20 -0
  178. package/ImageEditor/MetaFields.js.map +1 -0
  179. package/ImageEditor/SectionLabel.d.ts +8 -0
  180. package/ImageEditor/SectionLabel.js +7 -0
  181. package/ImageEditor/SectionLabel.js.map +1 -0
  182. package/ImageEditor/geometry.d.ts +46 -0
  183. package/ImageEditor/geometry.js +126 -0
  184. package/ImageEditor/geometry.js.map +1 -0
  185. package/ImageEditor/index.d.ts +3 -0
  186. package/ImageEditor/index.js +3 -0
  187. package/ImageEditor/types.d.ts +52 -0
  188. package/ImageEditor/types.js +35 -0
  189. package/ImageEditor/types.js.map +1 -0
  190. package/Input/Input.d.ts +7 -6
  191. package/Input/InputPrimitive.d.ts +9 -8
  192. package/Label/Label.d.ts +8 -7
  193. package/Label/components/LabelValue.d.ts +1 -1
  194. package/Link/Link.d.ts +2 -2
  195. package/List/List.d.ts +8 -7
  196. package/List/components/ListItem.d.ts +7 -6
  197. package/List/components/ListItemAction.d.ts +7 -6
  198. package/List/components/ListItemHandle.d.ts +7 -6
  199. package/List/components/ListItemIcon.d.ts +7 -6
  200. package/List/components/ListItemSeparator.d.ts +7 -6
  201. package/Loader/Loader.d.ts +9 -8
  202. package/Loader/OverlayLoader.d.ts +7 -6
  203. package/MultiAutoComplete/MultiAutoComplete.d.ts +7 -6
  204. package/MultiAutoComplete/primitives/MultiAutoCompletePrimitive.d.ts +7 -6
  205. package/MultiAutoComplete/primitives/presenters/MultiAutoCompletePresenter.test.js +1 -1
  206. package/MultiAutoComplete/primitives/presenters/MultiAutoCompletePresenter.test.js.map +1 -1
  207. package/MultiAutoComplete/primitives/presenters/MultiAutoCompletePresenterWithFreeInput.d.ts +3 -3
  208. package/MultiAutoComplete/primitives/useMultiAutoComplete.d.ts +3 -3
  209. package/MultiAutoComplete/primitives/useMultiAutoComplete.js +2 -3
  210. package/MultiAutoComplete/primitives/useMultiAutoComplete.js.map +1 -1
  211. package/MultiFilePicker/MultiFilePicker.d.ts +19 -18
  212. package/MultiFilePicker/primitives/MultiFilePickerPrimitive.d.ts +19 -18
  213. package/MultiSelect/MultiSelect.d.ts +7 -6
  214. package/MultiSelect/primitives/MultiSelectPrimitive.d.ts +10 -6
  215. package/MultiSelect/primitives/MultiSelectPrimitive.js +1 -1
  216. package/MultiSelect/primitives/MultiSelectPrimitive.js.map +1 -1
  217. package/Popover/Popover.d.ts +7 -6
  218. package/Popover/primitives/PopoverPrimitive.d.ts +7 -7
  219. package/ProgressBar/ProgressBar.d.ts +7 -6
  220. package/RadioGroup/RadioGroup.d.ts +7 -6
  221. package/RadioGroup/primitives/Radio.d.ts +7 -6
  222. package/RadioGroup/primitives/RadioGroupPrimitive.d.ts +5 -1
  223. package/RangeSlider/RangeSlider.d.ts +7 -6
  224. package/SegmentedControl/SegmentedControl.d.ts +8 -7
  225. package/SegmentedControl/SegmentedControlTabs.d.ts +5 -2
  226. package/SegmentedControl/primitives/SegmentedControlPrimitive.d.ts +1 -1
  227. package/Select/Select.d.ts +7 -6
  228. package/Select/primitives/components/SelectContent.js +1 -1
  229. package/Select/primitives/components/SelectContent.js.map +1 -1
  230. package/Select/primitives/components/SelectTrigger.d.ts +2 -2
  231. package/Separator/Separator.d.ts +9 -8
  232. package/Sidebar/Sidebar.d.ts +7 -6
  233. package/Sidebar/components/SidebarIcon.d.ts +7 -6
  234. package/Sidebar/components/SidebarProvider.d.ts +4 -4
  235. package/Sidebar/components/items/SidebarMenuGroup.d.ts +9 -8
  236. package/Sidebar/components/items/SidebarMenuItem.d.ts +11 -10
  237. package/Sidebar/components/items/SidebarMenuItemIcon.d.ts +7 -6
  238. package/Sidebar/components/items/SidebarMenuLink.d.ts +11 -10
  239. package/Sidebar/components/items/SidebarMenuProvider.d.ts +4 -4
  240. package/Sidebar/components/items/SidebarMenuRootItem.d.ts +9 -7
  241. package/Skeleton/Skeleton.d.ts +9 -7
  242. package/Skeleton/Skeleton.js +10 -4
  243. package/Skeleton/Skeleton.js.map +1 -1
  244. package/Skeleton/Skeleton.stories.d.ts +2 -0
  245. package/Skeleton/Skeleton.stories.js +28 -2
  246. package/Skeleton/Skeleton.stories.js.map +1 -1
  247. package/Slider/Slider.d.ts +7 -6
  248. package/SteppedProgress/SteppedProgress.d.ts +7 -6
  249. package/SteppedProgress/SteppedProgressItem.d.ts +7 -6
  250. package/Switch/Switch.d.ts +7 -6
  251. package/Switch/primitives/SwitchPrimitive.d.ts +10 -6
  252. package/Table/Table.d.ts +12 -10
  253. package/Table/components/Direction.d.ts +1 -1
  254. package/Tabs/Tabs.d.ts +8 -6
  255. package/Tabs/Tabs.js +5 -2
  256. package/Tabs/Tabs.js.map +1 -1
  257. package/Tabs/components/Content.d.ts +1 -1
  258. package/Tabs/components/List.d.ts +2 -2
  259. package/Tabs/components/Tab.d.ts +7 -6
  260. package/Tabs/components/Trigger.d.ts +3 -2
  261. package/Tabs/components/Trigger.js +8 -3
  262. package/Tabs/components/Trigger.js.map +1 -1
  263. package/Tag/Tag.d.ts +8 -7
  264. package/Tags/Tags.d.ts +7 -6
  265. package/Tags/primitives/TagsPrimitive.d.ts +7 -6
  266. package/Text/Text.d.ts +8 -7
  267. package/Textarea/Textarea.d.ts +7 -6
  268. package/Textarea/TextareaPrimitive.d.ts +9 -8
  269. package/Toast/Toast.d.ts +7 -6
  270. package/Toast/components/ToastActions.d.ts +7 -6
  271. package/Toast/components/ToastDescription.d.ts +7 -6
  272. package/Toast/components/ToastTitle.d.ts +7 -6
  273. package/Toast/useToast.stories.js.map +1 -1
  274. package/Toggle/Toggle.d.ts +7 -6
  275. package/Toggle/primitives/TogglePrimitive.d.ts +13 -9
  276. package/ToggleGroup/ToggleGroup.d.ts +7 -6
  277. package/ToggleGroup/primitives/ToggleGroupPrimitive.d.ts +13 -9
  278. package/Tooltip/Tooltip.d.ts +7 -6
  279. package/Tree/Tree.d.ts +7 -6
  280. package/Tree/components/Item.d.ts +7 -6
  281. package/Tree/components/ItemCollapseTrigger.d.ts +7 -6
  282. package/Tree/components/ItemContent.d.ts +8 -6
  283. package/Tree/components/ItemDragHandle.d.ts +7 -6
  284. package/Tree/components/ItemIcon.d.ts +7 -6
  285. package/Tree/components/ItemPlaceholder.d.ts +7 -6
  286. package/Tree/components/ItemSubIndentation.d.ts +7 -6
  287. package/Widget/Widget.d.ts +8 -22
  288. package/Widget/components/Icon.d.ts +7 -6
  289. package/Widget/components/WidgetAction.d.ts +8 -6
  290. package/Widget/components/WidgetContent.d.ts +5 -5
  291. package/exports/admin/ui.d.ts +2 -0
  292. package/exports/admin/ui.js +2 -0
  293. package/index.d.ts +3 -0
  294. package/index.js +3 -0
  295. package/package.json +25 -25
  296. package/theme.css +13 -1
  297. package/utils.js +52 -34
  298. package/utils.js.map +1 -1
@@ -4,20 +4,15 @@ import { UTC_TIMEZONES } from "@webiny/utils";
4
4
  import { Calendar } from "../../Calendar/index.js";
5
5
  import { PopoverPrimitive } from "../../Popover/index.js";
6
6
  import { SelectPrimitive } from "../../Select/index.js";
7
- import { extractTimezone, formatDateForDisplay, formatTimeValue, getLocalTimezone, parseTimeValue, toIsoWithTz } from "../utils/dateHelpers.js";
7
+ import { extractTimezone, formatDateForDisplay, formatTimeValue, getLocalTimezone, parseTimeValue } from "../utils/dateHelpers.js";
8
+ import { naiveDateToUtcIso, parseToDate, utcToTimezoneDate } from "../utils/timezoneHelpers.js";
8
9
  import { DatePickerTrigger } from "./components/DatePickerTrigger.js";
9
10
  import { TimePicker } from "./components/TimePicker.js";
10
11
  const timezoneOptions = UTC_TIMEZONES.map((tz)=>({
11
12
  value: tz.value,
12
13
  label: tz.label
13
14
  }));
14
- function parseToDate(value) {
15
- if (!value) return;
16
- const d = new Date(value);
17
- if (Number.isNaN(d.getTime())) return;
18
- return d;
19
- }
20
- const DateTimePicker = ({ value, onChange, placeholder, disabled, size, variant, invalid, weekStartsOn, onOpenChange, className, withTimezone, displayFormat })=>{
15
+ const DateTimePicker = ({ value, onChange, placeholder, disabled, size, variant, invalid, weekStartsOn, onOpenChange, className, withTimezone, displayFormat, minDate, maxDate })=>{
21
16
  const [open, setOpen] = useState(false);
22
17
  const existingTz = withTimezone && value ? extractTimezone(value) : void 0;
23
18
  const [timezone, setTimezone] = useState(existingTz || getLocalTimezone());
@@ -26,28 +21,28 @@ const DateTimePicker = ({ value, onChange, placeholder, disabled, size, variant,
26
21
  if (onOpenChange) onOpenChange(isOpen);
27
22
  };
28
23
  const currentDate = parseToDate(value);
29
- const displayValue = withTimezone ? formatDateForDisplay(value, "dateTimeTz", displayFormat) : formatDateForDisplay(value, "dateTimeLocal", displayFormat);
30
- const timeValue = currentDate ? formatTimeValue(currentDate) : "";
24
+ const displayDate = withTimezone && currentDate ? utcToTimezoneDate(currentDate, timezone) : currentDate;
25
+ const displayValue = withTimezone ? displayDate ? formatDateForDisplay(format(displayDate, "yyyy-MM-dd'T'HH:mm:ss") + timezone, "dateTimeTz", displayFormat) : void 0 : formatDateForDisplay(value, "dateTimeLocal", displayFormat);
26
+ const timeValue = displayDate ? formatTimeValue(displayDate) : "";
31
27
  const emitChange = (date, tz)=>{
32
28
  if (!onChange) return;
33
- withTimezone ? onChange(toIsoWithTz(date, tz || timezone)) : onChange(format(date, "yyyy-MM-dd'T'HH:mm:ss"));
29
+ withTimezone ? onChange(naiveDateToUtcIso(date, tz || timezone)) : onChange(format(date, "yyyy-MM-dd'T'HH:mm:ss") + ".000Z");
34
30
  };
35
31
  const handleDateSelect = (date)=>{
36
32
  if (!date) return;
37
- if (currentDate) date.setHours(currentDate.getHours(), currentDate.getMinutes());
33
+ if (displayDate) date.setHours(displayDate.getHours(), displayDate.getMinutes());
38
34
  emitChange(date);
39
35
  };
40
36
  const handleTimeChange = (time)=>{
41
37
  if (!time) return;
42
38
  const parsed = parseTimeValue(time);
43
39
  if (!parsed) return;
44
- const base = currentDate ? new Date(currentDate) : new Date();
40
+ const base = displayDate ? new Date(displayDate) : new Date();
45
41
  base.setHours(parsed.hours, parsed.minutes, 0, 0);
46
42
  emitChange(base);
47
43
  };
48
44
  const handleTimezoneChange = (tz)=>{
49
45
  setTimezone(tz);
50
- if (currentDate) emitChange(currentDate, tz);
51
46
  };
52
47
  return /*#__PURE__*/ react.createElement("div", {
53
48
  className: className
@@ -67,9 +62,21 @@ const DateTimePicker = ({ value, onChange, placeholder, disabled, size, variant,
67
62
  className: "flex flex-col gap-sm"
68
63
  }, /*#__PURE__*/ react.createElement(Calendar, {
69
64
  mode: "single",
70
- selected: currentDate,
65
+ selected: displayDate,
71
66
  onSelect: handleDateSelect,
72
- weekStartsOn: weekStartsOn
67
+ weekStartsOn: weekStartsOn,
68
+ disabled: [
69
+ ...minDate ? [
70
+ {
71
+ before: minDate
72
+ }
73
+ ] : [],
74
+ ...maxDate ? [
75
+ {
76
+ after: maxDate
77
+ }
78
+ ] : []
79
+ ]
73
80
  }), /*#__PURE__*/ react.createElement("div", {
74
81
  className: "flex gap-sm px-md pb-md"
75
82
  }, /*#__PURE__*/ react.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker/primitives/DateTimePicker.js","sources":["../../../src/DatePicker/primitives/DateTimePicker.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { format } from \"date-fns\";\nimport { UTC_TIMEZONES } from \"@webiny/utils\";\nimport { Calendar } from \"~/Calendar/index.js\";\nimport { PopoverPrimitive } from \"~/Popover/index.js\";\nimport { SelectPrimitive } from \"~/Select/index.js\";\nimport type { DateTimeLocalPickerProps, DateTimeTzPickerProps } from \"../utils/types.js\";\nimport {\n extractTimezone,\n formatDateForDisplay,\n formatTimeValue,\n getLocalTimezone,\n parseTimeValue,\n toIsoWithTz\n} from \"../utils/dateHelpers.js\";\nimport { DatePickerTrigger } from \"./components/DatePickerTrigger.js\";\nimport { TimePicker } from \"./components/TimePicker.js\";\n\ntype DateTimePickerInternalProps = (DateTimeLocalPickerProps | DateTimeTzPickerProps) & {\n withTimezone: boolean;\n};\n\nconst timezoneOptions = UTC_TIMEZONES.map(tz => ({ value: tz.value, label: tz.label }));\n\nfunction parseToDate(value: string | undefined): Date | undefined {\n if (!value) {\n return undefined;\n }\n const d = new Date(value);\n if (Number.isNaN(d.getTime())) {\n return undefined;\n }\n return d;\n}\n\nconst DateTimePicker = ({\n value,\n onChange,\n placeholder,\n disabled,\n size,\n variant,\n invalid,\n weekStartsOn,\n onOpenChange,\n className,\n withTimezone,\n displayFormat\n}: DateTimePickerInternalProps) => {\n const [open, setOpen] = useState(false);\n\n const existingTz = withTimezone && value ? extractTimezone(value as string) : undefined;\n const [timezone, setTimezone] = useState(existingTz || getLocalTimezone());\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen);\n if (onOpenChange) {\n onOpenChange(isOpen);\n }\n };\n\n const currentDate = parseToDate(value);\n\n const displayValue = withTimezone\n ? formatDateForDisplay(value, \"dateTimeTz\", displayFormat)\n : formatDateForDisplay(value, \"dateTimeLocal\", displayFormat);\n\n const timeValue = currentDate ? formatTimeValue(currentDate) : \"\";\n\n const emitChange = (date: Date, tz?: string) => {\n if (!onChange) {\n return;\n }\n if (withTimezone) {\n onChange(toIsoWithTz(date, tz || timezone));\n } else {\n onChange(format(date, \"yyyy-MM-dd'T'HH:mm:ss\"));\n }\n };\n\n const handleDateSelect = (date: Date | undefined) => {\n if (!date) {\n return;\n }\n if (currentDate) {\n date.setHours(currentDate.getHours(), currentDate.getMinutes());\n }\n emitChange(date);\n };\n\n const handleTimeChange = (time: string | undefined) => {\n if (!time) {\n return;\n }\n const parsed = parseTimeValue(time);\n if (!parsed) {\n return;\n }\n const base = currentDate ? new Date(currentDate) : new Date();\n base.setHours(parsed.hours, parsed.minutes, 0, 0);\n emitChange(base);\n };\n\n const handleTimezoneChange = (tz: string) => {\n setTimezone(tz);\n if (currentDate) {\n emitChange(currentDate, tz);\n }\n };\n\n return (\n <div className={className}>\n <PopoverPrimitive open={open} onOpenChange={handleOpenChange}>\n <DatePickerTrigger\n displayValue={displayValue}\n placeholder={placeholder ?? \"Pick date & time\"}\n disabled={disabled}\n size={size}\n variant={variant}\n invalid={invalid}\n />\n <PopoverPrimitive.Content align=\"start\">\n <div className=\"flex flex-col gap-sm\">\n <Calendar\n mode=\"single\"\n selected={currentDate}\n onSelect={handleDateSelect}\n weekStartsOn={weekStartsOn}\n />\n <div className=\"flex gap-sm px-md pb-md\">\n <div className=\"flex-1\">\n <TimePicker\n value={timeValue}\n onChange={handleTimeChange}\n disabled={disabled}\n size=\"md\"\n />\n </div>\n {withTimezone && (\n <div className=\"flex-1\">\n <SelectPrimitive\n value={timezone}\n onChange={handleTimezoneChange}\n options={timezoneOptions}\n disabled={disabled}\n size=\"md\"\n />\n </div>\n )}\n </div>\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive>\n </div>\n );\n};\n\nexport { DateTimePicker };\n"],"names":["timezoneOptions","UTC_TIMEZONES","tz","parseToDate","value","d","Date","Number","DateTimePicker","onChange","placeholder","disabled","size","variant","invalid","weekStartsOn","onOpenChange","className","withTimezone","displayFormat","open","setOpen","useState","existingTz","extractTimezone","undefined","timezone","setTimezone","getLocalTimezone","handleOpenChange","isOpen","currentDate","displayValue","formatDateForDisplay","timeValue","formatTimeValue","emitChange","date","toIsoWithTz","format","handleDateSelect","handleTimeChange","time","parsed","parseTimeValue","base","handleTimezoneChange","PopoverPrimitive","DatePickerTrigger","Calendar","TimePicker","SelectPrimitive"],"mappings":";;;;;;;;;AAsBA,MAAMA,kBAAkBC,cAAc,GAAG,CAACC,CAAAA,KAAO;QAAE,OAAOA,GAAG,KAAK;QAAE,OAAOA,GAAG,KAAK;IAAC;AAEpF,SAASC,YAAYC,KAAyB;IAC1C,IAAI,CAACA,OACD;IAEJ,MAAMC,IAAI,IAAIC,KAAKF;IACnB,IAAIG,OAAO,KAAK,CAACF,EAAE,OAAO,KACtB;IAEJ,OAAOA;AACX;AAEA,MAAMG,iBAAiB,CAAC,EACpBJ,KAAK,EACLK,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,OAAO,EACPC,YAAY,EACZC,YAAY,EACZC,SAAS,EACTC,YAAY,EACZC,aAAa,EACa;IAC1B,MAAM,CAACC,MAAMC,QAAQ,GAAGC,SAAS;IAEjC,MAAMC,aAAaL,gBAAgBd,QAAQoB,gBAAgBpB,SAAmBqB;IAC9E,MAAM,CAACC,UAAUC,YAAY,GAAGL,SAASC,cAAcK;IAEvD,MAAMC,mBAAmB,CAACC;QACtBT,QAAQS;QACR,IAAId,cACAA,aAAac;IAErB;IAEA,MAAMC,cAAc5B,YAAYC;IAEhC,MAAM4B,eAAed,eACfe,qBAAqB7B,OAAO,cAAce,iBAC1Cc,qBAAqB7B,OAAO,iBAAiBe;IAEnD,MAAMe,YAAYH,cAAcI,gBAAgBJ,eAAe;IAE/D,MAAMK,aAAa,CAACC,MAAYnC;QAC5B,IAAI,CAACO,UACD;QAEAS,eACAT,SAAS6B,YAAYD,MAAMnC,MAAMwB,aAEjCjB,SAAS8B,OAAOF,MAAM;IAE9B;IAEA,MAAMG,mBAAmB,CAACH;QACtB,IAAI,CAACA,MACD;QAEJ,IAAIN,aACAM,KAAK,QAAQ,CAACN,YAAY,QAAQ,IAAIA,YAAY,UAAU;QAEhEK,WAAWC;IACf;IAEA,MAAMI,mBAAmB,CAACC;QACtB,IAAI,CAACA,MACD;QAEJ,MAAMC,SAASC,eAAeF;QAC9B,IAAI,CAACC,QACD;QAEJ,MAAME,OAAOd,cAAc,IAAIzB,KAAKyB,eAAe,IAAIzB;QACvDuC,KAAK,QAAQ,CAACF,OAAO,KAAK,EAAEA,OAAO,OAAO,EAAE,GAAG;QAC/CP,WAAWS;IACf;IAEA,MAAMC,uBAAuB,CAAC5C;QAC1ByB,YAAYzB;QACZ,IAAI6B,aACAK,WAAWL,aAAa7B;IAEhC;IAEA,OAAO,WAAP,GACI,oBAAC;QAAI,WAAWe;qBACZ,oBAAC8B,kBAAgBA;QAAC,MAAM3B;QAAM,cAAcS;qBACxC,oBAACmB,mBAAiBA;QACd,cAAchB;QACd,aAAatB,eAAe;QAC5B,UAAUC;QACV,MAAMC;QACN,SAASC;QACT,SAASC;sBAEb,oBAACiC,iBAAiB,OAAO;QAAC,OAAM;qBAC5B,oBAAC;QAAI,WAAU;qBACX,oBAACE,UAAQA;QACL,MAAK;QACL,UAAUlB;QACV,UAAUS;QACV,cAAczB;sBAElB,oBAAC;QAAI,WAAU;qBACX,oBAAC;QAAI,WAAU;qBACX,oBAACmC,YAAUA;QACP,OAAOhB;QACP,UAAUO;QACV,UAAU9B;QACV,MAAK;SAGZO,gBAAgB,WAAhBA,GACG,oBAAC;QAAI,WAAU;qBACX,oBAACiC,iBAAeA;QACZ,OAAOzB;QACP,UAAUoB;QACV,SAAS9C;QACT,UAAUW;QACV,MAAK;;AAU7C"}
1
+ {"version":3,"file":"DatePicker/primitives/DateTimePicker.js","sources":["../../../src/DatePicker/primitives/DateTimePicker.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { format } from \"date-fns\";\nimport { UTC_TIMEZONES } from \"@webiny/utils\";\nimport { Calendar } from \"~/Calendar/index.js\";\nimport { PopoverPrimitive } from \"~/Popover/index.js\";\nimport { SelectPrimitive } from \"~/Select/index.js\";\nimport type { DateTimeLocalPickerProps, DateTimeTzPickerProps } from \"../utils/types.js\";\nimport {\n extractTimezone,\n formatDateForDisplay,\n formatTimeValue,\n getLocalTimezone,\n parseTimeValue\n} from \"../utils/dateHelpers.js\";\nimport { naiveDateToUtcIso, parseToDate, utcToTimezoneDate } from \"../utils/timezoneHelpers.js\";\nimport { DatePickerTrigger } from \"./components/DatePickerTrigger.js\";\nimport { TimePicker } from \"./components/TimePicker.js\";\n\ntype DateTimePickerInternalProps = (DateTimeLocalPickerProps | DateTimeTzPickerProps) & {\n withTimezone: boolean;\n};\n\nconst timezoneOptions = UTC_TIMEZONES.map(tz => ({ value: tz.value, label: tz.label }));\n\nconst DateTimePicker = ({\n value,\n onChange,\n placeholder,\n disabled,\n size,\n variant,\n invalid,\n weekStartsOn,\n onOpenChange,\n className,\n withTimezone,\n displayFormat,\n minDate,\n maxDate\n}: DateTimePickerInternalProps) => {\n const [open, setOpen] = useState(false);\n\n const existingTz = withTimezone && value ? extractTimezone(value) : undefined;\n const [timezone, setTimezone] = useState(existingTz || getLocalTimezone());\n\n const handleOpenChange = (isOpen: boolean) => {\n setOpen(isOpen);\n if (onOpenChange) {\n onOpenChange(isOpen);\n }\n };\n\n const currentDate = parseToDate(value);\n\n const displayDate =\n withTimezone && currentDate ? utcToTimezoneDate(currentDate, timezone) : currentDate;\n\n const displayValue = withTimezone\n ? displayDate\n ? formatDateForDisplay(\n format(displayDate, \"yyyy-MM-dd'T'HH:mm:ss\") + timezone,\n \"dateTimeTz\",\n displayFormat\n )\n : undefined\n : formatDateForDisplay(value, \"dateTimeLocal\", displayFormat);\n\n const timeValue = displayDate ? formatTimeValue(displayDate) : \"\";\n\n const emitChange = (date: Date, tz?: string) => {\n if (!onChange) {\n return;\n }\n if (withTimezone) {\n onChange(naiveDateToUtcIso(date, tz || timezone));\n } else {\n onChange(format(date, \"yyyy-MM-dd'T'HH:mm:ss\") + \".000Z\");\n }\n };\n\n const handleDateSelect = (date: Date | undefined) => {\n if (!date) {\n return;\n }\n if (displayDate) {\n date.setHours(displayDate.getHours(), displayDate.getMinutes());\n }\n emitChange(date);\n };\n\n const handleTimeChange = (time: string | undefined) => {\n if (!time) {\n return;\n }\n const parsed = parseTimeValue(time);\n if (!parsed) {\n return;\n }\n const base = displayDate ? new Date(displayDate) : new Date();\n base.setHours(parsed.hours, parsed.minutes, 0, 0);\n emitChange(base);\n };\n\n const handleTimezoneChange = (tz: string) => {\n setTimezone(tz);\n };\n\n return (\n <div className={className}>\n <PopoverPrimitive open={open} onOpenChange={handleOpenChange}>\n <DatePickerTrigger\n displayValue={displayValue}\n placeholder={placeholder ?? \"Pick date & time\"}\n disabled={disabled}\n size={size}\n variant={variant}\n invalid={invalid}\n />\n <PopoverPrimitive.Content align=\"start\">\n <div className=\"flex flex-col gap-sm\">\n <Calendar\n mode=\"single\"\n selected={displayDate}\n onSelect={handleDateSelect}\n weekStartsOn={weekStartsOn}\n disabled={[\n ...(minDate ? [{ before: minDate }] : []),\n ...(maxDate ? [{ after: maxDate }] : [])\n ]}\n />\n <div className=\"flex gap-sm px-md pb-md\">\n <div className=\"flex-1\">\n <TimePicker\n value={timeValue}\n onChange={handleTimeChange}\n disabled={disabled}\n size=\"md\"\n />\n </div>\n {withTimezone && (\n <div className=\"flex-1\">\n <SelectPrimitive\n value={timezone}\n onChange={handleTimezoneChange}\n options={timezoneOptions}\n disabled={disabled}\n size=\"md\"\n />\n </div>\n )}\n </div>\n </div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive>\n </div>\n );\n};\n\nexport { DateTimePicker };\n"],"names":["timezoneOptions","UTC_TIMEZONES","tz","DateTimePicker","value","onChange","placeholder","disabled","size","variant","invalid","weekStartsOn","onOpenChange","className","withTimezone","displayFormat","minDate","maxDate","open","setOpen","useState","existingTz","extractTimezone","undefined","timezone","setTimezone","getLocalTimezone","handleOpenChange","isOpen","currentDate","parseToDate","displayDate","utcToTimezoneDate","displayValue","formatDateForDisplay","format","timeValue","formatTimeValue","emitChange","date","naiveDateToUtcIso","handleDateSelect","handleTimeChange","time","parsed","parseTimeValue","base","Date","handleTimezoneChange","PopoverPrimitive","DatePickerTrigger","Calendar","TimePicker","SelectPrimitive"],"mappings":";;;;;;;;;;AAsBA,MAAMA,kBAAkBC,cAAc,GAAG,CAACC,CAAAA,KAAO;QAAE,OAAOA,GAAG,KAAK;QAAE,OAAOA,GAAG,KAAK;IAAC;AAEpF,MAAMC,iBAAiB,CAAC,EACpBC,KAAK,EACLC,QAAQ,EACRC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,OAAO,EACPC,YAAY,EACZC,YAAY,EACZC,SAAS,EACTC,YAAY,EACZC,aAAa,EACbC,OAAO,EACPC,OAAO,EACmB;IAC1B,MAAM,CAACC,MAAMC,QAAQ,GAAGC,SAAS;IAEjC,MAAMC,aAAaP,gBAAgBV,QAAQkB,gBAAgBlB,SAASmB;IACpE,MAAM,CAACC,UAAUC,YAAY,GAAGL,SAASC,cAAcK;IAEvD,MAAMC,mBAAmB,CAACC;QACtBT,QAAQS;QACR,IAAIhB,cACAA,aAAagB;IAErB;IAEA,MAAMC,cAAcC,YAAY1B;IAEhC,MAAM2B,cACFjB,gBAAgBe,cAAcG,kBAAkBH,aAAaL,YAAYK;IAE7E,MAAMI,eAAenB,eACfiB,cACIG,qBACIC,OAAOJ,aAAa,2BAA2BP,UAC/C,cACAT,iBAEJQ,SACJW,qBAAqB9B,OAAO,iBAAiBW;IAEnD,MAAMqB,YAAYL,cAAcM,gBAAgBN,eAAe;IAE/D,MAAMO,aAAa,CAACC,MAAYrC;QAC5B,IAAI,CAACG,UACD;QAEAS,eACAT,SAASmC,kBAAkBD,MAAMrC,MAAMsB,aAEvCnB,SAAS8B,OAAOI,MAAM,2BAA2B;IAEzD;IAEA,MAAME,mBAAmB,CAACF;QACtB,IAAI,CAACA,MACD;QAEJ,IAAIR,aACAQ,KAAK,QAAQ,CAACR,YAAY,QAAQ,IAAIA,YAAY,UAAU;QAEhEO,WAAWC;IACf;IAEA,MAAMG,mBAAmB,CAACC;QACtB,IAAI,CAACA,MACD;QAEJ,MAAMC,SAASC,eAAeF;QAC9B,IAAI,CAACC,QACD;QAEJ,MAAME,OAAOf,cAAc,IAAIgB,KAAKhB,eAAe,IAAIgB;QACvDD,KAAK,QAAQ,CAACF,OAAO,KAAK,EAAEA,OAAO,OAAO,EAAE,GAAG;QAC/CN,WAAWQ;IACf;IAEA,MAAME,uBAAuB,CAAC9C;QAC1BuB,YAAYvB;IAChB;IAEA,OAAO,WAAP,GACI,oBAAC;QAAI,WAAWW;qBACZ,oBAACoC,kBAAgBA;QAAC,MAAM/B;QAAM,cAAcS;qBACxC,oBAACuB,mBAAiBA;QACd,cAAcjB;QACd,aAAa3B,eAAe;QAC5B,UAAUC;QACV,MAAMC;QACN,SAASC;QACT,SAASC;sBAEb,oBAACuC,iBAAiB,OAAO;QAAC,OAAM;qBAC5B,oBAAC;QAAI,WAAU;qBACX,oBAACE,UAAQA;QACL,MAAK;QACL,UAAUpB;QACV,UAAUU;QACV,cAAc9B;QACd,UAAU;eACFK,UAAU;gBAAC;oBAAE,QAAQA;gBAAQ;aAAE,GAAG,EAAE;eACpCC,UAAU;gBAAC;oBAAE,OAAOA;gBAAQ;aAAE,GAAG,EAAE;SAC1C;sBAEL,oBAAC;QAAI,WAAU;qBACX,oBAAC;QAAI,WAAU;qBACX,oBAACmC,YAAUA;QACP,OAAOhB;QACP,UAAUM;QACV,UAAUnC;QACV,MAAK;SAGZO,gBAAgB,WAAhBA,GACG,oBAAC;QAAI,WAAU;qBACX,oBAACuC,iBAAeA;QACZ,OAAO7B;QACP,UAAUwB;QACV,SAAShD;QACT,UAAUO;QACV,MAAK;;AAU7C"}
@@ -19,7 +19,7 @@ const DatePickerTriggerInner = /*#__PURE__*/ forwardRef(({ displayValue, placeho
19
19
  size,
20
20
  variant,
21
21
  invalid
22
- }), "cursor-pointer justify-between select-none", disabled && "pointer-events-none opacity-50", className),
22
+ }), "cursor-pointer justify-between select-none min-w-0 overflow-hidden", disabled && "pointer-events-none opacity-50", className),
23
23
  ...props
24
24
  }, /*#__PURE__*/ react.createElement("span", {
25
25
  className: cn("truncate", !displayValue && "text-neutral-dimmed")
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker/primitives/components/DatePickerTrigger.js","sources":["../../../../src/DatePicker/primitives/components/DatePickerTrigger.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { ReactComponent as CalendarMonthIcon } from \"@webiny/icons/calendar_month.svg\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/schedule.svg\";\nimport { Icon } from \"~/Icon/index.js\";\nimport { inputVariants, type InputPrimitiveProps } from \"~/Input/index.js\";\nimport { PopoverPrimitive } from \"~/Popover/index.js\";\nimport { cn } from \"~/utils.js\";\n\ninterface DatePickerTriggerProps {\n displayValue?: string;\n placeholder?: string;\n disabled?: boolean;\n size?: InputPrimitiveProps[\"size\"];\n variant?: InputPrimitiveProps[\"variant\"];\n invalid?: InputPrimitiveProps[\"invalid\"];\n iconType?: \"calendar\" | \"time\";\n}\n\nconst DatePickerTriggerInner = forwardRef<\n HTMLDivElement,\n DatePickerTriggerProps & React.HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n displayValue,\n placeholder,\n disabled,\n size,\n variant,\n invalid,\n iconType = \"calendar\",\n className,\n ...props\n },\n ref\n ) => {\n const IconComponent = iconType === \"time\" ? ScheduleIcon : CalendarMonthIcon;\n const iconLabel = iconType === \"time\" ? \"Time\" : \"Calendar\";\n\n return (\n <PopoverPrimitive.Trigger asChild>\n <div\n ref={ref}\n role=\"button\"\n tabIndex={0}\n data-disabled={disabled}\n className={cn(\n inputVariants({ size, variant, invalid }),\n \"cursor-pointer justify-between select-none\",\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n {...props}\n >\n <span className={cn(\"truncate\", !displayValue && \"text-neutral-dimmed\")}>\n {displayValue || placeholder || \"Select...\"}\n </span>\n <Icon icon={<IconComponent />} label={iconLabel} size=\"sm\" color=\"inherit\" />\n </div>\n </PopoverPrimitive.Trigger>\n );\n }\n);\n\nDatePickerTriggerInner.displayName = \"DatePickerTrigger\";\n\nexport { DatePickerTriggerInner as DatePickerTrigger, type DatePickerTriggerProps };\n"],"names":["DatePickerTriggerInner","forwardRef","displayValue","placeholder","disabled","size","variant","invalid","iconType","className","props","ref","IconComponent","ScheduleIcon","CalendarMonthIcon","iconLabel","PopoverPrimitive","cn","inputVariants","Icon"],"mappings":";;;;;;;AAkBA,MAAMA,yBAAyB,WAAHA,GAAGC,WAI3B,CACI,EACIC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,OAAO,EACPC,WAAW,UAAU,EACrBC,SAAS,EACT,GAAGC,OACN,EACDC;IAEA,MAAMC,gBAAgBJ,AAAa,WAAbA,WAAsBK,8BAAeC;IAC3D,MAAMC,YAAYP,AAAa,WAAbA,WAAsB,SAAS;IAEjD,OAAO,WAAP,GACI,oBAACQ,iBAAiB,OAAO;QAAC;qBACtB,oBAAC;QACG,KAAKL;QACL,MAAK;QACL,UAAU;QACV,iBAAeP;QACf,WAAWa,GACPC,cAAc;YAAEb;YAAMC;YAASC;QAAQ,IACvC,8CACAH,YAAY,kCACZK;QAEH,GAAGC,KAAK;qBAET,oBAAC;QAAK,WAAWO,GAAG,YAAY,CAACf,gBAAgB;OAC5CA,gBAAgBC,eAAe,4BAEpC,oBAACgB,MAAIA;QAAC,oBAAM,oBAACP,eAAAA;QAAkB,OAAOG;QAAW,MAAK;QAAK,OAAM;;AAIjF;AAGJf,uBAAuB,WAAW,GAAG"}
1
+ {"version":3,"file":"DatePicker/primitives/components/DatePickerTrigger.js","sources":["../../../../src/DatePicker/primitives/components/DatePickerTrigger.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { ReactComponent as CalendarMonthIcon } from \"@webiny/icons/calendar_month.svg\";\nimport { ReactComponent as ScheduleIcon } from \"@webiny/icons/schedule.svg\";\nimport { Icon } from \"~/Icon/index.js\";\nimport { inputVariants, type InputPrimitiveProps } from \"~/Input/index.js\";\nimport { PopoverPrimitive } from \"~/Popover/index.js\";\nimport { cn } from \"~/utils.js\";\n\ninterface DatePickerTriggerProps {\n displayValue?: string;\n placeholder?: string;\n disabled?: boolean;\n size?: InputPrimitiveProps[\"size\"];\n variant?: InputPrimitiveProps[\"variant\"];\n invalid?: InputPrimitiveProps[\"invalid\"];\n iconType?: \"calendar\" | \"time\";\n}\n\nconst DatePickerTriggerInner = forwardRef<\n HTMLDivElement,\n DatePickerTriggerProps & React.HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n displayValue,\n placeholder,\n disabled,\n size,\n variant,\n invalid,\n iconType = \"calendar\",\n className,\n ...props\n },\n ref\n ) => {\n const IconComponent = iconType === \"time\" ? ScheduleIcon : CalendarMonthIcon;\n const iconLabel = iconType === \"time\" ? \"Time\" : \"Calendar\";\n\n return (\n <PopoverPrimitive.Trigger asChild>\n <div\n ref={ref}\n role=\"button\"\n tabIndex={0}\n data-disabled={disabled}\n className={cn(\n inputVariants({ size, variant, invalid }),\n \"cursor-pointer justify-between select-none min-w-0 overflow-hidden\",\n disabled && \"pointer-events-none opacity-50\",\n className\n )}\n {...props}\n >\n <span className={cn(\"truncate\", !displayValue && \"text-neutral-dimmed\")}>\n {displayValue || placeholder || \"Select...\"}\n </span>\n <Icon icon={<IconComponent />} label={iconLabel} size=\"sm\" color=\"inherit\" />\n </div>\n </PopoverPrimitive.Trigger>\n );\n }\n);\n\nDatePickerTriggerInner.displayName = \"DatePickerTrigger\";\n\nexport { DatePickerTriggerInner as DatePickerTrigger, type DatePickerTriggerProps };\n"],"names":["DatePickerTriggerInner","forwardRef","displayValue","placeholder","disabled","size","variant","invalid","iconType","className","props","ref","IconComponent","ScheduleIcon","CalendarMonthIcon","iconLabel","PopoverPrimitive","cn","inputVariants","Icon"],"mappings":";;;;;;;AAkBA,MAAMA,yBAAyB,WAAHA,GAAGC,WAI3B,CACI,EACIC,YAAY,EACZC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,OAAO,EACPC,WAAW,UAAU,EACrBC,SAAS,EACT,GAAGC,OACN,EACDC;IAEA,MAAMC,gBAAgBJ,AAAa,WAAbA,WAAsBK,8BAAeC;IAC3D,MAAMC,YAAYP,AAAa,WAAbA,WAAsB,SAAS;IAEjD,OAAO,WAAP,GACI,oBAACQ,iBAAiB,OAAO;QAAC;qBACtB,oBAAC;QACG,KAAKL;QACL,MAAK;QACL,UAAU;QACV,iBAAeP;QACf,WAAWa,GACPC,cAAc;YAAEb;YAAMC;YAASC;QAAQ,IACvC,sEACAH,YAAY,kCACZK;QAEH,GAAGC,KAAK;qBAET,oBAAC;QAAK,WAAWO,GAAG,YAAY,CAACf,gBAAgB;OAC5CA,gBAAgBC,eAAe,4BAEpC,oBAACgB,MAAIA;QAAC,oBAAM,oBAACP,eAAAA;QAAkB,OAAOG;QAAW,MAAK;QAAK,OAAM;;AAIjF;AAGJf,uBAAuB,WAAW,GAAG"}
@@ -15,7 +15,7 @@ export declare function parseTimeValue(time: string): {
15
15
  } | undefined;
16
16
  export declare function toIsoWithTz(date: Date, timezone?: string): string;
17
17
  export declare function getLocalTimezone(): string;
18
- export declare function extractTimezone(isoString: string): string | undefined;
18
+ export declare function extractTimezone(isoString: string | Date | unknown): string | undefined;
19
19
  export declare function toLocalNaive(isoString: string): Date;
20
20
  export declare function formatWeekValue(date: Date): string;
21
21
  export declare function parseWeekValue(value: string): {
@@ -12,7 +12,7 @@ function formatDateForDisplay(value, type, displayFormat) {
12
12
  case "dateTimeTz":
13
13
  {
14
14
  if (!value) return;
15
- const isoStr = value;
15
+ const isoStr = value instanceof Date ? value.toISOString() : value;
16
16
  const tzMatch = isoStr.match(/([+-]\d{2}:\d{2})$/);
17
17
  const tz = tzMatch ? `UTC${tzMatch[1]}` : "";
18
18
  const dateWithoutTz = isoStr.replace(/[+-]\d{2}:\d{2}$/, "");
@@ -127,6 +127,7 @@ function getLocalTimezone() {
127
127
  return `${sign}${hours}:${minutes}`;
128
128
  }
129
129
  function extractTimezone(isoString) {
130
+ if ("string" != typeof isoString) return;
130
131
  const match = isoString.match(/([+-]\d{2}:\d{2})$/);
131
132
  if (match) return match[1];
132
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker/utils/dateHelpers.js","sources":["../../../src/DatePicker/utils/dateHelpers.ts"],"sourcesContent":["import { format, getISOWeek, getISOWeekYear, startOfISOWeek, endOfISOWeek } from \"date-fns\";\nimport { DEFAULT_YEAR_RANGE_SIZE, MONTH_NAMES_SHORT } from \"./constants.js\";\n\nexport function formatDateForDisplay(\n value:\n | Date\n | string\n | number\n | { from?: string; to?: string }\n | Date[]\n | string[]\n | number[]\n | undefined,\n type: string,\n displayFormat?: string\n): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n switch (type) {\n case \"date\":\n return format(new Date(value as string), displayFormat ?? \"PPP\");\n case \"time\":\n return value as string;\n case \"dateTimeLocal\":\n return format(new Date(value as string), displayFormat ?? \"PPP p\");\n case \"dateTimeTz\": {\n if (!value) {\n return undefined;\n }\n const isoStr = value as string;\n const tzMatch = isoStr.match(/([+-]\\d{2}:\\d{2})$/);\n const tz = tzMatch ? `UTC${tzMatch[1]}` : \"\";\n const dateWithoutTz = isoStr.replace(/[+-]\\d{2}:\\d{2}$/, \"\");\n const parts = dateWithoutTz.split(\"T\");\n if (parts.length < 2) {\n return isoStr;\n }\n const datePart = new Date(parts[0] + \"T00:00:00\");\n const timeParts = parts[1].split(\":\");\n const hours = Number(timeParts[0]);\n const minutes = timeParts[1] ?? \"00\";\n const ampm = hours >= 12 ? \"PM\" : \"AM\";\n const h12 = hours % 12 || 12;\n if (displayFormat) {\n return `${format(datePart, displayFormat)} ${h12}:${minutes} ${ampm} (${tz})`;\n }\n return `${format(datePart, \"PPP\")} ${h12}:${minutes} ${ampm} (${tz})`;\n }\n case \"month\": {\n if (displayFormat) {\n const parsed = parseMonthValue(value as string);\n if (!parsed) {\n return undefined;\n }\n return format(new Date(parsed.year, parsed.month), displayFormat);\n }\n const parsed = parseMonthValue(value as string);\n if (!parsed) {\n return undefined;\n }\n return `${MONTH_NAMES_SHORT[parsed.month]} ${parsed.year}`;\n }\n case \"week\": {\n const parsed = parseWeekValue(value as string);\n if (!parsed) {\n return undefined;\n }\n const weekStart = startOfISOWeek(new Date(parsed.year, 0, 4 + (parsed.week - 1) * 7));\n const weekEnd = endOfISOWeek(weekStart);\n if (displayFormat) {\n return `${format(weekStart, displayFormat)} – ${format(weekEnd, displayFormat)}`;\n }\n return `Week ${parsed.week}, ${format(weekStart, \"MMM d\")} – ${format(weekEnd, \"MMM d, yyyy\")}`;\n }\n case \"year\":\n return String(value);\n case \"dateRange\": {\n const range = value as { from?: string; to?: string };\n const fmt = displayFormat ?? \"PPP\";\n if (!range.from) {\n return undefined;\n }\n if (!range.to) {\n return format(new Date(range.from), fmt);\n }\n return `${format(new Date(range.from), fmt)} – ${format(new Date(range.to), fmt)}`;\n }\n case \"multipleDates\": {\n const dates = value as string[];\n if (dates.length === 0) {\n return undefined;\n }\n return `${dates.length} date${dates.length > 1 ? \"s\" : \"\"} selected`;\n }\n case \"multipleMonths\": {\n const months = value as string[];\n if (months.length === 0) {\n return undefined;\n }\n return `${months.length} month${months.length > 1 ? \"s\" : \"\"} selected`;\n }\n case \"multipleYears\": {\n const years = value as number[];\n if (years.length === 0) {\n return undefined;\n }\n return `${years.length} year${years.length > 1 ? \"s\" : \"\"} selected`;\n }\n default:\n return undefined;\n }\n}\n\nexport function defaultYearRange(centerYear?: number): [number, number] {\n const center = centerYear ?? new Date().getFullYear();\n const half = Math.floor(DEFAULT_YEAR_RANGE_SIZE / 2);\n return [center - half, center + half - 1];\n}\n\nexport function formatMonthValue(year: number, month: number): string {\n return `${year}-${String(month + 1).padStart(2, \"0\")}`;\n}\n\nexport function parseMonthValue(value: string): { year: number; month: number } | undefined {\n const match = value.match(/^(\\d{4})-(\\d{2})$/);\n if (!match) {\n return undefined;\n }\n return { year: Number(match[1]), month: Number(match[2]) - 1 };\n}\n\nexport function formatTimeValue(date: Date): string {\n return format(date, \"HH:mm\");\n}\n\nexport function parseTimeValue(time: string): { hours: number; minutes: number } | undefined {\n const match = time.match(/^(\\d{2}):(\\d{2})$/);\n if (!match) {\n return undefined;\n }\n return { hours: Number(match[1]), minutes: Number(match[2]) };\n}\n\nexport function toIsoWithTz(date: Date, timezone?: string): string {\n if (timezone) {\n return format(date, \"yyyy-MM-dd'T'HH:mm:ss\") + timezone;\n }\n const offset = -date.getTimezoneOffset();\n const sign = offset >= 0 ? \"+\" : \"-\";\n const absOffset = Math.abs(offset);\n const hours = String(Math.floor(absOffset / 60)).padStart(2, \"0\");\n const minutes = String(absOffset % 60).padStart(2, \"0\");\n return format(date, \"yyyy-MM-dd'T'HH:mm:ss\") + `${sign}${hours}:${minutes}`;\n}\n\nexport function getLocalTimezone(): string {\n const offset = -new Date().getTimezoneOffset();\n const sign = offset >= 0 ? \"+\" : \"-\";\n const absOffset = Math.abs(offset);\n const hours = String(Math.floor(absOffset / 60)).padStart(2, \"0\");\n const minutes = String(absOffset % 60).padStart(2, \"0\");\n return `${sign}${hours}:${minutes}`;\n}\n\nexport function extractTimezone(isoString: string): string | undefined {\n const match = isoString.match(/([+-]\\d{2}:\\d{2})$/);\n if (match) {\n return match[1];\n }\n return undefined;\n}\n\nexport function toLocalNaive(isoString: string): Date {\n return new Date(isoString);\n}\n\nexport function formatWeekValue(date: Date): string {\n const week = getISOWeek(date);\n const year = getISOWeekYear(date);\n return `${year}-W${String(week).padStart(2, \"0\")}`;\n}\n\nexport function parseWeekValue(value: string): { year: number; week: number } | undefined {\n const match = value.match(/^(\\d{4})-W(\\d{2})$/);\n if (!match) {\n return undefined;\n }\n return { year: Number(match[1]), week: Number(match[2]) };\n}\n"],"names":["formatDateForDisplay","value","type","displayFormat","format","Date","isoStr","tzMatch","tz","dateWithoutTz","parts","datePart","timeParts","hours","Number","minutes","ampm","h12","parsed","parseMonthValue","MONTH_NAMES_SHORT","parseWeekValue","weekStart","startOfISOWeek","weekEnd","endOfISOWeek","String","range","fmt","dates","months","years","defaultYearRange","centerYear","center","half","Math","DEFAULT_YEAR_RANGE_SIZE","formatMonthValue","year","month","match","formatTimeValue","date","parseTimeValue","time","toIsoWithTz","timezone","offset","sign","absOffset","getLocalTimezone","extractTimezone","isoString","toLocalNaive","formatWeekValue","week","getISOWeek","getISOWeekYear"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker/utils/dateHelpers.js","sources":["../../../src/DatePicker/utils/dateHelpers.ts"],"sourcesContent":["import { format, getISOWeek, getISOWeekYear, startOfISOWeek, endOfISOWeek } from \"date-fns\";\nimport { DEFAULT_YEAR_RANGE_SIZE, MONTH_NAMES_SHORT } from \"./constants.js\";\n\nexport function formatDateForDisplay(\n value:\n | Date\n | string\n | number\n | { from?: string; to?: string }\n | Date[]\n | string[]\n | number[]\n | undefined,\n type: string,\n displayFormat?: string\n): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n switch (type) {\n case \"date\":\n return format(new Date(value as string), displayFormat ?? \"PPP\");\n case \"time\":\n return value as string;\n case \"dateTimeLocal\":\n return format(new Date(value as string), displayFormat ?? \"PPP p\");\n case \"dateTimeTz\": {\n if (!value) {\n return undefined;\n }\n const isoStr = value instanceof Date ? value.toISOString() : (value as string);\n const tzMatch = isoStr.match(/([+-]\\d{2}:\\d{2})$/);\n const tz = tzMatch ? `UTC${tzMatch[1]}` : \"\";\n const dateWithoutTz = isoStr.replace(/[+-]\\d{2}:\\d{2}$/, \"\");\n const parts = dateWithoutTz.split(\"T\");\n if (parts.length < 2) {\n return isoStr;\n }\n const datePart = new Date(parts[0] + \"T00:00:00\");\n const timeParts = parts[1].split(\":\");\n const hours = Number(timeParts[0]);\n const minutes = timeParts[1] ?? \"00\";\n const ampm = hours >= 12 ? \"PM\" : \"AM\";\n const h12 = hours % 12 || 12;\n if (displayFormat) {\n return `${format(datePart, displayFormat)} ${h12}:${minutes} ${ampm} (${tz})`;\n }\n return `${format(datePart, \"PPP\")} ${h12}:${minutes} ${ampm} (${tz})`;\n }\n case \"month\": {\n if (displayFormat) {\n const parsed = parseMonthValue(value as string);\n if (!parsed) {\n return undefined;\n }\n return format(new Date(parsed.year, parsed.month), displayFormat);\n }\n const parsed = parseMonthValue(value as string);\n if (!parsed) {\n return undefined;\n }\n return `${MONTH_NAMES_SHORT[parsed.month]} ${parsed.year}`;\n }\n case \"week\": {\n const parsed = parseWeekValue(value as string);\n if (!parsed) {\n return undefined;\n }\n const weekStart = startOfISOWeek(new Date(parsed.year, 0, 4 + (parsed.week - 1) * 7));\n const weekEnd = endOfISOWeek(weekStart);\n if (displayFormat) {\n return `${format(weekStart, displayFormat)} – ${format(weekEnd, displayFormat)}`;\n }\n return `Week ${parsed.week}, ${format(weekStart, \"MMM d\")} – ${format(weekEnd, \"MMM d, yyyy\")}`;\n }\n case \"year\":\n return String(value);\n case \"dateRange\": {\n const range = value as { from?: string; to?: string };\n const fmt = displayFormat ?? \"PPP\";\n if (!range.from) {\n return undefined;\n }\n if (!range.to) {\n return format(new Date(range.from), fmt);\n }\n return `${format(new Date(range.from), fmt)} – ${format(new Date(range.to), fmt)}`;\n }\n case \"multipleDates\": {\n const dates = value as string[];\n if (dates.length === 0) {\n return undefined;\n }\n return `${dates.length} date${dates.length > 1 ? \"s\" : \"\"} selected`;\n }\n case \"multipleMonths\": {\n const months = value as string[];\n if (months.length === 0) {\n return undefined;\n }\n return `${months.length} month${months.length > 1 ? \"s\" : \"\"} selected`;\n }\n case \"multipleYears\": {\n const years = value as number[];\n if (years.length === 0) {\n return undefined;\n }\n return `${years.length} year${years.length > 1 ? \"s\" : \"\"} selected`;\n }\n default:\n return undefined;\n }\n}\n\nexport function defaultYearRange(centerYear?: number): [number, number] {\n const center = centerYear ?? new Date().getFullYear();\n const half = Math.floor(DEFAULT_YEAR_RANGE_SIZE / 2);\n return [center - half, center + half - 1];\n}\n\nexport function formatMonthValue(year: number, month: number): string {\n return `${year}-${String(month + 1).padStart(2, \"0\")}`;\n}\n\nexport function parseMonthValue(value: string): { year: number; month: number } | undefined {\n const match = value.match(/^(\\d{4})-(\\d{2})$/);\n if (!match) {\n return undefined;\n }\n return { year: Number(match[1]), month: Number(match[2]) - 1 };\n}\n\nexport function formatTimeValue(date: Date): string {\n return format(date, \"HH:mm\");\n}\n\nexport function parseTimeValue(time: string): { hours: number; minutes: number } | undefined {\n const match = time.match(/^(\\d{2}):(\\d{2})$/);\n if (!match) {\n return undefined;\n }\n return { hours: Number(match[1]), minutes: Number(match[2]) };\n}\n\nexport function toIsoWithTz(date: Date, timezone?: string): string {\n if (timezone) {\n return format(date, \"yyyy-MM-dd'T'HH:mm:ss\") + timezone;\n }\n const offset = -date.getTimezoneOffset();\n const sign = offset >= 0 ? \"+\" : \"-\";\n const absOffset = Math.abs(offset);\n const hours = String(Math.floor(absOffset / 60)).padStart(2, \"0\");\n const minutes = String(absOffset % 60).padStart(2, \"0\");\n return format(date, \"yyyy-MM-dd'T'HH:mm:ss\") + `${sign}${hours}:${minutes}`;\n}\n\nexport function getLocalTimezone(): string {\n const offset = -new Date().getTimezoneOffset();\n const sign = offset >= 0 ? \"+\" : \"-\";\n const absOffset = Math.abs(offset);\n const hours = String(Math.floor(absOffset / 60)).padStart(2, \"0\");\n const minutes = String(absOffset % 60).padStart(2, \"0\");\n return `${sign}${hours}:${minutes}`;\n}\n\nexport function extractTimezone(isoString: string | Date | unknown): string | undefined {\n if (typeof isoString !== \"string\") {\n return undefined;\n }\n const match = isoString.match(/([+-]\\d{2}:\\d{2})$/);\n if (match) {\n return match[1];\n }\n return undefined;\n}\n\nexport function toLocalNaive(isoString: string): Date {\n return new Date(isoString);\n}\n\nexport function formatWeekValue(date: Date): string {\n const week = getISOWeek(date);\n const year = getISOWeekYear(date);\n return `${year}-W${String(week).padStart(2, \"0\")}`;\n}\n\nexport function parseWeekValue(value: string): { year: number; week: number } | undefined {\n const match = value.match(/^(\\d{4})-W(\\d{2})$/);\n if (!match) {\n return undefined;\n }\n return { year: Number(match[1]), week: Number(match[2]) };\n}\n"],"names":["formatDateForDisplay","value","type","displayFormat","format","Date","isoStr","tzMatch","tz","dateWithoutTz","parts","datePart","timeParts","hours","Number","minutes","ampm","h12","parsed","parseMonthValue","MONTH_NAMES_SHORT","parseWeekValue","weekStart","startOfISOWeek","weekEnd","endOfISOWeek","String","range","fmt","dates","months","years","defaultYearRange","centerYear","center","half","Math","DEFAULT_YEAR_RANGE_SIZE","formatMonthValue","year","month","match","formatTimeValue","date","parseTimeValue","time","toIsoWithTz","timezone","offset","sign","absOffset","getLocalTimezone","extractTimezone","isoString","toLocalNaive","formatWeekValue","week","getISOWeek","getISOWeekYear"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function utcToTimezoneDate(utcDate: Date, timezone: string): Date;
2
+ export declare function naiveDateToUtcIso(date: Date, timezone: string): string;
3
+ export declare function parseToDate(value: string | Date | undefined): Date | undefined;
@@ -0,0 +1,32 @@
1
+ import { format } from "date-fns";
2
+ function parseOffset(tz) {
3
+ const match = tz.match(/^([+-])(\d{2}):(\d{2})$/);
4
+ if (!match) return null;
5
+ const sign = "+" === match[1] ? 1 : -1;
6
+ return {
7
+ sign,
8
+ minutes: sign * (60 * Number(match[2]) + Number(match[3]))
9
+ };
10
+ }
11
+ function utcToTimezoneDate(utcDate, timezone) {
12
+ const parsed = parseOffset(timezone);
13
+ if (!parsed) return utcDate;
14
+ const localOffsetMinutes = -utcDate.getTimezoneOffset();
15
+ const shiftMs = (parsed.minutes - localOffsetMinutes) * 60000;
16
+ return new Date(utcDate.getTime() + shiftMs);
17
+ }
18
+ function naiveDateToUtcIso(date, timezone) {
19
+ const naive = format(date, "yyyy-MM-dd'T'HH:mm:ss");
20
+ const parsed = parseOffset(timezone);
21
+ if (parsed) return new Date(`${naive}${timezone}`).toISOString();
22
+ return date.toISOString();
23
+ }
24
+ function parseToDate(value) {
25
+ if (!value) return;
26
+ const d = new Date(value);
27
+ if (Number.isNaN(d.getTime())) return;
28
+ return d;
29
+ }
30
+ export { naiveDateToUtcIso, parseToDate, utcToTimezoneDate };
31
+
32
+ //# sourceMappingURL=timezoneHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker/utils/timezoneHelpers.js","sources":["../../../src/DatePicker/utils/timezoneHelpers.ts"],"sourcesContent":["import { format } from \"date-fns\";\n\ninterface ParsedOffset {\n sign: number;\n minutes: number;\n}\n\nfunction parseOffset(tz: string): ParsedOffset | null {\n const match = tz.match(/^([+-])(\\d{2}):(\\d{2})$/);\n if (!match) {\n return null;\n }\n const sign = match[1] === \"+\" ? 1 : -1;\n return { sign, minutes: sign * (Number(match[2]) * 60 + Number(match[3])) };\n}\n\nexport function utcToTimezoneDate(utcDate: Date, timezone: string): Date {\n const parsed = parseOffset(timezone);\n if (!parsed) {\n return utcDate;\n }\n const localOffsetMinutes = -utcDate.getTimezoneOffset();\n const shiftMs = (parsed.minutes - localOffsetMinutes) * 60 * 1000;\n return new Date(utcDate.getTime() + shiftMs);\n}\n\nexport function naiveDateToUtcIso(date: Date, timezone: string): string {\n const naive = format(date, \"yyyy-MM-dd'T'HH:mm:ss\");\n const parsed = parseOffset(timezone);\n if (parsed) {\n return new Date(`${naive}${timezone}`).toISOString();\n }\n return date.toISOString();\n}\n\nexport function parseToDate(value: string | Date | undefined): Date | undefined {\n if (!value) {\n return undefined;\n }\n const d = new Date(value);\n if (Number.isNaN(d.getTime())) {\n return undefined;\n }\n return d;\n}\n"],"names":["parseOffset","tz","match","sign","Number","utcToTimezoneDate","utcDate","timezone","parsed","localOffsetMinutes","shiftMs","Date","naiveDateToUtcIso","date","naive","format","parseToDate","value","d"],"mappings":";AAOA,SAASA,YAAYC,EAAU;IAC3B,MAAMC,QAAQD,GAAG,KAAK,CAAC;IACvB,IAAI,CAACC,OACD,OAAO;IAEX,MAAMC,OAAOD,AAAa,QAAbA,KAAK,CAAC,EAAE,GAAW,IAAI;IACpC,OAAO;QAAEC;QAAM,SAASA,OAAQC,CAAAA,AAAmB,KAAnBA,OAAOF,KAAK,CAAC,EAAE,IAASE,OAAOF,KAAK,CAAC,EAAE;IAAG;AAC9E;AAEO,SAASG,kBAAkBC,OAAa,EAAEC,QAAgB;IAC7D,MAAMC,SAASR,YAAYO;IAC3B,IAAI,CAACC,QACD,OAAOF;IAEX,MAAMG,qBAAqB,CAACH,QAAQ,iBAAiB;IACrD,MAAMI,UAAWF,AAAAA,CAAAA,OAAO,OAAO,GAAGC,kBAAiB,IAAlCD;IACjB,OAAO,IAAIG,KAAKL,QAAQ,OAAO,KAAKI;AACxC;AAEO,SAASE,kBAAkBC,IAAU,EAAEN,QAAgB;IAC1D,MAAMO,QAAQC,OAAOF,MAAM;IAC3B,MAAML,SAASR,YAAYO;IAC3B,IAAIC,QACA,OAAO,IAAIG,KAAK,GAAGG,QAAQP,UAAU,EAAE,WAAW;IAEtD,OAAOM,KAAK,WAAW;AAC3B;AAEO,SAASG,YAAYC,KAAgC;IACxD,IAAI,CAACA,OACD;IAEJ,MAAMC,IAAI,IAAIP,KAAKM;IACnB,IAAIb,OAAO,KAAK,CAACc,EAAE,OAAO,KACtB;IAEJ,OAAOA;AACX"}
@@ -14,6 +14,8 @@ interface DatePickerBaseProps {
14
14
  weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
15
15
  onOpenChange?: (open: boolean) => void;
16
16
  displayFormat?: string;
17
+ minDate?: Date;
18
+ maxDate?: Date;
17
19
  }
18
20
  interface DateOnlyPickerProps extends DatePickerBaseProps {
19
21
  type: "date";
@@ -20,39 +20,25 @@ interface DialogProps extends React.ComponentPropsWithoutRef<typeof DialogRoot>,
20
20
  onClose?: () => void;
21
21
  onOpen?: () => void;
22
22
  }
23
- declare const Dialog: {
23
+ declare const DialogBase: {
24
24
  (props: DialogProps): React.JSX.Element;
25
25
  displayName: string;
26
- } & {
27
- original: {
28
- (props: DialogProps): React.JSX.Element;
29
- displayName: string;
30
- };
26
+ };
27
+ declare const Dialog: typeof DialogBase & {
28
+ original: typeof DialogBase;
31
29
  originalName: string;
32
30
  displayName: string;
33
31
  } & {
34
- original: {
35
- (props: DialogProps): React.JSX.Element;
36
- displayName: string;
37
- } & {
38
- original: {
39
- (props: DialogProps): React.JSX.Element;
40
- displayName: string;
41
- };
32
+ original: typeof DialogBase & {
33
+ original: typeof DialogBase;
42
34
  originalName: string;
43
35
  displayName: string;
44
36
  };
45
37
  originalName: string;
46
38
  displayName: string;
47
39
  } & {
48
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<{
49
- (props: DialogProps): React.JSX.Element;
50
- displayName: string;
51
- } & {
52
- original: {
53
- (props: DialogProps): React.JSX.Element;
54
- displayName: string;
55
- };
40
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<typeof DialogBase & {
41
+ original: typeof DialogBase;
56
42
  originalName: string;
57
43
  displayName: string;
58
44
  }>) => (props: unknown) => React.JSX.Element;
@@ -1,21 +1,23 @@
1
1
  import * as React from "react";
2
2
  import type { ButtonProps } from "../../Button/index.js";
3
- export declare const CancelAction: ((props: ButtonProps) => React.JSX.Element) & {
4
- original: (props: ButtonProps) => React.JSX.Element;
3
+ declare const CancelActionBase: (props: ButtonProps) => React.JSX.Element;
4
+ export declare const CancelAction: typeof CancelActionBase & {
5
+ original: typeof CancelActionBase;
5
6
  originalName: string;
6
7
  displayName: string;
7
8
  } & {
8
- original: ((props: ButtonProps) => React.JSX.Element) & {
9
- original: (props: ButtonProps) => React.JSX.Element;
9
+ original: typeof CancelActionBase & {
10
+ original: typeof CancelActionBase;
10
11
  originalName: string;
11
12
  displayName: string;
12
13
  };
13
14
  originalName: string;
14
15
  displayName: string;
15
16
  } & {
16
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<((props: ButtonProps) => React.JSX.Element) & {
17
- original: (props: ButtonProps) => React.JSX.Element;
17
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<typeof CancelActionBase & {
18
+ original: typeof CancelActionBase;
18
19
  originalName: string;
19
20
  displayName: string;
20
21
  }>) => (props: unknown) => React.JSX.Element;
21
22
  };
23
+ export {};
@@ -1,21 +1,23 @@
1
1
  import * as React from "react";
2
2
  import type { ButtonProps } from "../../Button/index.js";
3
- export declare const ConfirmAction: ((props: ButtonProps) => React.JSX.Element) & {
4
- original: (props: ButtonProps) => React.JSX.Element;
3
+ declare const ConfirmActionBase: (props: ButtonProps) => React.JSX.Element;
4
+ export declare const ConfirmAction: typeof ConfirmActionBase & {
5
+ original: typeof ConfirmActionBase;
5
6
  originalName: string;
6
7
  displayName: string;
7
8
  } & {
8
- original: ((props: ButtonProps) => React.JSX.Element) & {
9
- original: (props: ButtonProps) => React.JSX.Element;
9
+ original: typeof ConfirmActionBase & {
10
+ original: typeof ConfirmActionBase;
10
11
  originalName: string;
11
12
  displayName: string;
12
13
  };
13
14
  originalName: string;
14
15
  displayName: string;
15
16
  } & {
16
- createDecorator: (decorator: import("@webiny/react-composition/types").ComponentDecorator<((props: ButtonProps) => React.JSX.Element) & {
17
- original: (props: ButtonProps) => React.JSX.Element;
17
+ createDecorator: (decorator: import("@webiny/react-composition/types").ComponentDecorator<typeof ConfirmActionBase & {
18
+ original: typeof ConfirmActionBase;
18
19
  originalName: string;
19
20
  displayName: string;
20
21
  }>) => (props: unknown) => React.JSX.Element;
21
22
  };
23
+ export {};
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { Dialog as DialogPrimitive } from "radix-ui";
3
3
  import { type VariantProps } from "../../utils.js";
4
4
  declare const dialogContentVariants: (props?: ({
5
- size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
5
+ size?: "full" | "lg" | "md" | "sm" | "xl" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export interface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof dialogContentVariants> {
8
8
  dismissible?: boolean;
@@ -1,7 +1,7 @@
1
1
  import * as React from "react";
2
2
  import { type VariantProps } from "../../utils.js";
3
3
  declare const dialogFooterVariants: (props?: ({
4
- size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
4
+ size?: "full" | "lg" | "md" | "sm" | "xl" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export interface DialogFooterProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof dialogFooterVariants> {
7
7
  actions?: React.ReactNode;
@@ -2,7 +2,7 @@ import * as React from "react";
2
2
  import { Dialog as DialogPrimitive } from "radix-ui";
3
3
  import { type VariantProps } from "../../utils.js";
4
4
  declare const dialogTitleVariants: (props?: ({
5
- size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
5
+ size?: "full" | "lg" | "md" | "sm" | "xl" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  export type DialogTitleProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title> & VariantProps<typeof dialogTitleVariants>;
8
8
  export declare const DialogTitle: ({ className, size, ...props }: DialogTitleProps) => React.JSX.Element;
@@ -1,21 +1,22 @@
1
1
  import * as React from "react";
2
2
  import type { IconProps as IconComponentProps } from "../../Icon/index.js";
3
3
  type IconProps = IconComponentProps;
4
- export declare const Icon: ((props: IconProps) => React.JSX.Element) & {
5
- original: (props: IconProps) => React.JSX.Element;
4
+ declare const IconBase: (props: IconProps) => React.JSX.Element;
5
+ export declare const Icon: typeof IconBase & {
6
+ original: typeof IconBase;
6
7
  originalName: string;
7
8
  displayName: string;
8
9
  } & {
9
- original: ((props: IconProps) => React.JSX.Element) & {
10
- original: (props: IconProps) => React.JSX.Element;
10
+ original: typeof IconBase & {
11
+ original: typeof IconBase;
11
12
  originalName: string;
12
13
  displayName: string;
13
14
  };
14
15
  originalName: string;
15
16
  displayName: string;
16
17
  } & {
17
- createDecorator: (decorator: import("@webiny/react-composition/types").ComponentDecorator<((props: IconProps) => React.JSX.Element) & {
18
- original: (props: IconProps) => React.JSX.Element;
18
+ createDecorator: (decorator: import("@webiny/react-composition/types").ComponentDecorator<typeof IconBase & {
19
+ original: typeof IconBase;
19
20
  originalName: string;
20
21
  displayName: string;
21
22
  }>) => (props: unknown) => React.JSX.Element;
@@ -18,39 +18,25 @@ interface DrawerProps extends React.ComponentPropsWithoutRef<typeof DrawerRoot>,
18
18
  onClose?: () => void;
19
19
  onOpen?: () => void;
20
20
  }
21
- declare const Drawer: {
21
+ declare const DrawerBase: {
22
22
  (props: DrawerProps): React.JSX.Element;
23
23
  displayName: string;
24
- } & {
25
- original: {
26
- (props: DrawerProps): React.JSX.Element;
27
- displayName: string;
28
- };
24
+ };
25
+ declare const Drawer: typeof DrawerBase & {
26
+ original: typeof DrawerBase;
29
27
  originalName: string;
30
28
  displayName: string;
31
29
  } & {
32
- original: {
33
- (props: DrawerProps): React.JSX.Element;
34
- displayName: string;
35
- } & {
36
- original: {
37
- (props: DrawerProps): React.JSX.Element;
38
- displayName: string;
39
- };
30
+ original: typeof DrawerBase & {
31
+ original: typeof DrawerBase;
40
32
  originalName: string;
41
33
  displayName: string;
42
34
  };
43
35
  originalName: string;
44
36
  displayName: string;
45
37
  } & {
46
- createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<{
47
- (props: DrawerProps): React.JSX.Element;
48
- displayName: string;
49
- } & {
50
- original: {
51
- (props: DrawerProps): React.JSX.Element;
52
- displayName: string;
53
- };
38
+ createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<typeof DrawerBase & {
39
+ original: typeof DrawerBase;
54
40
  originalName: string;
55
41
  displayName: string;
56
42
  }>) => (props: unknown) => React.JSX.Element;
@@ -140,6 +140,7 @@ const WithTabs = {
140
140
  bodyPadding: false,
141
141
  headerSeparator: false,
142
142
  children: /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Tabs, {
143
+ separator: true,
143
144
  spacing: "lg",
144
145
  tabs: [
145
146
  /*#__PURE__*/ react.createElement(Tabs.Tab, {