@raystack/apsara 0.51.1 → 0.53.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 (316) hide show
  1. package/dist/components/accordion/__tests__/accordion.test.d.ts +2 -0
  2. package/dist/components/accordion/__tests__/accordion.test.d.ts.map +1 -0
  3. package/dist/components/accordion/accordion-content.cjs +14 -0
  4. package/dist/components/accordion/accordion-content.cjs.map +1 -0
  5. package/dist/components/accordion/accordion-content.d.ts +8 -0
  6. package/dist/components/accordion/accordion-content.d.ts.map +1 -0
  7. package/dist/components/accordion/accordion-content.js +12 -0
  8. package/dist/components/accordion/accordion-content.js.map +1 -0
  9. package/dist/components/accordion/accordion-item.cjs +14 -0
  10. package/dist/components/accordion/accordion-item.cjs.map +1 -0
  11. package/dist/components/accordion/accordion-item.d.ts +8 -0
  12. package/dist/components/accordion/accordion-item.d.ts.map +1 -0
  13. package/dist/components/accordion/accordion-item.js +12 -0
  14. package/dist/components/accordion/accordion-item.js.map +1 -0
  15. package/dist/components/accordion/accordion-root.cjs +26 -0
  16. package/dist/components/accordion/accordion-root.cjs.map +1 -0
  17. package/dist/components/accordion/accordion-root.d.ts +11 -0
  18. package/dist/components/accordion/accordion-root.d.ts.map +1 -0
  19. package/dist/components/accordion/accordion-root.js +24 -0
  20. package/dist/components/accordion/accordion-root.js.map +1 -0
  21. package/dist/components/accordion/accordion-trigger.cjs +15 -0
  22. package/dist/components/accordion/accordion-trigger.cjs.map +1 -0
  23. package/dist/components/accordion/accordion-trigger.d.ts +8 -0
  24. package/dist/components/accordion/accordion-trigger.d.ts.map +1 -0
  25. package/dist/components/accordion/accordion-trigger.js +13 -0
  26. package/dist/components/accordion/accordion-trigger.js.map +1 -0
  27. package/dist/components/accordion/accordion.cjs +15 -0
  28. package/dist/components/accordion/accordion.cjs.map +1 -0
  29. package/dist/components/accordion/accordion.d.ts +6 -0
  30. package/dist/components/accordion/accordion.d.ts.map +1 -0
  31. package/dist/components/accordion/accordion.js +13 -0
  32. package/dist/components/accordion/accordion.js.map +1 -0
  33. package/dist/components/accordion/accordion.module.css.cjs +8 -0
  34. package/dist/components/accordion/accordion.module.css.cjs.map +1 -0
  35. package/dist/components/accordion/accordion.module.css.js +4 -0
  36. package/dist/components/accordion/accordion.module.css.js.map +1 -0
  37. package/dist/components/accordion/index.d.ts +2 -0
  38. package/dist/components/accordion/index.d.ts.map +1 -0
  39. package/dist/components/amount/__tests__/amount.test.d.ts +2 -0
  40. package/dist/components/amount/__tests__/amount.test.d.ts.map +1 -0
  41. package/dist/components/announcement-bar/__tests__/announcement-bar.test.d.ts +2 -0
  42. package/dist/components/announcement-bar/__tests__/announcement-bar.test.d.ts.map +1 -0
  43. package/dist/components/avatar/__tests__/avatar.test.d.ts +2 -0
  44. package/dist/components/avatar/__tests__/avatar.test.d.ts.map +1 -0
  45. package/dist/components/badge/__tests__/badge.test.d.ts +2 -0
  46. package/dist/components/badge/__tests__/badge.test.d.ts.map +1 -0
  47. package/dist/components/box/__tests__/box.test.d.ts +2 -0
  48. package/dist/components/box/__tests__/box.test.d.ts.map +1 -0
  49. package/dist/components/breadcrumb/__tests__/breadcrumb.test.d.ts +2 -0
  50. package/dist/components/breadcrumb/__tests__/breadcrumb.test.d.ts.map +1 -0
  51. package/dist/components/breadcrumb/breadcrumb-item.cjs +1 -1
  52. package/dist/components/breadcrumb/breadcrumb-item.cjs.map +1 -1
  53. package/dist/components/breadcrumb/breadcrumb-item.js +1 -1
  54. package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -1
  55. package/dist/components/breadcrumb/breadcrumb-misc.cjs +2 -2
  56. package/dist/components/breadcrumb/breadcrumb-misc.cjs.map +1 -1
  57. package/dist/components/breadcrumb/breadcrumb-misc.d.ts.map +1 -1
  58. package/dist/components/breadcrumb/breadcrumb-misc.js +3 -3
  59. package/dist/components/breadcrumb/breadcrumb-misc.js.map +1 -1
  60. package/dist/components/button/__tests__/button.test.d.ts +2 -0
  61. package/dist/components/button/__tests__/button.test.d.ts.map +1 -0
  62. package/dist/components/calendar/__tests__/calendar.test.d.ts +2 -0
  63. package/dist/components/calendar/__tests__/calendar.test.d.ts.map +1 -0
  64. package/dist/components/calendar/calendar.cjs +1 -1
  65. package/dist/components/calendar/calendar.cjs.map +1 -1
  66. package/dist/components/calendar/calendar.js +1 -1
  67. package/dist/components/calendar/calendar.js.map +1 -1
  68. package/dist/components/calendar/date-picker.cjs +7 -6
  69. package/dist/components/calendar/date-picker.cjs.map +1 -1
  70. package/dist/components/calendar/date-picker.d.ts +3 -2
  71. package/dist/components/calendar/date-picker.d.ts.map +1 -1
  72. package/dist/components/calendar/date-picker.js +7 -6
  73. package/dist/components/calendar/date-picker.js.map +1 -1
  74. package/dist/components/calendar/range-picker.cjs +4 -3
  75. package/dist/components/calendar/range-picker.cjs.map +1 -1
  76. package/dist/components/calendar/range-picker.d.ts +3 -2
  77. package/dist/components/calendar/range-picker.d.ts.map +1 -1
  78. package/dist/components/calendar/range-picker.js +4 -3
  79. package/dist/components/calendar/range-picker.js.map +1 -1
  80. package/dist/components/callout/__tests__/callout.test.d.ts +2 -0
  81. package/dist/components/callout/__tests__/callout.test.d.ts.map +1 -0
  82. package/dist/components/checkbox/__tests__/checkbox.test.d.ts +2 -0
  83. package/dist/components/checkbox/__tests__/checkbox.test.d.ts.map +1 -0
  84. package/dist/components/chip/__tests__/chip.test.d.ts +2 -0
  85. package/dist/components/chip/__tests__/chip.test.d.ts.map +1 -0
  86. package/dist/components/code-block/__tests__/code-block.test.d.ts +2 -0
  87. package/dist/components/code-block/__tests__/code-block.test.d.ts.map +1 -0
  88. package/dist/components/code-block/code-block-code.cjs +50 -0
  89. package/dist/components/code-block/code-block-code.cjs.map +1 -0
  90. package/dist/components/code-block/code-block-code.d.ts +10 -0
  91. package/dist/components/code-block/code-block-code.d.ts.map +1 -0
  92. package/dist/components/code-block/code-block-code.js +48 -0
  93. package/dist/components/code-block/code-block-code.js.map +1 -0
  94. package/dist/components/code-block/code-block-language-select.cjs +26 -0
  95. package/dist/components/code-block/code-block-language-select.cjs.map +1 -0
  96. package/dist/components/code-block/code-block-language-select.d.ts +7 -0
  97. package/dist/components/code-block/code-block-language-select.d.ts.map +1 -0
  98. package/dist/components/code-block/code-block-language-select.js +23 -0
  99. package/dist/components/code-block/code-block-language-select.js.map +1 -0
  100. package/dist/components/code-block/code-block-misc.cjs +49 -0
  101. package/dist/components/code-block/code-block-misc.cjs.map +1 -0
  102. package/dist/components/code-block/code-block-misc.d.ts +112 -0
  103. package/dist/components/code-block/code-block-misc.d.ts.map +1 -0
  104. package/dist/components/code-block/code-block-misc.js +43 -0
  105. package/dist/components/code-block/code-block-misc.js.map +1 -0
  106. package/dist/components/code-block/code-block-root.cjs +48 -0
  107. package/dist/components/code-block/code-block-root.cjs.map +1 -0
  108. package/dist/components/code-block/code-block-root.d.ts +24 -0
  109. package/dist/components/code-block/code-block-root.d.ts.map +1 -0
  110. package/dist/components/code-block/code-block-root.js +45 -0
  111. package/dist/components/code-block/code-block-root.js.map +1 -0
  112. package/dist/components/code-block/code-block.cjs +23 -0
  113. package/dist/components/code-block/code-block.cjs.map +1 -0
  114. package/dist/components/code-block/code-block.js +21 -0
  115. package/dist/components/code-block/code-block.js.map +1 -0
  116. package/dist/components/code-block/code-block.module.css.cjs +8 -0
  117. package/dist/components/code-block/code-block.module.css.cjs.map +1 -0
  118. package/dist/components/code-block/code-block.module.css.js +4 -0
  119. package/dist/components/code-block/code-block.module.css.js.map +1 -0
  120. package/dist/components/code-block/code.module.css.cjs +8 -0
  121. package/dist/components/code-block/code.module.css.cjs.map +1 -0
  122. package/dist/components/code-block/code.module.css.js +4 -0
  123. package/dist/components/code-block/code.module.css.js.map +1 -0
  124. package/dist/components/code-block/index.d.ts +2 -0
  125. package/dist/components/code-block/index.d.ts.map +1 -0
  126. package/dist/components/color-picker/__tests__/color-picker.test.d.ts +2 -0
  127. package/dist/components/color-picker/__tests__/color-picker.test.d.ts.map +1 -0
  128. package/dist/components/command/__tests__/command.test.d.ts +2 -0
  129. package/dist/components/command/__tests__/command.test.d.ts.map +1 -0
  130. package/dist/components/container/__tests__/container.test.d.ts +2 -0
  131. package/dist/components/container/__tests__/container.test.d.ts.map +1 -0
  132. package/dist/components/container/container.d.ts +1 -1
  133. package/dist/components/copy-button/__tests__/copy-button.test.d.ts +2 -0
  134. package/dist/components/copy-button/__tests__/copy-button.test.d.ts.map +1 -0
  135. package/dist/components/copy-button/copy-button.cjs +4 -3
  136. package/dist/components/copy-button/copy-button.cjs.map +1 -1
  137. package/dist/components/copy-button/copy-button.d.ts +2 -3
  138. package/dist/components/copy-button/copy-button.d.ts.map +1 -1
  139. package/dist/components/copy-button/copy-button.js +5 -4
  140. package/dist/components/copy-button/copy-button.js.map +1 -1
  141. package/dist/components/data-table/__tests__/data-table.test.d.ts +2 -0
  142. package/dist/components/data-table/__tests__/data-table.test.d.ts.map +1 -0
  143. package/dist/components/dialog/__tests__/dialog.test.d.ts +2 -0
  144. package/dist/components/dialog/__tests__/dialog.test.d.ts.map +1 -0
  145. package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts +2 -0
  146. package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts.map +1 -0
  147. package/dist/components/empty-state/__tests__/empty-state.test.d.ts +2 -0
  148. package/dist/components/empty-state/__tests__/empty-state.test.d.ts.map +1 -0
  149. package/dist/components/filter-chip/__tests__/filter-chip.test.d.ts +2 -0
  150. package/dist/components/filter-chip/__tests__/filter-chip.test.d.ts.map +1 -0
  151. package/dist/components/flex/__tests__/flex.test.d.ts +2 -0
  152. package/dist/components/flex/__tests__/flex.test.d.ts.map +1 -0
  153. package/dist/components/flex/flex.d.ts +3 -3
  154. package/dist/components/grid/__tests__/grid.test.d.ts +2 -0
  155. package/dist/components/grid/__tests__/grid.test.d.ts.map +1 -0
  156. package/dist/components/headline/__tests__/headline.test.d.ts +2 -0
  157. package/dist/components/headline/__tests__/headline.test.d.ts.map +1 -0
  158. package/dist/components/headline/headline.d.ts +1 -1
  159. package/dist/components/icon-button/__tests__/icon-button.test.d.ts +2 -0
  160. package/dist/components/icon-button/__tests__/icon-button.test.d.ts.map +1 -0
  161. package/dist/components/image/__tests__/image.test.d.ts +2 -0
  162. package/dist/components/image/__tests__/image.test.d.ts.map +1 -0
  163. package/dist/components/image/image.d.ts +1 -1
  164. package/dist/components/indicator/__tests__/indicator.test.d.ts +2 -0
  165. package/dist/components/indicator/__tests__/indicator.test.d.ts.map +1 -0
  166. package/dist/components/input-field/__tests__/input-field.test.d.ts +2 -0
  167. package/dist/components/input-field/__tests__/input-field.test.d.ts.map +1 -0
  168. package/dist/components/label/__tests__/label.test.d.ts +2 -0
  169. package/dist/components/label/__tests__/label.test.d.ts.map +1 -0
  170. package/dist/components/link/__tests__/link.test.d.ts +2 -0
  171. package/dist/components/link/__tests__/link.test.d.ts.map +1 -0
  172. package/dist/components/list/__tests__/list.test.d.ts +2 -0
  173. package/dist/components/list/__tests__/list.test.d.ts.map +1 -0
  174. package/dist/components/popover/__tests__/popover.test.d.ts +2 -0
  175. package/dist/components/popover/__tests__/popover.test.d.ts.map +1 -0
  176. package/dist/components/popover/popover.cjs.map +1 -1
  177. package/dist/components/popover/popover.d.ts +1 -2
  178. package/dist/components/popover/popover.d.ts.map +1 -1
  179. package/dist/components/popover/popover.js.map +1 -1
  180. package/dist/components/radio/__tests__/radio.test.d.ts +2 -0
  181. package/dist/components/radio/__tests__/radio.test.d.ts.map +1 -0
  182. package/dist/components/search/__tests__/search.test.d.ts +2 -0
  183. package/dist/components/search/__tests__/search.test.d.ts.map +1 -0
  184. package/dist/components/select/__tests__/select.test.d.ts +2 -0
  185. package/dist/components/select/__tests__/select.test.d.ts.map +1 -0
  186. package/dist/components/select/select-root.cjs.map +1 -1
  187. package/dist/components/select/select-root.d.ts +2 -2
  188. package/dist/components/select/select-root.d.ts.map +1 -1
  189. package/dist/components/select/select-root.js.map +1 -1
  190. package/dist/components/separator/__tests__/separator.test.d.ts +2 -0
  191. package/dist/components/separator/__tests__/separator.test.d.ts.map +1 -0
  192. package/dist/components/sheet/__tests__/sheet.test.d.ts +2 -0
  193. package/dist/components/sheet/__tests__/sheet.test.d.ts.map +1 -0
  194. package/dist/components/sheet/sheet.cjs.map +1 -1
  195. package/dist/components/sheet/sheet.d.ts +1 -1
  196. package/dist/components/sheet/sheet.d.ts.map +1 -1
  197. package/dist/components/sheet/sheet.js.map +1 -1
  198. package/dist/components/side-panel/__tests__/side-panel.test.d.ts +2 -0
  199. package/dist/components/side-panel/__tests__/side-panel.test.d.ts.map +1 -0
  200. package/dist/components/sidebar/__tests__/sidebar.test.d.ts +2 -0
  201. package/dist/components/sidebar/__tests__/sidebar.test.d.ts.map +1 -0
  202. package/dist/components/sidebar/sidebar-item.cjs +37 -0
  203. package/dist/components/sidebar/sidebar-item.cjs.map +1 -0
  204. package/dist/components/sidebar/sidebar-item.d.ts +14 -0
  205. package/dist/components/sidebar/sidebar-item.d.ts.map +1 -0
  206. package/dist/components/sidebar/sidebar-item.js +35 -0
  207. package/dist/components/sidebar/sidebar-item.js.map +1 -0
  208. package/dist/components/sidebar/sidebar-main.cjs +13 -0
  209. package/dist/components/sidebar/sidebar-main.cjs.map +1 -0
  210. package/dist/components/sidebar/sidebar-main.d.ts +2 -0
  211. package/dist/components/sidebar/sidebar-main.d.ts.map +1 -0
  212. package/dist/components/sidebar/sidebar-main.js +11 -0
  213. package/dist/components/sidebar/sidebar-main.js.map +1 -0
  214. package/dist/components/sidebar/sidebar-misc.cjs +20 -0
  215. package/dist/components/sidebar/sidebar-misc.cjs.map +1 -0
  216. package/dist/components/sidebar/sidebar-misc.d.ts +9 -0
  217. package/dist/components/sidebar/sidebar-misc.d.ts.map +1 -0
  218. package/dist/components/sidebar/sidebar-misc.js +16 -0
  219. package/dist/components/sidebar/sidebar-misc.js.map +1 -0
  220. package/dist/components/sidebar/sidebar-root.cjs +34 -0
  221. package/dist/components/sidebar/sidebar-root.cjs.map +1 -0
  222. package/dist/components/sidebar/sidebar-root.d.ts +15 -0
  223. package/dist/components/sidebar/sidebar-root.d.ts.map +1 -0
  224. package/dist/components/sidebar/sidebar-root.js +31 -0
  225. package/dist/components/sidebar/sidebar-root.js.map +1 -0
  226. package/dist/components/sidebar/sidebar.cjs +10 -64
  227. package/dist/components/sidebar/sidebar.cjs.map +1 -1
  228. package/dist/components/sidebar/sidebar.d.ts +4 -29
  229. package/dist/components/sidebar/sidebar.d.ts.map +1 -1
  230. package/dist/components/sidebar/sidebar.js +4 -58
  231. package/dist/components/sidebar/sidebar.js.map +1 -1
  232. package/dist/components/skeleton/__tests__/skeleton.test.d.ts +2 -0
  233. package/dist/components/skeleton/__tests__/skeleton.test.d.ts.map +1 -0
  234. package/dist/components/slider/__tests__/slider.test.d.ts +2 -0
  235. package/dist/components/slider/__tests__/slider.test.d.ts.map +1 -0
  236. package/dist/components/slider/slider.cjs +4 -21
  237. package/dist/components/slider/slider.cjs.map +1 -1
  238. package/dist/components/slider/slider.d.ts +3 -3
  239. package/dist/components/slider/slider.d.ts.map +1 -1
  240. package/dist/components/slider/slider.js +6 -4
  241. package/dist/components/slider/slider.js.map +1 -1
  242. package/dist/components/slider/slider.module.css.cjs +1 -1
  243. package/dist/components/slider/slider.module.css.js +1 -1
  244. package/dist/components/switch/__tests__/switch.test.d.ts +2 -0
  245. package/dist/components/switch/__tests__/switch.test.d.ts.map +1 -0
  246. package/dist/components/switch/switch.cjs +1 -1
  247. package/dist/components/switch/switch.cjs.map +1 -1
  248. package/dist/components/switch/switch.d.ts.map +1 -1
  249. package/dist/components/switch/switch.js +2 -2
  250. package/dist/components/switch/switch.js.map +1 -1
  251. package/dist/components/table/__tests__/table.test.d.ts +2 -0
  252. package/dist/components/table/__tests__/table.test.d.ts.map +1 -0
  253. package/dist/components/tabs/__tests__/tabs.test.d.ts +2 -0
  254. package/dist/components/tabs/__tests__/tabs.test.d.ts.map +1 -0
  255. package/dist/components/tabs/tabs.cjs.map +1 -1
  256. package/dist/components/tabs/tabs.d.ts +1 -1
  257. package/dist/components/tabs/tabs.d.ts.map +1 -1
  258. package/dist/components/tabs/tabs.js.map +1 -1
  259. package/dist/components/text/__tests__/text.test.d.ts +2 -0
  260. package/dist/components/text/__tests__/text.test.d.ts.map +1 -0
  261. package/dist/components/text/text.cjs +7 -5
  262. package/dist/components/text/text.cjs.map +1 -1
  263. package/dist/components/text/text.d.ts +2 -2
  264. package/dist/components/text/text.d.ts.map +1 -1
  265. package/dist/components/text/text.js +5 -3
  266. package/dist/components/text/text.js.map +1 -1
  267. package/dist/components/text-area/__tests__/text-area.test.d.ts +2 -0
  268. package/dist/components/text-area/__tests__/text-area.test.d.ts.map +1 -0
  269. package/dist/components/text-area/text-area.cjs +1 -1
  270. package/dist/components/text-area/text-area.cjs.map +1 -1
  271. package/dist/components/text-area/text-area.d.ts.map +1 -1
  272. package/dist/components/text-area/text-area.js +1 -1
  273. package/dist/components/text-area/text-area.js.map +1 -1
  274. package/dist/components/theme-provider/__tests__/theme-provider.test.d.ts +2 -0
  275. package/dist/components/theme-provider/__tests__/theme-provider.test.d.ts.map +1 -0
  276. package/dist/components/toast/__tests__/toast.test.d.ts +2 -0
  277. package/dist/components/toast/__tests__/toast.test.d.ts.map +1 -0
  278. package/dist/components/tooltip/__tests__/tooltip.test.d.ts +2 -0
  279. package/dist/components/tooltip/__tests__/tooltip.test.d.ts.map +1 -0
  280. package/dist/components/tooltip/tooltip-root.d.ts +1 -1
  281. package/dist/figma/button.figma.d.ts +2 -0
  282. package/dist/figma/button.figma.d.ts.map +1 -0
  283. package/dist/hooks/index.cjs +2 -0
  284. package/dist/hooks/index.cjs.map +1 -1
  285. package/dist/hooks/index.d.ts +1 -0
  286. package/dist/hooks/index.d.ts.map +1 -1
  287. package/dist/hooks/index.js +1 -0
  288. package/dist/hooks/index.js.map +1 -1
  289. package/dist/hooks/useIsomorphicLayoutEffect.cjs +8 -0
  290. package/dist/hooks/useIsomorphicLayoutEffect.cjs.map +1 -0
  291. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  292. package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  293. package/dist/hooks/useIsomorphicLayoutEffect.js +6 -0
  294. package/dist/hooks/useIsomorphicLayoutEffect.js.map +1 -0
  295. package/dist/index.cjs +4 -0
  296. package/dist/index.cjs.map +1 -1
  297. package/dist/index.d.ts +2 -0
  298. package/dist/index.d.ts.map +1 -1
  299. package/dist/index.js +2 -0
  300. package/dist/index.js.map +1 -1
  301. package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.cjs +319 -0
  302. package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.cjs.map +1 -0
  303. package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.js +307 -0
  304. package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
  305. package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.cjs +4 -0
  306. package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.cjs.map +1 -1
  307. package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.js +3 -1
  308. package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -1
  309. package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.cjs +3138 -0
  310. package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.cjs.map +1 -0
  311. package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.js +3132 -0
  312. package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.js.map +1 -0
  313. package/dist/style.css +1 -1
  314. package/package.json +8 -2
  315. package/dist/test-utils.d.ts +0 -6
  316. package/dist/test-utils.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.cjs","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
1
+ {"version":3,"file":"calendar.cjs","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open, onDropdownOpen]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
@@ -18,7 +18,7 @@ function DropDown({ options = [], value, onChange, onDropdownOpen, disabled }) {
18
18
  useEffect(() => {
19
19
  if (open && onDropdownOpen)
20
20
  onDropdownOpen();
21
- }, [open]);
21
+ }, [open, onDropdownOpen]);
22
22
  function handleChange(value) {
23
23
  if (onChange) {
24
24
  onChange({ target: { value } });
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
1
+ {"version":3,"file":"calendar.js","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open, onDropdownOpen]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
@@ -3,6 +3,7 @@
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var reactIcons_esm = require('../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
6
+ var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
6
7
  var dayjs_min = require('../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.cjs');
7
8
  var customParseFormat = require('../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/customParseFormat.cjs');
8
9
  var React = require('react');
@@ -12,7 +13,7 @@ var calendar = require('./calendar.cjs');
12
13
  var calendar_module = require('./calendar.module.css.cjs');
13
14
 
14
15
  dayjs_min.default.extend(customParseFormat.default);
15
- function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps, calendarProps, value = new Date(), onSelect = () => { }, children, showCalendarIcon = true, timeZone }) {
16
+ function DatePicker({ dateFormat = 'DD/MM/YYYY', inputFieldProps, calendarProps, value = new Date(), onSelect = () => { }, children, showCalendarIcon = true, timeZone, popoverProps }) {
16
17
  const [showCalendar, setShowCalendar] = React.useState(false);
17
18
  const [selectedDate, setSelectedDate] = React.useState(value);
18
19
  const [error, setError] = React.useState();
@@ -25,16 +26,16 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
25
26
  React.useEffect(() => {
26
27
  selectedDateRef.current = selectedDate;
27
28
  }, [selectedDate]);
28
- function isElementOutside(el) {
29
+ const isElementOutside = React.useCallback((el) => {
29
30
  return (!isDropdownOpenRef.current && // Month and Year dropdown from Date picker
30
31
  !inputFieldRef.current?.contains(el) && // InputField
31
32
  !contentRef.current?.contains(el));
32
- }
33
+ }, []);
33
34
  const handleMouseDown = React.useCallback((event) => {
34
35
  const el = event.target;
35
36
  if (el && isElementOutside(el))
36
37
  removeEventListeners();
37
- }, []);
38
+ }, [isElementOutside]);
38
39
  function registerEventListeners() {
39
40
  isInputFieldFocused.current = true;
40
41
  document.addEventListener('mouseup', handleMouseDown);
@@ -113,8 +114,8 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
113
114
  }
114
115
  }
115
116
  const defaultTrigger = (jsxRuntime.jsx(inputField.InputField, { size: 'small', placeholder: 'Select date', error: error, className: calendar_module.default.datePickerInput, trailingIcon: showCalendarIcon ? jsxRuntime.jsx(reactIcons_esm.CalendarIcon, {}) : undefined, ...inputFieldProps, ref: inputFieldRef, defaultValue: formattedDate, onChange: handleInputChange, onFocus: handleInputFocus, onBlur: handleInputBlur, onKeyUp: handleKeyUp }));
116
- const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsxRuntime.jsx("div", { children: children })) : (defaultTrigger);
117
- return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsx(popover.Popover.Content, { side: side, className: calendar_module.default.calendarPopover, ref: contentRef, children: jsxRuntime.jsx(calendar.Calendar, { required: true, ...calendarProps, timeZone: timeZone, onDropdownOpen: onDropdownOpen, mode: 'single', selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
117
+ const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsxRuntime.jsx("div", { children: children })) : (jsxRuntime.jsx("div", { children: defaultTrigger }));
118
+ return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsx(popover.Popover.Content, { ref: contentRef, ...popoverProps, className: index.cx(calendar_module.default.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: jsxRuntime.jsx(calendar.Calendar, { required: true, ...calendarProps, timeZone: timeZone, onDropdownOpen: onDropdownOpen, mode: 'single', selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
118
119
  }
119
120
 
120
121
  exports.DatePicker = DatePicker;
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.cjs","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\n\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n side?: 'top' | 'right' | 'bottom' | 'left';\n dateFormat?: string;\n inputFieldProps?: InputFieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n timeZone?: string;\n}\n\nexport function DatePicker({\n side = 'top',\n dateFormat = 'DD/MM/YYYY',\n inputFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n timeZone\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [error, setError] = useState<string>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const inputFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n function isElementOutside(el: HTMLElement) {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !inputFieldRef.current?.contains(el) && // InputField\n !contentRef.current?.contains(el)\n );\n }\n\n const handleMouseDown = useCallback((event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n }, []);\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (inputFieldRef.current) inputFieldRef.current.value = updatedVal;\n if (!error && !skipUpdate) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setError(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => inputFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && inputFieldRef.current) {\n inputFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes('/')\n ? 'DD/MM/YYYY'\n : value.includes('-')\n ? 'DD-MM-YYYY'\n : undefined;\n const date = dayjs(value, format);\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n setError(undefined);\n } else {\n setError('Invalid date');\n }\n }\n\n const defaultTrigger = (\n <InputField\n size='small'\n placeholder='Select date'\n error={error}\n className={styles.datePickerInput}\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n {...inputFieldProps}\n ref={inputFieldRef}\n defaultValue={formattedDate}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyUp={handleKeyUp}\n />\n );\n\n const trigger =\n typeof children === 'function' ? (\n children({ selectedDate: formattedDate })\n ) : children ? (\n <div>{children}</div>\n ) : (\n defaultTrigger\n );\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n\n <Popover.Content\n side={side}\n className={styles.calendarPopover}\n ref={contentRef}\n >\n <Calendar\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n onDropdownOpen={onDropdownOpen}\n mode='single'\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;;;;AAcAA;;;;;;AAiCE;AACA;AACA;AACA;AACA;;AAGE;AACF;;AAGE;;;;AAOF;AACE;AACA;AAAgC;;AAGlC;AACE;AACA;;AAGF;AACE;;AAGA;;AAE2B;AAC3B;;AAEA;;AAGF;;;;;AAKA;AAEA;AACE;;;;;AAQE;;AAGF;;AAGF;;;AAEE;;;;AAIA;AACE;AACA;AAAgC;;;AAEhC;;;;;;AAOA;AACA;;;;AAKF;AAEA;AACE;AACA;AACE;;;AAIJ;AAEA;;;AAIA;;;AAKA;;AAIE;;;;;;;AAOJ;AAiBA;AASA;AAuBF;;"}
1
+ {"version":3,"file":"date-picker.cjs","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n dateFormat?: string;\n inputFieldProps?: InputFieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\nexport function DatePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n timeZone,\n popoverProps\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [error, setError] = useState<string>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const inputFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n const isElementOutside = useCallback((el: HTMLElement) => {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !inputFieldRef.current?.contains(el) && // InputField\n !contentRef.current?.contains(el)\n );\n }, []);\n\n const handleMouseDown = useCallback(\n (event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n },\n [isElementOutside]\n );\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (inputFieldRef.current) inputFieldRef.current.value = updatedVal;\n if (!error && !skipUpdate) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setError(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => inputFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && inputFieldRef.current) {\n inputFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes('/')\n ? 'DD/MM/YYYY'\n : value.includes('-')\n ? 'DD-MM-YYYY'\n : undefined;\n const date = dayjs(value, format);\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n setError(undefined);\n } else {\n setError('Invalid date');\n }\n }\n\n const defaultTrigger = (\n <InputField\n size='small'\n placeholder='Select date'\n error={error}\n className={styles.datePickerInput}\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n {...inputFieldProps}\n ref={inputFieldRef}\n defaultValue={formattedDate}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyUp={handleKeyUp}\n />\n );\n\n const trigger =\n typeof children === 'function' ? (\n children({ selectedDate: formattedDate })\n ) : children ? (\n <div>{children}</div>\n ) : (\n <div>{defaultTrigger}</div>\n );\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n ref={contentRef}\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n onDropdownOpen={onDropdownOpen}\n mode='single'\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;;;;;AAeAA;AAgBgB;;;;;AAiBd;AACA;AACA;AACA;AACA;;AAGE;AACF;AAEA;AACE;;;;AAOF;AAEI;AACA;AAAgC;AAClC;AAIF;AACE;AACA;;AAGF;AACE;;AAGA;;AAE2B;AAC3B;;AAEA;;AAGF;;;;;AAKA;AAEA;AACE;;;;;AAQE;;AAGF;;AAGF;;;AAEE;;;;AAIA;AACE;AACA;AAAgC;;;AAEhC;;;;;;AAOA;AACA;;;;AAKF;AAEA;AACE;AACA;AACE;;;AAIJ;AAEA;;;AAIA;;;AAKA;;AAIE;;;;;;;AAOJ;AAiBA;;AAgCF;;"}
@@ -1,7 +1,7 @@
1
1
  import { PropsBase, PropsSingleRequired } from 'react-day-picker';
2
2
  import { InputFieldProps } from '../input-field/input-field';
3
+ import { PopoverContentProps } from '../popover/popover';
3
4
  interface DatePickerProps {
4
- side?: 'top' | 'right' | 'bottom' | 'left';
5
5
  dateFormat?: string;
6
6
  inputFieldProps?: InputFieldProps;
7
7
  calendarProps?: PropsSingleRequired & PropsBase;
@@ -12,7 +12,8 @@ interface DatePickerProps {
12
12
  }) => React.ReactNode);
13
13
  showCalendarIcon?: boolean;
14
14
  timeZone?: string;
15
+ popoverProps?: PopoverContentProps;
15
16
  }
16
- export declare function DatePicker({ side, dateFormat, inputFieldProps, calendarProps, value, onSelect, children, showCalendarIcon, timeZone }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function DatePicker({ dateFormat, inputFieldProps, calendarProps, value, onSelect, children, showCalendarIcon, timeZone, popoverProps }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
17
18
  export {};
18
19
  //# sourceMappingURL=date-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/date-picker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAO7D,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAY,EACZ,UAAyB,EACzB,eAAe,EACf,aAAa,EACb,KAAkB,EAClB,QAAmB,EACnB,QAAQ,EACR,gBAAuB,EACvB,QAAQ,EACT,EAAE,eAAe,2CA4KjB"}
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/date-picker.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAMzD,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAyB,EACzB,eAAe,EACf,aAAa,EACb,KAAkB,EAClB,QAAmB,EACnB,QAAQ,EACR,gBAAuB,EACvB,QAAQ,EACR,YAAY,EACb,EAAE,eAAe,2CA+KjB"}
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import { CalendarIcon } from '../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
4
+ import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
4
5
  import dayjs from '../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.js';
5
6
  import customParseFormat from '../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/customParseFormat.js';
6
7
  import { useState, useRef, useEffect, useCallback } from 'react';
@@ -10,7 +11,7 @@ import { Calendar } from './calendar.js';
10
11
  import styles from './calendar.module.css.js';
11
12
 
12
13
  dayjs.extend(customParseFormat);
13
- function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps, calendarProps, value = new Date(), onSelect = () => { }, children, showCalendarIcon = true, timeZone }) {
14
+ function DatePicker({ dateFormat = 'DD/MM/YYYY', inputFieldProps, calendarProps, value = new Date(), onSelect = () => { }, children, showCalendarIcon = true, timeZone, popoverProps }) {
14
15
  const [showCalendar, setShowCalendar] = useState(false);
15
16
  const [selectedDate, setSelectedDate] = useState(value);
16
17
  const [error, setError] = useState();
@@ -23,16 +24,16 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
23
24
  useEffect(() => {
24
25
  selectedDateRef.current = selectedDate;
25
26
  }, [selectedDate]);
26
- function isElementOutside(el) {
27
+ const isElementOutside = useCallback((el) => {
27
28
  return (!isDropdownOpenRef.current && // Month and Year dropdown from Date picker
28
29
  !inputFieldRef.current?.contains(el) && // InputField
29
30
  !contentRef.current?.contains(el));
30
- }
31
+ }, []);
31
32
  const handleMouseDown = useCallback((event) => {
32
33
  const el = event.target;
33
34
  if (el && isElementOutside(el))
34
35
  removeEventListeners();
35
- }, []);
36
+ }, [isElementOutside]);
36
37
  function registerEventListeners() {
37
38
  isInputFieldFocused.current = true;
38
39
  document.addEventListener('mouseup', handleMouseDown);
@@ -111,8 +112,8 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
111
112
  }
112
113
  }
113
114
  const defaultTrigger = (jsx(InputField, { size: 'small', placeholder: 'Select date', error: error, className: styles.datePickerInput, trailingIcon: showCalendarIcon ? jsx(CalendarIcon, {}) : undefined, ...inputFieldProps, ref: inputFieldRef, defaultValue: formattedDate, onChange: handleInputChange, onFocus: handleInputFocus, onBlur: handleInputBlur, onKeyUp: handleKeyUp }));
114
- const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsx("div", { children: children })) : (defaultTrigger);
115
- return (jsxs(Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsx(Popover.Content, { side: side, className: styles.calendarPopover, ref: contentRef, children: jsx(Calendar, { required: true, ...calendarProps, timeZone: timeZone, onDropdownOpen: onDropdownOpen, mode: 'single', selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
115
+ const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsx("div", { children: children })) : (jsx("div", { children: defaultTrigger }));
116
+ return (jsxs(Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsx(Popover.Content, { ref: contentRef, ...popoverProps, className: cx(styles.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: jsx(Calendar, { required: true, ...calendarProps, timeZone: timeZone, onDropdownOpen: onDropdownOpen, mode: 'single', selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
116
117
  }
117
118
 
118
119
  export { DatePicker };
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.js","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\n\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n side?: 'top' | 'right' | 'bottom' | 'left';\n dateFormat?: string;\n inputFieldProps?: InputFieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n timeZone?: string;\n}\n\nexport function DatePicker({\n side = 'top',\n dateFormat = 'DD/MM/YYYY',\n inputFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n timeZone\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [error, setError] = useState<string>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const inputFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n function isElementOutside(el: HTMLElement) {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !inputFieldRef.current?.contains(el) && // InputField\n !contentRef.current?.contains(el)\n );\n }\n\n const handleMouseDown = useCallback((event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n }, []);\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (inputFieldRef.current) inputFieldRef.current.value = updatedVal;\n if (!error && !skipUpdate) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setError(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => inputFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && inputFieldRef.current) {\n inputFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes('/')\n ? 'DD/MM/YYYY'\n : value.includes('-')\n ? 'DD-MM-YYYY'\n : undefined;\n const date = dayjs(value, format);\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n setError(undefined);\n } else {\n setError('Invalid date');\n }\n }\n\n const defaultTrigger = (\n <InputField\n size='small'\n placeholder='Select date'\n error={error}\n className={styles.datePickerInput}\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n {...inputFieldProps}\n ref={inputFieldRef}\n defaultValue={formattedDate}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyUp={handleKeyUp}\n />\n );\n\n const trigger =\n typeof children === 'function' ? (\n children({ selectedDate: formattedDate })\n ) : children ? (\n <div>{children}</div>\n ) : (\n defaultTrigger\n );\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n\n <Popover.Content\n side={side}\n className={styles.calendarPopover}\n ref={contentRef}\n >\n <Calendar\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n onDropdownOpen={onDropdownOpen}\n mode='single'\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAcA;;;;;;AAiCE;AACA;AACA;AACA;AACA;;AAGE;AACF;;AAGE;;;;AAOF;AACE;AACA;AAAgC;;AAGlC;AACE;AACA;;AAGF;AACE;;AAGA;;AAE2B;AAC3B;;AAEA;;AAGF;;;;;AAKA;AAEA;AACE;;;;;AAQE;;AAGF;;AAGF;;;AAEE;;;;AAIA;AACE;AACA;AAAgC;;;AAEhC;;;;;;AAOA;AACA;;;;AAKF;AAEA;AACE;AACA;AACE;;;AAIJ;AAEA;;;AAIA;;;AAKA;;AAIE;;;;;;;AAOJ;AAiBA;AASA;AAuBF;;"}
1
+ {"version":3,"file":"date-picker.js","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n dateFormat?: string;\n inputFieldProps?: InputFieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\nexport function DatePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n timeZone,\n popoverProps\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [error, setError] = useState<string>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const inputFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n const isElementOutside = useCallback((el: HTMLElement) => {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !inputFieldRef.current?.contains(el) && // InputField\n !contentRef.current?.contains(el)\n );\n }, []);\n\n const handleMouseDown = useCallback(\n (event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n },\n [isElementOutside]\n );\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (inputFieldRef.current) inputFieldRef.current.value = updatedVal;\n if (!error && !skipUpdate) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setError(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => inputFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && inputFieldRef.current) {\n inputFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes('/')\n ? 'DD/MM/YYYY'\n : value.includes('-')\n ? 'DD-MM-YYYY'\n : undefined;\n const date = dayjs(value, format);\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n setError(undefined);\n } else {\n setError('Invalid date');\n }\n }\n\n const defaultTrigger = (\n <InputField\n size='small'\n placeholder='Select date'\n error={error}\n className={styles.datePickerInput}\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n {...inputFieldProps}\n ref={inputFieldRef}\n defaultValue={formattedDate}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyUp={handleKeyUp}\n />\n );\n\n const trigger =\n typeof children === 'function' ? (\n children({ selectedDate: formattedDate })\n ) : children ? (\n <div>{children}</div>\n ) : (\n <div>{defaultTrigger}</div>\n );\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n ref={contentRef}\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n onDropdownOpen={onDropdownOpen}\n mode='single'\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAeA;AAgBgB;;;;;AAiBd;AACA;AACA;AACA;AACA;;AAGE;AACF;AAEA;AACE;;;;AAOF;AAEI;AACA;AAAgC;AAClC;AAIF;AACE;AACA;;AAGF;AACE;;AAGA;;AAE2B;AAC3B;;AAEA;;AAGF;;;;;AAKA;AAEA;AACE;;;;;AAQE;;AAGF;;AAGF;;;AAEE;;;;AAIA;AACE;AACA;AAAgC;;;AAEhC;;;;;;AAOA;AACA;;;;AAKF;AAEA;AACE;AACA;AACE;;;AAIJ;AAEA;;;AAIA;;;AAKA;;AAIE;;;;;;;AAOJ;AAiBA;;AAgCF;;"}
@@ -3,6 +3,7 @@
3
3
 
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var reactIcons_esm = require('../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
6
+ var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
6
7
  var dayjs_min = require('../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.cjs');
7
8
  var React = require('react');
8
9
  var flex = require('../flex/flex.cjs');
@@ -11,10 +12,10 @@ var popover = require('../popover/popover.cjs');
11
12
  var calendar = require('./calendar.cjs');
12
13
  var calendar_module = require('./calendar.module.css.cjs');
13
14
 
14
- function RangePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldsProps = {}, calendarProps, onSelect = () => { }, value, defaultValue = {
15
+ function RangePicker({ dateFormat = 'DD/MM/YYYY', inputFieldsProps = {}, calendarProps, onSelect = () => { }, value, defaultValue = {
15
16
  to: new Date(),
16
17
  from: new Date()
17
- }, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone }) {
18
+ }, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone, popoverProps }) {
18
19
  const [showCalendar, setShowCalendar] = React.useState(false);
19
20
  const [currentRangeField, setCurrentRangeField] = React.useState('from');
20
21
  const [internalValue, setInternalValue] = React.useState(value ?? defaultValue);
@@ -88,7 +89,7 @@ function RangePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldsProps
88
89
  const trigger = typeof children === 'function'
89
90
  ? children({ startDate, endDate })
90
91
  : children || defaultTrigger;
91
- return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsxs(popover.Popover.Content, { side: side, className: calendar_module.default.calendarPopover, children: [jsxRuntime.jsx(calendar.Calendar, { showOutsideDays: false, numberOfMonths: 2, defaultMonth: selectedRange.from, required: true, ...calendarProps, timeZone: timeZone, mode: 'range', month: computedDefaultMonth, selected: selectedRange, onSelect: handleSelect, onMonthChange: setCurrentMonth }), footer && (jsxRuntime.jsx(flex.Flex, { align: 'center', justify: 'center', className: calendar_module.default.calendarFooter, children: footer }))] })] }));
92
+ return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsxs(popover.Popover.Content, { ...popoverProps, className: index.cx(calendar_module.default.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: [jsxRuntime.jsx(calendar.Calendar, { showOutsideDays: false, numberOfMonths: 2, defaultMonth: selectedRange.from, required: true, ...calendarProps, timeZone: timeZone, mode: 'range', month: computedDefaultMonth, selected: selectedRange, onSelect: handleSelect, onMonthChange: setCurrentMonth }), footer && (jsxRuntime.jsx(flex.Flex, { align: 'center', justify: 'center', className: calendar_module.default.calendarFooter, children: footer }))] })] }));
92
93
  }
93
94
 
94
95
  exports.RangePicker = RangePicker;
@@ -1 +1 @@
1
- {"version":3,"file":"range-picker.cjs","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n side?: 'top' | 'right' | 'bottom' | 'left';\n dateFormat?: string;\n inputFieldsProps?: { startDate?: InputFieldProps; endDate?: InputFieldProps };\n calendarProps?: PropsRangeRequired & PropsBase;\n onSelect?: (date: DateRange) => void;\n pickerGroupClassName?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n children?:\n | React.ReactNode\n | ((props: { startDate: string; endDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n footer?: React.ReactNode;\n timeZone?: string;\n}\n\ntype RangeFields = keyof DateRange;\n\nexport function RangePicker({\n side = 'top',\n dateFormat = 'DD/MM/YYYY',\n inputFieldsProps = {},\n calendarProps,\n onSelect = () => {},\n value,\n defaultValue = {\n to: new Date(),\n from: new Date()\n },\n pickerGroupClassName,\n children,\n showCalendarIcon = true,\n footer,\n timeZone\n}: RangePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [currentRangeField, setCurrentRangeField] =\n useState<RangeFields>('from');\n const [internalValue, setInternalValue] = useState(value ?? defaultValue);\n const [currentMonth, setCurrentMonth] = useState(internalValue?.from);\n\n const selectedRange = value ?? internalValue;\n\n const startDate = selectedRange.from\n ? dayjs(selectedRange.from).format(dateFormat)\n : '';\n const endDate = selectedRange.to\n ? dayjs(selectedRange.to).format(dateFormat)\n : '';\n\n // Ensures two months are visible even when\n // current month is the last allowed month (endMonth).\n const computedDefaultMonth = useMemo(() => {\n let month = currentMonth;\n if (calendarProps?.endMonth) {\n const endMonth = dayjs(calendarProps.endMonth);\n const fromMonth = dayjs(currentMonth);\n\n if (fromMonth.isSame(endMonth, 'month')) {\n month = endMonth.subtract(1, 'month').toDate();\n }\n }\n return month;\n }, [currentMonth, calendarProps?.endMonth]);\n\n const onTriggerClick = useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n const field = e.currentTarget.dataset.rangeField;\n if (field === 'start') {\n setCurrentRangeField('from');\n } else {\n setCurrentRangeField('to');\n }\n if (showCalendar) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [showCalendar]\n );\n\n // Handle date selection with custom logic\n const handleSelect = (_: DateRange, selectedDay: Date) => {\n let newRange = { ...selectedRange };\n let newCurrentRangeField = currentRangeField;\n\n if (currentRangeField === 'from') {\n // If selecting start date and it's after the current end date\n if (\n selectedRange?.to &&\n dayjs(selectedDay).isAfter(dayjs(selectedRange.to))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else {\n newRange.from = selectedDay;\n if (!selectedRange?.to) newCurrentRangeField = 'to';\n }\n } else {\n // If selecting end date and it's before the current start date\n if (\n selectedRange?.from &&\n dayjs(selectedDay).isBefore(dayjs(selectedRange.from))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else newRange.to = selectedDay;\n }\n\n if (newCurrentRangeField !== currentRangeField)\n setCurrentRangeField(newCurrentRangeField);\n\n setInternalValue(newRange);\n onSelect(newRange);\n };\n\n const defaultTrigger = (\n <Flex gap='medium' className={pickerGroupClassName}>\n <InputField\n size='small'\n placeholder='Select start date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.startDate ?? {})}\n value={startDate}\n readOnly\n data-range-field='start'\n data-active={showCalendar && currentRangeField === 'from'}\n onClick={onTriggerClick}\n />\n\n <InputField\n size='small'\n placeholder='Select end date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.endDate ?? {})}\n value={endDate}\n readOnly\n data-range-field='end'\n data-active={showCalendar && currentRangeField === 'to'}\n onClick={onTriggerClick}\n />\n </Flex>\n );\n\n const trigger =\n typeof children === 'function'\n ? children({ startDate, endDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={setShowCalendar}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content side={side} className={styles.calendarPopover}>\n <Calendar\n showOutsideDays={false}\n numberOfMonths={2}\n defaultMonth={selectedRange.from}\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n mode='range'\n month={computedDefaultMonth}\n selected={selectedRange}\n onSelect={handleSelect}\n onMonthChange={setCurrentMonth}\n />\n {footer && (\n <Flex\n align='center'\n justify='center'\n className={styles.calendarFooter}\n >\n {footer}\n </Flex>\n )}\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAgCgB;;;;;;AAoBd;AACA;AAEA;AAEA;;;AAGA;;;;;AAMA;;AAEE;;AAEE;;AAGE;;;AAGJ;;AAGF;;AAGI;;;;;;;;;;AASF;;AAKF;AACE;;AAGA;;;AAII;AAEA;;;;AAGA;;;;;;;;AAOA;AAEA;;;;AAEK;;;;;;AAQX;AAEA;AA8BA;;AAGI;;AA+BN;;"}
1
+ {"version":3,"file":"range-picker.cjs","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n dateFormat?: string;\n inputFieldsProps?: { startDate?: InputFieldProps; endDate?: InputFieldProps };\n calendarProps?: PropsRangeRequired & PropsBase;\n onSelect?: (date: DateRange) => void;\n pickerGroupClassName?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n children?:\n | React.ReactNode\n | ((props: { startDate: string; endDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n footer?: React.ReactNode;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\ntype RangeFields = keyof DateRange;\n\nexport function RangePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldsProps = {},\n calendarProps,\n onSelect = () => {},\n value,\n defaultValue = {\n to: new Date(),\n from: new Date()\n },\n pickerGroupClassName,\n children,\n showCalendarIcon = true,\n footer,\n timeZone,\n popoverProps\n}: RangePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [currentRangeField, setCurrentRangeField] =\n useState<RangeFields>('from');\n const [internalValue, setInternalValue] = useState(value ?? defaultValue);\n const [currentMonth, setCurrentMonth] = useState(internalValue?.from);\n\n const selectedRange = value ?? internalValue;\n\n const startDate = selectedRange.from\n ? dayjs(selectedRange.from).format(dateFormat)\n : '';\n const endDate = selectedRange.to\n ? dayjs(selectedRange.to).format(dateFormat)\n : '';\n\n // Ensures two months are visible even when\n // current month is the last allowed month (endMonth).\n const computedDefaultMonth = useMemo(() => {\n let month = currentMonth;\n if (calendarProps?.endMonth) {\n const endMonth = dayjs(calendarProps.endMonth);\n const fromMonth = dayjs(currentMonth);\n\n if (fromMonth.isSame(endMonth, 'month')) {\n month = endMonth.subtract(1, 'month').toDate();\n }\n }\n return month;\n }, [currentMonth, calendarProps?.endMonth]);\n\n const onTriggerClick = useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n const field = e.currentTarget.dataset.rangeField;\n if (field === 'start') {\n setCurrentRangeField('from');\n } else {\n setCurrentRangeField('to');\n }\n if (showCalendar) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [showCalendar]\n );\n\n // Handle date selection with custom logic\n const handleSelect = (_: DateRange, selectedDay: Date) => {\n let newRange = { ...selectedRange };\n let newCurrentRangeField = currentRangeField;\n\n if (currentRangeField === 'from') {\n // If selecting start date and it's after the current end date\n if (\n selectedRange?.to &&\n dayjs(selectedDay).isAfter(dayjs(selectedRange.to))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else {\n newRange.from = selectedDay;\n if (!selectedRange?.to) newCurrentRangeField = 'to';\n }\n } else {\n // If selecting end date and it's before the current start date\n if (\n selectedRange?.from &&\n dayjs(selectedDay).isBefore(dayjs(selectedRange.from))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else newRange.to = selectedDay;\n }\n\n if (newCurrentRangeField !== currentRangeField)\n setCurrentRangeField(newCurrentRangeField);\n\n setInternalValue(newRange);\n onSelect(newRange);\n };\n\n const defaultTrigger = (\n <Flex gap='medium' className={pickerGroupClassName}>\n <InputField\n size='small'\n placeholder='Select start date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.startDate ?? {})}\n value={startDate}\n readOnly\n data-range-field='start'\n data-active={showCalendar && currentRangeField === 'from'}\n onClick={onTriggerClick}\n />\n\n <InputField\n size='small'\n placeholder='Select end date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.endDate ?? {})}\n value={endDate}\n readOnly\n data-range-field='end'\n data-active={showCalendar && currentRangeField === 'to'}\n onClick={onTriggerClick}\n />\n </Flex>\n );\n\n const trigger =\n typeof children === 'function'\n ? children({ startDate, endDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={setShowCalendar}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n showOutsideDays={false}\n numberOfMonths={2}\n defaultMonth={selectedRange.from}\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n mode='range'\n month={computedDefaultMonth}\n selected={selectedRange}\n onSelect={handleSelect}\n onMonthChange={setCurrentMonth}\n />\n {footer && (\n <Flex\n align='center'\n justify='center'\n className={styles.calendarFooter}\n >\n {footer}\n </Flex>\n )}\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkCM;;;AASH;;;AAWD;AACA;AAEA;AAEA;;;AAGA;;;;;AAMA;;AAEE;;AAEE;;AAGE;;;AAGJ;;AAGF;;AAGI;;;;;;;;;;AASF;;AAKF;AACE;;AAGA;;;AAII;AAEA;;;;AAGA;;;;;;;;AAOA;AAEA;;;;AAEK;;;;;;AAQX;AAEA;AA8BA;;AAGI;AAEJ;AAiCF;;"}
@@ -1,7 +1,7 @@
1
1
  import { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';
2
2
  import { InputFieldProps } from '../input-field/input-field';
3
+ import { PopoverContentProps } from '../popover/popover';
3
4
  interface RangePickerProps {
4
- side?: 'top' | 'right' | 'bottom' | 'left';
5
5
  dateFormat?: string;
6
6
  inputFieldsProps?: {
7
7
  startDate?: InputFieldProps;
@@ -19,7 +19,8 @@ interface RangePickerProps {
19
19
  showCalendarIcon?: boolean;
20
20
  footer?: React.ReactNode;
21
21
  timeZone?: string;
22
+ popoverProps?: PopoverContentProps;
22
23
  }
23
- export declare function RangePicker({ side, dateFormat, inputFieldsProps, calendarProps, onSelect, value, defaultValue, pickerGroupClassName, children, showCalendarIcon, footer, timeZone }: RangePickerProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function RangePicker({ dateFormat, inputFieldsProps, calendarProps, onSelect, value, defaultValue, pickerGroupClassName, children, showCalendarIcon, footer, timeZone, popoverProps }: RangePickerProps): import("react/jsx-runtime").JSX.Element;
24
25
  export {};
25
26
  //# sourceMappingURL=range-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"range-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/range-picker.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAK7D,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IAC9E,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,WAAW,CAAC,EAC1B,IAAY,EACZ,UAAyB,EACzB,gBAAqB,EACrB,aAAa,EACb,QAAmB,EACnB,KAAK,EACL,YAGC,EACD,oBAAoB,EACpB,QAAQ,EACR,gBAAuB,EACvB,MAAM,EACN,QAAQ,EACT,EAAE,gBAAgB,2CAkJlB"}
1
+ {"version":3,"file":"range-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/range-picker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIzD,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IAC9E,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAID,wBAAgB,WAAW,CAAC,EAC1B,UAAyB,EACzB,gBAAqB,EACrB,aAAa,EACb,QAAmB,EACnB,KAAK,EACL,YAGC,EACD,oBAAoB,EACpB,QAAQ,EACR,gBAAuB,EACvB,MAAM,EACN,QAAQ,EACR,YAAY,EACb,EAAE,gBAAgB,2CAsJlB"}
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import { CalendarIcon } from '../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
4
+ import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
4
5
  import dayjs from '../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.js';
5
6
  import { useState, useMemo, useCallback } from 'react';
6
7
  import { Flex } from '../flex/flex.js';
@@ -9,10 +10,10 @@ import { Popover } from '../popover/popover.js';
9
10
  import { Calendar } from './calendar.js';
10
11
  import styles from './calendar.module.css.js';
11
12
 
12
- function RangePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldsProps = {}, calendarProps, onSelect = () => { }, value, defaultValue = {
13
+ function RangePicker({ dateFormat = 'DD/MM/YYYY', inputFieldsProps = {}, calendarProps, onSelect = () => { }, value, defaultValue = {
13
14
  to: new Date(),
14
15
  from: new Date()
15
- }, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone }) {
16
+ }, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone, popoverProps }) {
16
17
  const [showCalendar, setShowCalendar] = useState(false);
17
18
  const [currentRangeField, setCurrentRangeField] = useState('from');
18
19
  const [internalValue, setInternalValue] = useState(value ?? defaultValue);
@@ -86,7 +87,7 @@ function RangePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldsProps
86
87
  const trigger = typeof children === 'function'
87
88
  ? children({ startDate, endDate })
88
89
  : children || defaultTrigger;
89
- return (jsxs(Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsxs(Popover.Content, { side: side, className: styles.calendarPopover, children: [jsx(Calendar, { showOutsideDays: false, numberOfMonths: 2, defaultMonth: selectedRange.from, required: true, ...calendarProps, timeZone: timeZone, mode: 'range', month: computedDefaultMonth, selected: selectedRange, onSelect: handleSelect, onMonthChange: setCurrentMonth }), footer && (jsx(Flex, { align: 'center', justify: 'center', className: styles.calendarFooter, children: footer }))] })] }));
90
+ return (jsxs(Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsxs(Popover.Content, { ...popoverProps, className: cx(styles.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: [jsx(Calendar, { showOutsideDays: false, numberOfMonths: 2, defaultMonth: selectedRange.from, required: true, ...calendarProps, timeZone: timeZone, mode: 'range', month: computedDefaultMonth, selected: selectedRange, onSelect: handleSelect, onMonthChange: setCurrentMonth }), footer && (jsx(Flex, { align: 'center', justify: 'center', className: styles.calendarFooter, children: footer }))] })] }));
90
91
  }
91
92
 
92
93
  export { RangePicker };
@@ -1 +1 @@
1
- {"version":3,"file":"range-picker.js","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n side?: 'top' | 'right' | 'bottom' | 'left';\n dateFormat?: string;\n inputFieldsProps?: { startDate?: InputFieldProps; endDate?: InputFieldProps };\n calendarProps?: PropsRangeRequired & PropsBase;\n onSelect?: (date: DateRange) => void;\n pickerGroupClassName?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n children?:\n | React.ReactNode\n | ((props: { startDate: string; endDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n footer?: React.ReactNode;\n timeZone?: string;\n}\n\ntype RangeFields = keyof DateRange;\n\nexport function RangePicker({\n side = 'top',\n dateFormat = 'DD/MM/YYYY',\n inputFieldsProps = {},\n calendarProps,\n onSelect = () => {},\n value,\n defaultValue = {\n to: new Date(),\n from: new Date()\n },\n pickerGroupClassName,\n children,\n showCalendarIcon = true,\n footer,\n timeZone\n}: RangePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [currentRangeField, setCurrentRangeField] =\n useState<RangeFields>('from');\n const [internalValue, setInternalValue] = useState(value ?? defaultValue);\n const [currentMonth, setCurrentMonth] = useState(internalValue?.from);\n\n const selectedRange = value ?? internalValue;\n\n const startDate = selectedRange.from\n ? dayjs(selectedRange.from).format(dateFormat)\n : '';\n const endDate = selectedRange.to\n ? dayjs(selectedRange.to).format(dateFormat)\n : '';\n\n // Ensures two months are visible even when\n // current month is the last allowed month (endMonth).\n const computedDefaultMonth = useMemo(() => {\n let month = currentMonth;\n if (calendarProps?.endMonth) {\n const endMonth = dayjs(calendarProps.endMonth);\n const fromMonth = dayjs(currentMonth);\n\n if (fromMonth.isSame(endMonth, 'month')) {\n month = endMonth.subtract(1, 'month').toDate();\n }\n }\n return month;\n }, [currentMonth, calendarProps?.endMonth]);\n\n const onTriggerClick = useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n const field = e.currentTarget.dataset.rangeField;\n if (field === 'start') {\n setCurrentRangeField('from');\n } else {\n setCurrentRangeField('to');\n }\n if (showCalendar) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [showCalendar]\n );\n\n // Handle date selection with custom logic\n const handleSelect = (_: DateRange, selectedDay: Date) => {\n let newRange = { ...selectedRange };\n let newCurrentRangeField = currentRangeField;\n\n if (currentRangeField === 'from') {\n // If selecting start date and it's after the current end date\n if (\n selectedRange?.to &&\n dayjs(selectedDay).isAfter(dayjs(selectedRange.to))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else {\n newRange.from = selectedDay;\n if (!selectedRange?.to) newCurrentRangeField = 'to';\n }\n } else {\n // If selecting end date and it's before the current start date\n if (\n selectedRange?.from &&\n dayjs(selectedDay).isBefore(dayjs(selectedRange.from))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else newRange.to = selectedDay;\n }\n\n if (newCurrentRangeField !== currentRangeField)\n setCurrentRangeField(newCurrentRangeField);\n\n setInternalValue(newRange);\n onSelect(newRange);\n };\n\n const defaultTrigger = (\n <Flex gap='medium' className={pickerGroupClassName}>\n <InputField\n size='small'\n placeholder='Select start date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.startDate ?? {})}\n value={startDate}\n readOnly\n data-range-field='start'\n data-active={showCalendar && currentRangeField === 'from'}\n onClick={onTriggerClick}\n />\n\n <InputField\n size='small'\n placeholder='Select end date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.endDate ?? {})}\n value={endDate}\n readOnly\n data-range-field='end'\n data-active={showCalendar && currentRangeField === 'to'}\n onClick={onTriggerClick}\n />\n </Flex>\n );\n\n const trigger =\n typeof children === 'function'\n ? children({ startDate, endDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={setShowCalendar}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content side={side} className={styles.calendarPopover}>\n <Calendar\n showOutsideDays={false}\n numberOfMonths={2}\n defaultMonth={selectedRange.from}\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n mode='range'\n month={computedDefaultMonth}\n selected={selectedRange}\n onSelect={handleSelect}\n onMonthChange={setCurrentMonth}\n />\n {footer && (\n <Flex\n align='center'\n justify='center'\n className={styles.calendarFooter}\n >\n {footer}\n </Flex>\n )}\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAgCgB;;;;;;AAoBd;AACA;AAEA;AAEA;;;AAGA;;;;;AAMA;;AAEE;;AAEE;;AAGE;;;AAGJ;;AAGF;;AAGI;;;;;;;;;;AASF;;AAKF;AACE;;AAGA;;;AAII;AAEA;;;;AAGA;;;;;;;;AAOA;AAEA;;;;AAEK;;;;;;AAQX;AAEA;AA8BA;;AAGI;;AA+BN;;"}
1
+ {"version":3,"file":"range-picker.js","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n dateFormat?: string;\n inputFieldsProps?: { startDate?: InputFieldProps; endDate?: InputFieldProps };\n calendarProps?: PropsRangeRequired & PropsBase;\n onSelect?: (date: DateRange) => void;\n pickerGroupClassName?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n children?:\n | React.ReactNode\n | ((props: { startDate: string; endDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n footer?: React.ReactNode;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\ntype RangeFields = keyof DateRange;\n\nexport function RangePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldsProps = {},\n calendarProps,\n onSelect = () => {},\n value,\n defaultValue = {\n to: new Date(),\n from: new Date()\n },\n pickerGroupClassName,\n children,\n showCalendarIcon = true,\n footer,\n timeZone,\n popoverProps\n}: RangePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [currentRangeField, setCurrentRangeField] =\n useState<RangeFields>('from');\n const [internalValue, setInternalValue] = useState(value ?? defaultValue);\n const [currentMonth, setCurrentMonth] = useState(internalValue?.from);\n\n const selectedRange = value ?? internalValue;\n\n const startDate = selectedRange.from\n ? dayjs(selectedRange.from).format(dateFormat)\n : '';\n const endDate = selectedRange.to\n ? dayjs(selectedRange.to).format(dateFormat)\n : '';\n\n // Ensures two months are visible even when\n // current month is the last allowed month (endMonth).\n const computedDefaultMonth = useMemo(() => {\n let month = currentMonth;\n if (calendarProps?.endMonth) {\n const endMonth = dayjs(calendarProps.endMonth);\n const fromMonth = dayjs(currentMonth);\n\n if (fromMonth.isSame(endMonth, 'month')) {\n month = endMonth.subtract(1, 'month').toDate();\n }\n }\n return month;\n }, [currentMonth, calendarProps?.endMonth]);\n\n const onTriggerClick = useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n const field = e.currentTarget.dataset.rangeField;\n if (field === 'start') {\n setCurrentRangeField('from');\n } else {\n setCurrentRangeField('to');\n }\n if (showCalendar) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [showCalendar]\n );\n\n // Handle date selection with custom logic\n const handleSelect = (_: DateRange, selectedDay: Date) => {\n let newRange = { ...selectedRange };\n let newCurrentRangeField = currentRangeField;\n\n if (currentRangeField === 'from') {\n // If selecting start date and it's after the current end date\n if (\n selectedRange?.to &&\n dayjs(selectedDay).isAfter(dayjs(selectedRange.to))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else {\n newRange.from = selectedDay;\n if (!selectedRange?.to) newCurrentRangeField = 'to';\n }\n } else {\n // If selecting end date and it's before the current start date\n if (\n selectedRange?.from &&\n dayjs(selectedDay).isBefore(dayjs(selectedRange.from))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else newRange.to = selectedDay;\n }\n\n if (newCurrentRangeField !== currentRangeField)\n setCurrentRangeField(newCurrentRangeField);\n\n setInternalValue(newRange);\n onSelect(newRange);\n };\n\n const defaultTrigger = (\n <Flex gap='medium' className={pickerGroupClassName}>\n <InputField\n size='small'\n placeholder='Select start date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.startDate ?? {})}\n value={startDate}\n readOnly\n data-range-field='start'\n data-active={showCalendar && currentRangeField === 'from'}\n onClick={onTriggerClick}\n />\n\n <InputField\n size='small'\n placeholder='Select end date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.endDate ?? {})}\n value={endDate}\n readOnly\n data-range-field='end'\n data-active={showCalendar && currentRangeField === 'to'}\n onClick={onTriggerClick}\n />\n </Flex>\n );\n\n const trigger =\n typeof children === 'function'\n ? children({ startDate, endDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={setShowCalendar}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n showOutsideDays={false}\n numberOfMonths={2}\n defaultMonth={selectedRange.from}\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n mode='range'\n month={computedDefaultMonth}\n selected={selectedRange}\n onSelect={handleSelect}\n onMonthChange={setCurrentMonth}\n />\n {footer && (\n <Flex\n align='center'\n justify='center'\n className={styles.calendarFooter}\n >\n {footer}\n </Flex>\n )}\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAkCM;;;AASH;;;AAWD;AACA;AAEA;AAEA;;;AAGA;;;;;AAMA;;AAEE;;AAEE;;AAGE;;;AAGJ;;AAGF;;AAGI;;;;;;;;;;AASF;;AAKF;AACE;;AAGA;;;AAII;AAEA;;;;AAGA;;;;;;;;AAOA;AAEA;;;;AAEK;;;;;;AAQX;AAEA;AA8BA;;AAGI;AAEJ;AAiCF;;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=callout.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callout.test.d.ts","sourceRoot":"","sources":["../../../../components/callout/__tests__/callout.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=checkbox.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.test.d.ts","sourceRoot":"","sources":["../../../../components/checkbox/__tests__/checkbox.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chip.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.test.d.ts","sourceRoot":"","sources":["../../../../components/chip/__tests__/chip.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=code-block.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block.test.d.ts","sourceRoot":"","sources":["../../../../components/code-block/__tests__/code-block.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
6
+ var index$1 = require('../../node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.cjs');
7
+ var React = require('react');
8
+ var useIsomorphicLayoutEffect = require('../../hooks/useIsomorphicLayoutEffect.cjs');
9
+ var codeBlockRoot = require('./code-block-root.cjs');
10
+ var codeBlock_module = require('./code-block.module.css.cjs');
11
+ var code_module = require('./code.module.css.cjs');
12
+
13
+ const emptyTheme = { plain: {}, styles: [] };
14
+ const CodeBlockCode = React.forwardRef(({ children, language, className, value, ...props }, ref) => {
15
+ const { value: contextValue, setCode, setValue } = codeBlockRoot.useCodeBlockContext();
16
+ const computedValue = value ?? language;
17
+ const isContextValueDefined = !!contextValue;
18
+ const shouldRender = !isContextValueDefined || contextValue === computedValue;
19
+ const content = children.trim();
20
+ useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
21
+ // if value is not defined, set the value
22
+ if (!isContextValueDefined)
23
+ setValue(language);
24
+ // if should render, store the code
25
+ if (shouldRender)
26
+ setCode(content);
27
+ }, [
28
+ content,
29
+ setCode,
30
+ shouldRender,
31
+ setValue,
32
+ language,
33
+ isContextValueDefined
34
+ ]);
35
+ if (!shouldRender)
36
+ return null;
37
+ return (jsxRuntime.jsx("div", { ref: ref, className: index.cx(codeBlock_module.default.codeContent, className), ...props, children: jsxRuntime.jsx(CodeHighlight, { content: content, language: language }) }));
38
+ });
39
+ CodeBlockCode.displayName = 'CodeBlockCode';
40
+ const CodeHighlight = React.memo(({ content, language }) => {
41
+ const { hideLineNumbers, maxLines, collapsed } = codeBlockRoot.useCodeBlockContext();
42
+ const canCollapse = maxLines && maxLines > 0;
43
+ return (jsxRuntime.jsx(index$1.Highlight, { theme: emptyTheme, code: content, language: language, children: ({ className: highlightClassName, style, tokens, getLineProps, getTokenProps }) => {
44
+ const renderedTokens = canCollapse && collapsed ? tokens.slice(0, maxLines) : tokens;
45
+ return (jsxRuntime.jsx("pre", { className: index.cx(code_module.default.theme, codeBlock_module.default.pre, highlightClassName), style: style, children: renderedTokens.map((line, i) => (jsxRuntime.jsxs("div", { ...getLineProps({ line }), children: [!hideLineNumbers && (jsxRuntime.jsx("span", { className: codeBlock_module.default.lineNumber, children: i + 1 })), jsxRuntime.jsx("span", { className: codeBlock_module.default.lineContent, children: line.map((token, key) => (jsxRuntime.jsx("span", { ...getTokenProps({ token }) }, key))) })] }, i))) }));
46
+ } }));
47
+ });
48
+
49
+ exports.CodeBlockCode = CodeBlockCode;
50
+ //# sourceMappingURL=code-block-code.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-code.cjs","sources":["../../../components/code-block/code-block-code.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'class-variance-authority';\nimport { Highlight } from 'prism-react-renderer';\nimport { Language } from 'prism-react-renderer';\nimport { HTMLAttributes, forwardRef, memo } from 'react';\nimport { useIsomorphicLayoutEffect } from '~/hooks';\nimport { useCodeBlockContext } from './code-block-root';\nimport styles from './code-block.module.css';\nimport code from './code.module.css';\n\nexport interface CodeBlockCodeProps extends HTMLAttributes<HTMLDivElement> {\n children: string;\n language: Language;\n value?: string;\n className?: string;\n}\n\nconst emptyTheme = { plain: {}, styles: [] };\n\nexport const CodeBlockCode = forwardRef<HTMLDivElement, CodeBlockCodeProps>(\n ({ children, language, className, value, ...props }, ref) => {\n const { value: contextValue, setCode, setValue } = useCodeBlockContext();\n const computedValue = value ?? language;\n const isContextValueDefined = !!contextValue;\n const shouldRender =\n !isContextValueDefined || contextValue === computedValue;\n const content = children.trim();\n\n useIsomorphicLayoutEffect(() => {\n // if value is not defined, set the value\n if (!isContextValueDefined) setValue(language);\n // if should render, store the code\n if (shouldRender) setCode(content);\n }, [\n content,\n setCode,\n shouldRender,\n setValue,\n language,\n isContextValueDefined\n ]);\n\n if (!shouldRender) return null;\n\n return (\n <div ref={ref} className={cx(styles.codeContent, className)} {...props}>\n <CodeHighlight content={content} language={language} />\n </div>\n );\n }\n);\n\nCodeBlockCode.displayName = 'CodeBlockCode';\n\nconst CodeHighlight = memo(\n ({ content, language }: { content: string; language: Language }) => {\n const { hideLineNumbers, maxLines, collapsed } = useCodeBlockContext();\n const canCollapse = maxLines && maxLines > 0;\n return (\n <Highlight theme={emptyTheme} code={content} language={language}>\n {({\n className: highlightClassName,\n style,\n tokens,\n getLineProps,\n getTokenProps\n }) => {\n const renderedTokens =\n canCollapse && collapsed ? tokens.slice(0, maxLines) : tokens;\n return (\n <pre\n className={cx(code.theme, styles.pre, highlightClassName)}\n style={style}\n >\n {renderedTokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {!hideLineNumbers && (\n <span className={styles.lineNumber}>{i + 1}</span>\n )}\n <span className={styles.lineContent}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </span>\n </div>\n ))}\n </pre>\n );\n }}\n </Highlight>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAkBA;;AAII;AACA;AACA;;AAGA;;;AAIE;;;AAEA;;AACF;;;;;;;AAOC;AAED;AAAmB;AAEnB;AAKF;AAGF;AAEA;;AAGI;AACA;;;;AAiCF;;"}
@@ -0,0 +1,10 @@
1
+ import { Language } from 'prism-react-renderer';
2
+ import { HTMLAttributes } from 'react';
3
+ export interface CodeBlockCodeProps extends HTMLAttributes<HTMLDivElement> {
4
+ children: string;
5
+ language: Language;
6
+ value?: string;
7
+ className?: string;
8
+ }
9
+ export declare const CodeBlockCode: import("react").ForwardRefExoticComponent<CodeBlockCodeProps & import("react").RefAttributes<HTMLDivElement>>;
10
+ //# sourceMappingURL=code-block-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-code.d.ts","sourceRoot":"","sources":["../../../components/code-block/code-block-code.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAoB,MAAM,OAAO,CAAC;AAMzD,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,aAAa,+GA+BzB,CAAC"}