@rpcbase/ui 0.181.0 → 0.182.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 (268) hide show
  1. package/dist/index103.js +36 -36
  2. package/dist/index115.js +6 -6
  3. package/dist/index122.js +1 -1
  4. package/dist/index124.js +2 -2
  5. package/dist/index126.js +1 -1
  6. package/dist/index151.js +1 -1
  7. package/dist/index153.js +5 -605
  8. package/dist/index153.js.map +1 -1
  9. package/dist/index154.js +68 -5
  10. package/dist/index154.js.map +1 -1
  11. package/dist/index155.js +2 -69
  12. package/dist/index155.js.map +1 -1
  13. package/dist/index156.js +364 -2
  14. package/dist/index156.js.map +1 -1
  15. package/dist/index157.js +201 -303
  16. package/dist/index157.js.map +1 -1
  17. package/dist/index158.js +46 -247
  18. package/dist/index158.js.map +1 -1
  19. package/dist/index159.js +42 -56
  20. package/dist/index159.js.map +1 -1
  21. package/dist/index160.js +169 -46
  22. package/dist/index160.js.map +1 -1
  23. package/dist/index161.js +96 -156
  24. package/dist/index161.js.map +1 -1
  25. package/dist/index162.js +24 -109
  26. package/dist/index162.js.map +1 -1
  27. package/dist/index163.js +8 -25
  28. package/dist/index163.js.map +1 -1
  29. package/dist/index164.js +5 -8
  30. package/dist/index164.js.map +1 -1
  31. package/dist/index165.js +5 -4
  32. package/dist/index165.js.map +1 -1
  33. package/dist/index166.js +4 -5
  34. package/dist/index166.js.map +1 -1
  35. package/dist/index167.js +466 -4
  36. package/dist/index167.js.map +1 -1
  37. package/dist/index168.js +139 -420
  38. package/dist/index168.js.map +1 -1
  39. package/dist/index169.js +71 -149
  40. package/dist/index169.js.map +1 -1
  41. package/dist/index170.js +229 -74
  42. package/dist/index170.js.map +1 -1
  43. package/dist/index171.js +9 -262
  44. package/dist/index171.js.map +1 -1
  45. package/dist/index172.js +42 -9
  46. package/dist/index172.js.map +1 -1
  47. package/dist/index173.js +4 -42
  48. package/dist/index173.js.map +1 -1
  49. package/dist/index174.js +605 -4
  50. package/dist/index174.js.map +1 -1
  51. package/dist/index175.js +57 -15
  52. package/dist/index175.js.map +1 -1
  53. package/dist/index176.js +8 -5
  54. package/dist/index176.js.map +1 -1
  55. package/dist/index177.js +65 -4
  56. package/dist/index177.js.map +1 -1
  57. package/dist/index178.js +18 -57
  58. package/dist/index178.js.map +1 -1
  59. package/dist/index179.js +14 -64
  60. package/dist/index179.js.map +1 -1
  61. package/dist/index180.js +5 -6
  62. package/dist/index180.js.map +1 -1
  63. package/dist/index181.js +5 -4
  64. package/dist/index181.js.map +1 -1
  65. package/dist/index182.js +6 -7
  66. package/dist/index182.js.map +1 -1
  67. package/dist/index183.js +4 -17
  68. package/dist/index183.js.map +1 -1
  69. package/dist/index184.js +7 -5
  70. package/dist/index184.js.map +1 -1
  71. package/dist/index185.js +17 -5
  72. package/dist/index185.js.map +1 -1
  73. package/dist/index186.js +5 -13
  74. package/dist/index186.js.map +1 -1
  75. package/dist/index187.js +5 -10
  76. package/dist/index187.js.map +1 -1
  77. package/dist/index188.js +13 -14
  78. package/dist/index188.js.map +1 -1
  79. package/dist/index189.js +10 -14
  80. package/dist/index189.js.map +1 -1
  81. package/dist/index190.js +14 -5
  82. package/dist/index190.js.map +1 -1
  83. package/dist/index191.js +14 -6
  84. package/dist/index191.js.map +1 -1
  85. package/dist/index192.js +5 -7
  86. package/dist/index192.js.map +1 -1
  87. package/dist/index193.js +5 -5
  88. package/dist/index193.js.map +1 -1
  89. package/dist/index194.js +7 -9
  90. package/dist/index194.js.map +1 -1
  91. package/dist/index195.js +6 -5
  92. package/dist/index195.js.map +1 -1
  93. package/dist/index196.js +9 -5
  94. package/dist/index196.js.map +1 -1
  95. package/dist/index197.js +5 -9
  96. package/dist/index197.js.map +1 -1
  97. package/dist/index198.js +5 -5
  98. package/dist/index198.js.map +1 -1
  99. package/dist/index199.js +9 -5
  100. package/dist/index199.js.map +1 -1
  101. package/dist/index200.js +5 -4
  102. package/dist/index200.js.map +1 -1
  103. package/dist/index201.js +5 -11
  104. package/dist/index201.js.map +1 -1
  105. package/dist/index202.js +4 -10
  106. package/dist/index202.js.map +1 -1
  107. package/dist/index203.js +9 -8
  108. package/dist/index203.js.map +1 -1
  109. package/dist/index204.js +10 -11
  110. package/dist/index204.js.map +1 -1
  111. package/dist/index205.js +10 -11
  112. package/dist/index205.js.map +1 -1
  113. package/dist/index206.js +11 -10
  114. package/dist/index206.js.map +1 -1
  115. package/dist/index207.js +10 -6
  116. package/dist/index207.js.map +1 -1
  117. package/dist/index208.js +10 -6
  118. package/dist/index208.js.map +1 -1
  119. package/dist/index209.js +7 -5
  120. package/dist/index209.js.map +1 -1
  121. package/dist/index210.js +5 -5
  122. package/dist/index210.js.map +1 -1
  123. package/dist/index211.js +5 -7
  124. package/dist/index211.js.map +1 -1
  125. package/dist/index212.js +6 -6
  126. package/dist/index212.js.map +1 -1
  127. package/dist/index213.js +7 -55
  128. package/dist/index213.js.map +1 -1
  129. package/dist/index214.js +6 -8
  130. package/dist/index214.js.map +1 -1
  131. package/dist/index215.js +54 -18
  132. package/dist/index215.js.map +1 -1
  133. package/dist/index220.js +3 -3
  134. package/dist/index227.js +1 -1
  135. package/dist/index23.js +1 -1
  136. package/dist/index238.js +12 -66
  137. package/dist/index238.js.map +1 -1
  138. package/dist/index239.js +150 -176
  139. package/dist/index239.js.map +1 -1
  140. package/dist/index240.js +27 -43
  141. package/dist/index240.js.map +1 -1
  142. package/dist/index241.js +9 -13
  143. package/dist/index241.js.map +1 -1
  144. package/dist/index242.js +40 -147
  145. package/dist/index242.js.map +1 -1
  146. package/dist/index243.js +10 -29
  147. package/dist/index243.js.map +1 -1
  148. package/dist/index244.js +44 -9
  149. package/dist/index244.js.map +1 -1
  150. package/dist/index245.js +88 -40
  151. package/dist/index245.js.map +1 -1
  152. package/dist/index246.js +85 -10
  153. package/dist/index246.js.map +1 -1
  154. package/dist/index247.js +102 -41
  155. package/dist/index247.js.map +1 -1
  156. package/dist/index248.js +45 -88
  157. package/dist/index248.js.map +1 -1
  158. package/dist/index249.js +10 -85
  159. package/dist/index249.js.map +1 -1
  160. package/dist/index250.js +28 -96
  161. package/dist/index250.js.map +1 -1
  162. package/dist/index251.js +8 -52
  163. package/dist/index251.js.map +1 -1
  164. package/dist/index252.js +115 -10
  165. package/dist/index252.js.map +1 -1
  166. package/dist/index253.js +16 -36
  167. package/dist/index253.js.map +1 -1
  168. package/dist/index254.js +15 -8
  169. package/dist/index254.js.map +1 -1
  170. package/dist/index255.js +3 -116
  171. package/dist/index255.js.map +1 -1
  172. package/dist/index256.js +35 -16
  173. package/dist/index256.js.map +1 -1
  174. package/dist/index257.js +19 -14
  175. package/dist/index257.js.map +1 -1
  176. package/dist/index258.js +9 -3
  177. package/dist/index258.js.map +1 -1
  178. package/dist/index259.js +8 -36
  179. package/dist/index259.js.map +1 -1
  180. package/dist/index260.js +18 -19
  181. package/dist/index260.js.map +1 -1
  182. package/dist/index261.js +28 -9
  183. package/dist/index261.js.map +1 -1
  184. package/dist/index262.js +15 -7
  185. package/dist/index262.js.map +1 -1
  186. package/dist/index263.js +65 -17
  187. package/dist/index263.js.map +1 -1
  188. package/dist/index264.js +178 -26
  189. package/dist/index264.js.map +1 -1
  190. package/dist/index265.js +44 -14
  191. package/dist/index265.js.map +1 -1
  192. package/dist/index270.js +1 -1
  193. package/dist/index272.js +4 -4
  194. package/dist/index277.js +1 -1
  195. package/dist/index285.js +2 -2
  196. package/dist/index288.js +1 -1
  197. package/dist/index289.js +2 -2
  198. package/dist/index291.js +1 -1
  199. package/dist/index292.js +1 -1
  200. package/dist/index293.js +1 -1
  201. package/dist/index294.js +1 -1
  202. package/dist/index295.js +65 -69
  203. package/dist/index295.js.map +1 -1
  204. package/dist/index296.js +68 -8
  205. package/dist/index296.js.map +1 -1
  206. package/dist/index297.js +9 -14
  207. package/dist/index297.js.map +1 -1
  208. package/dist/index298.js +14 -66
  209. package/dist/index298.js.map +1 -1
  210. package/dist/index299.js +65 -64
  211. package/dist/index299.js.map +1 -1
  212. package/dist/index313.js +21 -11
  213. package/dist/index313.js.map +1 -1
  214. package/dist/index314.js +11 -26
  215. package/dist/index314.js.map +1 -1
  216. package/dist/index315.js +27 -4
  217. package/dist/index315.js.map +1 -1
  218. package/dist/index316.js +4 -22
  219. package/dist/index316.js.map +1 -1
  220. package/dist/index33.js +1 -1
  221. package/dist/index41.js +2 -2
  222. package/dist/index42.js +16 -16
  223. package/dist/index46.js +1 -1
  224. package/dist/index47.js +1 -1
  225. package/dist/index53.js +4 -205
  226. package/dist/index53.js.map +1 -1
  227. package/dist/index54.js +47 -3
  228. package/dist/index54.js.map +1 -1
  229. package/dist/index55.js +48 -45
  230. package/dist/index55.js.map +1 -1
  231. package/dist/index56.js +7 -50
  232. package/dist/index56.js.map +1 -1
  233. package/dist/index57.js +14 -7
  234. package/dist/index57.js.map +1 -1
  235. package/dist/index58.js +133 -14
  236. package/dist/index58.js.map +1 -1
  237. package/dist/index59.js +10 -133
  238. package/dist/index59.js.map +1 -1
  239. package/dist/index60.js +216 -10
  240. package/dist/index60.js.map +1 -1
  241. package/dist/index61.js +12 -216
  242. package/dist/index61.js.map +1 -1
  243. package/dist/index62.js +47 -13
  244. package/dist/index62.js.map +1 -1
  245. package/dist/index63.js +47 -44
  246. package/dist/index63.js.map +1 -1
  247. package/dist/index64.js +4 -50
  248. package/dist/index64.js.map +1 -1
  249. package/dist/index65.js +6 -4
  250. package/dist/index65.js.map +1 -1
  251. package/dist/index66.js +28 -6
  252. package/dist/index66.js.map +1 -1
  253. package/dist/index67.js +50 -28
  254. package/dist/index67.js.map +1 -1
  255. package/dist/index68.js +9 -50
  256. package/dist/index68.js.map +1 -1
  257. package/dist/index69.js +2 -9
  258. package/dist/index69.js.map +1 -1
  259. package/dist/index70.js +2 -54
  260. package/dist/index70.js.map +1 -1
  261. package/dist/index71.js +205 -2
  262. package/dist/index71.js.map +1 -1
  263. package/dist/index72.js +54 -2
  264. package/dist/index72.js.map +1 -1
  265. package/dist/index73.js +1 -1
  266. package/dist/index74.js +2 -2
  267. package/dist/index75.js +2 -2
  268. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index174.js","sources":["../../../node_modules/libphonenumber-js/es6/helpers/isObject.js"],"sourcesContent":["var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map"],"names":["objectConstructor","isObject","object"],"mappings":"AAAA,IAAIA,IAAoB,CAAA,EAAG;AACZ,SAASC,EAASC,GAAQ;AACvC,SAA+BA,KAAW,QAAQA,EAAO,gBAAgBF;AAC3E;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index174.js","sources":["../../../node_modules/@radix-ui/react-menu/dist/index.mjs"],"sourcesContent":["\"use client\";\n\n// src/menu.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs, composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SELECTION_KEYS = [\"Enter\", \" \"];\nvar FIRST_KEYS = [\"ArrowDown\", \"PageUp\", \"Home\"];\nvar LAST_KEYS = [\"ArrowUp\", \"PageDown\", \"End\"];\nvar FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nvar SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, \"ArrowRight\"],\n rtl: [...SELECTION_KEYS, \"ArrowLeft\"]\n};\nvar SUB_CLOSE_KEYS = {\n ltr: [\"ArrowLeft\"],\n rtl: [\"ArrowRight\"]\n};\nvar MENU_NAME = \"Menu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);\nvar [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [\n createCollectionScope,\n createPopperScope,\n createRovingFocusGroupScope\n]);\nvar usePopperScope = createPopperScope();\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);\nvar [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);\nvar Menu = (props) => {\n const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;\n const popperScope = usePopperScope(__scopeMenu);\n const [content, setContent] = React.useState(null);\n const isUsingKeyboardRef = React.useRef(false);\n const handleOpenChange = useCallbackRef(onOpenChange);\n const direction = useDirection(dir);\n React.useEffect(() => {\n const handleKeyDown = () => {\n isUsingKeyboardRef.current = true;\n document.addEventListener(\"pointerdown\", handlePointer, { capture: true, once: true });\n document.addEventListener(\"pointermove\", handlePointer, { capture: true, once: true });\n };\n const handlePointer = () => isUsingKeyboardRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n document.removeEventListener(\"pointerdown\", handlePointer, { capture: true });\n document.removeEventListener(\"pointermove\", handlePointer, { capture: true });\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuRootProvider,\n {\n scope: __scopeMenu,\n onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),\n isUsingKeyboardRef,\n dir: direction,\n modal,\n children\n }\n )\n }\n ) });\n};\nMenu.displayName = MENU_NAME;\nvar ANCHOR_NAME = \"MenuAnchor\";\nvar MenuAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...anchorProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nMenuAnchor.displayName = ANCHOR_NAME;\nvar PORTAL_NAME = \"MenuPortal\";\nvar [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar MenuPortal = (props) => {\n const { __scopeMenu, forceMount, children, container } = props;\n const context = useMenuContext(PORTAL_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nMenuPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"MenuContent\";\nvar [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);\nvar MenuContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });\n }\n);\nvar MenuRootContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const content = ref.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: context.open,\n disableOutsideScroll: true,\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n ),\n onDismiss: () => context.onOpenChange(false)\n }\n );\n }\n);\nvar MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n return /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n onDismiss: () => context.onOpenChange(false)\n }\n );\n});\nvar Slot = createSlot(\"MenuContent.ScrollLock\");\nvar MenuContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeMenu,\n loop = false,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEntryFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n disableOutsideScroll,\n ...contentProps\n } = props;\n const context = useMenuContext(CONTENT_NAME, __scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const getItems = useCollection(__scopeMenu);\n const [currentItemId, setCurrentItemId] = React.useState(null);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);\n const timerRef = React.useRef(0);\n const searchRef = React.useRef(\"\");\n const pointerGraceTimerRef = React.useRef(0);\n const pointerGraceIntentRef = React.useRef(null);\n const pointerDirRef = React.useRef(\"right\");\n const lastPointerXRef = React.useRef(0);\n const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;\n const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;\n const handleTypeaheadSearch = (key) => {\n const search = searchRef.current + key;\n const items = getItems().filter((item) => !item.disabled);\n const currentItem = document.activeElement;\n const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;\n const values = items.map((item) => item.textValue);\n const nextMatch = getNextMatch(values, search, currentMatch);\n const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n if (newItem) {\n setTimeout(() => newItem.focus());\n }\n };\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n useFocusGuards();\n const isPointerMovingToSubmenu = React.useCallback((event) => {\n const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;\n return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);\n }, []);\n return /* @__PURE__ */ jsx(\n MenuContentProvider,\n {\n scope: __scopeMenu,\n searchRef,\n onItemEnter: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n onItemLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) return;\n contentRef.current?.focus();\n setCurrentItemId(null);\n },\n [isPointerMovingToSubmenu]\n ),\n onTriggerLeave: React.useCallback(\n (event) => {\n if (isPointerMovingToSubmenu(event)) event.preventDefault();\n },\n [isPointerMovingToSubmenu]\n ),\n pointerGraceTimerRef,\n onPointerGraceIntentChange: React.useCallback((intent) => {\n pointerGraceIntentRef.current = intent;\n }, []),\n children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: trapFocus,\n onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {\n event.preventDefault();\n contentRef.current?.focus({ preventScroll: true });\n }),\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n children: /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n dir: rootContext.dir,\n orientation: \"vertical\",\n loop,\n currentTabStopId: currentItemId,\n onCurrentTabStopIdChange: setCurrentItemId,\n onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {\n if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();\n }),\n preventScrollOnEntryFocus: true,\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n \"data-state\": getOpenState(context.open),\n \"data-radix-menu-content\": \"\",\n dir: rootContext.dir,\n ...popperScope,\n ...contentProps,\n ref: composedRefs,\n style: { outline: \"none\", ...contentProps.style },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const target = event.target;\n const isKeyDownInside = target.closest(\"[data-radix-menu-content]\") === event.currentTarget;\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n const isCharacterKey = event.key.length === 1;\n if (isKeyDownInside) {\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);\n }\n const content = contentRef.current;\n if (event.target !== content) return;\n if (!FIRST_LAST_KEYS.includes(event.key)) return;\n event.preventDefault();\n const items = getItems().filter((item) => !item.disabled);\n const candidateNodes = items.map((item) => item.ref.current);\n if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();\n focusFirst(candidateNodes);\n }),\n onBlur: composeEventHandlers(props.onBlur, (event) => {\n if (!event.currentTarget.contains(event.target)) {\n window.clearTimeout(timerRef.current);\n searchRef.current = \"\";\n }\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n const target = event.target;\n const pointerXHasChanged = lastPointerXRef.current !== event.clientX;\n if (event.currentTarget.contains(target) && pointerXHasChanged) {\n const newDir = event.clientX > lastPointerXRef.current ? \"right\" : \"left\";\n pointerDirRef.current = newDir;\n lastPointerXRef.current = event.clientX;\n }\n })\n )\n }\n )\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nMenuContent.displayName = CONTENT_NAME;\nvar GROUP_NAME = \"MenuGroup\";\nvar MenuGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...groupProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", ...groupProps, ref: forwardedRef });\n }\n);\nMenuGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"MenuLabel\";\nvar MenuLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...labelProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });\n }\n);\nMenuLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"MenuItem\";\nvar ITEM_SELECT = \"menu.itemSelect\";\nvar MenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { disabled = false, onSelect, ...itemProps } = props;\n const ref = React.useRef(null);\n const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const isPointerDownRef = React.useRef(false);\n const handleSelect = () => {\n const menuItem = ref.current;\n if (!disabled && menuItem) {\n const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });\n menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);\n if (itemSelectEvent.defaultPrevented) {\n isPointerDownRef.current = false;\n } else {\n rootContext.onClose();\n }\n }\n };\n return /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n ...itemProps,\n ref: composedRefs,\n disabled,\n onClick: composeEventHandlers(props.onClick, handleSelect),\n onPointerDown: (event) => {\n props.onPointerDown?.(event);\n isPointerDownRef.current = true;\n },\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n if (!isPointerDownRef.current) event.currentTarget?.click();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (disabled || isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) {\n event.currentTarget.click();\n event.preventDefault();\n }\n })\n }\n );\n }\n);\nMenuItem.displayName = ITEM_NAME;\nvar MenuItemImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;\n const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [isFocused, setIsFocused] = React.useState(false);\n const [textContent, setTextContent] = React.useState(\"\");\n React.useEffect(() => {\n const menuItem = ref.current;\n if (menuItem) {\n setTextContent((menuItem.textContent ?? \"\").trim());\n }\n }, [itemProps.children]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeMenu,\n disabled,\n textValue: textValue ?? textContent,\n children: /* @__PURE__ */ jsx(RovingFocusGroup.Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"menuitem\",\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...itemProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n if (disabled) {\n contentContext.onItemLeave(event);\n } else {\n contentContext.onItemEnter(event);\n if (!event.defaultPrevented) {\n const item = event.currentTarget;\n item.focus({ preventScroll: true });\n }\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => contentContext.onItemLeave(event))\n ),\n onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))\n }\n ) })\n }\n );\n }\n);\nvar CHECKBOX_ITEM_NAME = \"MenuCheckboxItem\";\nvar MenuCheckboxItem = React.forwardRef(\n (props, forwardedRef) => {\n const { checked = false, onCheckedChange, ...checkboxItemProps } = props;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemcheckbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n ...checkboxItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n checkboxItemProps.onSelect,\n () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;\nvar RADIO_GROUP_NAME = \"MenuRadioGroup\";\nvar [RadioGroupProvider, useRadioGroupContext] = createMenuContext(\n RADIO_GROUP_NAME,\n { value: void 0, onValueChange: () => {\n } }\n);\nvar MenuRadioGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { value, onValueChange, ...groupProps } = props;\n const handleValueChange = useCallbackRef(onValueChange);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });\n }\n);\nMenuRadioGroup.displayName = RADIO_GROUP_NAME;\nvar RADIO_ITEM_NAME = \"MenuRadioItem\";\nvar MenuRadioItem = React.forwardRef(\n (props, forwardedRef) => {\n const { value, ...radioItemProps } = props;\n const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);\n const checked = value === context.value;\n return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(\n MenuItem,\n {\n role: \"menuitemradio\",\n \"aria-checked\": checked,\n ...radioItemProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(checked),\n onSelect: composeEventHandlers(\n radioItemProps.onSelect,\n () => context.onValueChange?.(value),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nMenuRadioItem.displayName = RADIO_ITEM_NAME;\nvar ITEM_INDICATOR_NAME = \"MenuItemIndicator\";\nvar [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(\n ITEM_INDICATOR_NAME,\n { checked: false }\n);\nvar MenuItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;\n const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...itemIndicatorProps,\n ref: forwardedRef,\n \"data-state\": getCheckedState(indicatorContext.checked)\n }\n )\n }\n );\n }\n);\nMenuItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SEPARATOR_NAME = \"MenuSeparator\";\nvar MenuSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"separator\",\n \"aria-orientation\": \"horizontal\",\n ...separatorProps,\n ref: forwardedRef\n }\n );\n }\n);\nMenuSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"MenuArrow\";\nvar MenuArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeMenu, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeMenu);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nMenuArrow.displayName = ARROW_NAME;\nvar SUB_NAME = \"MenuSub\";\nvar [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);\nvar MenuSub = (props) => {\n const { __scopeMenu, children, open = false, onOpenChange } = props;\n const parentMenuContext = useMenuContext(SUB_NAME, __scopeMenu);\n const popperScope = usePopperScope(__scopeMenu);\n const [trigger, setTrigger] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const handleOpenChange = useCallbackRef(onOpenChange);\n React.useEffect(() => {\n if (parentMenuContext.open === false) handleOpenChange(false);\n return () => handleOpenChange(false);\n }, [parentMenuContext.open, handleOpenChange]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n MenuProvider,\n {\n scope: __scopeMenu,\n open,\n onOpenChange: handleOpenChange,\n content,\n onContentChange: setContent,\n children: /* @__PURE__ */ jsx(\n MenuSubProvider,\n {\n scope: __scopeMenu,\n contentId: useId(),\n triggerId: useId(),\n trigger,\n onTriggerChange: setTrigger,\n children\n }\n )\n }\n ) });\n};\nMenuSub.displayName = SUB_NAME;\nvar SUB_TRIGGER_NAME = \"MenuSubTrigger\";\nvar MenuSubTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);\n const openTimerRef = React.useRef(null);\n const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;\n const scope = { __scopeMenu: props.__scopeMenu };\n const clearOpenTimer = React.useCallback(() => {\n if (openTimerRef.current) window.clearTimeout(openTimerRef.current);\n openTimerRef.current = null;\n }, []);\n React.useEffect(() => clearOpenTimer, [clearOpenTimer]);\n React.useEffect(() => {\n const pointerGraceTimer = pointerGraceTimerRef.current;\n return () => {\n window.clearTimeout(pointerGraceTimer);\n onPointerGraceIntentChange(null);\n };\n }, [pointerGraceTimerRef, onPointerGraceIntentChange]);\n return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(\n MenuItemImpl,\n {\n id: subContext.triggerId,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": context.open,\n \"aria-controls\": subContext.contentId,\n \"data-state\": getOpenState(context.open),\n ...props,\n ref: composeRefs(forwardedRef, subContext.onTriggerChange),\n onClick: (event) => {\n props.onClick?.(event);\n if (props.disabled || event.defaultPrevented) return;\n event.currentTarget.focus();\n if (!context.open) context.onOpenChange(true);\n },\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse((event) => {\n contentContext.onItemEnter(event);\n if (event.defaultPrevented) return;\n if (!props.disabled && !context.open && !openTimerRef.current) {\n contentContext.onPointerGraceIntentChange(null);\n openTimerRef.current = window.setTimeout(() => {\n context.onOpenChange(true);\n clearOpenTimer();\n }, 100);\n }\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse((event) => {\n clearOpenTimer();\n const contentRect = context.content?.getBoundingClientRect();\n if (contentRect) {\n const side = context.content?.dataset.side;\n const rightSide = side === \"right\";\n const bleed = rightSide ? -5 : 5;\n const contentNearEdge = contentRect[rightSide ? \"left\" : \"right\"];\n const contentFarEdge = contentRect[rightSide ? \"right\" : \"left\"];\n contentContext.onPointerGraceIntentChange({\n area: [\n // Apply a bleed on clientX to ensure that our exit point is\n // consistently within polygon bounds\n { x: event.clientX + bleed, y: event.clientY },\n { x: contentNearEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.top },\n { x: contentFarEdge, y: contentRect.bottom },\n { x: contentNearEdge, y: contentRect.bottom }\n ],\n side\n });\n window.clearTimeout(pointerGraceTimerRef.current);\n pointerGraceTimerRef.current = window.setTimeout(\n () => contentContext.onPointerGraceIntentChange(null),\n 300\n );\n } else {\n contentContext.onTriggerLeave(event);\n if (event.defaultPrevented) return;\n contentContext.onPointerGraceIntentChange(null);\n }\n })\n ),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef.current !== \"\";\n if (props.disabled || isTypingAhead && event.key === \" \") return;\n if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {\n context.onOpenChange(true);\n context.content?.focus();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nMenuSubTrigger.displayName = SUB_TRIGGER_NAME;\nvar SUB_CONTENT_NAME = \"MenuSubContent\";\nvar MenuSubContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);\n const { forceMount = portalContext.forceMount, ...subContentProps } = props;\n const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);\n const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);\n const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(\n MenuContentImpl,\n {\n id: subContext.contentId,\n \"aria-labelledby\": subContext.triggerId,\n ...subContentProps,\n ref: composedRefs,\n align: \"start\",\n side: rootContext.dir === \"rtl\" ? \"left\" : \"right\",\n disableOutsidePointerEvents: false,\n disableOutsideScroll: false,\n trapFocus: false,\n onOpenAutoFocus: (event) => {\n if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();\n event.preventDefault();\n },\n onCloseAutoFocus: (event) => event.preventDefault(),\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n if (event.target !== subContext.trigger) context.onOpenChange(false);\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {\n rootContext.onClose();\n event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isKeyDownInside = event.currentTarget.contains(event.target);\n const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);\n if (isKeyDownInside && isCloseKey) {\n context.onOpenChange(false);\n subContext.trigger?.focus();\n event.preventDefault();\n }\n })\n }\n ) }) }) });\n }\n);\nMenuSubContent.displayName = SUB_CONTENT_NAME;\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nfunction focusFirst(candidates) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nfunction getNextMatch(values, search, currentMatch) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find(\n (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextMatch !== currentMatch ? nextMatch : void 0;\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction isPointerInGraceArea(event, area) {\n if (!area) return false;\n const cursorPos = { x: event.clientX, y: event.clientY };\n return isPointInPolygon(cursorPos, area);\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root3 = Menu;\nvar Anchor2 = MenuAnchor;\nvar Portal = MenuPortal;\nvar Content2 = MenuContent;\nvar Group = MenuGroup;\nvar Label = MenuLabel;\nvar Item2 = MenuItem;\nvar CheckboxItem = MenuCheckboxItem;\nvar RadioGroup = MenuRadioGroup;\nvar RadioItem = MenuRadioItem;\nvar ItemIndicator = MenuItemIndicator;\nvar Separator = MenuSeparator;\nvar Arrow2 = MenuArrow;\nvar Sub = MenuSub;\nvar SubTrigger = MenuSubTrigger;\nvar SubContent = MenuSubContent;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n CheckboxItem,\n Content2 as Content,\n Group,\n Item2 as Item,\n ItemIndicator,\n Label,\n Menu,\n MenuAnchor,\n MenuArrow,\n MenuCheckboxItem,\n MenuContent,\n MenuGroup,\n MenuItem,\n MenuItemIndicator,\n MenuLabel,\n MenuPortal,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuSub,\n MenuSubContent,\n MenuSubTrigger,\n Portal,\n RadioGroup,\n RadioItem,\n Root3 as Root,\n Separator,\n Sub,\n SubContent,\n SubTrigger,\n createMenuScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["SELECTION_KEYS","FIRST_KEYS","LAST_KEYS","FIRST_LAST_KEYS","SUB_OPEN_KEYS","SUB_CLOSE_KEYS","MENU_NAME","Collection","useCollection","createCollectionScope","createCollection","createMenuContext","createMenuScope","createContextScope","createPopperScope","createRovingFocusGroupScope","usePopperScope","useRovingFocusGroupScope","MenuProvider","useMenuContext","MenuRootProvider","useMenuRootContext","Menu","props","__scopeMenu","open","children","dir","onOpenChange","modal","popperScope","content","setContent","React","isUsingKeyboardRef","handleOpenChange","useCallbackRef","direction","useDirection","handleKeyDown","handlePointer","jsx","PopperPrimitive.Root","ANCHOR_NAME","MenuAnchor","forwardedRef","anchorProps","PopperPrimitive.Anchor","PORTAL_NAME","PortalProvider","usePortalContext","MenuPortal","forceMount","container","context","Presence","PortalPrimitive","CONTENT_NAME","MenuContentProvider","useMenuContentContext","MenuContent","portalContext","contentProps","rootContext","MenuRootContentModal","MenuRootContentNonModal","ref","composedRefs","useComposedRefs","hideOthers","MenuContentImpl","composeEventHandlers","event","Slot","createSlot","loop","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEntryFocus","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","disableOutsideScroll","rovingFocusGroupScope","getItems","currentItemId","setCurrentItemId","contentRef","timerRef","searchRef","pointerGraceTimerRef","pointerGraceIntentRef","pointerDirRef","lastPointerXRef","ScrollLockWrapper","RemoveScroll","scrollLockWrapperProps","handleTypeaheadSearch","key","search","items","item","currentItem","currentMatch","values","nextMatch","getNextMatch","newItem","updateSearch","value","useFocusGuards","isPointerMovingToSubmenu","isPointerInGraceArea","intent","FocusScope","DismissableLayer","RovingFocusGroup.Root","PopperPrimitive.Content","getOpenState","isKeyDownInside","isModifierKey","isCharacterKey","candidateNodes","focusFirst","whenMouse","target","pointerXHasChanged","newDir","GROUP_NAME","MenuGroup","groupProps","Primitive","LABEL_NAME","MenuLabel","labelProps","ITEM_NAME","ITEM_SELECT","MenuItem","disabled","onSelect","itemProps","contentContext","isPointerDownRef","handleSelect","menuItem","itemSelectEvent","dispatchDiscreteCustomEvent","MenuItemImpl","isTypingAhead","textValue","isFocused","setIsFocused","textContent","setTextContent","RovingFocusGroup.Item","CHECKBOX_ITEM_NAME","MenuCheckboxItem","checked","onCheckedChange","checkboxItemProps","ItemIndicatorProvider","isIndeterminate","getCheckedState","RADIO_GROUP_NAME","RadioGroupProvider","useRadioGroupContext","MenuRadioGroup","onValueChange","handleValueChange","RADIO_ITEM_NAME","MenuRadioItem","radioItemProps","ITEM_INDICATOR_NAME","useItemIndicatorContext","MenuItemIndicator","itemIndicatorProps","indicatorContext","SEPARATOR_NAME","MenuSeparator","separatorProps","ARROW_NAME","MenuArrow","arrowProps","PopperPrimitive.Arrow","SUB_NAME","MenuSubProvider","useMenuSubContext","SUB_TRIGGER_NAME","MenuSubTrigger","subContext","openTimerRef","onPointerGraceIntentChange","scope","clearOpenTimer","pointerGraceTimer","composeRefs","contentRect","side","rightSide","bleed","contentNearEdge","contentFarEdge","SUB_CONTENT_NAME","MenuSubContent","subContentProps","isCloseKey","candidates","PREVIOUSLY_FOCUSED_ELEMENT","candidate","wrapArray","array","startIndex","_","index","normalizedSearch","char","currentMatchIndex","wrappedValues","v","isPointInPolygon","point","polygon","x","y","inside","i","j","ii","jj","xi","yi","xj","yj","area","cursorPos","handler","Root3","Anchor2","Portal","Content2","Group","Label","Item2","CheckboxItem","RadioGroup","RadioItem","ItemIndicator","Separator","Arrow2","SubTrigger","SubContent"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index175.js CHANGED
@@ -1,20 +1,62 @@
1
- import { defaultDateLib as o } from "./index103.js";
2
- class y {
3
- constructor(t, i, s = o) {
4
- this.date = t, this.displayMonth = i, this.outside = !!(i && !s.isSameMonth(t, i)), this.dateLib = s, this.isoDate = s.format(t, "yyyy-MM-dd"), this.displayMonthId = s.format(i, "yyyy-MM"), this.dateMonthId = s.format(t, "yyyy-MM");
5
- }
6
- /**
7
- * Checks if this day is equal to another `CalendarDay`, considering both the
8
- * date and the displayed month.
9
- *
10
- * @param day The `CalendarDay` to compare with.
11
- * @returns `true` if the days are equal, otherwise `false`.
12
- */
13
- isEqualTo(t) {
14
- return this.dateLib.isSameDay(t.date, this.date) && this.dateLib.isSameMonth(t.displayMonth, this.displayMonth);
1
+ import { tzName as r } from "./index176.js";
2
+ import { TZDateMini as s } from "./index177.js";
3
+ class o extends s {
4
+ //#region static
5
+ static tz(t, ...e) {
6
+ return e.length ? new o(...e, t) : new o(Date.now(), t);
15
7
  }
8
+ //#endregion
9
+ //#region representation
10
+ toISOString() {
11
+ const [t, e, n] = this.tzComponents(), i = `${t}${e}:${n}`;
12
+ return this.internal.toISOString().slice(0, -1) + i;
13
+ }
14
+ toString() {
15
+ return `${this.toDateString()} ${this.toTimeString()}`;
16
+ }
17
+ toDateString() {
18
+ const [t, e, n, i] = this.internal.toUTCString().split(" ");
19
+ return `${t?.slice(0, -1)} ${n} ${e} ${i}`;
20
+ }
21
+ toTimeString() {
22
+ const t = this.internal.toUTCString().split(" ")[4], [e, n, i] = this.tzComponents();
23
+ return `${t} GMT${e}${n}${i} (${r(this.timeZone, this)})`;
24
+ }
25
+ toLocaleString(t, e) {
26
+ return Date.prototype.toLocaleString.call(this, t, {
27
+ ...e,
28
+ timeZone: e?.timeZone || this.timeZone
29
+ });
30
+ }
31
+ toLocaleDateString(t, e) {
32
+ return Date.prototype.toLocaleDateString.call(this, t, {
33
+ ...e,
34
+ timeZone: e?.timeZone || this.timeZone
35
+ });
36
+ }
37
+ toLocaleTimeString(t, e) {
38
+ return Date.prototype.toLocaleTimeString.call(this, t, {
39
+ ...e,
40
+ timeZone: e?.timeZone || this.timeZone
41
+ });
42
+ }
43
+ //#endregion
44
+ //#region private
45
+ tzComponents() {
46
+ const t = this.getTimezoneOffset(), e = t > 0 ? "-" : "+", n = String(Math.floor(Math.abs(t) / 60)).padStart(2, "0"), i = String(Math.abs(t) % 60).padStart(2, "0");
47
+ return [e, n, i];
48
+ }
49
+ //#endregion
50
+ withTimeZone(t) {
51
+ return new o(+this, t);
52
+ }
53
+ //#region date-fns integration
54
+ [/* @__PURE__ */ Symbol.for("constructDateFrom")](t) {
55
+ return new o(+new Date(t), this.timeZone);
56
+ }
57
+ //#endregion
16
58
  }
17
59
  export {
18
- y as CalendarDay
60
+ o as TZDate
19
61
  };
20
62
  //# sourceMappingURL=index175.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index175.js","sources":["../../../node_modules/react-day-picker/dist/esm/classes/CalendarDay.js"],"sourcesContent":["import { defaultDateLib } from \"./DateLib.js\";\n/**\n * Represents a day displayed in the calendar.\n *\n * In DayPicker, a `CalendarDay` is a wrapper around a `Date` object that\n * provides additional information about the day, such as whether it belongs to\n * the displayed month.\n */\nexport class CalendarDay {\n constructor(date, displayMonth, dateLib = defaultDateLib) {\n this.date = date;\n this.displayMonth = displayMonth;\n this.outside = Boolean(displayMonth && !dateLib.isSameMonth(date, displayMonth));\n this.dateLib = dateLib;\n this.isoDate = dateLib.format(date, \"yyyy-MM-dd\");\n this.displayMonthId = dateLib.format(displayMonth, \"yyyy-MM\");\n this.dateMonthId = dateLib.format(date, \"yyyy-MM\");\n }\n /**\n * Checks if this day is equal to another `CalendarDay`, considering both the\n * date and the displayed month.\n *\n * @param day The `CalendarDay` to compare with.\n * @returns `true` if the days are equal, otherwise `false`.\n */\n isEqualTo(day) {\n return (this.dateLib.isSameDay(day.date, this.date) &&\n this.dateLib.isSameMonth(day.displayMonth, this.displayMonth));\n }\n}\n"],"names":["CalendarDay","date","displayMonth","dateLib","defaultDateLib","day"],"mappings":";AAQO,MAAMA,EAAY;AAAA,EACrB,YAAYC,GAAMC,GAAcC,IAAUC,GAAgB;AACtD,SAAK,OAAOH,GACZ,KAAK,eAAeC,GACpB,KAAK,UAAU,GAAQA,KAAgB,CAACC,EAAQ,YAAYF,GAAMC,CAAY,IAC9E,KAAK,UAAUC,GACf,KAAK,UAAUA,EAAQ,OAAOF,GAAM,YAAY,GAChD,KAAK,iBAAiBE,EAAQ,OAAOD,GAAc,SAAS,GAC5D,KAAK,cAAcC,EAAQ,OAAOF,GAAM,SAAS;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,UAAUI,GAAK;AACX,WAAQ,KAAK,QAAQ,UAAUA,EAAI,MAAM,KAAK,IAAI,KAC9C,KAAK,QAAQ,YAAYA,EAAI,cAAc,KAAK,YAAY;AAAA,EACpE;AACJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index175.js","sources":["../../../node_modules/@date-fns/tz/date/index.js"],"sourcesContent":["import { tzName } from \"../tzName/index.js\";\nimport { TZDateMini } from \"./mini.js\";\nexport class TZDate extends TZDateMini {\n //#region static\n\n static tz(tz, ...args) {\n return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);\n }\n\n //#endregion\n\n //#region representation\n\n toISOString() {\n const [sign, hours, minutes] = this.tzComponents();\n const tz = `${sign}${hours}:${minutes}`;\n return this.internal.toISOString().slice(0, -1) + tz;\n }\n toString() {\n // \"Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)\";\n return `${this.toDateString()} ${this.toTimeString()}`;\n }\n toDateString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const [day, date, month, year] = this.internal.toUTCString().split(\" \");\n // \"Tue Aug 13 2024\"\n return `${day?.slice(0, -1) /* Remove \",\" */} ${month} ${date} ${year}`;\n }\n toTimeString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const time = this.internal.toUTCString().split(\" \")[4];\n const [sign, hours, minutes] = this.tzComponents();\n // \"07:42:23 GMT+0800 (Singapore Standard Time)\"\n return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;\n }\n toLocaleString(locales, options) {\n return Date.prototype.toLocaleString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleDateString(locales, options) {\n return Date.prototype.toLocaleDateString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleTimeString(locales, options) {\n return Date.prototype.toLocaleTimeString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n\n //#endregion\n\n //#region private\n\n tzComponents() {\n const offset = this.getTimezoneOffset();\n const sign = offset > 0 ? \"-\" : \"+\";\n const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, \"0\");\n const minutes = String(Math.abs(offset) % 60).padStart(2, \"0\");\n return [sign, hours, minutes];\n }\n\n //#endregion\n\n withTimeZone(timeZone) {\n return new TZDate(+this, timeZone);\n }\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDate(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}"],"names":["TZDate","TZDateMini","tz","args","sign","hours","minutes","day","date","month","year","time","tzName","locales","options","offset","timeZone"],"mappings":";;AAEO,MAAMA,UAAeC,EAAW;AAAA;AAAA,EAGrC,OAAO,GAAGC,MAAOC,GAAM;AACrB,WAAOA,EAAK,SAAS,IAAIH,EAAO,GAAGG,GAAMD,CAAE,IAAI,IAAIF,EAAO,KAAK,IAAG,GAAIE,CAAE;AAAA,EAC1E;AAAA;AAAA;AAAA,EAMA,cAAc;AACZ,UAAM,CAACE,GAAMC,GAAOC,CAAO,IAAI,KAAK,aAAY,GAC1CJ,IAAK,GAAGE,CAAI,GAAGC,CAAK,IAAIC,CAAO;AACrC,WAAO,KAAK,SAAS,YAAW,EAAG,MAAM,GAAG,EAAE,IAAIJ;AAAA,EACpD;AAAA,EACA,WAAW;AAET,WAAO,GAAG,KAAK,aAAY,CAAE,IAAI,KAAK,aAAY,CAAE;AAAA,EACtD;AAAA,EACA,eAAe;AAEb,UAAM,CAACK,GAAKC,GAAMC,GAAOC,CAAI,IAAI,KAAK,SAAS,cAAc,MAAM,GAAG;AAEtE,WAAO,GAAGH,GAAK,MAAM,GAAG,EAAE,CAAC,IAAqBE,CAAK,IAAID,CAAI,IAAIE,CAAI;AAAA,EACvE;AAAA,EACA,eAAe;AAEb,UAAMC,IAAO,KAAK,SAAS,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC,GAC/C,CAACP,GAAMC,GAAOC,CAAO,IAAI,KAAK,aAAY;AAEhD,WAAO,GAAGK,CAAI,OAAOP,CAAI,GAAGC,CAAK,GAAGC,CAAO,KAAKM,EAAO,KAAK,UAAU,IAAI,CAAC;AAAA,EAC7E;AAAA,EACA,eAAeC,GAASC,GAAS;AAC/B,WAAO,KAAK,UAAU,eAAe,KAAK,MAAMD,GAAS;AAAA,MACvD,GAAGC;AAAA,MACH,UAAUA,GAAS,YAAY,KAAK;AAAA,IAC1C,CAAK;AAAA,EACH;AAAA,EACA,mBAAmBD,GAASC,GAAS;AACnC,WAAO,KAAK,UAAU,mBAAmB,KAAK,MAAMD,GAAS;AAAA,MAC3D,GAAGC;AAAA,MACH,UAAUA,GAAS,YAAY,KAAK;AAAA,IAC1C,CAAK;AAAA,EACH;AAAA,EACA,mBAAmBD,GAASC,GAAS;AACnC,WAAO,KAAK,UAAU,mBAAmB,KAAK,MAAMD,GAAS;AAAA,MAC3D,GAAGC;AAAA,MACH,UAAUA,GAAS,YAAY,KAAK;AAAA,IAC1C,CAAK;AAAA,EACH;AAAA;AAAA;AAAA,EAMA,eAAe;AACb,UAAMC,IAAS,KAAK,kBAAiB,GAC/BX,IAAOW,IAAS,IAAI,MAAM,KAC1BV,IAAQ,OAAO,KAAK,MAAM,KAAK,IAAIU,CAAM,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG,GACjET,IAAU,OAAO,KAAK,IAAIS,CAAM,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AAC7D,WAAO,CAACX,GAAMC,GAAOC,CAAO;AAAA,EAC9B;AAAA;AAAA,EAIA,aAAaU,GAAU;AACrB,WAAO,IAAIhB,EAAO,CAAC,MAAMgB,CAAQ;AAAA,EACnC;AAAA;AAAA,EAIA,CAAC,uBAAO,IAAI,mBAAmB,CAAC,EAAER,GAAM;AACtC,WAAO,IAAIR,EAAO,CAAC,IAAI,KAAKQ,CAAI,GAAG,KAAK,QAAQ;AAAA,EAClD;AAAA;AAGF;","x_google_ignoreList":[0]}
package/dist/index176.js CHANGED
@@ -1,9 +1,12 @@
1
- class a {
2
- constructor(t, s) {
3
- this.date = t, this.weeks = s;
4
- }
1
+ function o(e, n, t = "long") {
2
+ return new Intl.DateTimeFormat("en-US", {
3
+ // Enforces engine to render the time. Without the option JavaScriptCore omits it.
4
+ hour: "numeric",
5
+ timeZone: e,
6
+ timeZoneName: t
7
+ }).format(n).split(/\s/g).slice(2).join(" ");
5
8
  }
6
9
  export {
7
- a as CalendarMonth
10
+ o as tzName
8
11
  };
9
12
  //# sourceMappingURL=index176.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index176.js","sources":["../../../node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js"],"sourcesContent":["/**\n * Represents a month in a calendar year.\n *\n * A `CalendarMonth` contains the weeks within the month and the date of the\n * month.\n */\nexport class CalendarMonth {\n constructor(month, weeks) {\n this.date = month;\n this.weeks = weeks;\n }\n}\n"],"names":["CalendarMonth","month","weeks"],"mappings":"AAMO,MAAMA,EAAc;AAAA,EACvB,YAAYC,GAAOC,GAAO;AACtB,SAAK,OAAOD,GACZ,KAAK,QAAQC;AAAA,EACjB;AACJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index176.js","sources":["../../../node_modules/@date-fns/tz/tzName/index.js"],"sourcesContent":["/**\n * Time zone name format.\n */\n\n/**\n * The function returns the time zone name for the given date in the specified\n * time zone.\n *\n * It uses the `Intl.DateTimeFormat` API and by default outputs the time zone\n * name in a long format, e.g. \"Pacific Standard Time\" or\n * \"Singapore Standard Time\".\n *\n * It is possible to specify the format as the third argument using one of the following options\n *\n * - \"short\": e.g. \"EDT\" or \"GMT+8\".\n * - \"long\": e.g. \"Eastern Daylight Time\".\n * - \"shortGeneric\": e.g. \"ET\" or \"Singapore Time\".\n * - \"longGeneric\": e.g. \"Eastern Time\" or \"Singapore Standard Time\".\n *\n * These options correspond to TR35 tokens `z..zzz`, `zzzz`, `v`, and `vvvv` respectively: https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date object to get the time zone name for\n * @param format - Optional format of the time zone name. Defaults to \"long\". Can be \"short\", \"long\", \"shortGeneric\", or \"longGeneric\".\n *\n * @returns Time zone name (e.g. \"Singapore Standard Time\")\n */\nexport function tzName(timeZone, date, format = \"long\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n // Enforces engine to render the time. Without the option JavaScriptCore omits it.\n hour: \"numeric\",\n timeZone: timeZone,\n timeZoneName: format\n }).format(date).split(/\\s/g) // Format.JS uses non-breaking spaces\n .slice(2) // Skip the hour and AM/PM parts\n .join(\" \");\n}"],"names":["tzName","timeZone","date","format"],"mappings":"AA2BO,SAASA,EAAOC,GAAUC,GAAMC,IAAS,QAAQ;AACtD,SAAO,IAAI,KAAK,eAAe,SAAS;AAAA;AAAA,IAEtC,MAAM;AAAA,IACN,UAAUF;AAAA,IACV,cAAcE;AAAA,EAClB,CAAG,EAAE,OAAOD,CAAI,EAAE,MAAM,KAAK,EAC1B,MAAM,CAAC,EACP,KAAK,GAAG;AACX;","x_google_ignoreList":[0]}
package/dist/index177.js CHANGED
@@ -1,9 +1,70 @@
1
- class t {
2
- constructor(e, s) {
3
- this.days = s, this.weekNumber = e;
1
+ import { tzOffset as s } from "./index178.js";
2
+ class n extends Date {
3
+ //#region static
4
+ constructor(...e) {
5
+ super(), e.length > 1 && typeof e[e.length - 1] == "string" && (this.timeZone = e.pop()), this.internal = /* @__PURE__ */ new Date(), isNaN(s(this.timeZone, this)) ? this.setTime(NaN) : e.length ? typeof e[0] == "number" && (e.length === 1 || e.length === 2 && typeof e[1] != "number") ? this.setTime(e[0]) : typeof e[0] == "string" ? this.setTime(+new Date(e[0])) : e[0] instanceof Date ? this.setTime(+e[0]) : (this.setTime(+new Date(...e)), U(this), a(this)) : this.setTime(Date.now());
6
+ }
7
+ static tz(e, ...o) {
8
+ return o.length ? new n(...o, e) : new n(Date.now(), e);
9
+ }
10
+ //#endregion
11
+ //#region time zone
12
+ withTimeZone(e) {
13
+ return new n(+this, e);
14
+ }
15
+ getTimezoneOffset() {
16
+ const e = -s(this.timeZone, this);
17
+ return e > 0 ? Math.floor(e) : Math.ceil(e);
18
+ }
19
+ //#endregion
20
+ //#region time
21
+ setTime(e) {
22
+ return Date.prototype.setTime.apply(this, arguments), a(this), +this;
23
+ }
24
+ //#endregion
25
+ //#region date-fns integration
26
+ [/* @__PURE__ */ Symbol.for("constructDateFrom")](e) {
27
+ return new n(+new Date(e), this.timeZone);
28
+ }
29
+ //#endregion
30
+ }
31
+ const D = /^(get|set)(?!UTC)/;
32
+ Object.getOwnPropertyNames(Date.prototype).forEach((t) => {
33
+ if (!D.test(t)) return;
34
+ const e = t.replace(D, "$1UTC");
35
+ n.prototype[e] && (t.startsWith("get") ? n.prototype[t] = function() {
36
+ return this.internal[e]();
37
+ } : (n.prototype[t] = function() {
38
+ return Date.prototype[e].apply(this.internal, arguments), H(this), +this;
39
+ }, n.prototype[e] = function() {
40
+ return Date.prototype[e].apply(this, arguments), a(this), +this;
41
+ }));
42
+ });
43
+ function a(t) {
44
+ t.internal.setTime(+t), t.internal.setUTCSeconds(t.internal.getUTCSeconds() - Math.round(-s(t.timeZone, t) * 60));
45
+ }
46
+ function H(t) {
47
+ Date.prototype.setFullYear.call(t, t.internal.getUTCFullYear(), t.internal.getUTCMonth(), t.internal.getUTCDate()), Date.prototype.setHours.call(t, t.internal.getUTCHours(), t.internal.getUTCMinutes(), t.internal.getUTCSeconds(), t.internal.getUTCMilliseconds()), U(t);
48
+ }
49
+ function U(t) {
50
+ const e = s(t.timeZone, t), o = e > 0 ? Math.floor(e) : Math.ceil(e), i = /* @__PURE__ */ new Date(+t);
51
+ i.setUTCHours(i.getUTCHours() - 1);
52
+ const r = -(/* @__PURE__ */ new Date(+t)).getTimezoneOffset(), g = -(/* @__PURE__ */ new Date(+i)).getTimezoneOffset(), m = r - g, M = Date.prototype.getHours.apply(t) !== t.internal.getUTCHours();
53
+ m && M && t.internal.setUTCMinutes(t.internal.getUTCMinutes() + m);
54
+ const f = r - o;
55
+ f && Date.prototype.setUTCMinutes.call(t, Date.prototype.getUTCMinutes.call(t) + f);
56
+ const l = /* @__PURE__ */ new Date(+t);
57
+ l.setUTCSeconds(0);
58
+ const y = r > 0 ? l.getSeconds() : (l.getSeconds() - 60) % 60, c = Math.round(-(s(t.timeZone, t) * 60)) % 60;
59
+ (c || y) && (t.internal.setUTCSeconds(t.internal.getUTCSeconds() + c), Date.prototype.setUTCSeconds.call(t, Date.prototype.getUTCSeconds.call(t) + c + y));
60
+ const p = s(t.timeZone, t), u = p > 0 ? Math.floor(p) : Math.ceil(p), w = -(/* @__PURE__ */ new Date(+t)).getTimezoneOffset() - u, O = u !== o, C = w - f;
61
+ if (O && C) {
62
+ Date.prototype.setUTCMinutes.call(t, Date.prototype.getUTCMinutes.call(t) + C);
63
+ const h = s(t.timeZone, t), S = h > 0 ? Math.floor(h) : Math.ceil(h), T = u - S;
64
+ T && (t.internal.setUTCMinutes(t.internal.getUTCMinutes() + T), Date.prototype.setUTCMinutes.call(t, Date.prototype.getUTCMinutes.call(t) + T));
4
65
  }
5
66
  }
6
67
  export {
7
- t as CalendarWeek
68
+ n as TZDateMini
8
69
  };
9
70
  //# sourceMappingURL=index177.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index177.js","sources":["../../../node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js"],"sourcesContent":["/**\n * Represents a week in a calendar month.\n *\n * A `CalendarWeek` contains the days within the week and the week number.\n */\nexport class CalendarWeek {\n constructor(weekNumber, days) {\n this.days = days;\n this.weekNumber = weekNumber;\n }\n}\n"],"names":["CalendarWeek","weekNumber","days"],"mappings":"AAKO,MAAMA,EAAa;AAAA,EACtB,YAAYC,GAAYC,GAAM;AAC1B,SAAK,OAAOA,GACZ,KAAK,aAAaD;AAAA,EACtB;AACJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index177.js","sources":["../../../node_modules/@date-fns/tz/date/mini.js"],"sourcesContent":["import { tzOffset } from \"../tzOffset/index.js\";\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n this.setTime(+args[0]);\n } else {\n this.setTime(+new Date(...args));\n adjustToSystemTZ(this, NaN);\n syncToInternal(this);\n }\n }\n }\n static tz(tz, ...args) {\n return args.length ? new TZDateMini(...args, tz) : new TZDateMini(Date.now(), tz);\n }\n\n //#endregion\n\n //#region time zone\n\n withTimeZone(timeZone) {\n return new TZDateMini(+this, timeZone);\n }\n getTimezoneOffset() {\n const offset = -tzOffset(this.timeZone, this);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(time) {\n Date.prototype.setTime.apply(this, arguments);\n syncToInternal(this);\n return +this;\n }\n\n //#endregion\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDateMini(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}\n\n// Assign getters and setters\nconst re = /^(get|set)(?!UTC)/;\nObject.getOwnPropertyNames(Date.prototype).forEach(method => {\n if (!re.test(method)) return;\n const utcMethod = method.replace(re, \"$1UTC\");\n // Filter out methods without UTC counterparts\n if (!TZDateMini.prototype[utcMethod]) return;\n if (method.startsWith(\"get\")) {\n // Delegate to internal date's UTC method\n TZDateMini.prototype[method] = function () {\n return this.internal[utcMethod]();\n };\n } else {\n // Assign regular setter\n TZDateMini.prototype[method] = function () {\n Date.prototype[utcMethod].apply(this.internal, arguments);\n syncFromInternal(this);\n return +this;\n };\n\n // Assign UTC setter\n TZDateMini.prototype[utcMethod] = function () {\n Date.prototype[utcMethod].apply(this, arguments);\n syncToInternal(this);\n return +this;\n };\n }\n});\n\n/**\n * Function syncs time to internal date, applying the time zone offset.\n *\n * @param {Date} date - Date to sync\n */\nfunction syncToInternal(date) {\n date.internal.setTime(+date);\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * Function syncs the internal date UTC values to the date. It allows to get\n * accurate timestamp value.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // First we transpose the internal values\n Date.prototype.setFullYear.call(date, date.internal.getUTCFullYear(), date.internal.getUTCMonth(), date.internal.getUTCDate());\n Date.prototype.setHours.call(date, date.internal.getUTCHours(), date.internal.getUTCMinutes(), date.internal.getUTCSeconds(), date.internal.getUTCMilliseconds());\n\n // Now we have to adjust the date to the system time zone\n adjustToSystemTZ(date);\n}\n\n/**\n * Function adjusts the date to the system time zone. It uses the time zone\n * differences to calculate the offset and adjust the date.\n *\n * @param {Date} date - Date to adjust\n */\nfunction adjustToSystemTZ(date) {\n // Save the time zone offset before all the adjustments\n const baseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const offset = baseOffset > 0 ? Math.floor(baseOffset) : Math.ceil(baseOffset);\n //#region System DST adjustment\n\n // The biggest problem with using the system time zone is that when we create\n // a date from internal values stored in UTC, the system time zone might end\n // up on the DST hour:\n //\n // $ TZ=America/New_York node\n // > new Date(2020, 2, 8, 1).toString()\n // 'Sun Mar 08 2020 01:00:00 GMT-0500 (Eastern Standard Time)'\n // > new Date(2020, 2, 8, 2).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 3).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 4).toString()\n // 'Sun Mar 08 2020 04:00:00 GMT-0400 (Eastern Daylight Time)'\n //\n // Here we get the same hour for both 2 and 3, because the system time zone\n // has DST beginning at 8 March 2020, 2 a.m. and jumps to 3 a.m. So we have\n // to adjust the internal date to reflect that.\n //\n // However we want to adjust only if that's the DST hour the change happenes,\n // not the hour where DST moves to.\n\n // We calculate the previous hour to see if the time zone offset has changed\n // and we have landed on the DST hour.\n const prevHour = new Date(+date);\n // We use UTC methods here as we don't want to land on the same hour again\n // in case of DST.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Calculate if we are on the system DST hour.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n // Detect the DST shift. System DST change will occur both on\n const dstShift = Date.prototype.getHours.apply(date) !== date.internal.getUTCHours();\n\n // Move the internal date when we are on the system DST hour.\n if (systemDSTChange && dstShift) date.internal.setUTCMinutes(date.internal.getUTCMinutes() + systemDSTChange);\n\n //#endregion\n\n //#region System diff adjustment\n\n // Now we need to adjust the date, since we just applied internal values.\n // We need to calculate the difference between the system and date time zones\n // and apply it to the date.\n\n const offsetDiff = systemOffset - offset;\n if (offsetDiff) Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds System diff adjustment\n\n const systemDate = new Date(+date);\n // Set the UTC seconds to 0 to isolate the timezone offset in seconds.\n systemDate.setUTCSeconds(0);\n // For negative systemOffset, invert the seconds.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Calculate the seconds offset based on the timezone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset) {\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() + secondsOffset);\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n }\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n const postBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const postOffset = postBaseOffset > 0 ? Math.floor(postBaseOffset) : Math.ceil(postBaseOffset);\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n const postOffsetDiff = postSystemOffset - postOffset;\n const offsetChanged = postOffset !== offset;\n const postDiff = postOffsetDiff - offsetDiff;\n if (offsetChanged && postDiff) {\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Now we need to check if got offset change during the post-adjustment.\n // If so, we also need both dates to reflect that.\n\n const newBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const newOffset = newBaseOffset > 0 ? Math.floor(newBaseOffset) : Math.ceil(newBaseOffset);\n const offsetChange = postOffset - newOffset;\n if (offsetChange) {\n date.internal.setUTCMinutes(date.internal.getUTCMinutes() + offsetChange);\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\n}"],"names":["TZDateMini","args","tzOffset","adjustToSystemTZ","syncToInternal","tz","timeZone","offset","time","date","re","method","utcMethod","syncFromInternal","baseOffset","prevHour","systemOffset","prevHourSystemOffset","systemDSTChange","dstShift","offsetDiff","systemDate","systemSecondsOffset","secondsOffset","postBaseOffset","postOffset","postOffsetDiff","offsetChanged","postDiff","newBaseOffset","newOffset","offsetChange"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index178.js CHANGED
@@ -1,62 +1,23 @@
1
- import { tzName as r } from "./index214.js";
2
- import { TZDateMini as s } from "./index179.js";
3
- class o extends s {
4
- //#region static
5
- static tz(t, ...e) {
6
- return e.length ? new o(...e, t) : new o(Date.now(), t);
1
+ const e = {}, s = {};
2
+ function u(t, r) {
3
+ try {
4
+ const n = (e[t] ||= new Intl.DateTimeFormat("en-US", {
5
+ timeZone: t,
6
+ timeZoneName: "longOffset"
7
+ }).format)(r).split("GMT")[1];
8
+ return n in s ? s[n] : o(n, n.split(":"));
9
+ } catch {
10
+ if (t in s) return s[t];
11
+ const f = t?.match(a);
12
+ return f ? o(t, f.slice(1)) : NaN;
7
13
  }
8
- //#endregion
9
- //#region representation
10
- toISOString() {
11
- const [t, e, n] = this.tzComponents(), i = `${t}${e}:${n}`;
12
- return this.internal.toISOString().slice(0, -1) + i;
13
- }
14
- toString() {
15
- return `${this.toDateString()} ${this.toTimeString()}`;
16
- }
17
- toDateString() {
18
- const [t, e, n, i] = this.internal.toUTCString().split(" ");
19
- return `${t?.slice(0, -1)} ${n} ${e} ${i}`;
20
- }
21
- toTimeString() {
22
- const t = this.internal.toUTCString().split(" ")[4], [e, n, i] = this.tzComponents();
23
- return `${t} GMT${e}${n}${i} (${r(this.timeZone, this)})`;
24
- }
25
- toLocaleString(t, e) {
26
- return Date.prototype.toLocaleString.call(this, t, {
27
- ...e,
28
- timeZone: e?.timeZone || this.timeZone
29
- });
30
- }
31
- toLocaleDateString(t, e) {
32
- return Date.prototype.toLocaleDateString.call(this, t, {
33
- ...e,
34
- timeZone: e?.timeZone || this.timeZone
35
- });
36
- }
37
- toLocaleTimeString(t, e) {
38
- return Date.prototype.toLocaleTimeString.call(this, t, {
39
- ...e,
40
- timeZone: e?.timeZone || this.timeZone
41
- });
42
- }
43
- //#endregion
44
- //#region private
45
- tzComponents() {
46
- const t = this.getTimezoneOffset(), e = t > 0 ? "-" : "+", n = String(Math.floor(Math.abs(t) / 60)).padStart(2, "0"), i = String(Math.abs(t) % 60).padStart(2, "0");
47
- return [e, n, i];
48
- }
49
- //#endregion
50
- withTimeZone(t) {
51
- return new o(+this, t);
52
- }
53
- //#region date-fns integration
54
- [/* @__PURE__ */ Symbol.for("constructDateFrom")](t) {
55
- return new o(+new Date(t), this.timeZone);
56
- }
57
- //#endregion
14
+ }
15
+ const a = /([+-]\d\d):?(\d\d)?/;
16
+ function o(t, r) {
17
+ const f = +(r[0] || 0), n = +(r[1] || 0), c = +(r[2] || 0) / 60;
18
+ return s[t] = f * 60 + n > 0 ? f * 60 + n + c : f * 60 - n - c;
58
19
  }
59
20
  export {
60
- o as TZDate
21
+ u as tzOffset
61
22
  };
62
23
  //# sourceMappingURL=index178.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index178.js","sources":["../../../node_modules/@date-fns/tz/date/index.js"],"sourcesContent":["import { tzName } from \"../tzName/index.js\";\nimport { TZDateMini } from \"./mini.js\";\nexport class TZDate extends TZDateMini {\n //#region static\n\n static tz(tz, ...args) {\n return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);\n }\n\n //#endregion\n\n //#region representation\n\n toISOString() {\n const [sign, hours, minutes] = this.tzComponents();\n const tz = `${sign}${hours}:${minutes}`;\n return this.internal.toISOString().slice(0, -1) + tz;\n }\n toString() {\n // \"Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)\";\n return `${this.toDateString()} ${this.toTimeString()}`;\n }\n toDateString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const [day, date, month, year] = this.internal.toUTCString().split(\" \");\n // \"Tue Aug 13 2024\"\n return `${day?.slice(0, -1) /* Remove \",\" */} ${month} ${date} ${year}`;\n }\n toTimeString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const time = this.internal.toUTCString().split(\" \")[4];\n const [sign, hours, minutes] = this.tzComponents();\n // \"07:42:23 GMT+0800 (Singapore Standard Time)\"\n return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;\n }\n toLocaleString(locales, options) {\n return Date.prototype.toLocaleString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleDateString(locales, options) {\n return Date.prototype.toLocaleDateString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleTimeString(locales, options) {\n return Date.prototype.toLocaleTimeString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n\n //#endregion\n\n //#region private\n\n tzComponents() {\n const offset = this.getTimezoneOffset();\n const sign = offset > 0 ? \"-\" : \"+\";\n const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, \"0\");\n const minutes = String(Math.abs(offset) % 60).padStart(2, \"0\");\n return [sign, hours, minutes];\n }\n\n //#endregion\n\n withTimeZone(timeZone) {\n return new TZDate(+this, timeZone);\n }\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDate(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}"],"names":["TZDate","TZDateMini","tz","args","sign","hours","minutes","day","date","month","year","time","tzName","locales","options","offset","timeZone"],"mappings":";;AAEO,MAAMA,UAAeC,EAAW;AAAA;AAAA,EAGrC,OAAO,GAAGC,MAAOC,GAAM;AACrB,WAAOA,EAAK,SAAS,IAAIH,EAAO,GAAGG,GAAMD,CAAE,IAAI,IAAIF,EAAO,KAAK,IAAG,GAAIE,CAAE;AAAA,EAC1E;AAAA;AAAA;AAAA,EAMA,cAAc;AACZ,UAAM,CAACE,GAAMC,GAAOC,CAAO,IAAI,KAAK,aAAY,GAC1CJ,IAAK,GAAGE,CAAI,GAAGC,CAAK,IAAIC,CAAO;AACrC,WAAO,KAAK,SAAS,YAAW,EAAG,MAAM,GAAG,EAAE,IAAIJ;AAAA,EACpD;AAAA,EACA,WAAW;AAET,WAAO,GAAG,KAAK,aAAY,CAAE,IAAI,KAAK,aAAY,CAAE;AAAA,EACtD;AAAA,EACA,eAAe;AAEb,UAAM,CAACK,GAAKC,GAAMC,GAAOC,CAAI,IAAI,KAAK,SAAS,cAAc,MAAM,GAAG;AAEtE,WAAO,GAAGH,GAAK,MAAM,GAAG,EAAE,CAAC,IAAqBE,CAAK,IAAID,CAAI,IAAIE,CAAI;AAAA,EACvE;AAAA,EACA,eAAe;AAEb,UAAMC,IAAO,KAAK,SAAS,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC,GAC/C,CAACP,GAAMC,GAAOC,CAAO,IAAI,KAAK,aAAY;AAEhD,WAAO,GAAGK,CAAI,OAAOP,CAAI,GAAGC,CAAK,GAAGC,CAAO,KAAKM,EAAO,KAAK,UAAU,IAAI,CAAC;AAAA,EAC7E;AAAA,EACA,eAAeC,GAASC,GAAS;AAC/B,WAAO,KAAK,UAAU,eAAe,KAAK,MAAMD,GAAS;AAAA,MACvD,GAAGC;AAAA,MACH,UAAUA,GAAS,YAAY,KAAK;AAAA,IAC1C,CAAK;AAAA,EACH;AAAA,EACA,mBAAmBD,GAASC,GAAS;AACnC,WAAO,KAAK,UAAU,mBAAmB,KAAK,MAAMD,GAAS;AAAA,MAC3D,GAAGC;AAAA,MACH,UAAUA,GAAS,YAAY,KAAK;AAAA,IAC1C,CAAK;AAAA,EACH;AAAA,EACA,mBAAmBD,GAASC,GAAS;AACnC,WAAO,KAAK,UAAU,mBAAmB,KAAK,MAAMD,GAAS;AAAA,MAC3D,GAAGC;AAAA,MACH,UAAUA,GAAS,YAAY,KAAK;AAAA,IAC1C,CAAK;AAAA,EACH;AAAA;AAAA;AAAA,EAMA,eAAe;AACb,UAAMC,IAAS,KAAK,kBAAiB,GAC/BX,IAAOW,IAAS,IAAI,MAAM,KAC1BV,IAAQ,OAAO,KAAK,MAAM,KAAK,IAAIU,CAAM,IAAI,EAAE,CAAC,EAAE,SAAS,GAAG,GAAG,GACjET,IAAU,OAAO,KAAK,IAAIS,CAAM,IAAI,EAAE,EAAE,SAAS,GAAG,GAAG;AAC7D,WAAO,CAACX,GAAMC,GAAOC,CAAO;AAAA,EAC9B;AAAA;AAAA,EAIA,aAAaU,GAAU;AACrB,WAAO,IAAIhB,EAAO,CAAC,MAAMgB,CAAQ;AAAA,EACnC;AAAA;AAAA,EAIA,CAAC,uBAAO,IAAI,mBAAmB,CAAC,EAAER,GAAM;AACtC,WAAO,IAAIR,EAAO,CAAC,IAAI,KAAKQ,CAAI,GAAG,KAAK,QAAQ;AAAA,EAClD;AAAA;AAGF;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index178.js","sources":["../../../node_modules/@date-fns/tz/tzOffset/index.js"],"sourcesContent":["const offsetFormatCache = {};\nconst offsetCache = {};\n\n/**\n * The function extracts UTC offset in minutes from the given date in specified\n * time zone.\n *\n * Unlike `Date.prototype.getTimezoneOffset`, this function returns the value\n * mirrored to the sign of the offset in the time zone. For Asia/Singapore\n * (UTC+8), `tzOffset` returns 480, while `getTimezoneOffset` returns -480.\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date to check the offset for\n *\n * @returns UTC offset in minutes\n */\nexport function tzOffset(timeZone, date) {\n try {\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n const offsetStr = format(date).split(\"GMT\")[1];\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support ±HH:MM/±HHMM/±HH\n // See: https://github.com/nodejs/node/issues/53419\n if (timeZone in offsetCache) return offsetCache[timeZone];\n const captures = timeZone?.match(offsetRe);\n if (captures) return calcOffset(timeZone, captures.slice(1));\n return NaN;\n }\n}\nconst offsetRe = /([+-]\\d\\d):?(\\d\\d)?/;\nfunction calcOffset(cacheStr, values) {\n const hours = +(values[0] || 0);\n const minutes = +(values[1] || 0);\n // Convert seconds to minutes by dividing by 60 to keep the function return in minutes.\n const seconds = +(values[2] || 0) / 60;\n return offsetCache[cacheStr] = hours * 60 + minutes > 0 ? hours * 60 + minutes + seconds : hours * 60 - minutes - seconds;\n}"],"names":["offsetFormatCache","offsetCache","tzOffset","timeZone","date","offsetStr","calcOffset","captures","offsetRe","cacheStr","values","hours","minutes","seconds"],"mappings":"AAAA,MAAMA,IAAoB,CAAA,GACpBC,IAAc,CAAA;AAeb,SAASC,EAASC,GAAUC,GAAM;AACvC,MAAI;AAKF,UAAMC,KAJSL,EAAkBG,CAAQ,MAAM,IAAI,KAAK,eAAe,SAAS;AAAA,MAC9E,UAAAA;AAAA,MACA,cAAc;AAAA,IACpB,CAAK,EAAE,QACsBC,CAAI,EAAE,MAAM,KAAK,EAAE,CAAC;AAC7C,WAAIC,KAAaJ,IAAoBA,EAAYI,CAAS,IACnDC,EAAWD,GAAWA,EAAU,MAAM,GAAG,CAAC;AAAA,EACnD,QAAQ;AAGN,QAAIF,KAAYF,EAAa,QAAOA,EAAYE,CAAQ;AACxD,UAAMI,IAAWJ,GAAU,MAAMK,CAAQ;AACzC,WAAID,IAAiBD,EAAWH,GAAUI,EAAS,MAAM,CAAC,CAAC,IACpD;AAAA,EACT;AACF;AACA,MAAMC,IAAW;AACjB,SAASF,EAAWG,GAAUC,GAAQ;AACpC,QAAMC,IAAQ,EAAED,EAAO,CAAC,KAAK,IACvBE,IAAU,EAAEF,EAAO,CAAC,KAAK,IAEzBG,IAAU,EAAEH,EAAO,CAAC,KAAK,KAAK;AACpC,SAAOT,EAAYQ,CAAQ,IAAIE,IAAQ,KAAKC,IAAU,IAAID,IAAQ,KAAKC,IAAUC,IAAUF,IAAQ,KAAKC,IAAUC;AACpH;","x_google_ignoreList":[0]}
package/dist/index179.js CHANGED
@@ -1,70 +1,20 @@
1
- import { tzOffset as s } from "./index215.js";
2
- class n extends Date {
3
- //#region static
4
- constructor(...e) {
5
- super(), e.length > 1 && typeof e[e.length - 1] == "string" && (this.timeZone = e.pop()), this.internal = /* @__PURE__ */ new Date(), isNaN(s(this.timeZone, this)) ? this.setTime(NaN) : e.length ? typeof e[0] == "number" && (e.length === 1 || e.length === 2 && typeof e[1] != "number") ? this.setTime(e[0]) : typeof e[0] == "string" ? this.setTime(+new Date(e[0])) : e[0] instanceof Date ? this.setTime(+e[0]) : (this.setTime(+new Date(...e)), U(this), a(this)) : this.setTime(Date.now());
1
+ import { defaultDateLib as o } from "./index103.js";
2
+ class y {
3
+ constructor(t, i, s = o) {
4
+ this.date = t, this.displayMonth = i, this.outside = !!(i && !s.isSameMonth(t, i)), this.dateLib = s, this.isoDate = s.format(t, "yyyy-MM-dd"), this.displayMonthId = s.format(i, "yyyy-MM"), this.dateMonthId = s.format(t, "yyyy-MM");
6
5
  }
7
- static tz(e, ...o) {
8
- return o.length ? new n(...o, e) : new n(Date.now(), e);
9
- }
10
- //#endregion
11
- //#region time zone
12
- withTimeZone(e) {
13
- return new n(+this, e);
14
- }
15
- getTimezoneOffset() {
16
- const e = -s(this.timeZone, this);
17
- return e > 0 ? Math.floor(e) : Math.ceil(e);
18
- }
19
- //#endregion
20
- //#region time
21
- setTime(e) {
22
- return Date.prototype.setTime.apply(this, arguments), a(this), +this;
23
- }
24
- //#endregion
25
- //#region date-fns integration
26
- [/* @__PURE__ */ Symbol.for("constructDateFrom")](e) {
27
- return new n(+new Date(e), this.timeZone);
28
- }
29
- //#endregion
30
- }
31
- const D = /^(get|set)(?!UTC)/;
32
- Object.getOwnPropertyNames(Date.prototype).forEach((t) => {
33
- if (!D.test(t)) return;
34
- const e = t.replace(D, "$1UTC");
35
- n.prototype[e] && (t.startsWith("get") ? n.prototype[t] = function() {
36
- return this.internal[e]();
37
- } : (n.prototype[t] = function() {
38
- return Date.prototype[e].apply(this.internal, arguments), H(this), +this;
39
- }, n.prototype[e] = function() {
40
- return Date.prototype[e].apply(this, arguments), a(this), +this;
41
- }));
42
- });
43
- function a(t) {
44
- t.internal.setTime(+t), t.internal.setUTCSeconds(t.internal.getUTCSeconds() - Math.round(-s(t.timeZone, t) * 60));
45
- }
46
- function H(t) {
47
- Date.prototype.setFullYear.call(t, t.internal.getUTCFullYear(), t.internal.getUTCMonth(), t.internal.getUTCDate()), Date.prototype.setHours.call(t, t.internal.getUTCHours(), t.internal.getUTCMinutes(), t.internal.getUTCSeconds(), t.internal.getUTCMilliseconds()), U(t);
48
- }
49
- function U(t) {
50
- const e = s(t.timeZone, t), o = e > 0 ? Math.floor(e) : Math.ceil(e), i = /* @__PURE__ */ new Date(+t);
51
- i.setUTCHours(i.getUTCHours() - 1);
52
- const r = -(/* @__PURE__ */ new Date(+t)).getTimezoneOffset(), g = -(/* @__PURE__ */ new Date(+i)).getTimezoneOffset(), m = r - g, M = Date.prototype.getHours.apply(t) !== t.internal.getUTCHours();
53
- m && M && t.internal.setUTCMinutes(t.internal.getUTCMinutes() + m);
54
- const f = r - o;
55
- f && Date.prototype.setUTCMinutes.call(t, Date.prototype.getUTCMinutes.call(t) + f);
56
- const l = /* @__PURE__ */ new Date(+t);
57
- l.setUTCSeconds(0);
58
- const y = r > 0 ? l.getSeconds() : (l.getSeconds() - 60) % 60, c = Math.round(-(s(t.timeZone, t) * 60)) % 60;
59
- (c || y) && (t.internal.setUTCSeconds(t.internal.getUTCSeconds() + c), Date.prototype.setUTCSeconds.call(t, Date.prototype.getUTCSeconds.call(t) + c + y));
60
- const p = s(t.timeZone, t), u = p > 0 ? Math.floor(p) : Math.ceil(p), w = -(/* @__PURE__ */ new Date(+t)).getTimezoneOffset() - u, O = u !== o, C = w - f;
61
- if (O && C) {
62
- Date.prototype.setUTCMinutes.call(t, Date.prototype.getUTCMinutes.call(t) + C);
63
- const h = s(t.timeZone, t), S = h > 0 ? Math.floor(h) : Math.ceil(h), T = u - S;
64
- T && (t.internal.setUTCMinutes(t.internal.getUTCMinutes() + T), Date.prototype.setUTCMinutes.call(t, Date.prototype.getUTCMinutes.call(t) + T));
6
+ /**
7
+ * Checks if this day is equal to another `CalendarDay`, considering both the
8
+ * date and the displayed month.
9
+ *
10
+ * @param day The `CalendarDay` to compare with.
11
+ * @returns `true` if the days are equal, otherwise `false`.
12
+ */
13
+ isEqualTo(t) {
14
+ return this.dateLib.isSameDay(t.date, this.date) && this.dateLib.isSameMonth(t.displayMonth, this.displayMonth);
65
15
  }
66
16
  }
67
17
  export {
68
- n as TZDateMini
18
+ y as CalendarDay
69
19
  };
70
20
  //# sourceMappingURL=index179.js.map