@gcsa/console-react 0.1.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 (394) hide show
  1. package/dist/ConsoleHeader.d.ts +9 -0
  2. package/dist/ConsoleHeader.js +21 -0
  3. package/dist/ConsoleHeader.js.map +1 -0
  4. package/dist/ConsolePage.d.ts +8 -0
  5. package/dist/ConsolePage.js +14 -0
  6. package/dist/ConsolePage.js.map +1 -0
  7. package/dist/ConsoleShell.d.ts +23 -0
  8. package/dist/ConsoleShell.js +133 -0
  9. package/dist/ConsoleShell.js.map +1 -0
  10. package/dist/ConsoleSidebar.d.ts +11 -0
  11. package/dist/ConsoleSidebar.js +52 -0
  12. package/dist/ConsoleSidebar.js.map +1 -0
  13. package/dist/GcsaAlert.d.ts +9 -0
  14. package/dist/GcsaAlert.js +24 -0
  15. package/dist/GcsaAlert.js.map +1 -0
  16. package/dist/GcsaAutoComplete.d.ts +15 -0
  17. package/dist/GcsaAutoComplete.js +106 -0
  18. package/dist/GcsaAutoComplete.js.map +1 -0
  19. package/dist/GcsaAvatar.d.ts +8 -0
  20. package/dist/GcsaAvatar.js +13 -0
  21. package/dist/GcsaAvatar.js.map +1 -0
  22. package/dist/GcsaBadge.d.ts +7 -0
  23. package/dist/GcsaBadge.js +8 -0
  24. package/dist/GcsaBadge.js.map +1 -0
  25. package/dist/GcsaBrandMark.d.ts +4 -0
  26. package/dist/GcsaBrandMark.js +21 -0
  27. package/dist/GcsaBrandMark.js.map +1 -0
  28. package/dist/GcsaBreadcrumb.d.ts +9 -0
  29. package/dist/GcsaBreadcrumb.js +20 -0
  30. package/dist/GcsaBreadcrumb.js.map +1 -0
  31. package/dist/GcsaButton.d.ts +8 -0
  32. package/dist/GcsaButton.js +38 -0
  33. package/dist/GcsaButton.js.map +1 -0
  34. package/dist/GcsaCalendar.d.ts +11 -0
  35. package/dist/GcsaCalendar.js +35 -0
  36. package/dist/GcsaCalendar.js.map +1 -0
  37. package/dist/GcsaCard.d.ts +8 -0
  38. package/dist/GcsaCard.js +11 -0
  39. package/dist/GcsaCard.js.map +1 -0
  40. package/dist/GcsaCascader.d.ts +14 -0
  41. package/dist/GcsaCascader.js +91 -0
  42. package/dist/GcsaCascader.js.map +1 -0
  43. package/dist/GcsaChatPanel.d.ts +43 -0
  44. package/dist/GcsaChatPanel.js +180 -0
  45. package/dist/GcsaChatPanel.js.map +1 -0
  46. package/dist/GcsaCheckbox.d.ts +11 -0
  47. package/dist/GcsaCheckbox.js +45 -0
  48. package/dist/GcsaCheckbox.js.map +1 -0
  49. package/dist/GcsaCollapse.d.ts +16 -0
  50. package/dist/GcsaCollapse.js +20 -0
  51. package/dist/GcsaCollapse.js.map +1 -0
  52. package/dist/GcsaConfigProvider.d.ts +13 -0
  53. package/dist/GcsaConfigProvider.js +68 -0
  54. package/dist/GcsaConfigProvider.js.map +1 -0
  55. package/dist/GcsaDataTable.d.ts +119 -0
  56. package/dist/GcsaDataTable.js +508 -0
  57. package/dist/GcsaDataTable.js.map +1 -0
  58. package/dist/GcsaDatePicker.d.ts +16 -0
  59. package/dist/GcsaDatePicker.js +211 -0
  60. package/dist/GcsaDatePicker.js.map +1 -0
  61. package/dist/GcsaDateRangePicker.d.ts +17 -0
  62. package/dist/GcsaDateRangePicker.js +222 -0
  63. package/dist/GcsaDateRangePicker.js.map +1 -0
  64. package/dist/GcsaDateTimePicker.d.ts +13 -0
  65. package/dist/GcsaDateTimePicker.js +300 -0
  66. package/dist/GcsaDateTimePicker.js.map +1 -0
  67. package/dist/GcsaDescriptions.d.ts +9 -0
  68. package/dist/GcsaDescriptions.js +11 -0
  69. package/dist/GcsaDescriptions.js.map +1 -0
  70. package/dist/GcsaDivider.d.ts +4 -0
  71. package/dist/GcsaDivider.js +8 -0
  72. package/dist/GcsaDivider.js.map +1 -0
  73. package/dist/GcsaDrawer.d.ts +15 -0
  74. package/dist/GcsaDrawer.js +68 -0
  75. package/dist/GcsaDrawer.js.map +1 -0
  76. package/dist/GcsaDropdown.d.ts +20 -0
  77. package/dist/GcsaDropdown.js +46 -0
  78. package/dist/GcsaDropdown.js.map +1 -0
  79. package/dist/GcsaEmpty.d.ts +9 -0
  80. package/dist/GcsaEmpty.js +16 -0
  81. package/dist/GcsaEmpty.js.map +1 -0
  82. package/dist/GcsaField.d.ts +11 -0
  83. package/dist/GcsaField.js +26 -0
  84. package/dist/GcsaField.js.map +1 -0
  85. package/dist/GcsaForm.d.ts +13 -0
  86. package/dist/GcsaForm.js +60 -0
  87. package/dist/GcsaForm.js.map +1 -0
  88. package/dist/GcsaFormField.d.ts +16 -0
  89. package/dist/GcsaFormField.js +39 -0
  90. package/dist/GcsaFormField.js.map +1 -0
  91. package/dist/GcsaIcon.d.ts +7 -0
  92. package/dist/GcsaIcon.js +17 -0
  93. package/dist/GcsaIcon.js.map +1 -0
  94. package/dist/GcsaImagePreview.d.ts +8 -0
  95. package/dist/GcsaImagePreview.js +18 -0
  96. package/dist/GcsaImagePreview.js.map +1 -0
  97. package/dist/GcsaInput.d.ts +13 -0
  98. package/dist/GcsaInput.js +76 -0
  99. package/dist/GcsaInput.js.map +1 -0
  100. package/dist/GcsaInputGroup.d.ts +11 -0
  101. package/dist/GcsaInputGroup.js +27 -0
  102. package/dist/GcsaInputGroup.js.map +1 -0
  103. package/dist/GcsaInputNumber.d.ts +18 -0
  104. package/dist/GcsaInputNumber.js +108 -0
  105. package/dist/GcsaInputNumber.js.map +1 -0
  106. package/dist/GcsaLoading.d.ts +24 -0
  107. package/dist/GcsaLoading.js +101 -0
  108. package/dist/GcsaLoading.js.map +1 -0
  109. package/dist/GcsaLoadingMask.d.ts +8 -0
  110. package/dist/GcsaLoadingMask.js +39 -0
  111. package/dist/GcsaLoadingMask.js.map +1 -0
  112. package/dist/GcsaMarkdownRenderer.d.ts +6 -0
  113. package/dist/GcsaMarkdownRenderer.js +32 -0
  114. package/dist/GcsaMarkdownRenderer.js.map +1 -0
  115. package/dist/GcsaMenu.d.ts +16 -0
  116. package/dist/GcsaMenu.js +241 -0
  117. package/dist/GcsaMenu.js.map +1 -0
  118. package/dist/GcsaModal.d.ts +10 -0
  119. package/dist/GcsaModal.js +45 -0
  120. package/dist/GcsaModal.js.map +1 -0
  121. package/dist/GcsaMultiSelect.d.ts +23 -0
  122. package/dist/GcsaMultiSelect.js +149 -0
  123. package/dist/GcsaMultiSelect.js.map +1 -0
  124. package/dist/GcsaPagination.d.ts +17 -0
  125. package/dist/GcsaPagination.js +108 -0
  126. package/dist/GcsaPagination.js.map +1 -0
  127. package/dist/GcsaPopconfirm.d.ts +18 -0
  128. package/dist/GcsaPopconfirm.js +68 -0
  129. package/dist/GcsaPopconfirm.js.map +1 -0
  130. package/dist/GcsaPopover.d.ts +30 -0
  131. package/dist/GcsaPopover.js +65 -0
  132. package/dist/GcsaPopover.js.map +1 -0
  133. package/dist/GcsaPopoverClose.d.ts +6 -0
  134. package/dist/GcsaPopoverClose.js +9 -0
  135. package/dist/GcsaPopoverClose.js.map +1 -0
  136. package/dist/GcsaProgress.d.ts +5 -0
  137. package/dist/GcsaProgress.js +18 -0
  138. package/dist/GcsaProgress.js.map +1 -0
  139. package/dist/GcsaRadioGroup.d.ts +9 -0
  140. package/dist/GcsaRadioGroup.js +37 -0
  141. package/dist/GcsaRadioGroup.js.map +1 -0
  142. package/dist/GcsaResult.d.ts +9 -0
  143. package/dist/GcsaResult.js +14 -0
  144. package/dist/GcsaResult.js.map +1 -0
  145. package/dist/GcsaRow.d.ts +7 -0
  146. package/dist/GcsaRow.js +8 -0
  147. package/dist/GcsaRow.js.map +1 -0
  148. package/dist/GcsaSelect.d.ts +20 -0
  149. package/dist/GcsaSelect.js +117 -0
  150. package/dist/GcsaSelect.js.map +1 -0
  151. package/dist/GcsaSkeleton.d.ts +6 -0
  152. package/dist/GcsaSkeleton.js +19 -0
  153. package/dist/GcsaSkeleton.js.map +1 -0
  154. package/dist/GcsaSpace.d.ts +7 -0
  155. package/dist/GcsaSpace.js +14 -0
  156. package/dist/GcsaSpace.js.map +1 -0
  157. package/dist/GcsaSpin.d.ts +7 -0
  158. package/dist/GcsaSpin.js +16 -0
  159. package/dist/GcsaSpin.js.map +1 -0
  160. package/dist/GcsaStatistic.d.ts +8 -0
  161. package/dist/GcsaStatistic.js +11 -0
  162. package/dist/GcsaStatistic.js.map +1 -0
  163. package/dist/GcsaSteps.d.ts +10 -0
  164. package/dist/GcsaSteps.js +54 -0
  165. package/dist/GcsaSteps.js.map +1 -0
  166. package/dist/GcsaSwitch.d.ts +11 -0
  167. package/dist/GcsaSwitch.js +36 -0
  168. package/dist/GcsaSwitch.js.map +1 -0
  169. package/dist/GcsaTabs.d.ts +15 -0
  170. package/dist/GcsaTabs.js +39 -0
  171. package/dist/GcsaTabs.js.map +1 -0
  172. package/dist/GcsaTag.d.ts +7 -0
  173. package/dist/GcsaTag.js +9 -0
  174. package/dist/GcsaTag.js.map +1 -0
  175. package/dist/GcsaTextarea.d.ts +13 -0
  176. package/dist/GcsaTextarea.js +76 -0
  177. package/dist/GcsaTextarea.js.map +1 -0
  178. package/dist/GcsaTimePicker.d.ts +12 -0
  179. package/dist/GcsaTimePicker.js +221 -0
  180. package/dist/GcsaTimePicker.js.map +1 -0
  181. package/dist/GcsaTimeline.d.ts +5 -0
  182. package/dist/GcsaTimeline.js +19 -0
  183. package/dist/GcsaTimeline.js.map +1 -0
  184. package/dist/GcsaToastStack.d.ts +11 -0
  185. package/dist/GcsaToastStack.js +45 -0
  186. package/dist/GcsaToastStack.js.map +1 -0
  187. package/dist/GcsaTooltip.d.ts +17 -0
  188. package/dist/GcsaTooltip.js +43 -0
  189. package/dist/GcsaTooltip.js.map +1 -0
  190. package/dist/GcsaTransfer.d.ts +11 -0
  191. package/dist/GcsaTransfer.js +95 -0
  192. package/dist/GcsaTransfer.js.map +1 -0
  193. package/dist/GcsaTree.d.ts +17 -0
  194. package/dist/GcsaTree.js +38 -0
  195. package/dist/GcsaTree.js.map +1 -0
  196. package/dist/GcsaTypography.d.ts +8 -0
  197. package/dist/GcsaTypography.js +14 -0
  198. package/dist/GcsaTypography.js.map +1 -0
  199. package/dist/GcsaUpload.d.ts +24 -0
  200. package/dist/GcsaUpload.js +146 -0
  201. package/dist/GcsaUpload.js.map +1 -0
  202. package/dist/hooks/gcsaFormTypes.d.ts +7 -0
  203. package/dist/hooks/useDocumentThemeSync.d.ts +3 -0
  204. package/dist/hooks/useDocumentThemeSync.js +7 -0
  205. package/dist/hooks/useDocumentThemeSync.js.map +1 -0
  206. package/dist/hooks/useGcsaComponentSize.d.ts +5 -0
  207. package/dist/hooks/useGcsaComponentSize.js +21 -0
  208. package/dist/hooks/useGcsaComponentSize.js.map +1 -0
  209. package/dist/hooks/useGcsaFormField.d.ts +26 -0
  210. package/dist/hooks/useGcsaFormField.js +47 -0
  211. package/dist/hooks/useGcsaFormField.js.map +1 -0
  212. package/dist/hooks/useGcsaFormSchema.d.ts +7 -0
  213. package/dist/hooks/useGcsaFormSchema.js +6 -0
  214. package/dist/hooks/useGcsaFormSchema.js.map +1 -0
  215. package/dist/hooks/useGcsaLocale.d.ts +4 -0
  216. package/dist/hooks/useGcsaLocale.js +15 -0
  217. package/dist/hooks/useGcsaLocale.js.map +1 -0
  218. package/dist/hooks/useGcsaPopupZIndex.d.ts +6 -0
  219. package/dist/hooks/useGcsaPopupZIndex.js +18 -0
  220. package/dist/hooks/useGcsaPopupZIndex.js.map +1 -0
  221. package/dist/hooks/useGcsaTextCount.d.ts +16 -0
  222. package/dist/hooks/useGcsaTextCount.js +16 -0
  223. package/dist/hooks/useGcsaTextCount.js.map +1 -0
  224. package/dist/hooks/useGcsaTheme.d.ts +7 -0
  225. package/dist/hooks/useGcsaTheme.js +19 -0
  226. package/dist/hooks/useGcsaTheme.js.map +1 -0
  227. package/dist/hooks/useGcsaZIndex.d.ts +13 -0
  228. package/dist/hooks/useGcsaZIndex.js +37 -0
  229. package/dist/hooks/useGcsaZIndex.js.map +1 -0
  230. package/dist/hooks/useMessage.d.ts +6 -0
  231. package/dist/hooks/useOverlayZIndex.d.ts +8 -0
  232. package/dist/hooks/useOverlayZIndex.js +14 -0
  233. package/dist/hooks/useOverlayZIndex.js.map +1 -0
  234. package/dist/hooks/usePreventHiddenInputScroll.d.ts +13 -0
  235. package/dist/hooks/usePreventHiddenInputScroll.js +124 -0
  236. package/dist/hooks/usePreventHiddenInputScroll.js.map +1 -0
  237. package/dist/icons/iconNames.d.ts +7 -0
  238. package/dist/icons/iconNames.js +24 -0
  239. package/dist/icons/iconNames.js.map +1 -0
  240. package/dist/icons/index.d.ts +2 -0
  241. package/dist/icons/registry.d.ts +3 -0
  242. package/dist/icons/registry.js +58 -0
  243. package/dist/icons/registry.js.map +1 -0
  244. package/dist/icons/svg/alert.svg.js +9 -0
  245. package/dist/icons/svg/alert.svg.js.map +1 -0
  246. package/dist/icons/svg/assets.svg.js +9 -0
  247. package/dist/icons/svg/assets.svg.js.map +1 -0
  248. package/dist/icons/svg/chat.svg.js +8 -0
  249. package/dist/icons/svg/chat.svg.js.map +1 -0
  250. package/dist/icons/svg/check.svg.js +8 -0
  251. package/dist/icons/svg/check.svg.js.map +1 -0
  252. package/dist/icons/svg/chevron-down.svg.js +8 -0
  253. package/dist/icons/svg/chevron-down.svg.js.map +1 -0
  254. package/dist/icons/svg/chevron-left.svg.js +8 -0
  255. package/dist/icons/svg/chevron-left.svg.js.map +1 -0
  256. package/dist/icons/svg/chevron-right.svg.js +8 -0
  257. package/dist/icons/svg/chevron-right.svg.js.map +1 -0
  258. package/dist/icons/svg/chevron-up.svg.js +8 -0
  259. package/dist/icons/svg/chevron-up.svg.js.map +1 -0
  260. package/dist/icons/svg/close.svg.js +6 -0
  261. package/dist/icons/svg/close.svg.js.map +1 -0
  262. package/dist/icons/svg/dashboard.svg.js +8 -0
  263. package/dist/icons/svg/dashboard.svg.js.map +1 -0
  264. package/dist/icons/svg/menu.svg.js +8 -0
  265. package/dist/icons/svg/menu.svg.js.map +1 -0
  266. package/dist/icons/svg/plus.svg.js +6 -0
  267. package/dist/icons/svg/plus.svg.js.map +1 -0
  268. package/dist/icons/svg/result-empty.svg.js +6 -0
  269. package/dist/icons/svg/result-empty.svg.js.map +1 -0
  270. package/dist/icons/svg/settings.svg.js +8 -0
  271. package/dist/icons/svg/settings.svg.js.map +1 -0
  272. package/dist/icons/svg/users.svg.js +11 -0
  273. package/dist/icons/svg/users.svg.js.map +1 -0
  274. package/dist/index.d.ts +151 -0
  275. package/dist/index.js +166 -0
  276. package/dist/index.js.map +1 -0
  277. package/dist/style.css +8028 -0
  278. package/dist/utils/gcsaDateValue.d.ts +25 -0
  279. package/dist/utils/gcsaDateValue.js +60 -0
  280. package/dist/utils/gcsaDateValue.js.map +1 -0
  281. package/dist/utils/gcsaTableColumns.d.ts +19 -0
  282. package/dist/utils/gcsaTableColumns.js +43 -0
  283. package/dist/utils/gcsaTableColumns.js.map +1 -0
  284. package/dist/utils/preserveDrawerScroll.d.ts +2 -0
  285. package/dist/utils/preserveDrawerScroll.js +13 -0
  286. package/dist/utils/preserveDrawerScroll.js.map +1 -0
  287. package/dist/utils/zodValidators.d.ts +21 -0
  288. package/dist/utils/zodValidators.js +35 -0
  289. package/dist/utils/zodValidators.js.map +1 -0
  290. package/package.json +58 -0
  291. package/src/ConsoleHeader.tsx +24 -0
  292. package/src/ConsolePage.tsx +22 -0
  293. package/src/ConsoleShell.tsx +248 -0
  294. package/src/ConsoleSidebar.tsx +61 -0
  295. package/src/GcsaAlert.tsx +29 -0
  296. package/src/GcsaAutoComplete.tsx +163 -0
  297. package/src/GcsaAvatar.tsx +21 -0
  298. package/src/GcsaBadge.tsx +15 -0
  299. package/src/GcsaBrandMark.tsx +18 -0
  300. package/src/GcsaBreadcrumb.tsx +35 -0
  301. package/src/GcsaButton.tsx +44 -0
  302. package/src/GcsaCalendar.tsx +14 -0
  303. package/src/GcsaCard.tsx +21 -0
  304. package/src/GcsaCascader.tsx +121 -0
  305. package/src/GcsaChatPanel.tsx +320 -0
  306. package/src/GcsaCheckbox.tsx +55 -0
  307. package/src/GcsaCollapse.tsx +23 -0
  308. package/src/GcsaConfigProvider.tsx +121 -0
  309. package/src/GcsaDataTable.tsx +779 -0
  310. package/src/GcsaDatePicker.tsx +284 -0
  311. package/src/GcsaDateRangePicker.tsx +310 -0
  312. package/src/GcsaDateTimePicker.tsx +407 -0
  313. package/src/GcsaDescriptions.tsx +22 -0
  314. package/src/GcsaDivider.tsx +7 -0
  315. package/src/GcsaDrawer.tsx +87 -0
  316. package/src/GcsaDropdown.tsx +84 -0
  317. package/src/GcsaEmpty.tsx +27 -0
  318. package/src/GcsaField.tsx +50 -0
  319. package/src/GcsaForm.tsx +82 -0
  320. package/src/GcsaFormField.tsx +67 -0
  321. package/src/GcsaIcon.tsx +21 -0
  322. package/src/GcsaImagePreview.tsx +30 -0
  323. package/src/GcsaInput.tsx +87 -0
  324. package/src/GcsaInputGroup.tsx +32 -0
  325. package/src/GcsaInputNumber.tsx +155 -0
  326. package/src/GcsaLoading.ts +206 -0
  327. package/src/GcsaLoadingMask.tsx +53 -0
  328. package/src/GcsaMarkdownRenderer.tsx +40 -0
  329. package/src/GcsaMenu.tsx +340 -0
  330. package/src/GcsaModal.tsx +68 -0
  331. package/src/GcsaMultiSelect.tsx +246 -0
  332. package/src/GcsaPagination.tsx +194 -0
  333. package/src/GcsaPopconfirm.tsx +104 -0
  334. package/src/GcsaPopover.tsx +131 -0
  335. package/src/GcsaPopoverClose.tsx +11 -0
  336. package/src/GcsaProgress.tsx +18 -0
  337. package/src/GcsaRadioGroup.tsx +42 -0
  338. package/src/GcsaResult.tsx +23 -0
  339. package/src/GcsaRow.tsx +13 -0
  340. package/src/GcsaSelect.tsx +186 -0
  341. package/src/GcsaSkeleton.tsx +19 -0
  342. package/src/GcsaSpace.tsx +17 -0
  343. package/src/GcsaSpin.tsx +25 -0
  344. package/src/GcsaStatistic.tsx +17 -0
  345. package/src/GcsaSteps.tsx +73 -0
  346. package/src/GcsaSwitch.tsx +45 -0
  347. package/src/GcsaTabs.tsx +53 -0
  348. package/src/GcsaTag.tsx +16 -0
  349. package/src/GcsaTextarea.tsx +87 -0
  350. package/src/GcsaTimePicker.tsx +298 -0
  351. package/src/GcsaTimeline.tsx +27 -0
  352. package/src/GcsaToastStack.tsx +67 -0
  353. package/src/GcsaTooltip.tsx +75 -0
  354. package/src/GcsaTransfer.tsx +129 -0
  355. package/src/GcsaTree.tsx +43 -0
  356. package/src/GcsaTypography.tsx +24 -0
  357. package/src/GcsaUpload.tsx +206 -0
  358. package/src/hooks/gcsaFormTypes.ts +23 -0
  359. package/src/hooks/useDocumentThemeSync.ts +6 -0
  360. package/src/hooks/useGcsaComponentSize.ts +24 -0
  361. package/src/hooks/useGcsaFormField.ts +49 -0
  362. package/src/hooks/useGcsaFormSchema.ts +6 -0
  363. package/src/hooks/useGcsaLocale.ts +16 -0
  364. package/src/hooks/useGcsaPopupZIndex.ts +23 -0
  365. package/src/hooks/useGcsaTextCount.ts +44 -0
  366. package/src/hooks/useGcsaTheme.ts +19 -0
  367. package/src/hooks/useGcsaZIndex.ts +60 -0
  368. package/src/hooks/useMessage.ts +7 -0
  369. package/src/hooks/useOverlayZIndex.ts +23 -0
  370. package/src/hooks/usePreventHiddenInputScroll.ts +233 -0
  371. package/src/icons/iconNames.ts +27 -0
  372. package/src/icons/index.ts +8 -0
  373. package/src/icons/registry.ts +38 -0
  374. package/src/icons/svg/alert.svg +4 -0
  375. package/src/icons/svg/assets.svg +4 -0
  376. package/src/icons/svg/chat.svg +3 -0
  377. package/src/icons/svg/check.svg +3 -0
  378. package/src/icons/svg/chevron-down.svg +3 -0
  379. package/src/icons/svg/chevron-left.svg +3 -0
  380. package/src/icons/svg/chevron-right.svg +3 -0
  381. package/src/icons/svg/chevron-up.svg +3 -0
  382. package/src/icons/svg/close.svg +1 -0
  383. package/src/icons/svg/dashboard.svg +3 -0
  384. package/src/icons/svg/menu.svg +3 -0
  385. package/src/icons/svg/plus.svg +1 -0
  386. package/src/icons/svg/result-empty.svg +1 -0
  387. package/src/icons/svg/settings.svg +3 -0
  388. package/src/icons/svg/users.svg +6 -0
  389. package/src/index.ts +166 -0
  390. package/src/utils/gcsaDateValue.ts +99 -0
  391. package/src/utils/gcsaTableColumns.ts +97 -0
  392. package/src/utils/preserveDrawerScroll.ts +20 -0
  393. package/src/utils/zodValidators.ts +45 -0
  394. package/src/vite-env.d.ts +6 -0
@@ -0,0 +1,222 @@
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import { useMemo as N, useCallback as b } from "react";
3
+ import { parseDate as T, DatePicker as a } from "@ark-ui/react/date-picker";
4
+ import { Portal as O } from "@ark-ui/react/portal";
5
+ import { getGcsaLocaleMessages as S, getGcsaStartOfWeek as z, createGcsaPopupPositioning as W } from "@gcsa/console-core";
6
+ import { GcsaIcon as k } from "./GcsaIcon.js";
7
+ import { GcsaSelect as B } from "./GcsaSelect.js";
8
+ import { useGcsaLocale as H } from "./hooks/useGcsaLocale.js";
9
+ import { gcsaDateRangeToDateValues as Y, gcsaNormalizeDateBoundary as w, gcsaDatePickerFormat as E, gcsaDatePickerParse as I, gcsaDateValuesToRange as j, gcsaDatePickerCellsToOptions as F } from "./utils/gcsaDateValue.js";
10
+ function x({
11
+ dp: s,
12
+ monthOffset: g,
13
+ weekDays: h,
14
+ showPrev: r,
15
+ showNext: m,
16
+ navLabels: i
17
+ }) {
18
+ const p = s.getOffset({ months: g }), _ = p.weeks;
19
+ return /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel", children: [
20
+ /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel-header", children: [
21
+ r ? /* @__PURE__ */ e(
22
+ a.PrevTrigger,
23
+ {
24
+ className: "gcsa-date-picker__nav gcsa-focus-ring",
25
+ "aria-label": i.prevMonth,
26
+ children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm" })
27
+ }
28
+ ) : /* @__PURE__ */ e("span", { className: "gcsa-date-range-picker__nav-spacer", "aria-hidden": "true" }),
29
+ /* @__PURE__ */ e("div", { className: "gcsa-date-range-picker__panel-label", children: p.visibleRangeText.start }),
30
+ m ? /* @__PURE__ */ e(
31
+ a.NextTrigger,
32
+ {
33
+ className: "gcsa-date-picker__nav gcsa-focus-ring",
34
+ "aria-label": i.nextMonth,
35
+ children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm", className: "gcsa-date-picker__nav-icon--next" })
36
+ }
37
+ ) : /* @__PURE__ */ e("span", { className: "gcsa-date-range-picker__nav-spacer", "aria-hidden": "true" })
38
+ ] }),
39
+ /* @__PURE__ */ l(a.Table, { className: "gcsa-date-picker__table", children: [
40
+ /* @__PURE__ */ e(a.TableHead, { children: /* @__PURE__ */ e(a.TableRow, { children: h.map((o, u) => /* @__PURE__ */ e(
41
+ a.TableHeader,
42
+ {
43
+ className: "gcsa-date-picker__weekday",
44
+ children: o.short
45
+ },
46
+ o.short ?? u
47
+ )) }) }),
48
+ /* @__PURE__ */ e(a.TableBody, { children: _.map((o, u) => /* @__PURE__ */ e(a.TableRow, { children: o.map((d) => /* @__PURE__ */ e(a.TableCell, { value: d, className: "gcsa-date-picker__cell", children: /* @__PURE__ */ e(a.TableCellTrigger, { className: "gcsa-date-picker__day gcsa-focus-ring", children: d.day }) }, d.toString())) }, u)) })
49
+ ] })
50
+ ] });
51
+ }
52
+ function $({
53
+ dp: s,
54
+ messages: g
55
+ }) {
56
+ const h = s.getMonthsGrid({ columns: 3 });
57
+ return /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel gcsa-date-range-picker__panel--month", children: [
58
+ /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel-header", children: [
59
+ /* @__PURE__ */ e(
60
+ a.PrevTrigger,
61
+ {
62
+ className: "gcsa-date-picker__nav gcsa-focus-ring",
63
+ "aria-label": g.prevYear,
64
+ children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm" })
65
+ }
66
+ ),
67
+ /* @__PURE__ */ e("div", { className: "gcsa-date-picker__selects gcsa-date-range-picker__year-select", children: /* @__PURE__ */ e("div", { className: "gcsa-date-picker__filter gcsa-date-picker__filter--year", children: /* @__PURE__ */ e(
68
+ B,
69
+ {
70
+ value: String(s.focusedValue.year),
71
+ options: F(s.getYears()),
72
+ portalled: !1,
73
+ sameWidth: !1,
74
+ listMaxHeight: 240,
75
+ listHintThreshold: 100,
76
+ onValueChange: (r) => s.focusYear(Number(r))
77
+ }
78
+ ) }) }),
79
+ /* @__PURE__ */ e(
80
+ a.NextTrigger,
81
+ {
82
+ className: "gcsa-date-picker__nav gcsa-focus-ring",
83
+ "aria-label": g.nextYear,
84
+ children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm", className: "gcsa-date-picker__nav-icon--next" })
85
+ }
86
+ )
87
+ ] }),
88
+ /* @__PURE__ */ e(a.Table, { className: "gcsa-date-picker__table gcsa-date-picker__table--month", columns: 3, children: /* @__PURE__ */ e(a.TableBody, { children: h.map((r, m) => /* @__PURE__ */ e(a.TableRow, { children: r.map((i) => /* @__PURE__ */ e(a.TableCell, { value: i.value, className: "gcsa-date-picker__cell", children: /* @__PURE__ */ e(a.TableCellTrigger, { className: "gcsa-date-picker__month gcsa-focus-ring", children: i.label }) }, i.value)) }, m)) }) })
89
+ ] });
90
+ }
91
+ function ae({
92
+ value: s,
93
+ placeholderStart: g,
94
+ placeholderEnd: h,
95
+ picker: r = "date",
96
+ locale: m,
97
+ disabled: i,
98
+ invalid: p,
99
+ min: _,
100
+ max: o,
101
+ className: u,
102
+ onValueChange: d
103
+ }) {
104
+ const P = H(), f = m ?? P, t = S(f).datePicker, D = z(f), n = r === "month", M = g ?? (n ? t.placeholderStartMonth : t.placeholderStart), y = h ?? (n ? t.placeholderEndMonth : t.placeholderEnd), V = N(() => Y(s, r), [s, r]), C = N(
105
+ () => _ ? T(w(_, r)) : void 0,
106
+ [_, r]
107
+ ), G = N(
108
+ () => o ? T(w(o, r)) : void 0,
109
+ [o, r]
110
+ ), L = b(
111
+ (c, v) => E(c, v, r),
112
+ [r]
113
+ ), R = b(
114
+ (c, v) => I(c, v, r),
115
+ [r]
116
+ );
117
+ return /* @__PURE__ */ l(
118
+ a.Root,
119
+ {
120
+ value: V,
121
+ locale: f,
122
+ startOfWeek: D,
123
+ positioning: W({ fitViewport: !0 }),
124
+ selectionMode: "range",
125
+ numOfMonths: n ? 1 : 2,
126
+ openOnClick: !0,
127
+ closeOnSelect: !0,
128
+ disabled: i,
129
+ invalid: p,
130
+ min: C,
131
+ max: G,
132
+ minView: n ? "month" : void 0,
133
+ maxView: n ? "month" : void 0,
134
+ defaultView: n ? "month" : void 0,
135
+ format: L,
136
+ parse: R,
137
+ className: u,
138
+ onValueChange: (c) => {
139
+ d == null || d(j(c.value, r));
140
+ },
141
+ children: [
142
+ /* @__PURE__ */ l(
143
+ a.Control,
144
+ {
145
+ className: "gcsa-date-range-picker__control gcsa-date-picker__control",
146
+ "data-invalid": p || void 0,
147
+ children: [
148
+ /* @__PURE__ */ e(
149
+ a.Input,
150
+ {
151
+ index: 0,
152
+ className: "gcsa-date-picker__input gcsa-input",
153
+ placeholder: M
154
+ }
155
+ ),
156
+ /* @__PURE__ */ e("span", { className: "gcsa-date-range-picker__separator", "aria-hidden": "true", children: t.rangeSeparator }),
157
+ /* @__PURE__ */ e(
158
+ a.Input,
159
+ {
160
+ index: 1,
161
+ className: "gcsa-date-picker__input gcsa-input",
162
+ placeholder: y
163
+ }
164
+ ),
165
+ /* @__PURE__ */ e(
166
+ a.Trigger,
167
+ {
168
+ className: "gcsa-date-picker__trigger gcsa-focus-ring",
169
+ "aria-label": t.openCalendar,
170
+ children: /* @__PURE__ */ l("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
171
+ /* @__PURE__ */ e("rect", { x: "2", y: "3", width: "12", height: "11", rx: "1.5", stroke: "currentColor", strokeWidth: "1.2" }),
172
+ /* @__PURE__ */ e(
173
+ "path",
174
+ {
175
+ d: "M2 6.5h12M5.5 1.5v2M10.5 1.5v2",
176
+ stroke: "currentColor",
177
+ strokeWidth: "1.2",
178
+ strokeLinecap: "round"
179
+ }
180
+ )
181
+ ] })
182
+ }
183
+ )
184
+ ]
185
+ }
186
+ ),
187
+ /* @__PURE__ */ e(O, { children: /* @__PURE__ */ e(a.Positioner, { className: "gcsa-date-picker__positioner", children: /* @__PURE__ */ e(
188
+ a.Content,
189
+ {
190
+ className: `gcsa-date-range-picker__content gcsa-date-picker__content gcsa-ui-surface${n ? " gcsa-date-range-picker__content--month" : ""}`,
191
+ children: /* @__PURE__ */ e(a.View, { view: n ? "month" : "day", children: /* @__PURE__ */ e(a.Context, { children: (c) => n ? /* @__PURE__ */ e($, { dp: c, messages: t }) : /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panels", children: [
192
+ /* @__PURE__ */ e(
193
+ x,
194
+ {
195
+ dp: c,
196
+ monthOffset: 0,
197
+ weekDays: c.weekDays,
198
+ showPrev: !0,
199
+ navLabels: t
200
+ }
201
+ ),
202
+ /* @__PURE__ */ e(
203
+ x,
204
+ {
205
+ dp: c,
206
+ monthOffset: 1,
207
+ weekDays: c.weekDays,
208
+ showNext: !0,
209
+ navLabels: t
210
+ }
211
+ )
212
+ ] }) }) })
213
+ }
214
+ ) }) })
215
+ ]
216
+ }
217
+ );
218
+ }
219
+ export {
220
+ ae as GcsaDateRangePicker
221
+ };
222
+ //# sourceMappingURL=GcsaDateRangePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GcsaDateRangePicker.js","sources":["../src/GcsaDateRangePicker.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { DatePicker, parseDate, type UseDatePickerContext } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport {\n getGcsaLocaleMessages,\n getGcsaStartOfWeek,\n createGcsaPopupPositioning,\n type GcsaConsoleLocale,\n type GcsaDatePickerMode,\n type GcsaDateRangeValue,\n type GcsaMonthRangeValue\n} from '@gcsa/console-core';\nimport { GcsaIcon } from './GcsaIcon';\nimport { GcsaSelect } from './GcsaSelect';\nimport { useGcsaLocale } from './hooks/useGcsaLocale';\nimport {\n gcsaDatePickerCellsToOptions,\n gcsaDatePickerFormat,\n gcsaDatePickerParse,\n gcsaDateRangeToDateValues,\n gcsaDateValuesToRange,\n gcsaNormalizeDateBoundary\n} from './utils/gcsaDateValue';\n\nexport type GcsaDateRangePickerProps = {\n value?: GcsaDateRangeValue | GcsaMonthRangeValue;\n placeholderStart?: string;\n placeholderEnd?: string;\n /** 选择粒度:`date` 为 YYYY-MM-DD,`month` 为 YYYY-MM */\n picker?: GcsaDatePickerMode;\n /** 语言;未传时读取 GcsaConfigProvider */\n locale?: GcsaConsoleLocale;\n disabled?: boolean;\n invalid?: boolean;\n min?: string;\n max?: string;\n className?: string;\n onValueChange?: (value: GcsaDateRangeValue | GcsaMonthRangeValue) => void;\n};\n\ntype DatePickerContext = UseDatePickerContext;\n\nfunction GcsaDateRangeDayPanel({\n dp,\n monthOffset,\n weekDays,\n showPrev,\n showNext,\n navLabels\n}: {\n dp: DatePickerContext;\n monthOffset: number;\n weekDays: DatePickerContext['weekDays'];\n showPrev?: boolean;\n showNext?: boolean;\n navLabels: { prevMonth: string; nextMonth: string };\n}) {\n const offset = dp.getOffset({ months: monthOffset });\n const weeks = offset.weeks;\n\n return (\n <div className=\"gcsa-date-range-picker__panel\">\n <div className=\"gcsa-date-range-picker__panel-header\">\n {showPrev ? (\n <DatePicker.PrevTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={navLabels.prevMonth}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" />\n </DatePicker.PrevTrigger>\n ) : (\n <span className=\"gcsa-date-range-picker__nav-spacer\" aria-hidden=\"true\" />\n )}\n <div className=\"gcsa-date-range-picker__panel-label\">{offset.visibleRangeText.start}</div>\n {showNext ? (\n <DatePicker.NextTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={navLabels.nextMonth}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" className=\"gcsa-date-picker__nav-icon--next\" />\n </DatePicker.NextTrigger>\n ) : (\n <span className=\"gcsa-date-range-picker__nav-spacer\" aria-hidden=\"true\" />\n )}\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table\">\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {weekDays.map((weekDay, weekDayIndex) => (\n <DatePicker.TableHeader\n key={weekDay.short ?? weekDayIndex}\n className=\"gcsa-date-picker__weekday\"\n >\n {weekDay.short}\n </DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {weeks.map((week, weekIndex) => (\n <DatePicker.TableRow key={weekIndex}>\n {week.map(day => (\n <DatePicker.TableCell key={day.toString()} value={day} className=\"gcsa-date-picker__cell\">\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__day gcsa-focus-ring\">\n {day.day}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </div>\n );\n}\n\nfunction GcsaDateRangeMonthView({\n dp,\n messages\n}: {\n dp: DatePickerContext;\n messages: ReturnType<typeof getGcsaLocaleMessages>['datePicker'];\n}) {\n const monthsGrid = dp.getMonthsGrid({ columns: 3 });\n\n return (\n <div className=\"gcsa-date-range-picker__panel gcsa-date-range-picker__panel--month\">\n <div className=\"gcsa-date-range-picker__panel-header\">\n <DatePicker.PrevTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevYear}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" />\n </DatePicker.PrevTrigger>\n <div className=\"gcsa-date-picker__selects gcsa-date-range-picker__year-select\">\n <div className=\"gcsa-date-picker__filter gcsa-date-picker__filter--year\">\n <GcsaSelect\n value={String(dp.focusedValue.year)}\n options={gcsaDatePickerCellsToOptions(dp.getYears())}\n portalled={false}\n sameWidth={false}\n listMaxHeight={240}\n listHintThreshold={100}\n onValueChange={v => dp.focusYear(Number(v))}\n />\n </div>\n </div>\n <DatePicker.NextTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextYear}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" className=\"gcsa-date-picker__nav-icon--next\" />\n </DatePicker.NextTrigger>\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table gcsa-date-picker__table--month\" columns={3}>\n <DatePicker.TableBody>\n {monthsGrid.map((row, rowIndex) => (\n <DatePicker.TableRow key={rowIndex}>\n {row.map(month => (\n <DatePicker.TableCell key={month.value} value={month.value} className=\"gcsa-date-picker__cell\">\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__month gcsa-focus-ring\">\n {month.label}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </div>\n );\n}\n\nexport function GcsaDateRangePicker({\n value,\n placeholderStart,\n placeholderEnd,\n picker = 'date',\n locale: localeProp,\n disabled,\n invalid,\n min,\n max,\n className,\n onValueChange\n}: GcsaDateRangePickerProps) {\n const configLocale = useGcsaLocale();\n const resolvedLocale = localeProp ?? configLocale;\n const messages = getGcsaLocaleMessages(resolvedLocale).datePicker;\n const startOfWeek = getGcsaStartOfWeek(resolvedLocale);\n const isMonthPicker = picker === 'month';\n const resolvedPlaceholderStart =\n placeholderStart ?? (isMonthPicker ? messages.placeholderStartMonth : messages.placeholderStart);\n const resolvedPlaceholderEnd =\n placeholderEnd ?? (isMonthPicker ? messages.placeholderEndMonth : messages.placeholderEnd);\n\n const pickerValue = useMemo(() => gcsaDateRangeToDateValues(value, picker), [value, picker]);\n const minValue = useMemo(\n () => (min ? parseDate(gcsaNormalizeDateBoundary(min, picker)!) : undefined),\n [min, picker]\n );\n const maxValue = useMemo(\n () => (max ? parseDate(gcsaNormalizeDateBoundary(max, picker)!) : undefined),\n [max, picker]\n );\n\n const formatValue = useCallback(\n (date: Parameters<typeof gcsaDatePickerFormat>[0], details: Parameters<typeof gcsaDatePickerFormat>[1]) =>\n gcsaDatePickerFormat(date, details, picker),\n [picker]\n );\n const parseValue = useCallback(\n (input: string, details: Parameters<typeof gcsaDatePickerParse>[1]) =>\n gcsaDatePickerParse(input, details, picker),\n [picker]\n );\n\n return (\n <DatePicker.Root\n value={pickerValue}\n locale={resolvedLocale}\n startOfWeek={startOfWeek}\n positioning={createGcsaPopupPositioning({ fitViewport: true })}\n selectionMode=\"range\"\n numOfMonths={isMonthPicker ? 1 : 2}\n openOnClick\n closeOnSelect\n disabled={disabled}\n invalid={invalid}\n min={minValue}\n max={maxValue}\n minView={isMonthPicker ? 'month' : undefined}\n maxView={isMonthPicker ? 'month' : undefined}\n defaultView={isMonthPicker ? 'month' : undefined}\n format={formatValue}\n parse={parseValue}\n className={className}\n onValueChange={details => {\n onValueChange?.(gcsaDateValuesToRange(details.value, picker));\n }}\n >\n <DatePicker.Control\n className=\"gcsa-date-range-picker__control gcsa-date-picker__control\"\n data-invalid={invalid || undefined}\n >\n <DatePicker.Input\n index={0}\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholderStart}\n />\n <span className=\"gcsa-date-range-picker__separator\" aria-hidden=\"true\">\n {messages.rangeSeparator}\n </span>\n <DatePicker.Input\n index={1}\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholderEnd}\n />\n <DatePicker.Trigger\n className=\"gcsa-date-picker__trigger gcsa-focus-ring\"\n aria-label={messages.openCalendar}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <path\n d=\"M2 6.5h12M5.5 1.5v2M10.5 1.5v2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </DatePicker.Trigger>\n </DatePicker.Control>\n <Portal>\n <DatePicker.Positioner className=\"gcsa-date-picker__positioner\">\n <DatePicker.Content\n className={`gcsa-date-range-picker__content gcsa-date-picker__content gcsa-ui-surface${isMonthPicker ? ' gcsa-date-range-picker__content--month' : ''}`}\n >\n <DatePicker.View view={isMonthPicker ? 'month' : 'day'}>\n <DatePicker.Context>\n {dp =>\n isMonthPicker ? (\n <GcsaDateRangeMonthView dp={dp} messages={messages} />\n ) : (\n <div className=\"gcsa-date-range-picker__panels\">\n <GcsaDateRangeDayPanel\n dp={dp}\n monthOffset={0}\n weekDays={dp.weekDays}\n showPrev\n navLabels={messages}\n />\n <GcsaDateRangeDayPanel\n dp={dp}\n monthOffset={1}\n weekDays={dp.weekDays}\n showNext\n navLabels={messages}\n />\n </div>\n )\n }\n </DatePicker.Context>\n </DatePicker.View>\n </DatePicker.Content>\n </DatePicker.Positioner>\n </Portal>\n </DatePicker.Root>\n );\n}\n"],"names":["GcsaDateRangeDayPanel","dp","monthOffset","weekDays","showPrev","showNext","navLabels","offset","weeks","jsxs","jsx","DatePicker","GcsaIcon","weekDay","weekDayIndex","week","weekIndex","day","GcsaDateRangeMonthView","messages","monthsGrid","GcsaSelect","gcsaDatePickerCellsToOptions","v","row","rowIndex","month","GcsaDateRangePicker","value","placeholderStart","placeholderEnd","picker","localeProp","disabled","invalid","min","max","className","onValueChange","configLocale","useGcsaLocale","resolvedLocale","getGcsaLocaleMessages","startOfWeek","getGcsaStartOfWeek","isMonthPicker","resolvedPlaceholderStart","resolvedPlaceholderEnd","pickerValue","useMemo","gcsaDateRangeToDateValues","minValue","parseDate","gcsaNormalizeDateBoundary","maxValue","formatValue","useCallback","date","details","gcsaDatePickerFormat","parseValue","input","gcsaDatePickerParse","createGcsaPopupPositioning","gcsaDateValuesToRange","Portal"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { GcsaConsoleLocale } from '@gcsa/console-core';
2
+ export type GcsaDateTimePickerProps = {
3
+ value?: string;
4
+ placeholder?: string;
5
+ locale?: GcsaConsoleLocale;
6
+ disabled?: boolean;
7
+ invalid?: boolean;
8
+ min?: string;
9
+ max?: string;
10
+ className?: string;
11
+ onValueChange?: (value: string) => void;
12
+ };
13
+ export declare function GcsaDateTimePicker({ value, placeholder, locale: localeProp, disabled, invalid, min, max, className, onValueChange }: GcsaDateTimePickerProps): import("react").JSX.Element;
@@ -0,0 +1,300 @@
1
+ import { jsxs as n, jsx as t, Fragment as ue } from "react/jsx-runtime";
2
+ import { useState as f, useRef as b, useCallback as _, useEffect as ge, useMemo as H } from "react";
3
+ import { parseDate as J, DatePicker as r } from "@ark-ui/react/date-picker";
4
+ import { Portal as pe } from "@ark-ui/react/portal";
5
+ import { getGcsaLocaleMessages as K, getGcsaStartOfWeek as fe, gcsaSplitDateTime as v, gcsaTimePickerScrollTop as F, gcsaJoinDateTime as Q, createGcsaPopupPositioning as _e, gcsaTimePickerScrollIndex as he } from "@gcsa/console-core";
6
+ import { useGcsaLocale as ke } from "./hooks/useGcsaLocale.js";
7
+ import { gcsaStringToDateValues as Se, gcsaNormalizeDateBoundary as X, gcsaDatePickerFormat as De, gcsaDatePickerParse as be, gcsaDateValueToOutputString as ve } from "./utils/gcsaDateValue.js";
8
+ const G = Array.from({ length: 24 }, (i, l) => String(l).padStart(2, "0")), L = Array.from({ length: 60 }, (i, l) => String(l).padStart(2, "0")), R = Array.from({ length: 60 }, (i, l) => String(l).padStart(2, "0"));
9
+ function Ne(i) {
10
+ return `${i.year} - ${String(i.month).padStart(2, "0")}`;
11
+ }
12
+ function Oe({
13
+ value: i,
14
+ placeholder: l,
15
+ locale: Z,
16
+ disabled: Y,
17
+ invalid: A,
18
+ min: W,
19
+ max: z,
20
+ className: ee,
21
+ onValueChange: N
22
+ }) {
23
+ const te = ke(), h = Z ?? te, s = K(h).datePicker, k = K(h), ae = fe(h), re = l ?? s.placeholderDateTime, [T, B] = f(!1), [S, M] = f(""), [d, w] = f("00"), [m, x] = f("00"), [u, C] = f("00"), y = b(null), P = b(null), O = b(null), E = b({}), I = () => `${d}:${m}:${u}`, D = _((e) => {
24
+ const [a = "00", c = "00", o = "00"] = e.split(":");
25
+ w(a.padStart(2, "0")), x(c.padStart(2, "0")), C(o.padStart(2, "0").slice(0, 2));
26
+ }, []), V = _(
27
+ (e = i) => {
28
+ const { date: a, time: c } = v(e);
29
+ M(a), D(c);
30
+ },
31
+ [D, i]
32
+ ), p = _(() => {
33
+ requestAnimationFrame(() => {
34
+ y.current && (y.current.scrollTop = F(G.indexOf(d))), P.current && (P.current.scrollTop = F(L.indexOf(m))), O.current && (O.current.scrollTop = F(R.indexOf(u)));
35
+ });
36
+ }, [d, m, u]);
37
+ ge(() => {
38
+ T || V();
39
+ }, [T, V]);
40
+ const ce = H(() => Se(S, "date"), [S]), ne = H(() => {
41
+ const e = X(v(W).date, "date");
42
+ return e ? J(e) : void 0;
43
+ }, [W]), ie = H(() => {
44
+ const e = X(v(z).date, "date");
45
+ return e ? J(e) : void 0;
46
+ }, [z]), oe = _(
47
+ (e, a) => {
48
+ const c = De(e, a, "date");
49
+ return c ? Q(c, I()) : i ?? "";
50
+ },
51
+ [d, m, u, i]
52
+ ), se = _(
53
+ (e, a) => {
54
+ const { date: c, time: o } = v(e);
55
+ return o && D(o), be(c, a, "date");
56
+ },
57
+ [D]
58
+ ), le = (e) => {
59
+ Y || (B(e.open), e.open && (V(), p()));
60
+ }, j = (e) => {
61
+ w(e), p();
62
+ }, U = (e) => {
63
+ x(e), p();
64
+ }, q = (e) => {
65
+ C(e), p();
66
+ }, $ = (e, a) => {
67
+ clearTimeout(E.current[e]), E.current[e] = setTimeout(() => {
68
+ const c = e === "hour" ? G : e === "minute" ? L : R, o = he(a.scrollTop, c.length), g = c[o];
69
+ e === "hour" && g && j(g), e === "minute" && g && U(g), e === "second" && g && q(g);
70
+ }, 80);
71
+ }, de = () => {
72
+ const e = /* @__PURE__ */ new Date();
73
+ M(
74
+ `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`
75
+ ), w(String(e.getHours()).padStart(2, "0")), x(String(e.getMinutes()).padStart(2, "0")), C(String(e.getSeconds()).padStart(2, "0")), p();
76
+ }, me = () => {
77
+ S && (N == null || N(Q(S, I())), B(!1));
78
+ };
79
+ return /* @__PURE__ */ n(
80
+ r.Root,
81
+ {
82
+ open: T,
83
+ value: ce,
84
+ locale: h,
85
+ startOfWeek: ae,
86
+ positioning: _e({ fitViewport: !0 }),
87
+ closeOnSelect: !1,
88
+ disabled: Y,
89
+ invalid: A,
90
+ min: ne,
91
+ max: ie,
92
+ format: oe,
93
+ parse: se,
94
+ className: ee,
95
+ onOpenChange: le,
96
+ onValueChange: (e) => {
97
+ var a;
98
+ M(ve((a = e.value) == null ? void 0 : a[0], "date"));
99
+ },
100
+ children: [
101
+ /* @__PURE__ */ n(r.Control, { className: "gcsa-date-picker__control", "data-invalid": A || void 0, children: [
102
+ /* @__PURE__ */ t(
103
+ r.Input,
104
+ {
105
+ className: "gcsa-date-picker__input gcsa-input",
106
+ placeholder: re,
107
+ readOnly: !0
108
+ }
109
+ ),
110
+ /* @__PURE__ */ t(
111
+ r.Trigger,
112
+ {
113
+ className: "gcsa-date-picker__trigger gcsa-focus-ring",
114
+ "aria-label": s.openCalendar,
115
+ children: /* @__PURE__ */ n("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
116
+ /* @__PURE__ */ t("rect", { x: "2", y: "3", width: "12", height: "11", rx: "1.5", stroke: "currentColor", strokeWidth: "1.2" }),
117
+ /* @__PURE__ */ t(
118
+ "path",
119
+ {
120
+ d: "M2 6.5h12M5.5 1.5v2M10.5 1.5v2",
121
+ stroke: "currentColor",
122
+ strokeWidth: "1.2",
123
+ strokeLinecap: "round"
124
+ }
125
+ )
126
+ ] })
127
+ }
128
+ )
129
+ ] }),
130
+ /* @__PURE__ */ t(pe, { children: /* @__PURE__ */ t(r.Positioner, { className: "gcsa-date-picker__positioner", children: /* @__PURE__ */ n(r.Content, { className: "gcsa-date-picker__content gcsa-datetime-picker__content gcsa-ui-surface", children: [
131
+ /* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__body", children: [
132
+ /* @__PURE__ */ t("div", { className: "gcsa-datetime-picker__calendar", children: /* @__PURE__ */ t(r.View, { view: "day", children: /* @__PURE__ */ t(r.Context, { children: (e) => /* @__PURE__ */ n(ue, { children: [
133
+ /* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__header", children: [
134
+ /* @__PURE__ */ t(
135
+ "button",
136
+ {
137
+ type: "button",
138
+ className: "gcsa-datetime-picker__nav gcsa-focus-ring",
139
+ "aria-label": s.prevYear,
140
+ onMouseDown: (a) => a.preventDefault(),
141
+ onClick: () => e.focusYear(e.focusedValue.year - 1),
142
+ children: "«"
143
+ }
144
+ ),
145
+ /* @__PURE__ */ t(
146
+ r.PrevTrigger,
147
+ {
148
+ className: "gcsa-datetime-picker__nav gcsa-focus-ring",
149
+ "aria-label": s.prevMonth,
150
+ children: "‹"
151
+ }
152
+ ),
153
+ /* @__PURE__ */ t("div", { className: "gcsa-datetime-picker__title", children: Ne(e.focusedValue) }),
154
+ /* @__PURE__ */ t(
155
+ r.NextTrigger,
156
+ {
157
+ className: "gcsa-datetime-picker__nav gcsa-focus-ring",
158
+ "aria-label": s.nextMonth,
159
+ children: "›"
160
+ }
161
+ ),
162
+ /* @__PURE__ */ t(
163
+ "button",
164
+ {
165
+ type: "button",
166
+ className: "gcsa-datetime-picker__nav gcsa-focus-ring",
167
+ "aria-label": s.nextYear,
168
+ onMouseDown: (a) => a.preventDefault(),
169
+ onClick: () => e.focusYear(e.focusedValue.year + 1),
170
+ children: "»"
171
+ }
172
+ )
173
+ ] }),
174
+ /* @__PURE__ */ n(r.Table, { className: "gcsa-date-picker__table", children: [
175
+ /* @__PURE__ */ t(r.TableHead, { children: /* @__PURE__ */ t(r.TableRow, { children: e.weekDays.map((a, c) => /* @__PURE__ */ t(
176
+ r.TableHeader,
177
+ {
178
+ className: "gcsa-date-picker__weekday",
179
+ children: a.short
180
+ },
181
+ a.short ?? c
182
+ )) }) }),
183
+ /* @__PURE__ */ t(r.TableBody, { children: e.weeks.map((a, c) => /* @__PURE__ */ t(r.TableRow, { children: a.map((o) => /* @__PURE__ */ t(
184
+ r.TableCell,
185
+ {
186
+ value: o,
187
+ className: "gcsa-date-picker__cell",
188
+ children: /* @__PURE__ */ t(r.TableCellTrigger, { className: "gcsa-date-picker__day gcsa-focus-ring", children: o.day })
189
+ },
190
+ o.toString()
191
+ )) }, c)) })
192
+ ] })
193
+ ] }) }) }) }),
194
+ /* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__time", children: [
195
+ /* @__PURE__ */ t("div", { className: "gcsa-datetime-picker__time-title", children: s.selectTime }),
196
+ /* @__PURE__ */ n("div", { className: "gcsa-time-picker__spinner gcsa-datetime-picker__spinner", children: [
197
+ /* @__PURE__ */ t(
198
+ "div",
199
+ {
200
+ ref: y,
201
+ className: "gcsa-time-picker__column",
202
+ role: "listbox",
203
+ "aria-label": k.timeHour,
204
+ onScroll: (e) => $("hour", e.currentTarget),
205
+ children: G.map((e) => /* @__PURE__ */ t(
206
+ "button",
207
+ {
208
+ type: "button",
209
+ className: `gcsa-time-picker__cell${e === d ? " gcsa-time-picker__cell--selected" : ""}`,
210
+ role: "option",
211
+ "aria-selected": e === d,
212
+ onMouseDown: (a) => a.preventDefault(),
213
+ onClick: () => j(e),
214
+ children: e
215
+ },
216
+ e
217
+ ))
218
+ }
219
+ ),
220
+ /* @__PURE__ */ t(
221
+ "div",
222
+ {
223
+ ref: P,
224
+ className: "gcsa-time-picker__column",
225
+ role: "listbox",
226
+ "aria-label": k.timeMinute,
227
+ onScroll: (e) => $("minute", e.currentTarget),
228
+ children: L.map((e) => /* @__PURE__ */ t(
229
+ "button",
230
+ {
231
+ type: "button",
232
+ className: `gcsa-time-picker__cell${e === m ? " gcsa-time-picker__cell--selected" : ""}`,
233
+ role: "option",
234
+ "aria-selected": e === m,
235
+ onMouseDown: (a) => a.preventDefault(),
236
+ onClick: () => U(e),
237
+ children: e
238
+ },
239
+ e
240
+ ))
241
+ }
242
+ ),
243
+ /* @__PURE__ */ t(
244
+ "div",
245
+ {
246
+ ref: O,
247
+ className: "gcsa-time-picker__column",
248
+ role: "listbox",
249
+ "aria-label": k.timeSecond,
250
+ onScroll: (e) => $("second", e.currentTarget),
251
+ children: R.map((e) => /* @__PURE__ */ t(
252
+ "button",
253
+ {
254
+ type: "button",
255
+ className: `gcsa-time-picker__cell${e === u ? " gcsa-time-picker__cell--selected" : ""}`,
256
+ role: "option",
257
+ "aria-selected": e === u,
258
+ onMouseDown: (a) => a.preventDefault(),
259
+ onClick: () => q(e),
260
+ children: e
261
+ },
262
+ e
263
+ ))
264
+ }
265
+ ),
266
+ /* @__PURE__ */ t("div", { className: "gcsa-time-picker__selection", "aria-hidden": "true" })
267
+ ] })
268
+ ] })
269
+ ] }),
270
+ /* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__footer", children: [
271
+ /* @__PURE__ */ t(
272
+ "button",
273
+ {
274
+ type: "button",
275
+ className: "gcsa-datetime-picker__now",
276
+ onMouseDown: (e) => e.preventDefault(),
277
+ onClick: de,
278
+ children: s.now
279
+ }
280
+ ),
281
+ /* @__PURE__ */ t(
282
+ "button",
283
+ {
284
+ type: "button",
285
+ className: "gcsa-datetime-picker__confirm",
286
+ onMouseDown: (e) => e.preventDefault(),
287
+ onClick: me,
288
+ children: k.confirm
289
+ }
290
+ )
291
+ ] })
292
+ ] }) }) })
293
+ ]
294
+ }
295
+ );
296
+ }
297
+ export {
298
+ Oe as GcsaDateTimePicker
299
+ };
300
+ //# sourceMappingURL=GcsaDateTimePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GcsaDateTimePicker.js","sources":["../src/GcsaDateTimePicker.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { DatePicker, parseDate, type DateValue } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport {\n createGcsaPopupPositioning,\n gcsaTimePickerScrollIndex,\n gcsaTimePickerScrollTop,\n getGcsaLocaleMessages,\n getGcsaStartOfWeek,\n type GcsaConsoleLocale\n} from '@gcsa/console-core';\nimport { useGcsaLocale } from './hooks/useGcsaLocale';\nimport {\n gcsaDatePickerFormat,\n gcsaDatePickerParse,\n gcsaDateValueToOutputString,\n gcsaJoinDateTime,\n gcsaNormalizeDateBoundary,\n gcsaSplitDateTime,\n gcsaStringToDateValues\n} from './utils/gcsaDateValue';\n\nexport type GcsaDateTimePickerProps = {\n value?: string;\n placeholder?: string;\n locale?: GcsaConsoleLocale;\n disabled?: boolean;\n invalid?: boolean;\n min?: string;\n max?: string;\n className?: string;\n onValueChange?: (value: string) => void;\n};\n\nconst HOURS = Array.from({ length: 24 }, (_, index) => String(index).padStart(2, '0'));\nconst MINUTES = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0'));\nconst SECONDS = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0'));\n\nfunction formatMonthTitle(value: DateValue) {\n return `${value.year} - ${String(value.month).padStart(2, '0')}`;\n}\n\nexport function GcsaDateTimePicker({\n value,\n placeholder,\n locale: localeProp,\n disabled,\n invalid,\n min,\n max,\n className,\n onValueChange\n}: GcsaDateTimePickerProps) {\n const configLocale = useGcsaLocale();\n const resolvedLocale = localeProp ?? configLocale;\n const messages = getGcsaLocaleMessages(resolvedLocale).datePicker;\n const globalMessages = getGcsaLocaleMessages(resolvedLocale);\n const startOfWeek = getGcsaStartOfWeek(resolvedLocale);\n const resolvedPlaceholder = placeholder ?? messages.placeholderDateTime;\n\n const [open, setOpen] = useState(false);\n const [draftDate, setDraftDate] = useState('');\n const [draftHour, setDraftHour] = useState('00');\n const [draftMinute, setDraftMinute] = useState('00');\n const [draftSecond, setDraftSecond] = useState('00');\n\n const hourColumn = useRef<HTMLDivElement>(null);\n const minuteColumn = useRef<HTMLDivElement>(null);\n const secondColumn = useRef<HTMLDivElement>(null);\n const timers = useRef<{\n hour?: ReturnType<typeof setTimeout>;\n minute?: ReturnType<typeof setTimeout>;\n second?: ReturnType<typeof setTimeout>;\n }>({});\n\n const draftTimeValue = () => `${draftHour}:${draftMinute}:${draftSecond}`;\n\n const applyTimeParts = useCallback((time: string) => {\n const [hour = '00', minute = '00', second = '00'] = time.split(':');\n setDraftHour(hour.padStart(2, '0'));\n setDraftMinute(minute.padStart(2, '0'));\n setDraftSecond(second.padStart(2, '0').slice(0, 2));\n }, []);\n\n const syncDraftFromValue = useCallback(\n (nextValue = value) => {\n const { date, time } = gcsaSplitDateTime(nextValue);\n setDraftDate(date);\n applyTimeParts(time);\n },\n [applyTimeParts, value]\n );\n\n const scrollColumns = useCallback(() => {\n requestAnimationFrame(() => {\n if (hourColumn.current) {\n hourColumn.current.scrollTop = gcsaTimePickerScrollTop(HOURS.indexOf(draftHour));\n }\n if (minuteColumn.current) {\n minuteColumn.current.scrollTop = gcsaTimePickerScrollTop(MINUTES.indexOf(draftMinute));\n }\n if (secondColumn.current) {\n secondColumn.current.scrollTop = gcsaTimePickerScrollTop(SECONDS.indexOf(draftSecond));\n }\n });\n }, [draftHour, draftMinute, draftSecond]);\n\n useEffect(() => {\n if (!open) syncDraftFromValue();\n }, [open, syncDraftFromValue]);\n\n const pickerValue = useMemo(() => gcsaStringToDateValues(draftDate, 'date'), [draftDate]);\n const minDateValue = useMemo(() => {\n const normalized = gcsaNormalizeDateBoundary(gcsaSplitDateTime(min).date, 'date');\n return normalized ? parseDate(normalized) : undefined;\n }, [min]);\n const maxDateValue = useMemo(() => {\n const normalized = gcsaNormalizeDateBoundary(gcsaSplitDateTime(max).date, 'date');\n return normalized ? parseDate(normalized) : undefined;\n }, [max]);\n\n const formatValue = useCallback(\n (date: DateValue, details: { locale: string; timeZone: string }) => {\n const datePart = gcsaDatePickerFormat(date, details, 'date');\n if (!datePart) return value ?? '';\n return gcsaJoinDateTime(datePart, draftTimeValue());\n },\n [draftHour, draftMinute, draftSecond, value]\n );\n\n const parseValue = useCallback(\n (input: string, details: { locale: string; timeZone: string }) => {\n const { date, time } = gcsaSplitDateTime(input);\n if (time) applyTimeParts(time);\n return gcsaDatePickerParse(date, details, 'date');\n },\n [applyTimeParts]\n );\n\n const onOpenChange = (details: { open: boolean }) => {\n if (disabled) return;\n setOpen(details.open);\n if (details.open) {\n syncDraftFromValue();\n scrollColumns();\n }\n };\n\n const selectHour = (hour: string) => {\n setDraftHour(hour);\n scrollColumns();\n };\n\n const selectMinute = (minute: string) => {\n setDraftMinute(minute);\n scrollColumns();\n };\n\n const selectSecond = (second: string) => {\n setDraftSecond(second);\n scrollColumns();\n };\n\n const onColumnScroll = (type: 'hour' | 'minute' | 'second', element: HTMLDivElement) => {\n clearTimeout(timers.current[type]);\n timers.current[type] = setTimeout(() => {\n const values = type === 'hour' ? HOURS : type === 'minute' ? MINUTES : SECONDS;\n const index = gcsaTimePickerScrollIndex(element.scrollTop, values.length);\n const nextValue = values[index];\n if (type === 'hour' && nextValue) selectHour(nextValue);\n if (type === 'minute' && nextValue) selectMinute(nextValue);\n if (type === 'second' && nextValue) selectSecond(nextValue);\n }, 80);\n };\n\n const selectNow = () => {\n const now = new Date();\n setDraftDate(\n `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`\n );\n setDraftHour(String(now.getHours()).padStart(2, '0'));\n setDraftMinute(String(now.getMinutes()).padStart(2, '0'));\n setDraftSecond(String(now.getSeconds()).padStart(2, '0'));\n scrollColumns();\n };\n\n const confirm = () => {\n if (!draftDate) return;\n onValueChange?.(gcsaJoinDateTime(draftDate, draftTimeValue()));\n setOpen(false);\n };\n\n return (\n <DatePicker.Root\n open={open}\n value={pickerValue}\n locale={resolvedLocale}\n startOfWeek={startOfWeek}\n positioning={createGcsaPopupPositioning({ fitViewport: true })}\n closeOnSelect={false}\n disabled={disabled}\n invalid={invalid}\n min={minDateValue}\n max={maxDateValue}\n format={formatValue}\n parse={parseValue}\n className={className}\n onOpenChange={onOpenChange}\n onValueChange={details => {\n setDraftDate(gcsaDateValueToOutputString(details.value?.[0], 'date'));\n }}\n >\n <DatePicker.Control className=\"gcsa-date-picker__control\" data-invalid={invalid || undefined}>\n <DatePicker.Input\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholder}\n readOnly\n />\n <DatePicker.Trigger\n className=\"gcsa-date-picker__trigger gcsa-focus-ring\"\n aria-label={messages.openCalendar}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <path\n d=\"M2 6.5h12M5.5 1.5v2M10.5 1.5v2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </DatePicker.Trigger>\n </DatePicker.Control>\n <Portal>\n <DatePicker.Positioner className=\"gcsa-date-picker__positioner\">\n <DatePicker.Content className=\"gcsa-date-picker__content gcsa-datetime-picker__content gcsa-ui-surface\">\n <div className=\"gcsa-datetime-picker__body\">\n <div className=\"gcsa-datetime-picker__calendar\">\n <DatePicker.View view=\"day\">\n <DatePicker.Context>\n {dp => (\n <>\n <div className=\"gcsa-datetime-picker__header\">\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevYear}\n onMouseDown={event => event.preventDefault()}\n onClick={() => dp.focusYear(dp.focusedValue.year - 1)}\n >\n «\n </button>\n <DatePicker.PrevTrigger\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevMonth}\n >\n ‹\n </DatePicker.PrevTrigger>\n <div className=\"gcsa-datetime-picker__title\">\n {formatMonthTitle(dp.focusedValue)}\n </div>\n <DatePicker.NextTrigger\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextMonth}\n >\n ›\n </DatePicker.NextTrigger>\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextYear}\n onMouseDown={event => event.preventDefault()}\n onClick={() => dp.focusYear(dp.focusedValue.year + 1)}\n >\n »\n </button>\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table\">\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {dp.weekDays.map((weekDay, weekDayIndex) => (\n <DatePicker.TableHeader\n key={weekDay.short ?? weekDayIndex}\n className=\"gcsa-date-picker__weekday\"\n >\n {weekDay.short}\n </DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {dp.weeks.map((week, weekIndex) => (\n <DatePicker.TableRow key={weekIndex}>\n {week.map(day => (\n <DatePicker.TableCell\n key={day.toString()}\n value={day}\n className=\"gcsa-date-picker__cell\"\n >\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__day gcsa-focus-ring\">\n {day.day}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </>\n )}\n </DatePicker.Context>\n </DatePicker.View>\n </div>\n <div className=\"gcsa-datetime-picker__time\">\n <div className=\"gcsa-datetime-picker__time-title\">{messages.selectTime}</div>\n <div className=\"gcsa-time-picker__spinner gcsa-datetime-picker__spinner\">\n <div\n ref={hourColumn}\n className=\"gcsa-time-picker__column\"\n role=\"listbox\"\n aria-label={globalMessages.timeHour}\n onScroll={event => onColumnScroll('hour', event.currentTarget)}\n >\n {HOURS.map(hour => (\n <button\n key={hour}\n type=\"button\"\n className={`gcsa-time-picker__cell${hour === draftHour ? ' gcsa-time-picker__cell--selected' : ''}`}\n role=\"option\"\n aria-selected={hour === draftHour}\n onMouseDown={event => event.preventDefault()}\n onClick={() => selectHour(hour)}\n >\n {hour}\n </button>\n ))}\n </div>\n <div\n ref={minuteColumn}\n className=\"gcsa-time-picker__column\"\n role=\"listbox\"\n aria-label={globalMessages.timeMinute}\n onScroll={event => onColumnScroll('minute', event.currentTarget)}\n >\n {MINUTES.map(minute => (\n <button\n key={minute}\n type=\"button\"\n className={`gcsa-time-picker__cell${minute === draftMinute ? ' gcsa-time-picker__cell--selected' : ''}`}\n role=\"option\"\n aria-selected={minute === draftMinute}\n onMouseDown={event => event.preventDefault()}\n onClick={() => selectMinute(minute)}\n >\n {minute}\n </button>\n ))}\n </div>\n <div\n ref={secondColumn}\n className=\"gcsa-time-picker__column\"\n role=\"listbox\"\n aria-label={globalMessages.timeSecond}\n onScroll={event => onColumnScroll('second', event.currentTarget)}\n >\n {SECONDS.map(second => (\n <button\n key={second}\n type=\"button\"\n className={`gcsa-time-picker__cell${second === draftSecond ? ' gcsa-time-picker__cell--selected' : ''}`}\n role=\"option\"\n aria-selected={second === draftSecond}\n onMouseDown={event => event.preventDefault()}\n onClick={() => selectSecond(second)}\n >\n {second}\n </button>\n ))}\n </div>\n <div className=\"gcsa-time-picker__selection\" aria-hidden=\"true\" />\n </div>\n </div>\n </div>\n <div className=\"gcsa-datetime-picker__footer\">\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__now\"\n onMouseDown={event => event.preventDefault()}\n onClick={selectNow}\n >\n {messages.now}\n </button>\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__confirm\"\n onMouseDown={event => event.preventDefault()}\n onClick={confirm}\n >\n {globalMessages.confirm}\n </button>\n </div>\n </DatePicker.Content>\n </DatePicker.Positioner>\n </Portal>\n </DatePicker.Root>\n );\n}\n"],"names":["HOURS","_","index","MINUTES","SECONDS","formatMonthTitle","value","GcsaDateTimePicker","placeholder","localeProp","disabled","invalid","min","max","className","onValueChange","configLocale","useGcsaLocale","resolvedLocale","messages","getGcsaLocaleMessages","globalMessages","startOfWeek","getGcsaStartOfWeek","resolvedPlaceholder","open","setOpen","useState","draftDate","setDraftDate","draftHour","setDraftHour","draftMinute","setDraftMinute","draftSecond","setDraftSecond","hourColumn","useRef","minuteColumn","secondColumn","timers","draftTimeValue","applyTimeParts","useCallback","time","hour","minute","second","syncDraftFromValue","nextValue","date","gcsaSplitDateTime","scrollColumns","gcsaTimePickerScrollTop","useEffect","pickerValue","useMemo","gcsaStringToDateValues","minDateValue","normalized","gcsaNormalizeDateBoundary","parseDate","maxDateValue","formatValue","details","datePart","gcsaDatePickerFormat","gcsaJoinDateTime","parseValue","input","gcsaDatePickerParse","onOpenChange","selectHour","selectMinute","selectSecond","onColumnScroll","type","element","values","gcsaTimePickerScrollIndex","selectNow","now","confirm","jsxs","DatePicker","createGcsaPopupPositioning","gcsaDateValueToOutputString","_a","jsx","Portal","Fragment","event","dp","weekDay","weekDayIndex","week","weekIndex","day"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export type GcsaDescriptionsItem = {
2
+ label: string;
3
+ value: string;
4
+ };
5
+ export type GcsaDescriptionsProps = {
6
+ items: GcsaDescriptionsItem[];
7
+ className?: string;
8
+ };
9
+ export declare function GcsaDescriptions({ items, className }: GcsaDescriptionsProps): import("react").JSX.Element;