@ryuzaki13/react-foundation-ui 1.0.8 → 1.0.12

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 (633) hide show
  1. package/README.md +457 -10
  2. package/dist/advanced-search/index.js +11 -11
  3. package/dist/badge/index.js +1 -1
  4. package/dist/base-table/index.js +1 -1
  5. package/dist/button/index.js +2 -23
  6. package/dist/check-box/index.js +1 -1
  7. package/dist/chunks/{CalendarView-DjeTJkTT.js → CalendarView-DCQjO2ho.js} +2 -2
  8. package/dist/chunks/{CalendarView-DjeTJkTT.js.map → CalendarView-DCQjO2ho.js.map} +1 -1
  9. package/dist/chunks/{odata-DSW7z3nh.js → SelectOptionContent-lfEtHXfO.js} +404 -381
  10. package/dist/chunks/SelectOptionContent-lfEtHXfO.js.map +1 -0
  11. package/dist/chunks/{TextEditorLexicalClient-16S18Yir.js → TextEditorLexicalClient-Bca3FOUs.js} +8 -8
  12. package/dist/chunks/{TextEditorLexicalClient-16S18Yir.js.map → TextEditorLexicalClient-Bca3FOUs.js.map} +1 -1
  13. package/dist/chunks/{BadgeList-DYgun2rf.js → badge-BfbLPk0z.js} +2 -2
  14. package/dist/chunks/badge-BfbLPk0z.js.map +1 -0
  15. package/dist/chunks/{base-table-CoQlKABk.js → base-table-CiYSRI_J.js} +4 -4
  16. package/dist/chunks/{base-table-CoQlKABk.js.map → base-table-CiYSRI_J.js.map} +1 -1
  17. package/dist/chunks/button-CC0Jdx1j.js +72 -0
  18. package/dist/chunks/button-CC0Jdx1j.js.map +1 -0
  19. package/dist/chunks/{CheckBox-BowNqqd3.js → check-box-BowNqqd3.js} +1 -1
  20. package/dist/chunks/check-box-BowNqqd3.js.map +1 -0
  21. package/dist/chunks/{DropdownMenu-DQeR3y7M.js → context-menu-DQeR3y7M.js} +1 -1
  22. package/dist/chunks/context-menu-DQeR3y7M.js.map +1 -0
  23. package/dist/chunks/{DateInput-BTJ-QTUx.js → date-input-DjAQ75n9.js} +5 -5
  24. package/dist/chunks/date-input-DjAQ75n9.js.map +1 -0
  25. package/dist/chunks/{DateRangePresetSelect-UgsfaOeM.js → date-range-preset-select-UgsfaOeM.js} +1 -1
  26. package/dist/chunks/date-range-preset-select-UgsfaOeM.js.map +1 -0
  27. package/dist/chunks/{Flex-DUYSL5TE.js → flex-CPO6xlPR.js} +38 -33
  28. package/dist/chunks/{Flex-DUYSL5TE.js.map → flex-CPO6xlPR.js.map} +1 -1
  29. package/dist/chunks/{Grid-ByIIytjh.js → grid-ByIIytjh.js} +1 -1
  30. package/dist/chunks/{Grid-ByIIytjh.js.map → grid-ByIIytjh.js.map} +1 -1
  31. package/dist/chunks/{Input-anSjiM9b.js → input-CZLUUggm.js} +10 -2
  32. package/dist/chunks/input-CZLUUggm.js.map +1 -0
  33. package/dist/chunks/{InputFiles-XBQxkHdB.js → input-files-aB8iaqGk.js} +5 -5
  34. package/dist/chunks/input-files-aB8iaqGk.js.map +1 -0
  35. package/dist/chunks/{input-search-B_njjJuV.js → input-search-eMvnvgV0.js} +2 -2
  36. package/dist/chunks/{input-search-B_njjJuV.js.map → input-search-eMvnvgV0.js.map} +1 -1
  37. package/dist/chunks/{misc-DoqZBMof.js → misc-1PxS8OWD.js} +2 -2
  38. package/dist/chunks/{misc-DoqZBMof.js.map → misc-1PxS8OWD.js.map} +1 -1
  39. package/dist/chunks/{modal-ByNRME3b.js → modal-C0j0hEIt.js} +5 -5
  40. package/dist/chunks/{modal-ByNRME3b.js.map → modal-C0j0hEIt.js.map} +1 -1
  41. package/dist/chunks/multi-select-r0ekR6Bh.js +541 -0
  42. package/dist/chunks/multi-select-r0ekR6Bh.js.map +1 -0
  43. package/dist/chunks/{picker-Du7Y4-el.js → picker-beNX-cW9.js} +11 -11
  44. package/dist/chunks/{picker-Du7Y4-el.js.map → picker-beNX-cW9.js.map} +1 -1
  45. package/dist/chunks/{RadioGroup-B9XjkcOy.js → radio-group-B9XjkcOy.js} +1 -1
  46. package/dist/chunks/radio-group-B9XjkcOy.js.map +1 -0
  47. package/dist/chunks/select-CFbZS7fx.js +284 -0
  48. package/dist/chunks/select-CFbZS7fx.js.map +1 -0
  49. package/dist/chunks/{table-Dc3AqMzP.js → table-BR2VqeEg.js} +2 -2
  50. package/dist/chunks/{table-Dc3AqMzP.js.map → table-BR2VqeEg.js.map} +1 -1
  51. package/dist/chunks/{toolbar-BCZNdRXM.js → toolbar-XCDeS2Li.js} +2 -2
  52. package/dist/chunks/{toolbar-BCZNdRXM.js.map → toolbar-XCDeS2Li.js.map} +1 -1
  53. package/dist/chunks/{useODataSelectBase-BbeKdq6x.js → useODataSelectBase-BxAvhDww.js} +2 -2
  54. package/dist/chunks/{useODataSelectBase-BbeKdq6x.js.map → useODataSelectBase-BxAvhDww.js.map} +1 -1
  55. package/dist/context-menu/index.js +1 -1
  56. package/dist/date-input/index.js +2 -2
  57. package/dist/date-range-preset-select/index.js +1 -1
  58. package/dist/date-time-input/index.js +458 -2
  59. package/dist/date-time-input/index.js.map +1 -0
  60. package/dist/detail/index.js +80 -2
  61. package/dist/detail/index.js.map +1 -0
  62. package/dist/dialog/index.js +50 -2
  63. package/dist/dialog/index.js.map +1 -0
  64. package/dist/disclosure/index.js +49 -2
  65. package/dist/disclosure/index.js.map +1 -0
  66. package/dist/drop-zone/index.js +98 -2
  67. package/dist/drop-zone/index.js.map +1 -0
  68. package/dist/errors/index.js +1 -1
  69. package/dist/expandable-action-panel/index.js +82 -2
  70. package/dist/expandable-action-panel/index.js.map +1 -0
  71. package/dist/flex/index.js +2 -14
  72. package/dist/grid/index.js +1 -1
  73. package/dist/image/index.js +5 -5
  74. package/dist/input/index.js +2 -14
  75. package/dist/input-date-time/index.js +258 -2
  76. package/dist/input-date-time/index.js.map +1 -0
  77. package/dist/input-file/index.js +105 -2
  78. package/dist/input-file/index.js.map +1 -0
  79. package/dist/input-files/index.js +1 -1
  80. package/dist/input-image/index.js +100 -2
  81. package/dist/input-image/index.js.map +1 -0
  82. package/dist/input-search/index.js +1 -1
  83. package/dist/layout-picker/index.js +1171 -2
  84. package/dist/layout-picker/index.js.map +1 -0
  85. package/dist/list/index.js +2 -2
  86. package/dist/listbox/index.js +81 -2
  87. package/dist/listbox/index.js.map +1 -0
  88. package/dist/misc/index.js +1 -1
  89. package/dist/modal/index.js +1 -1
  90. package/dist/multi-select/index.js +2 -3
  91. package/dist/notifications/index.js +151 -3
  92. package/dist/notifications/index.js.map +1 -0
  93. package/dist/picker/index.js +1 -1
  94. package/dist/preset-range-date-input/index.js +52 -3
  95. package/dist/preset-range-date-input/index.js.map +1 -1
  96. package/dist/preset-select/index.js +1 -1
  97. package/dist/radio-button/index.js +48 -2
  98. package/dist/radio-button/index.js.map +1 -0
  99. package/dist/radio-group/index.js +1 -1
  100. package/dist/select/index.js +2 -4
  101. package/dist/simple-table/index.js +1 -1
  102. package/dist/slider/index.js +695 -2
  103. package/dist/slider/index.js.map +1 -0
  104. package/dist/splitter/index.js +168 -2
  105. package/dist/splitter/index.js.map +1 -0
  106. package/dist/state-select/index.js +78 -2
  107. package/dist/state-select/index.js.map +1 -0
  108. package/dist/styles.css +1 -1
  109. package/dist/switch/index.js +81 -2
  110. package/dist/switch/index.js.map +1 -0
  111. package/dist/table/index.js +1 -1
  112. package/dist/table-sorting/index.js +1 -1
  113. package/dist/tabs/index.js +384 -2
  114. package/dist/tabs/index.js.map +1 -0
  115. package/dist/text-editor/index.js +3 -3
  116. package/dist/text-editor/toolbar/index.js +1 -1
  117. package/dist/textarea/index.js +44 -2
  118. package/dist/textarea/index.js.map +1 -0
  119. package/dist/toggle/index.js +73 -2
  120. package/dist/toggle/index.js.map +1 -0
  121. package/dist/toolbar/index.js +2 -3
  122. package/dist/toolbar/index.js.map +1 -1
  123. package/dist/tree-select/index.js +569 -89
  124. package/dist/tree-select/index.js.map +1 -1
  125. package/dist/tree-table/index.js +1 -1
  126. package/package.json +5 -304
  127. package/src/styles/_base.scss +11 -3
  128. package/src/styles/config/_index.scss +97 -113
  129. package/src/styles/mixins/_mixin.scss +4 -4
  130. package/src/styles/themes/dark/_default.scss +0 -17
  131. package/storybook-static/assets/Badge-Cr7bAbxa.css +1 -0
  132. package/storybook-static/assets/Badge-Q8iX86Mn.js +139 -0
  133. package/storybook-static/assets/Badge.stories-BEMBzR2f.js +51 -0
  134. package/storybook-static/assets/Button-BN8Cuwsy.css +1 -0
  135. package/storybook-static/assets/Button-BUkCW8Zg.js +12 -0
  136. package/storybook-static/assets/Button-CfX05aoR.js +124 -0
  137. package/storybook-static/assets/Button.stories-BoNLZb6w.js +75 -0
  138. package/storybook-static/assets/CheckBox-B1xm2kwz.css +1 -0
  139. package/storybook-static/assets/CheckBox-CcXGzkSE.js +42 -0
  140. package/storybook-static/assets/CheckBox-DTSi8Yok.js +2 -0
  141. package/storybook-static/assets/CheckBox.module-Hr3mvdAC.js +1 -0
  142. package/storybook-static/assets/CheckBox.stories-Bo53TxC7.js +60 -0
  143. package/storybook-static/assets/Color-KMSTOMOX-Mbprgrbi.js +1 -0
  144. package/storybook-static/assets/ContextMenu-DYlSojIE.js +40 -0
  145. package/storybook-static/assets/ContextMenu.stories-BJr53bsq.js +90 -0
  146. package/storybook-static/assets/DateInput-Bc-MiPp1.css +1 -0
  147. package/storybook-static/assets/DateInput-BrmilavO.js +40 -0
  148. package/storybook-static/assets/DateInput-C72jV86j.js +1 -0
  149. package/storybook-static/assets/DateInput.stories-0hU_T1iZ.js +115 -0
  150. package/storybook-static/assets/DateRangePresetSelect-BklzgpCR.js +3 -0
  151. package/storybook-static/assets/DateRangePresetSelect-C7gJVkMB.js +30 -0
  152. package/storybook-static/assets/DateRangePresetSelect.stories-DQKDcAdP.js +11 -0
  153. package/storybook-static/assets/Detail-BKSBSfTO.css +1 -0
  154. package/storybook-static/assets/Detail-BMu0MY4h.js +40 -0
  155. package/storybook-static/assets/Detail.stories-CgBJjWQd.js +44 -0
  156. package/storybook-static/assets/Dialog-M7Uy3LiO.js +40 -0
  157. package/storybook-static/assets/Dialog.stories-BZ0opvaJ.js +31 -0
  158. package/storybook-static/assets/Disclosure-BXnfHC6v.js +29 -0
  159. package/storybook-static/assets/Disclosure-zNgXNDkm.css +1 -0
  160. package/storybook-static/assets/Disclosure.stories-C7wh6KJU.js +35 -0
  161. package/storybook-static/assets/DocsRenderer-JROSPFPF-BjXFJaat.js +2 -0
  162. package/storybook-static/assets/DropZone-C7HIN5ml.css +1 -0
  163. package/storybook-static/assets/DropZone-cd1aCNT1.js +36 -0
  164. package/storybook-static/assets/DropZone.stories-CVu731Lk.js +44 -0
  165. package/storybook-static/assets/DropdownMenu-B97Ad5Dg.js +1 -0
  166. package/storybook-static/assets/DropdownMenu-BgzIzwzM.css +1 -0
  167. package/storybook-static/assets/ExpandableActionPanel-D7q9two4.css +1 -0
  168. package/storybook-static/assets/ExpandableActionPanel.stories-k-eTxMyV.js +20 -0
  169. package/storybook-static/assets/Flex-BQkqAqL5.js +61 -0
  170. package/storybook-static/assets/Flex-C_VnI9xY.js +3 -0
  171. package/storybook-static/assets/Flex-IXK2se1Y.css +1 -0
  172. package/storybook-static/assets/Flex.stories-C1VO9Ct3.js +300 -0
  173. package/storybook-static/assets/Grid-Dr3BuEgd.js +61 -0
  174. package/storybook-static/assets/Grid-K9R_IHaw.css +1 -0
  175. package/storybook-static/assets/Grid-y8wKyEwc.js +163 -0
  176. package/storybook-static/assets/Grid.stories-6WUp6Tof.js +495 -0
  177. package/storybook-static/assets/Input-B7DWcGCL.js +3 -0
  178. package/storybook-static/assets/Input-BioMOZju.css +1 -0
  179. package/storybook-static/assets/Input-yly8wxYE.js +39 -0
  180. package/storybook-static/assets/Input.stories-CkVqvY-C.js +38 -0
  181. package/storybook-static/assets/InputDateTime-Cv8gmBe0.css +1 -0
  182. package/storybook-static/assets/InputDateTime-DHirw8rp.js +39 -0
  183. package/storybook-static/assets/InputDateTime.stories-Dci_81MA.js +35 -0
  184. package/storybook-static/assets/InputFile-DBFfWIkJ.js +37 -0
  185. package/storybook-static/assets/InputFile-hNjZ_wlG.css +1 -0
  186. package/storybook-static/assets/InputFile.stories-Bar27dP5.js +36 -0
  187. package/storybook-static/assets/InputFiles-ByK52qUe.css +1 -0
  188. package/storybook-static/assets/InputFiles-DPz7PiOC.js +1 -0
  189. package/storybook-static/assets/InputFiles-tULKp1KR.js +37 -0
  190. package/storybook-static/assets/InputFiles.stories-CkZ8et32.js +33 -0
  191. package/storybook-static/assets/InputImage-C-pnIXhT.css +1 -0
  192. package/storybook-static/assets/InputImage-D8VckxKl.js +37 -0
  193. package/storybook-static/assets/InputImage.stories-Dq8ORce3.js +51 -0
  194. package/storybook-static/assets/LayoutPicker-9tLTatHF.css +1 -0
  195. package/storybook-static/assets/LayoutPicker-l3XFAkqv.js +65 -0
  196. package/storybook-static/assets/LayoutPicker.stories-BjUmm2cg.js +449 -0
  197. package/storybook-static/assets/Listbox-B_6QVPAJ.js +38 -0
  198. package/storybook-static/assets/Listbox.stories-Cf_ApbmT.js +47 -0
  199. package/storybook-static/assets/Modal-BL_cTIW7.css +1 -0
  200. package/storybook-static/assets/Modal-BzienAaa.js +54 -0
  201. package/storybook-static/assets/Modal.stories-cPIHRa9a.js +180 -0
  202. package/storybook-static/assets/MultiSelect-CK2D25RA.js +56 -0
  203. package/storybook-static/assets/MultiSelect-CUQV67Ev.css +1 -0
  204. package/storybook-static/assets/MultiSelect-CjGBd2pC.js +2 -0
  205. package/storybook-static/assets/MultiSelect.stories--f_FoBzR.js +29 -0
  206. package/storybook-static/assets/NotificationsHost-D5Pvn4eu.css +1 -0
  207. package/storybook-static/assets/NotificationsHost-DKmlmqh0.js +44 -0
  208. package/storybook-static/assets/NotificationsHost.stories-1bPUJXfm.js +25 -0
  209. package/storybook-static/assets/ODataMultiSelect-BWUXuzlr.js +53 -0
  210. package/storybook-static/assets/ODataMultiSelect.stories-DA0f6SUG.js +73 -0
  211. package/storybook-static/assets/ODataSelect-D7GAFOcM.js +1 -0
  212. package/storybook-static/assets/ODataSelect-aNdHSjo_.js +52 -0
  213. package/storybook-static/assets/ODataSelect.stories-CjXA9Y9l.js +73 -0
  214. package/storybook-static/assets/ODataTreeMultiSelect-DKodulQ8.js +17 -0
  215. package/storybook-static/assets/ODataTreeMultiSelect.stories-BjRcb4W0.js +24 -0
  216. package/storybook-static/assets/ODataTreeSelect-Ck8HCh74.js +16 -0
  217. package/storybook-static/assets/ODataTreeSelect.stories-BgDj08mH.js +21 -0
  218. package/storybook-static/assets/PeriodSelect-Db7QmUfi.js +35 -0
  219. package/storybook-static/assets/PeriodSelect.stories-BI6yLRCK.js +23 -0
  220. package/storybook-static/assets/Popover-DR-r8iC5.js +45 -0
  221. package/storybook-static/assets/Popover.stories-ReRFMWiO.js +69 -0
  222. package/storybook-static/assets/PresetRangeDateInput-tSpiPAT9.js +31 -0
  223. package/storybook-static/assets/PresetRangeDateInput.stories-LVQa2_DG.js +15 -0
  224. package/storybook-static/assets/RadioButton-C-RjN-wY.css +1 -0
  225. package/storybook-static/assets/RadioButton-sEzdlL1y.js +38 -0
  226. package/storybook-static/assets/RadioButton.stories-CR0km0zF.js +36 -0
  227. package/storybook-static/assets/RadioGroup-BtNCd3Je.js +1 -0
  228. package/storybook-static/assets/RadioGroup-D-J7t20C.css +1 -0
  229. package/storybook-static/assets/RadioGroup-DR0H6Z0w.js +42 -0
  230. package/storybook-static/assets/RadioGroup.stories-FEqmkrs7.js +42 -0
  231. package/storybook-static/assets/Select-CO4ZHP9h.css +1 -0
  232. package/storybook-static/assets/Select-CUAevk01.js +57 -0
  233. package/storybook-static/assets/Select-DYVS7SCZ.js +9 -0
  234. package/storybook-static/assets/Select.stories-Df_c0IfC.js +37 -0
  235. package/storybook-static/assets/SelectOptionContent-B7W0Mned.js +1 -0
  236. package/storybook-static/assets/SerializableSelect-D63xBqOT.js +48 -0
  237. package/storybook-static/assets/SerializableSelect-DwCnuBgv.js +4 -0
  238. package/storybook-static/assets/SerializableSelect.stories-BLPXVOtP.js +43 -0
  239. package/storybook-static/assets/SingleDateTimeInput-mOllNfg2.css +1 -0
  240. package/storybook-static/assets/SingleDateTimeInput-xMkDodYz.js +53 -0
  241. package/storybook-static/assets/SingleDateTimeInput.stories-kcuSwx76.js +78 -0
  242. package/storybook-static/assets/Slider-BHZgpCjC.js +63 -0
  243. package/storybook-static/assets/Slider.stories-Bias_Soq.js +77 -0
  244. package/storybook-static/assets/SliderInput-jzFZcWr7.js +58 -0
  245. package/storybook-static/assets/SliderInput.stories-B7w8bp86.js +67 -0
  246. package/storybook-static/assets/Sortable-DcmDaPBw.js +72 -0
  247. package/storybook-static/assets/Sortable.stories-CwhHGCih.js +141 -0
  248. package/storybook-static/assets/Splitter-Bn7AJiD_.js +83 -0
  249. package/storybook-static/assets/Splitter-D-LmmQad.css +1 -0
  250. package/storybook-static/assets/Splitter.stories-CSvjKF-O.js +22 -0
  251. package/storybook-static/assets/StateSelect-MIGiXD10.js +36 -0
  252. package/storybook-static/assets/StateSelect-pIMkhj9A.css +1 -0
  253. package/storybook-static/assets/StateSelect.stories-BGDCnVqb.js +47 -0
  254. package/storybook-static/assets/Switch-C5zxOq_O.js +36 -0
  255. package/storybook-static/assets/Switch-DGYGWtPw.css +1 -0
  256. package/storybook-static/assets/Switch.stories-BmCl_Ts5.js +26 -0
  257. package/storybook-static/assets/Table-BGvRn9y0.css +1 -0
  258. package/storybook-static/assets/Table-CoySXvs5.js +197 -0
  259. package/storybook-static/assets/Table.stories-CA7ARhwC.js +122 -0
  260. package/storybook-static/assets/Tabs-BLkTB6pp.css +1 -0
  261. package/storybook-static/assets/Tabs-CQdzU18E.js +72 -0
  262. package/storybook-static/assets/Tabs.stories-SBWTpiy2.js +58 -0
  263. package/storybook-static/assets/Textarea-Bo-I0cnE.js +37 -0
  264. package/storybook-static/assets/Textarea-CPNMR88I.css +1 -0
  265. package/storybook-static/assets/Textarea.stories-C1wO9PKR.js +27 -0
  266. package/storybook-static/assets/TimePanel-0-mzaXky.js +1 -0
  267. package/storybook-static/assets/TimePanel-Bh98qsCo.css +1 -0
  268. package/storybook-static/assets/TimePanel.stories-C1VM13qN.js +25 -0
  269. package/storybook-static/assets/Toggle-B9H63WWC.js +37 -0
  270. package/storybook-static/assets/Toggle-DHulCX3T.css +1 -0
  271. package/storybook-static/assets/Toggle.stories-CKlGFcZW.js +30 -0
  272. package/storybook-static/assets/TreeMultiSelect-AXIl2Ge2.js +15 -0
  273. package/storybook-static/assets/TreeMultiSelect-Ci3bUpmv.js +1 -0
  274. package/storybook-static/assets/TreeMultiSelect.stories-CXGt4Q_u.js +14 -0
  275. package/storybook-static/assets/TreePickerBase-Md6Mt9qF.js +19 -0
  276. package/storybook-static/assets/TreePickerBase-qreyVjhY.css +1 -0
  277. package/storybook-static/assets/TreeSelect-BWoURakw.js +15 -0
  278. package/storybook-static/assets/TreeSelect-bOgRYtQQ.js +1 -0
  279. package/storybook-static/assets/TreeSelect.stories-By0h6wRi.js +16 -0
  280. package/storybook-static/assets/TreeTable--ZoksUiw.css +1 -0
  281. package/storybook-static/assets/TreeTable-C52Jh7O_.js +175 -0
  282. package/storybook-static/assets/TreeTable.stories-BH9Q8NPP.js +83 -0
  283. package/storybook-static/assets/WithTooltip-7X4HQR7L-DQXHhZoH.js +9 -0
  284. package/storybook-static/assets/axe-GLfyhAYL.js +20 -0
  285. package/storybook-static/assets/base-table-BNO0lnTL.css +1 -0
  286. package/storybook-static/assets/base-table-BSkQBgdx.js +18 -0
  287. package/storybook-static/assets/blocks-CwEU-ME1.js +285 -0
  288. package/storybook-static/assets/button-Bl3Hu8CS.js +1 -0
  289. package/storybook-static/assets/check-box-BrnNQnSi.js +1 -0
  290. package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +1 -0
  291. package/storybook-static/assets/chunk-3LY4VQVK-BxHCYS2R.js +6 -0
  292. package/storybook-static/assets/chunk-LITCR56V-euffoZAN.js +18 -0
  293. package/storybook-static/assets/contextMenu-Do6qEwKB.js +2 -0
  294. package/storybook-static/assets/date-segments-CzU9k5bl.js +1 -0
  295. package/storybook-static/assets/error-RVOk7zpw.js +1 -0
  296. package/storybook-static/assets/file-hArYcyES.js +1 -0
  297. package/storybook-static/assets/flex-DuYzsEBQ.js +1 -0
  298. package/storybook-static/assets/floating-ui.react-BR04wkLx.js +1 -0
  299. package/storybook-static/assets/formatter-L2YTDE3Q-Cdp-Jp2M.js +1 -0
  300. package/storybook-static/assets/formatters-yIBztcem.js +3 -0
  301. package/storybook-static/assets/grid-D0WOuGlB.js +1 -0
  302. package/storybook-static/assets/hooks-BEB2Gqy0.js +5 -0
  303. package/storybook-static/assets/iframe-SfMJGCsn.js +1117 -0
  304. package/storybook-static/assets/input-Be5K9_B7.js +1 -0
  305. package/storybook-static/assets/jsx-runtime-BBQGix-2.js +1 -0
  306. package/storybook-static/assets/lucide-react-CK2oyDtF.js +1 -0
  307. package/storybook-static/assets/matchers-JIUQ3HVY-BPS-eazD.js +28 -0
  308. package/storybook-static/assets/mdx-react-shim-DnKFgFHy.js +1 -0
  309. package/storybook-static/assets/media-Djn0SUaN.js +1 -0
  310. package/storybook-static/assets/misc-CPvLzCFJ.js +5 -0
  311. package/storybook-static/assets/misc-CerLA5Xh.css +1 -0
  312. package/storybook-static/assets/notifications-Zk996KvR.js +1 -0
  313. package/storybook-static/assets/odata-C2BNbnc9.js +1 -0
  314. package/storybook-static/assets/odata-service-8sDCOQ3I.js +1 -0
  315. package/storybook-static/assets/odataStoryFixtures-BBfdskiC.js +25 -0
  316. package/storybook-static/assets/picker-BmTTr59E.css +1 -0
  317. package/storybook-static/assets/picker-De4ZbESe.js +1 -0
  318. package/storybook-static/assets/popover-BiQHI7Wi.css +1 -0
  319. package/storybook-static/assets/popover-DWA5VOMQ.js +2 -0
  320. package/storybook-static/assets/preload-helper-B45gAKPr.js +1 -0
  321. package/storybook-static/assets/preset-select-DozCGhmu.js +5 -0
  322. package/storybook-static/assets/react-18-CfpYK14y.js +9 -0
  323. package/storybook-static/assets/react-BWN-5oQj.js +9 -0
  324. package/storybook-static/assets/react-dom-CncQzc_h.js +1 -0
  325. package/storybook-static/assets/select-BPvMbVDe.js +1 -0
  326. package/storybook-static/assets/slider-39Mty47U.js +2 -0
  327. package/storybook-static/assets/slider-DMDFRH6B.css +1 -0
  328. package/storybook-static/assets/sortable-CgCCp3dq.js +1 -0
  329. package/storybook-static/assets/sortable-DiBavgm0.css +1 -0
  330. package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-Di6cCrDX.js +6 -0
  331. package/storybook-static/assets/text-BxA8yj6Z.js +4 -0
  332. package/storybook-static/assets/theming-DZauqOKI.js +39 -0
  333. package/storybook-static/assets/treeStoryFixtures-Cd984L7t.js +1 -0
  334. package/storybook-static/assets/ui-CmVy0trY.js +1 -0
  335. package/storybook-static/assets/ui-ZWM9zG1I.css +1 -0
  336. package/storybook-static/assets/ui.module-DS2qtZts.js +1 -0
  337. package/storybook-static/assets/uiClasses-CZ_HVS3Y.js +1 -0
  338. package/storybook-static/assets/useODataSelectBase-D33B4x2W.js +1 -0
  339. package/storybook-static/assets/useODataTreeData-CDdzN-LC.js +1 -0
  340. package/storybook-static/assets/utils-CReRlw17.js +1 -0
  341. package/storybook-static/favicon-wrapper.svg +46 -0
  342. package/storybook-static/favicon.svg +1 -0
  343. package/storybook-static/iframe.html +709 -0
  344. package/storybook-static/index.html +146 -0
  345. package/storybook-static/index.json +1 -0
  346. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  347. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  348. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  349. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  350. package/storybook-static/project.json +1 -0
  351. package/storybook-static/sb-addons/a11y-2/manager-bundle.js +57 -0
  352. package/storybook-static/sb-addons/docs-1/manager-bundle.js +3 -0
  353. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +630 -0
  354. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  355. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  356. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  357. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  358. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  359. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  360. package/storybook-static/sb-manager/globals-runtime.js +76714 -0
  361. package/storybook-static/sb-manager/globals.js +24 -0
  362. package/storybook-static/sb-manager/manager-stores.js +23 -0
  363. package/storybook-static/sb-manager/runtime.js +27451 -0
  364. package/storybook-static/vite-inject-mocker-entry.js +2 -0
  365. package/dist/badge/stories/Badge.stories.d.ts +0 -54
  366. package/dist/badge/stories/Badge.stories.d.ts.map +0 -1
  367. package/dist/badge/stories/Badge.stories.js +0 -147
  368. package/dist/badge/stories/Badge.stories.js.map +0 -1
  369. package/dist/button/index.js.map +0 -1
  370. package/dist/button/stories/Button.stories.d.ts +0 -69
  371. package/dist/button/stories/Button.stories.d.ts.map +0 -1
  372. package/dist/button/stories/Button.stories.js +0 -223
  373. package/dist/button/stories/Button.stories.js.map +0 -1
  374. package/dist/check-box/stories/CheckBox.stories.d.ts +0 -58
  375. package/dist/check-box/stories/CheckBox.stories.d.ts.map +0 -1
  376. package/dist/check-box/stories/CheckBox.stories.js +0 -150
  377. package/dist/check-box/stories/CheckBox.stories.js.map +0 -1
  378. package/dist/chunks/BadgeList-DYgun2rf.js.map +0 -1
  379. package/dist/chunks/Button-CCWuggdA.js +0 -55
  380. package/dist/chunks/Button-CCWuggdA.js.map +0 -1
  381. package/dist/chunks/CheckBox-BowNqqd3.js.map +0 -1
  382. package/dist/chunks/DateInput-BTJ-QTUx.js.map +0 -1
  383. package/dist/chunks/DateRangePresetSelect-UgsfaOeM.js.map +0 -1
  384. package/dist/chunks/Detail-DHDMsg8q.js +0 -80
  385. package/dist/chunks/Detail-DHDMsg8q.js.map +0 -1
  386. package/dist/chunks/Dialog-CFIvGxER.js +0 -50
  387. package/dist/chunks/Dialog-CFIvGxER.js.map +0 -1
  388. package/dist/chunks/DisclosureGroup-CfRTkl6Z.js +0 -49
  389. package/dist/chunks/DisclosureGroup-CfRTkl6Z.js.map +0 -1
  390. package/dist/chunks/DropZone-DgDMu4Iw.js +0 -98
  391. package/dist/chunks/DropZone-DgDMu4Iw.js.map +0 -1
  392. package/dist/chunks/DropdownMenu-DQeR3y7M.js.map +0 -1
  393. package/dist/chunks/Input-anSjiM9b.js.map +0 -1
  394. package/dist/chunks/InputDateTime-BGLJ_pbV.js +0 -258
  395. package/dist/chunks/InputDateTime-BGLJ_pbV.js.map +0 -1
  396. package/dist/chunks/InputFile-B5E0prk_.js +0 -105
  397. package/dist/chunks/InputFile-B5E0prk_.js.map +0 -1
  398. package/dist/chunks/InputFiles-XBQxkHdB.js.map +0 -1
  399. package/dist/chunks/InputImage-Bs6cFQIo.js +0 -100
  400. package/dist/chunks/InputImage-Bs6cFQIo.js.map +0 -1
  401. package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js +0 -82
  402. package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js.map +0 -1
  403. package/dist/chunks/Listbox-BZlp5qHz.js +0 -81
  404. package/dist/chunks/Listbox-BZlp5qHz.js.map +0 -1
  405. package/dist/chunks/MultiSelect-DblDAklj.js +0 -422
  406. package/dist/chunks/MultiSelect-DblDAklj.js.map +0 -1
  407. package/dist/chunks/NotificationsHost-_icJx4xR.js +0 -151
  408. package/dist/chunks/NotificationsHost-_icJx4xR.js.map +0 -1
  409. package/dist/chunks/PresetRangeDateInput-Bytk5sAs.js +0 -53
  410. package/dist/chunks/PresetRangeDateInput-Bytk5sAs.js.map +0 -1
  411. package/dist/chunks/RadioButton-D0uA0rX_.js +0 -48
  412. package/dist/chunks/RadioButton-D0uA0rX_.js.map +0 -1
  413. package/dist/chunks/RadioGroup-B9XjkcOy.js.map +0 -1
  414. package/dist/chunks/Select-ClBs-16a.js +0 -182
  415. package/dist/chunks/Select-ClBs-16a.js.map +0 -1
  416. package/dist/chunks/SelectOptionContent-CI7wq9Oi.js +0 -27
  417. package/dist/chunks/SelectOptionContent-CI7wq9Oi.js.map +0 -1
  418. package/dist/chunks/SerializableSelect-Ds8wp2_p.js +0 -33
  419. package/dist/chunks/SerializableSelect-Ds8wp2_p.js.map +0 -1
  420. package/dist/chunks/SingleDateTimeInput-kXrkLAAI.js +0 -331
  421. package/dist/chunks/SingleDateTimeInput-kXrkLAAI.js.map +0 -1
  422. package/dist/chunks/Splitter-BFkVGVRb.js +0 -168
  423. package/dist/chunks/Splitter-BFkVGVRb.js.map +0 -1
  424. package/dist/chunks/StateSelect-BzUsurDe.js +0 -78
  425. package/dist/chunks/StateSelect-BzUsurDe.js.map +0 -1
  426. package/dist/chunks/Switch-B57Qmy1z.js +0 -81
  427. package/dist/chunks/Switch-B57Qmy1z.js.map +0 -1
  428. package/dist/chunks/Textarea-CLyGS1h9.js +0 -44
  429. package/dist/chunks/Textarea-CLyGS1h9.js.map +0 -1
  430. package/dist/chunks/TimePanel-b4saqoUY.js +0 -135
  431. package/dist/chunks/TimePanel-b4saqoUY.js.map +0 -1
  432. package/dist/chunks/Toggle-DVqOQXmt.js +0 -73
  433. package/dist/chunks/Toggle-DVqOQXmt.js.map +0 -1
  434. package/dist/chunks/TreeMultiSelect-mIG8VKx8.js +0 -40
  435. package/dist/chunks/TreeMultiSelect-mIG8VKx8.js.map +0 -1
  436. package/dist/chunks/TreePickerBase-C9HEABt5.js +0 -423
  437. package/dist/chunks/TreePickerBase-C9HEABt5.js.map +0 -1
  438. package/dist/chunks/TreeSelect-B9rb_fbI.js +0 -37
  439. package/dist/chunks/TreeSelect-B9rb_fbI.js.map +0 -1
  440. package/dist/chunks/layout-picker-CSLuIUVZ.js +0 -1171
  441. package/dist/chunks/layout-picker-CSLuIUVZ.js.map +0 -1
  442. package/dist/chunks/multi-select-ei7LHBCv.js +0 -126
  443. package/dist/chunks/multi-select-ei7LHBCv.js.map +0 -1
  444. package/dist/chunks/odata-DSW7z3nh.js.map +0 -1
  445. package/dist/chunks/select-Ds7_EAGN.js +0 -81
  446. package/dist/chunks/select-Ds7_EAGN.js.map +0 -1
  447. package/dist/chunks/slider-uU26AeGu.js +0 -695
  448. package/dist/chunks/slider-uU26AeGu.js.map +0 -1
  449. package/dist/chunks/tabs-DlnVVMJl.js +0 -384
  450. package/dist/chunks/tabs-DlnVVMJl.js.map +0 -1
  451. package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js +0 -113
  452. package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js.map +0 -1
  453. package/dist/context-menu/stories/ContextMenu.stories.d.ts +0 -16
  454. package/dist/context-menu/stories/ContextMenu.stories.d.ts.map +0 -1
  455. package/dist/context-menu/stories/ContextMenu.stories.js +0 -136
  456. package/dist/context-menu/stories/ContextMenu.stories.js.map +0 -1
  457. package/dist/date-input/stories/DateInput.stories.d.ts +0 -132
  458. package/dist/date-input/stories/DateInput.stories.d.ts.map +0 -1
  459. package/dist/date-input/stories/DateInput.stories.js +0 -247
  460. package/dist/date-input/stories/DateInput.stories.js.map +0 -1
  461. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts +0 -22
  462. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts.map +0 -1
  463. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js +0 -41
  464. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js.map +0 -1
  465. package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts +0 -95
  466. package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts.map +0 -1
  467. package/dist/date-time-input/stories/SingleDateTimeInput.stories.js +0 -195
  468. package/dist/date-time-input/stories/SingleDateTimeInput.stories.js.map +0 -1
  469. package/dist/date-time-input/stories/TimePanel.stories.d.ts +0 -26
  470. package/dist/date-time-input/stories/TimePanel.stories.d.ts.map +0 -1
  471. package/dist/date-time-input/stories/TimePanel.stories.js +0 -53
  472. package/dist/date-time-input/stories/TimePanel.stories.js.map +0 -1
  473. package/dist/detail/stories/Detail.stories.d.ts +0 -67
  474. package/dist/detail/stories/Detail.stories.d.ts.map +0 -1
  475. package/dist/detail/stories/Detail.stories.js +0 -170
  476. package/dist/detail/stories/Detail.stories.js.map +0 -1
  477. package/dist/dialog/stories/Dialog.stories.d.ts +0 -50
  478. package/dist/dialog/stories/Dialog.stories.d.ts.map +0 -1
  479. package/dist/dialog/stories/Dialog.stories.js +0 -89
  480. package/dist/dialog/stories/Dialog.stories.js.map +0 -1
  481. package/dist/disclosure/stories/Disclosure.stories.d.ts +0 -35
  482. package/dist/disclosure/stories/Disclosure.stories.d.ts.map +0 -1
  483. package/dist/disclosure/stories/Disclosure.stories.js +0 -70
  484. package/dist/disclosure/stories/Disclosure.stories.js.map +0 -1
  485. package/dist/drop-zone/stories/DropZone.stories.d.ts +0 -63
  486. package/dist/drop-zone/stories/DropZone.stories.d.ts.map +0 -1
  487. package/dist/drop-zone/stories/DropZone.stories.js +0 -97
  488. package/dist/drop-zone/stories/DropZone.stories.js.map +0 -1
  489. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts +0 -44
  490. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts.map +0 -1
  491. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js +0 -117
  492. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js.map +0 -1
  493. package/dist/flex/index.js.map +0 -1
  494. package/dist/flex/stories/Flex.stories.d.ts +0 -24
  495. package/dist/flex/stories/Flex.stories.d.ts.map +0 -1
  496. package/dist/flex/stories/Flex.stories.js +0 -607
  497. package/dist/flex/stories/Flex.stories.js.map +0 -1
  498. package/dist/grid/stories/Grid.stories.d.ts +0 -24
  499. package/dist/grid/stories/Grid.stories.d.ts.map +0 -1
  500. package/dist/grid/stories/Grid.stories.js +0 -840
  501. package/dist/grid/stories/Grid.stories.js.map +0 -1
  502. package/dist/input/index.js.map +0 -1
  503. package/dist/input/stories/Input.stories.d.ts +0 -69
  504. package/dist/input/stories/Input.stories.d.ts.map +0 -1
  505. package/dist/input/stories/Input.stories.js +0 -132
  506. package/dist/input/stories/Input.stories.js.map +0 -1
  507. package/dist/input-date-time/stories/InputDateTime.stories.d.ts +0 -69
  508. package/dist/input-date-time/stories/InputDateTime.stories.d.ts.map +0 -1
  509. package/dist/input-date-time/stories/InputDateTime.stories.js +0 -125
  510. package/dist/input-date-time/stories/InputDateTime.stories.js.map +0 -1
  511. package/dist/input-file/stories/InputFile.stories.d.ts +0 -85
  512. package/dist/input-file/stories/InputFile.stories.d.ts.map +0 -1
  513. package/dist/input-file/stories/InputFile.stories.js +0 -158
  514. package/dist/input-file/stories/InputFile.stories.js.map +0 -1
  515. package/dist/input-files/stories/InputFiles.stories.d.ts +0 -86
  516. package/dist/input-files/stories/InputFiles.stories.d.ts.map +0 -1
  517. package/dist/input-files/stories/InputFiles.stories.js +0 -158
  518. package/dist/input-files/stories/InputFiles.stories.js.map +0 -1
  519. package/dist/input-image/stories/InputImage.stories.d.ts +0 -81
  520. package/dist/input-image/stories/InputImage.stories.d.ts.map +0 -1
  521. package/dist/input-image/stories/InputImage.stories.js +0 -174
  522. package/dist/input-image/stories/InputImage.stories.js.map +0 -1
  523. package/dist/layout-picker/stories/LayoutPicker.stories.d.ts +0 -873
  524. package/dist/layout-picker/stories/LayoutPicker.stories.d.ts.map +0 -1
  525. package/dist/layout-picker/stories/LayoutPicker.stories.js +0 -422
  526. package/dist/layout-picker/stories/LayoutPicker.stories.js.map +0 -1
  527. package/dist/listbox/stories/Listbox.stories.d.ts +0 -76
  528. package/dist/listbox/stories/Listbox.stories.d.ts.map +0 -1
  529. package/dist/listbox/stories/Listbox.stories.js +0 -140
  530. package/dist/listbox/stories/Listbox.stories.js.map +0 -1
  531. package/dist/modal/stories/Modal.stories.d.ts +0 -74
  532. package/dist/modal/stories/Modal.stories.d.ts.map +0 -1
  533. package/dist/modal/stories/Modal.stories.js +0 -320
  534. package/dist/modal/stories/Modal.stories.js.map +0 -1
  535. package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts +0 -67
  536. package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts.map +0 -1
  537. package/dist/multi-select/ui/stories/MultiSelect.stories.js +0 -114
  538. package/dist/multi-select/ui/stories/MultiSelect.stories.js.map +0 -1
  539. package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts +0 -44
  540. package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts.map +0 -1
  541. package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts +0 -21
  542. package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts.map +0 -1
  543. package/dist/notifications/ui/stories/NotificationsHost.stories.js +0 -326
  544. package/dist/notifications/ui/stories/NotificationsHost.stories.js.map +0 -1
  545. package/dist/period-select/stories/PeriodSelect.stories.d.ts +0 -96
  546. package/dist/period-select/stories/PeriodSelect.stories.d.ts.map +0 -1
  547. package/dist/period-select/stories/PeriodSelect.stories.js +0 -166
  548. package/dist/period-select/stories/PeriodSelect.stories.js.map +0 -1
  549. package/dist/popover/stories/Popover.stories.d.ts +0 -10
  550. package/dist/popover/stories/Popover.stories.d.ts.map +0 -1
  551. package/dist/popover/stories/Popover.stories.js +0 -75
  552. package/dist/popover/stories/Popover.stories.js.map +0 -1
  553. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts +0 -22
  554. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts.map +0 -1
  555. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js +0 -45
  556. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js.map +0 -1
  557. package/dist/radio-button/stories/RadioButton.stories.d.ts +0 -60
  558. package/dist/radio-button/stories/RadioButton.stories.d.ts.map +0 -1
  559. package/dist/radio-button/stories/RadioButton.stories.js +0 -121
  560. package/dist/radio-button/stories/RadioButton.stories.js.map +0 -1
  561. package/dist/radio-group/stories/RadioGroup.stories.d.ts +0 -74
  562. package/dist/radio-group/stories/RadioGroup.stories.d.ts.map +0 -1
  563. package/dist/radio-group/stories/RadioGroup.stories.js +0 -146
  564. package/dist/radio-group/stories/RadioGroup.stories.js.map +0 -1
  565. package/dist/select/stories/ODataSelect.stories.d.ts +0 -46
  566. package/dist/select/stories/ODataSelect.stories.d.ts.map +0 -1
  567. package/dist/select/stories/Select.stories.d.ts +0 -127
  568. package/dist/select/stories/Select.stories.d.ts.map +0 -1
  569. package/dist/select/stories/Select.stories.js +0 -214
  570. package/dist/select/stories/Select.stories.js.map +0 -1
  571. package/dist/select/stories/SerializableSelect.stories.d.ts +0 -91
  572. package/dist/select/stories/SerializableSelect.stories.d.ts.map +0 -1
  573. package/dist/select/stories/SerializableSelect.stories.js +0 -165
  574. package/dist/select/stories/SerializableSelect.stories.js.map +0 -1
  575. package/dist/select/stories/odataStoryCollection.d.ts +0 -2
  576. package/dist/select/stories/odataStoryCollection.d.ts.map +0 -1
  577. package/dist/select/stories/odataStoryFixtures.d.ts +0 -35
  578. package/dist/select/stories/odataStoryFixtures.d.ts.map +0 -1
  579. package/dist/slider/stories/Slider.stories.d.ts +0 -29
  580. package/dist/slider/stories/Slider.stories.d.ts.map +0 -1
  581. package/dist/slider/stories/Slider.stories.js +0 -310
  582. package/dist/slider/stories/Slider.stories.js.map +0 -1
  583. package/dist/slider/stories/SliderInput.stories.d.ts +0 -30
  584. package/dist/slider/stories/SliderInput.stories.d.ts.map +0 -1
  585. package/dist/slider/stories/SliderInput.stories.js +0 -282
  586. package/dist/slider/stories/SliderInput.stories.js.map +0 -1
  587. package/dist/sortable/stories/Sortable.stories.d.ts +0 -58
  588. package/dist/sortable/stories/Sortable.stories.d.ts.map +0 -1
  589. package/dist/sortable/stories/Sortable.stories.js +0 -255
  590. package/dist/sortable/stories/Sortable.stories.js.map +0 -1
  591. package/dist/splitter/stories/Splitter.stories.d.ts +0 -66
  592. package/dist/splitter/stories/Splitter.stories.d.ts.map +0 -1
  593. package/dist/splitter/stories/Splitter.stories.js +0 -223
  594. package/dist/splitter/stories/Splitter.stories.js.map +0 -1
  595. package/dist/state-select/stories/StateSelect.stories.d.ts +0 -70
  596. package/dist/state-select/stories/StateSelect.stories.d.ts.map +0 -1
  597. package/dist/state-select/stories/StateSelect.stories.js +0 -145
  598. package/dist/state-select/stories/StateSelect.stories.js.map +0 -1
  599. package/dist/switch/stories/Switch.stories.d.ts +0 -59
  600. package/dist/switch/stories/Switch.stories.d.ts.map +0 -1
  601. package/dist/switch/stories/Switch.stories.js +0 -90
  602. package/dist/switch/stories/Switch.stories.js.map +0 -1
  603. package/dist/table/stories/Table.stories.d.ts +0 -155
  604. package/dist/table/stories/Table.stories.d.ts.map +0 -1
  605. package/dist/tabs/stories/Tabs.stories.d.ts +0 -94
  606. package/dist/tabs/stories/Tabs.stories.d.ts.map +0 -1
  607. package/dist/tabs/stories/Tabs.stories.js +0 -283
  608. package/dist/tabs/stories/Tabs.stories.js.map +0 -1
  609. package/dist/textarea/stories/Textarea.stories.d.ts +0 -64
  610. package/dist/textarea/stories/Textarea.stories.d.ts.map +0 -1
  611. package/dist/textarea/stories/Textarea.stories.js +0 -98
  612. package/dist/textarea/stories/Textarea.stories.js.map +0 -1
  613. package/dist/toggle/stories/Toggle.stories.d.ts +0 -61
  614. package/dist/toggle/stories/Toggle.stories.d.ts.map +0 -1
  615. package/dist/toggle/stories/Toggle.stories.js +0 -102
  616. package/dist/toggle/stories/Toggle.stories.js.map +0 -1
  617. package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts +0 -55
  618. package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts.map +0 -1
  619. package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts +0 -54
  620. package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts.map +0 -1
  621. package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts +0 -35
  622. package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts.map +0 -1
  623. package/dist/tree-select/stories/TreeMultiSelect.stories.js +0 -64
  624. package/dist/tree-select/stories/TreeMultiSelect.stories.js.map +0 -1
  625. package/dist/tree-select/stories/TreeSelect.stories.d.ts +0 -35
  626. package/dist/tree-select/stories/TreeSelect.stories.d.ts.map +0 -1
  627. package/dist/tree-select/stories/TreeSelect.stories.js +0 -66
  628. package/dist/tree-select/stories/TreeSelect.stories.js.map +0 -1
  629. package/dist/tree-select/stories/treeStoryFixtures.d.ts +0 -3
  630. package/dist/tree-select/stories/treeStoryFixtures.d.ts.map +0 -1
  631. package/dist/tree-table/stories/TreeTable.stories.d.ts +0 -158
  632. package/dist/tree-table/stories/TreeTable.stories.d.ts.map +0 -1
  633. package/src/styles/fonts.scss +0 -47
@@ -1,2 +1,458 @@
1
- import { t as e } from "../chunks/SingleDateTimeInput-kXrkLAAI.js";
2
- export { e as SingleDateTimeInput };
1
+ import { r as e } from "../chunks/popover-xJJqy1v6.js";
2
+ import { t } from "../chunks/ui.module-BisoTevy.js";
3
+ import { n } from "../chunks/button-CC0Jdx1j.js";
4
+ import { i as r, l as i, s as a } from "../chunks/input-CZLUUggm.js";
5
+ import { t as o } from "../chunks/CalendarView-DCQjO2ho.js";
6
+ import { t as s } from "../chunks/wheel-picker-FS58cRsQ.js";
7
+ import { useCallback as c, useEffect as l, useEffectEvent as u, useMemo as d, useRef as f, useState as p } from "react";
8
+ import { cn as m } from "@ryuzaki13/react-foundation-lib/utils";
9
+ import { createCalendarDate as h, getStartOfDay as g, isDateRangeTuple as _, parseDate as v } from "@ryuzaki13/react-foundation-lib/formatters";
10
+ import { CalendarDaysIcon as y, Clock3Icon as b } from "lucide-react";
11
+ import { jsx as x, jsxs as S } from "react/jsx-runtime";
12
+ import { areAllDateSegmentsEmpty as C, dateToIndexedSegmentValues as w, indexedSegmentsToDate as T, parseDateSegmentMask as E } from "@ryuzaki13/react-foundation-lib/date-segments";
13
+ //#region src/date-time-input/lib/dateTimeValue.ts
14
+ var D = "dd.MM.yyyy HH:mm", O = "HH:mm", k = 1970, A = 0, j = 1;
15
+ E(O);
16
+ function M(e = 0, t = 0) {
17
+ return h(k, A, j, e, t, 0, 0);
18
+ }
19
+ function N(e = "date-time") {
20
+ return e === "time" ? O : D;
21
+ }
22
+ function P(e, t = "date-time") {
23
+ if (e == null) return null;
24
+ let n = v(e);
25
+ return n ? t === "time" ? M(n.getHours(), n.getMinutes()) : n : null;
26
+ }
27
+ function F(e, t, n, r = "date-time") {
28
+ let i = P(e, r);
29
+ if (!i) return !1;
30
+ if (r === "time") {
31
+ let e = i.getHours() * 60 + i.getMinutes(), r = t ? P(t, "time") : null, a = n ? P(n, "time") : null;
32
+ return !(r && e < r.getHours() * 60 + r.getMinutes() || a && e > a.getHours() * 60 + a.getMinutes());
33
+ }
34
+ return !(t && i < t || n && i > n);
35
+ }
36
+ function I(e, t) {
37
+ let n = P(t), r = n?.getHours() ?? 0, i = n?.getMinutes() ?? 0;
38
+ return h(e.getFullYear(), e.getMonth(), e.getDate(), r, i, 0, 0);
39
+ }
40
+ function L(e, t, n, r = "date-time") {
41
+ return r === "time" ? M(t, n) : h(e.getFullYear(), e.getMonth(), e.getDate(), t, n, 0, 0);
42
+ }
43
+ function R(e, t, n = "date-time") {
44
+ return n === "time" ? P(e, "time") ?? M() : P(e, n) ?? t;
45
+ }
46
+ function z(e, t, n, r = "date-time") {
47
+ let i = P(e, r) ?? e, a = t ? P(t, r) : null, o = n ? P(n, r) : null, s = !!a && i.getFullYear() === a.getFullYear() && i.getMonth() === a.getMonth() && i.getDate() === a.getDate(), c = !!o && i.getFullYear() === o.getFullYear() && i.getMonth() === o.getMonth() && i.getDate() === o.getDate(), l = s ? a.getHours() : 0, u = c ? o.getHours() : 23, d = s && l === u ? a.getMinutes() : 0, f = c && l === u ? o.getMinutes() : 59, p = l > u || l === u && d > f;
48
+ return {
49
+ disabled: p,
50
+ minHour: l,
51
+ maxHour: u,
52
+ minMinuteByHour: (e) => p ? 0 : s && e === l ? a.getMinutes() : 0,
53
+ maxMinuteByHour: (e) => p ? 59 : c && e === u ? o.getMinutes() : 59
54
+ };
55
+ }
56
+ function B(e, t, n, r, i, a = "date-time") {
57
+ let o = z(e, r, i, a);
58
+ if (o.disabled) return {
59
+ hours: 0,
60
+ minutes: 0
61
+ };
62
+ let s = Math.min(Math.max(t, o.minHour), o.maxHour), c = o.minMinuteByHour(s), l = o.maxMinuteByHour(s);
63
+ return {
64
+ hours: s,
65
+ minutes: Math.min(Math.max(n, c), l)
66
+ };
67
+ }
68
+ //#endregion
69
+ //#region src/date-time-input/lib/timePanelState.ts
70
+ function V(e, t, n, r = "date-time") {
71
+ let i = z(e, t, n, r), a = e.getHours(), o = e.getMinutes(), s = i.minMinuteByHour(a), c = i.maxMinuteByHour(a);
72
+ return i.disabled ? {
73
+ disabled: !0,
74
+ selectedHour: a,
75
+ selectedMinute: o,
76
+ hours: [],
77
+ minutes: []
78
+ } : {
79
+ disabled: !1,
80
+ selectedHour: a,
81
+ selectedMinute: o,
82
+ hours: Array.from({ length: i.maxHour - i.minHour + 1 }, (e, t) => i.minHour + t),
83
+ minutes: Array.from({ length: c - s + 1 }, (e, t) => s + t)
84
+ };
85
+ }
86
+ //#endregion
87
+ //#region src/date-time-input/model/useDateTimeSegments.ts
88
+ function H(e) {
89
+ let t = [];
90
+ return e.forEach((e, n) => {
91
+ e.kind === "editable" && t.push(n);
92
+ }), t;
93
+ }
94
+ function ee({ value: e, onChange: t, onClearError: n, disabled: r, minDate: i, maxDate: a, mode: o = "date-time" }) {
95
+ let s = d(() => N(o), [o]), m = d(() => E(s), [s]), h = d(() => H(m), [m]), g = d(() => w(e ?? null, m), [m, e]), [_, v] = p(null), y = e?.getTime() ?? null, b = u((e) => v(e));
96
+ l(() => {
97
+ b(null);
98
+ }, [y, o]);
99
+ let x = _ ?? g, S = f(/* @__PURE__ */ new Map()), D = f(0), O = c((n) => {
100
+ if (C(m, n)) return t(null), null;
101
+ let r = T(m, n, { defaultDate: o === "time" ? P(e, "time") ?? M() : void 0 });
102
+ return !r || !F(r, i, a, o) ? null : (t(r), r);
103
+ }, [
104
+ a,
105
+ i,
106
+ o,
107
+ t,
108
+ m,
109
+ e
110
+ ]), k = c((e, t = !0) => {
111
+ let n = S.current.get(e);
112
+ n && (n.focus(), t && requestAnimationFrame(() => n.select()));
113
+ }, []), A = c((e) => {
114
+ let t = h.indexOf(e);
115
+ return t < h.length - 1 ? h[t + 1] : null;
116
+ }, [h]), j = c((e) => {
117
+ let t = h.indexOf(e);
118
+ return t > 0 ? h[t - 1] : null;
119
+ }, [h]), I = c((e, t) => e.padStart(t.length, "0"), []);
120
+ return {
121
+ segments: m,
122
+ segmentValues: x,
123
+ registerRef: c((e) => (t) => {
124
+ if (t) {
125
+ S.current.set(e, t);
126
+ return;
127
+ }
128
+ S.current.delete(e);
129
+ }, []),
130
+ handleInput: c((e) => (t) => {
131
+ if (r) return;
132
+ let i = m[e];
133
+ if (i.kind !== "editable") return;
134
+ let a = t.target.value.replace(/\D/g, "").slice(0, i.length), o = new Map(x);
135
+ if (o.set(e, a), v(o), n?.(), a.length === i.length) {
136
+ let t = A(e);
137
+ t !== null && requestAnimationFrame(() => k(t));
138
+ }
139
+ O(o);
140
+ }, [
141
+ r,
142
+ k,
143
+ A,
144
+ n,
145
+ x,
146
+ m,
147
+ O
148
+ ]),
149
+ handleKeyDown: c((e) => (t) => {
150
+ if (r) return;
151
+ let n = m[e];
152
+ if (n.kind !== "editable") return;
153
+ let i = x.get(e) ?? "", a = t.currentTarget;
154
+ switch (t.key) {
155
+ case "ArrowRight":
156
+ if (a.selectionStart === i.length || i === "") {
157
+ t.preventDefault();
158
+ let n = A(e);
159
+ n !== null && k(n);
160
+ }
161
+ break;
162
+ case "ArrowLeft":
163
+ if (a.selectionStart === 0 || i === "") {
164
+ t.preventDefault();
165
+ let n = j(e);
166
+ n !== null && k(n);
167
+ }
168
+ break;
169
+ case "ArrowUp": {
170
+ t.preventDefault();
171
+ let r = i === "" ? n.min : Number.parseInt(i, 10) + 1;
172
+ r > n.max && (r = n.min);
173
+ let o = new Map(x);
174
+ o.set(e, I(String(r), n)), v(o), O(o), requestAnimationFrame(() => a.select());
175
+ break;
176
+ }
177
+ case "ArrowDown": {
178
+ t.preventDefault();
179
+ let r = i === "" ? n.max : Number.parseInt(i, 10) - 1;
180
+ r < n.min && (r = n.max);
181
+ let o = new Map(x);
182
+ o.set(e, I(String(r), n)), v(o), O(o), requestAnimationFrame(() => a.select());
183
+ break;
184
+ }
185
+ case "Backspace":
186
+ if (i === "") {
187
+ t.preventDefault();
188
+ let n = j(e);
189
+ n !== null && k(n);
190
+ }
191
+ break;
192
+ case "Delete": {
193
+ t.preventDefault();
194
+ let n = new Map(x);
195
+ n.set(e, ""), v(n), O(n);
196
+ break;
197
+ }
198
+ }
199
+ }, [
200
+ r,
201
+ k,
202
+ A,
203
+ j,
204
+ I,
205
+ x,
206
+ m,
207
+ O
208
+ ]),
209
+ handleFocus: c(() => (e) => {
210
+ e.target.select();
211
+ }, []),
212
+ handleContainerFocus: c(() => {
213
+ clearTimeout(D.current);
214
+ }, []),
215
+ handleContainerBlur: c(() => {
216
+ let n = new Map(x);
217
+ D.current = window.setTimeout(() => {
218
+ if (C(m, n)) {
219
+ t(null), v(n);
220
+ return;
221
+ }
222
+ let r = T(m, n, { defaultDate: o === "time" ? P(e, "time") ?? M() : void 0 });
223
+ if (!r || !F(r, i, a, o)) {
224
+ v(null);
225
+ return;
226
+ }
227
+ v(n);
228
+ }, 0);
229
+ }, [
230
+ a,
231
+ i,
232
+ o,
233
+ t,
234
+ x,
235
+ m,
236
+ e
237
+ ]),
238
+ focusFirstEmpty: c(() => {
239
+ let e = h.find((e) => !(x.get(e) ?? "")) ?? h[h.length - 1];
240
+ e !== void 0 && k(e);
241
+ }, [
242
+ h,
243
+ k,
244
+ x
245
+ ])
246
+ };
247
+ }
248
+ var U = {
249
+ segmentInput: "AvG-mf",
250
+ separator: "ig7KtT",
251
+ calendarButton: "RTruv0",
252
+ popoverContent: "YQHPZa",
253
+ bottom: "-RZe-i",
254
+ right: "Ox0SRE",
255
+ calendarPane: "gfaRup",
256
+ timePanelPane: "_59kEea",
257
+ timeOnlyPopoverContent: "Jjdu1Q",
258
+ timePanelPaneBottom: "Q8Y2xS",
259
+ timePanelPaneRight: "XxZYTW"
260
+ }, W = {
261
+ timePanel: "_5-SSnO",
262
+ hint: "s1NHua",
263
+ fields: "KQC9-8",
264
+ field: "WDu02W",
265
+ label: "_9mEhfD",
266
+ wheel: "N-Fzjk"
267
+ };
268
+ //#endregion
269
+ //#region src/date-time-input/ui/TimePanel.tsx
270
+ function G({ value: e, disabled: t, minDate: n, maxDate: r, mode: i = "date-time", onChange: a }) {
271
+ let o = V(e, n, r, i), c = (e) => String(e).padStart(2, "0");
272
+ return o.disabled ? /* @__PURE__ */ x("div", {
273
+ className: W.timePanel,
274
+ children: /* @__PURE__ */ x("p", {
275
+ className: W.hint,
276
+ children: "Для выбранного дня нет доступного времени в заданном диапазоне."
277
+ })
278
+ }) : /* @__PURE__ */ x("div", {
279
+ className: W.timePanel,
280
+ children: /* @__PURE__ */ S("div", {
281
+ className: W.fields,
282
+ children: [/* @__PURE__ */ S("label", {
283
+ className: W.field,
284
+ children: [/* @__PURE__ */ x("span", {
285
+ className: W.label,
286
+ children: "Часы"
287
+ }), /* @__PURE__ */ x(s, {
288
+ className: W.wheel,
289
+ items: o.hours,
290
+ value: o.selectedHour,
291
+ onChange: (e) => a(e, o.selectedMinute),
292
+ ariaLabel: "Выбор часов",
293
+ disabled: t,
294
+ formatItem: c
295
+ })]
296
+ }), /* @__PURE__ */ S("label", {
297
+ className: W.field,
298
+ children: [/* @__PURE__ */ x("span", {
299
+ className: W.label,
300
+ children: "Минуты"
301
+ }), /* @__PURE__ */ x(s, {
302
+ className: W.wheel,
303
+ items: o.minutes,
304
+ value: o.selectedMinute,
305
+ onChange: (e) => a(o.selectedHour, e),
306
+ ariaLabel: "Выбор минут",
307
+ disabled: t,
308
+ formatItem: c
309
+ })]
310
+ })]
311
+ })
312
+ });
313
+ }
314
+ //#endregion
315
+ //#region src/date-time-input/ui/SingleDateTimeInput.tsx
316
+ function K({ value: s, onChange: c, label: f, description: h, placeholder: v, disabled: C, size: w, error: T, onClearError: E, minDate: D, maxDate: O, timePanelPlacement: k = "right", mode: A = "date-time" }) {
317
+ let j = P(s, A), M = j?.getTime() ?? null, N = d(() => g(/* @__PURE__ */ new Date()), []), [z, V] = p(!1), [H, W] = p(j ?? null), [K, te] = p("day"), [q, J] = p(() => R(j, N, A)), { controlId: Y, labelId: X, descriptionId: ne, errorId: re, describedBy: ie } = i({
318
+ hasLabel: f != null,
319
+ hasDescription: !!h,
320
+ hasError: !!T
321
+ }), ae = u((e) => W(e)), Z = u((e) => J(e));
322
+ l(() => {
323
+ z || ae(j ?? null), j && Z(j);
324
+ }, [
325
+ j,
326
+ M,
327
+ z
328
+ ]), l(() => {
329
+ j && Z(j);
330
+ }, [j, M]);
331
+ let { segments: oe, segmentValues: se, registerRef: ce, handleInput: le, handleKeyDown: ue, handleFocus: de, handleContainerFocus: fe, handleContainerBlur: pe, focusFirstEmpty: me } = ee({
332
+ value: j,
333
+ onChange: c,
334
+ onClearError: E,
335
+ disabled: C,
336
+ minDate: D,
337
+ maxDate: O,
338
+ mode: A
339
+ }), he = (e) => {
340
+ if (A === "time" || _(e) || C) return;
341
+ let t = I(e, H ?? j ?? q), { hours: n, minutes: r } = B(e, t.getHours(), t.getMinutes(), D, O, A), i = L(e, n, r);
342
+ F(i, D, O, A) && (E?.(), W(i), J(i));
343
+ }, Q = (e, t) => {
344
+ if (C) return;
345
+ let n = H ?? j ?? q, r = B(n, e, t, D, O, A), i = L(n, r.hours, r.minutes, A);
346
+ F(i, D, O, A) && (E?.(), W(i), J(i));
347
+ }, ge = (e) => {
348
+ e && (W(j ?? null), J(R(j, N, A))), V(e);
349
+ }, _e = () => {
350
+ (j?.getTime() ?? null) !== (H?.getTime() ?? null) && c(H);
351
+ }, ve = k === "right" ? U.timePanelPaneRight : U.timePanelPaneBottom, ye = A === "time" ? "Открыть выбор времени" : "Открыть календарь даты и времени", be = v ?? (A === "time" ? "чч:мм" : "дд.мм.гггг чч:мм"), $ = H ?? j ?? q;
352
+ return /* @__PURE__ */ S(e, {
353
+ open: z,
354
+ onOpenChange: ge,
355
+ children: [/* @__PURE__ */ x(a, {
356
+ label: f,
357
+ description: h,
358
+ disabled: C,
359
+ size: w,
360
+ error: T,
361
+ controlId: Y,
362
+ labelId: X,
363
+ descriptionId: ne,
364
+ errorId: re,
365
+ children: /* @__PURE__ */ x(r, {
366
+ endAdornmentWidth: "var(--control-height)",
367
+ endAdornment: /* @__PURE__ */ x(e.Trigger, { children: /* @__PURE__ */ x(n, {
368
+ variant: "transparent",
369
+ disabled: C,
370
+ className: U.calendarButton,
371
+ icon: x(A === "time" ? b : y, {}),
372
+ "aria-label": ye
373
+ }) }),
374
+ children: ({ controlClassName: e }) => /* @__PURE__ */ x("div", {
375
+ id: Y,
376
+ className: m(t.uiInputControlFake, e),
377
+ "data-disabled": C || void 0,
378
+ "data-invalid": T ? "" : void 0,
379
+ role: "group",
380
+ "aria-invalid": !!T || void 0,
381
+ "aria-placeholder": be,
382
+ "aria-labelledby": X,
383
+ "aria-describedby": ie,
384
+ onFocus: fe,
385
+ onBlur: pe,
386
+ onClick: (e) => {
387
+ e.target === e.currentTarget && me();
388
+ },
389
+ children: oe.map((e, t) => e.kind === "literal" ? /* @__PURE__ */ x("span", {
390
+ className: U.separator,
391
+ "data-disabled": C || void 0,
392
+ children: e.text
393
+ }, t) : /* @__PURE__ */ x("input", {
394
+ ref: ce(t),
395
+ type: "text",
396
+ inputMode: "numeric",
397
+ className: U.segmentInput,
398
+ style: { width: `${e.length + .5}ch` },
399
+ value: se.get(t) ?? "",
400
+ placeholder: e.placeholder,
401
+ maxLength: e.length,
402
+ disabled: C,
403
+ "aria-label": e.ariaLabel,
404
+ autoComplete: "off",
405
+ onChange: le(t),
406
+ onKeyDown: ue(t),
407
+ onFocus: de()
408
+ }, t))
409
+ })
410
+ })
411
+ }), /* @__PURE__ */ x(e.Content, {
412
+ background: "primary",
413
+ onClose: _e,
414
+ children: A === "time" ? /* @__PURE__ */ x("div", {
415
+ className: U.timeOnlyPopoverContent,
416
+ children: /* @__PURE__ */ x(G, {
417
+ value: $,
418
+ disabled: C,
419
+ minDate: D,
420
+ maxDate: O,
421
+ mode: A,
422
+ onChange: Q
423
+ })
424
+ }) : /* @__PURE__ */ S("div", {
425
+ className: m(U.popoverContent, U[k]),
426
+ children: [/* @__PURE__ */ x("div", {
427
+ className: U.calendarPane,
428
+ children: /* @__PURE__ */ x(o, {
429
+ view: K,
430
+ datePickerLevel: "day",
431
+ selectionMode: "day",
432
+ onViewChange: te,
433
+ value: $,
434
+ onChange: he,
435
+ minDate: D,
436
+ maxDate: O,
437
+ currentDate: q,
438
+ onCurrentDateChange: J
439
+ })
440
+ }), /* @__PURE__ */ x("div", {
441
+ className: m(U.timePanelPane, ve),
442
+ children: /* @__PURE__ */ x(G, {
443
+ value: $,
444
+ disabled: C,
445
+ minDate: D,
446
+ maxDate: O,
447
+ mode: A,
448
+ onChange: Q
449
+ })
450
+ })]
451
+ })
452
+ })]
453
+ });
454
+ }
455
+ //#endregion
456
+ export { K as SingleDateTimeInput };
457
+
458
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/date-time-input/lib/dateTimeValue.ts","../../src/date-time-input/lib/timePanelState.ts","../../src/date-time-input/model/useDateTimeSegments.ts","../../src/date-time-input/ui/SingleDateTimeInput.module.scss","../../src/date-time-input/ui/TimePanel.module.scss","../../src/date-time-input/ui/TimePanel.tsx","../../src/date-time-input/ui/SingleDateTimeInput.tsx"],"sourcesContent":["import { dateToIndexedSegmentValues, indexedSegmentsToDate, parseDateSegmentMask } from \"@ryuzaki13/react-foundation-lib/date-segments\";\nimport {\n\tcreateCalendarDate,\n\ttype DateFormatPreset,\n\tformatDate,\n\tparseDate,\n\tparseDateByPattern\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\n\nexport type DateTimeInputMode = \"date-time\" | \"time\";\n\n/**\n * Фиксированный формат нового поля даты-времени.\n */\nexport const DATE_TIME_INPUT_FORMAT = \"dd.MM.yyyy HH:mm\";\nexport const TIME_INPUT_FORMAT = \"HH:mm\";\n\nconst DATE_TIME_INPUT_PRESET_NAME = \"__date_time_input__\";\nconst TIME_INPUT_PRESET_NAME = \"__time_input__\";\nconst TIME_ONLY_BASE_YEAR = 1970;\nconst TIME_ONLY_BASE_MONTH = 0;\nconst TIME_ONLY_BASE_DAY = 1;\nconst TIME_SEGMENTS = parseDateSegmentMask(TIME_INPUT_FORMAT);\n\n/**\n * Создаёт техническую базовую дату для режима выбора только времени.\n */\nexport function createTimeOnlyBaseDate(hours = 0, minutes = 0): Date {\n\treturn createCalendarDate(TIME_ONLY_BASE_YEAR, TIME_ONLY_BASE_MONTH, TIME_ONLY_BASE_DAY, hours, minutes, 0, 0);\n}\n\n/**\n * Возвращает формат пользовательского ввода для выбранного режима.\n */\nexport function getDateTimeInputFormat(mode: DateTimeInputMode = \"date-time\"): string {\n\treturn mode === \"time\" ? TIME_INPUT_FORMAT : DATE_TIME_INPUT_FORMAT;\n}\n\n/**\n * Создаёт временную предустановку форматирования для нового поля даты-времени.\n */\nexport function createDateTimeInputPreset(mode: DateTimeInputMode = \"date-time\"): DateFormatPreset {\n\treturn {\n\t\tname: mode === \"time\" ? TIME_INPUT_PRESET_NAME : DATE_TIME_INPUT_PRESET_NAME,\n\t\tpattern: getDateTimeInputFormat(mode),\n\t\tlocale: \"ru-RU\",\n\t\tinvalidFallback: \"\"\n\t};\n}\n\n/**\n * Нормализует внешнее значение к валидному Date без timezone-сдвига.\n */\nexport function normalizeDateTimeValue(value: Date | null | undefined, mode: DateTimeInputMode = \"date-time\"): Date | null {\n\tif (value == null) return null;\n\n\tconst parsedValue = parseDate(value);\n\tif (!parsedValue) return null;\n\n\tif (mode === \"time\") {\n\t\treturn createTimeOnlyBaseDate(parsedValue.getHours(), parsedValue.getMinutes());\n\t}\n\n\treturn parsedValue;\n}\n\n/**\n * Форматирует значение поля даты-времени в фиксированный пользовательский формат.\n */\nexport function formatDateTimeInputValue(value: Date | null | undefined, mode: DateTimeInputMode = \"date-time\"): string {\n\tif (!value) return \"\";\n\treturn formatDate(normalizeDateTimeValue(value, mode), createDateTimeInputPreset(mode));\n}\n\n/**\n * Строго парсит строку пользовательского ввода в Date.\n */\nexport function parseDateTimeInputValue(value: string, mode: DateTimeInputMode = \"date-time\"): Date | null {\n\tif (mode === \"time\") {\n\t\tconst match = /^\\d{2}:\\d{2}$/.exec(value.trim());\n\t\tif (!match) return null;\n\n\t\tconst values = dateToIndexedSegmentValues(createTimeOnlyBaseDate(), TIME_SEGMENTS);\n\t\tvalues.set(0, value.slice(0, 2));\n\t\tvalues.set(2, value.slice(3, 5));\n\n\t\treturn indexedSegmentsToDate(TIME_SEGMENTS, values, {\n\t\t\tdefaultDate: createTimeOnlyBaseDate()\n\t\t});\n\t}\n\n\tconst parsed = parseDateByPattern(value, DATE_TIME_INPUT_FORMAT);\n\tif (!parsed || parsed.kind !== \"date-time\") return null;\n\n\treturn parsed.date;\n}\n\n/**\n * Проверяет, попадает ли дата-время в допустимый диапазон.\n */\nexport function isDateTimeWithinRange(value: Date, minDate?: Date, maxDate?: Date, mode: DateTimeInputMode = \"date-time\"): boolean {\n\tconst normalizedValue = normalizeDateTimeValue(value, mode);\n\tif (!normalizedValue) return false;\n\n\tif (mode === \"time\") {\n\t\tconst valueMinutes = normalizedValue.getHours() * 60 + normalizedValue.getMinutes();\n\t\tconst normalizedMinDate = minDate ? normalizeDateTimeValue(minDate, \"time\") : null;\n\t\tconst normalizedMaxDate = maxDate ? normalizeDateTimeValue(maxDate, \"time\") : null;\n\n\t\tif (normalizedMinDate) {\n\t\t\tconst minMinutes = normalizedMinDate.getHours() * 60 + normalizedMinDate.getMinutes();\n\t\t\tif (valueMinutes < minMinutes) return false;\n\t\t}\n\n\t\tif (normalizedMaxDate) {\n\t\t\tconst maxMinutes = normalizedMaxDate.getHours() * 60 + normalizedMaxDate.getMinutes();\n\t\t\tif (valueMinutes > maxMinutes) return false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tif (minDate && normalizedValue < minDate) return false;\n\tif (maxDate && normalizedValue > maxDate) return false;\n\n\treturn true;\n}\n\n/**\n * Переносит дату выбранного дня, сохраняя часы и минуты базового значения.\n */\nexport function mergeDateWithTime(datePart: Date, timeSource?: Date | null): Date {\n\tconst source = normalizeDateTimeValue(timeSource);\n\tconst hours = source?.getHours() ?? 0;\n\tconst minutes = source?.getMinutes() ?? 0;\n\n\treturn createCalendarDate(datePart.getFullYear(), datePart.getMonth(), datePart.getDate(), hours, minutes, 0, 0);\n}\n\n/**\n * Переносит часы и минуты в базовую календарную дату.\n */\nexport function mergeTimeIntoDate(baseDate: Date, hours: number, minutes: number, mode: DateTimeInputMode = \"date-time\"): Date {\n\tif (mode === \"time\") {\n\t\treturn createTimeOnlyBaseDate(hours, minutes);\n\t}\n\n\treturn createCalendarDate(baseDate.getFullYear(), baseDate.getMonth(), baseDate.getDate(), hours, minutes, 0, 0);\n}\n\n/**\n * Создаёт рабочую дату для picker-сценариев без выбранного значения.\n */\nexport function resolvePickerBaseDate(value: Date | null | undefined, fallbackDate: Date, mode: DateTimeInputMode = \"date-time\"): Date {\n\tif (mode === \"time\") {\n\t\treturn normalizeDateTimeValue(value, \"time\") ?? createTimeOnlyBaseDate();\n\t}\n\n\treturn normalizeDateTimeValue(value, mode) ?? fallbackDate;\n}\n\n/**\n * Возвращает границы часов и минут для выбранного календарного дня.\n */\nexport function getTimeRangeForDay(\n\tday: Date,\n\tminDate?: Date,\n\tmaxDate?: Date,\n\tmode: DateTimeInputMode = \"date-time\"\n): {\n\tdisabled: boolean;\n\tminHour: number;\n\tmaxHour: number;\n\tminMinuteByHour: (hour: number) => number;\n\tmaxMinuteByHour: (hour: number) => number;\n} {\n\tconst normalizedDay = normalizeDateTimeValue(day, mode) ?? day;\n\tconst normalizedMinDate = minDate ? normalizeDateTimeValue(minDate, mode) : null;\n\tconst normalizedMaxDate = maxDate ? normalizeDateTimeValue(maxDate, mode) : null;\n\tconst isSameMinDay =\n\t\t!!normalizedMinDate &&\n\t\tnormalizedDay.getFullYear() === normalizedMinDate.getFullYear() &&\n\t\tnormalizedDay.getMonth() === normalizedMinDate.getMonth() &&\n\t\tnormalizedDay.getDate() === normalizedMinDate.getDate();\n\tconst isSameMaxDay =\n\t\t!!normalizedMaxDate &&\n\t\tnormalizedDay.getFullYear() === normalizedMaxDate.getFullYear() &&\n\t\tnormalizedDay.getMonth() === normalizedMaxDate.getMonth() &&\n\t\tnormalizedDay.getDate() === normalizedMaxDate.getDate();\n\n\tconst minHour = isSameMinDay ? normalizedMinDate!.getHours() : 0;\n\tconst maxHour = isSameMaxDay ? normalizedMaxDate!.getHours() : 23;\n\tconst minMinuteAtBoundary = isSameMinDay && minHour === maxHour ? normalizedMinDate!.getMinutes() : 0;\n\tconst maxMinuteAtBoundary = isSameMaxDay && minHour === maxHour ? normalizedMaxDate!.getMinutes() : 59;\n\tconst disabled = minHour > maxHour || (minHour === maxHour && minMinuteAtBoundary > maxMinuteAtBoundary);\n\n\treturn {\n\t\tdisabled,\n\t\tminHour,\n\t\tmaxHour,\n\t\tminMinuteByHour: (hour) => {\n\t\t\tif (disabled) return 0;\n\t\t\treturn isSameMinDay && hour === minHour ? normalizedMinDate!.getMinutes() : 0;\n\t\t},\n\t\tmaxMinuteByHour: (hour) => {\n\t\t\tif (disabled) return 59;\n\t\t\treturn isSameMaxDay && hour === maxHour ? normalizedMaxDate!.getMinutes() : 59;\n\t\t}\n\t};\n}\n\n/**\n * Ограничивает часы и минуты допустимым диапазоном текущего дня.\n */\nexport function clampTimeForDay(\n\tday: Date,\n\thours: number,\n\tminutes: number,\n\tminDate?: Date,\n\tmaxDate?: Date,\n\tmode: DateTimeInputMode = \"date-time\"\n): { hours: number; minutes: number } {\n\tconst range = getTimeRangeForDay(day, minDate, maxDate, mode);\n\tif (range.disabled) {\n\t\treturn { hours: 0, minutes: 0 };\n\t}\n\n\tconst clampedHour = Math.min(Math.max(hours, range.minHour), range.maxHour);\n\tconst minMinute = range.minMinuteByHour(clampedHour);\n\tconst maxMinute = range.maxMinuteByHour(clampedHour);\n\tconst clampedMinute = Math.min(Math.max(minutes, minMinute), maxMinute);\n\n\treturn {\n\t\thours: clampedHour,\n\t\tminutes: clampedMinute\n\t};\n}\n","import { getTimeRangeForDay } from \"./dateTimeValue\";\n\nimport type { DateTimeInputMode } from \"./dateTimeValue\";\n\n/**\n * Состояние и доступные значения для панели выбора времени.\n */\nexport interface TimePanelState {\n\tdisabled: boolean;\n\tselectedHour: number;\n\tselectedMinute: number;\n\thours: number[];\n\tminutes: number[];\n}\n\n/**\n * Собирает состояние часов и минут для панели выбора времени.\n */\nexport function buildTimePanelState(value: Date, minDate?: Date, maxDate?: Date, mode: DateTimeInputMode = \"date-time\"): TimePanelState {\n\tconst timeRange = getTimeRangeForDay(value, minDate, maxDate, mode);\n\tconst selectedHour = value.getHours();\n\tconst selectedMinute = value.getMinutes();\n\tconst minuteMin = timeRange.minMinuteByHour(selectedHour);\n\tconst minuteMax = timeRange.maxMinuteByHour(selectedHour);\n\n\tif (timeRange.disabled) {\n\t\treturn {\n\t\t\tdisabled: true,\n\t\t\tselectedHour,\n\t\t\tselectedMinute,\n\t\t\thours: [],\n\t\t\tminutes: []\n\t\t};\n\t}\n\n\treturn {\n\t\tdisabled: false,\n\t\tselectedHour,\n\t\tselectedMinute,\n\t\thours: Array.from({ length: timeRange.maxHour - timeRange.minHour + 1 }, (_, index) => timeRange.minHour + index),\n\t\tminutes: Array.from({ length: minuteMax - minuteMin + 1 }, (_, index) => minuteMin + index)\n\t};\n}\n","import type { ChangeEvent, FocusEvent, KeyboardEvent } from \"react\";\nimport { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from \"react\";\n\nimport {\n\tareAllDateSegmentsEmpty,\n\tdateToIndexedSegmentValues,\n\ttype EditableDateSegment,\n\tindexedSegmentsToDate,\n\tparseDateSegmentMask\n} from \"@ryuzaki13/react-foundation-lib/date-segments\";\n\nimport { createTimeOnlyBaseDate, getDateTimeInputFormat, isDateTimeWithinRange, normalizeDateTimeValue } from \"../lib\";\n\nimport type { DateTimeInputMode } from \"../lib\";\n\ninterface UseDateTimeSegmentsOptions {\n\tvalue: Date | null | undefined;\n\tonChange: (value: Date | null) => void;\n\tonClearError?: () => void;\n\tdisabled?: boolean;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\tmode?: DateTimeInputMode;\n}\n\nfunction resolveEditableIndices(segments: readonly { kind: string }[]): number[] {\n\tconst indices: number[] = [];\n\n\tsegments.forEach((segment, index) => {\n\t\tif (segment.kind === \"editable\") {\n\t\t\tindices.push(index);\n\t\t}\n\t});\n\n\treturn indices;\n}\n\n/**\n * Управляет сегментным вводом фиксированного формата даты-времени или только времени.\n */\nexport function useDateTimeSegments({\n\tvalue,\n\tonChange,\n\tonClearError,\n\tdisabled,\n\tminDate,\n\tmaxDate,\n\tmode = \"date-time\"\n}: UseDateTimeSegmentsOptions) {\n\tconst inputFormat = useMemo(() => getDateTimeInputFormat(mode), [mode]);\n\tconst segments = useMemo(() => parseDateSegmentMask(inputFormat), [inputFormat]);\n\tconst editableIndices = useMemo(() => resolveEditableIndices(segments), [segments]);\n\tconst committedValues = useMemo(() => dateToIndexedSegmentValues(value ?? null, segments), [segments, value]);\n\tconst [dirtyValues, setDirtyValues] = useState<Map<number, string> | null>(null);\n\tconst currentValueTime = value?.getTime() ?? null;\n\n\tconst syncDirtyValues = useEffectEvent((values: Map<number, string> | null) => setDirtyValues(values));\n\n\tuseEffect(() => {\n\t\tsyncDirtyValues(null);\n\t}, [currentValueTime, mode]);\n\n\tconst segmentValues = dirtyValues ?? committedValues;\n\tconst refsMap = useRef<Map<number, HTMLInputElement>>(new Map());\n\tconst blurTimeout = useRef<number>(0);\n\n\t/**\n\t * Пытается собрать и отдать наружу новое значение поля.\n\t */\n\tconst tryCommit = useCallback(\n\t\t(updatedValues: Map<number, string>) => {\n\t\t\tif (areAllDateSegmentsEmpty(segments, updatedValues)) {\n\t\t\t\tonChange(null);\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst nextDate = indexedSegmentsToDate(segments, updatedValues, {\n\t\t\t\tdefaultDate: mode === \"time\" ? (normalizeDateTimeValue(value, \"time\") ?? createTimeOnlyBaseDate()) : undefined\n\t\t\t});\n\t\t\tif (!nextDate) return null;\n\t\t\tif (!isDateTimeWithinRange(nextDate, minDate, maxDate, mode)) return null;\n\n\t\t\tonChange(nextDate);\n\t\t\treturn nextDate;\n\t\t},\n\t\t[maxDate, minDate, mode, onChange, segments, value]\n\t);\n\n\t/**\n\t * Фокусирует конкретный редактируемый сегмент.\n\t */\n\tconst focusSegment = useCallback((index: number, selectAll = true) => {\n\t\tconst element = refsMap.current.get(index);\n\t\tif (!element) return;\n\n\t\telement.focus();\n\t\tif (selectAll) {\n\t\t\trequestAnimationFrame(() => element.select());\n\t\t}\n\t}, []);\n\n\t/**\n\t * Возвращает индекс следующего редактируемого сегмента.\n\t */\n\tconst getNextEditable = useCallback(\n\t\t(currentIndex: number): number | null => {\n\t\t\tconst position = editableIndices.indexOf(currentIndex);\n\t\t\treturn position < editableIndices.length - 1 ? editableIndices[position + 1] : null;\n\t\t},\n\t\t[editableIndices]\n\t);\n\n\t/**\n\t * Возвращает индекс предыдущего редактируемого сегмента.\n\t */\n\tconst getPreviousEditable = useCallback(\n\t\t(currentIndex: number): number | null => {\n\t\t\tconst position = editableIndices.indexOf(currentIndex);\n\t\t\treturn position > 0 ? editableIndices[position - 1] : null;\n\t\t},\n\t\t[editableIndices]\n\t);\n\n\t/**\n\t * Дополняет неполный сегмент ведущими нулями.\n\t */\n\tconst padValue = useCallback((valueToPad: string, segment: EditableDateSegment) => valueToPad.padStart(segment.length, \"0\"), []);\n\n\t/**\n\t * Регистрирует DOM-ссылку сегмента по индексу.\n\t */\n\tconst registerRef = useCallback(\n\t\t(index: number) => (element: HTMLInputElement | null) => {\n\t\t\tif (element) {\n\t\t\t\trefsMap.current.set(index, element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trefsMap.current.delete(index);\n\t\t},\n\t\t[]\n\t);\n\n\t/**\n\t * Обрабатывает печать внутри отдельного сегмента.\n\t */\n\tconst handleInput = useCallback(\n\t\t(index: number) => (event: ChangeEvent<HTMLInputElement>) => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst segment = segments[index];\n\t\t\tif (segment.kind !== \"editable\") return;\n\n\t\t\tconst rawValue = event.target.value.replace(/\\D/g, \"\");\n\t\t\tconst clampedValue = rawValue.slice(0, segment.length);\n\t\t\tconst updatedValues = new Map(segmentValues);\n\t\t\tupdatedValues.set(index, clampedValue);\n\t\t\tsetDirtyValues(updatedValues);\n\t\t\tonClearError?.();\n\n\t\t\tif (clampedValue.length === segment.length) {\n\t\t\t\tconst nextIndex = getNextEditable(index);\n\t\t\t\tif (nextIndex !== null) {\n\t\t\t\t\trequestAnimationFrame(() => focusSegment(nextIndex));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttryCommit(updatedValues);\n\t\t},\n\t\t[disabled, focusSegment, getNextEditable, onClearError, segmentValues, segments, tryCommit]\n\t);\n\n\t/**\n\t * Обрабатывает клавиатурную навигацию и шаговые изменения сегментов.\n\t */\n\tconst handleKeyDown = useCallback(\n\t\t(index: number) => (event: KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst segment = segments[index];\n\t\t\tif (segment.kind !== \"editable\") return;\n\n\t\t\tconst currentValue = segmentValues.get(index) ?? \"\";\n\t\t\tconst element = event.currentTarget;\n\n\t\t\tswitch (event.key) {\n\t\t\t\tcase \"ArrowRight\": {\n\t\t\t\t\tif (element.selectionStart === currentValue.length || currentValue === \"\") {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tconst nextIndex = getNextEditable(index);\n\t\t\t\t\t\tif (nextIndex !== null) focusSegment(nextIndex);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowLeft\": {\n\t\t\t\t\tif (element.selectionStart === 0 || currentValue === \"\") {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tconst previousIndex = getPreviousEditable(index);\n\t\t\t\t\t\tif (previousIndex !== null) focusSegment(previousIndex);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowUp\": {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tlet numericValue = currentValue === \"\" ? segment.min : Number.parseInt(currentValue, 10) + 1;\n\t\t\t\t\tif (numericValue > segment.max) numericValue = segment.min;\n\n\t\t\t\t\tconst updatedValues = new Map(segmentValues);\n\t\t\t\t\tupdatedValues.set(index, padValue(String(numericValue), segment));\n\t\t\t\t\tsetDirtyValues(updatedValues);\n\t\t\t\t\ttryCommit(updatedValues);\n\t\t\t\t\trequestAnimationFrame(() => element.select());\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowDown\": {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tlet numericValue = currentValue === \"\" ? segment.max : Number.parseInt(currentValue, 10) - 1;\n\t\t\t\t\tif (numericValue < segment.min) numericValue = segment.max;\n\n\t\t\t\t\tconst updatedValues = new Map(segmentValues);\n\t\t\t\t\tupdatedValues.set(index, padValue(String(numericValue), segment));\n\t\t\t\t\tsetDirtyValues(updatedValues);\n\t\t\t\t\ttryCommit(updatedValues);\n\t\t\t\t\trequestAnimationFrame(() => element.select());\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"Backspace\": {\n\t\t\t\t\tif (currentValue === \"\") {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tconst previousIndex = getPreviousEditable(index);\n\t\t\t\t\t\tif (previousIndex !== null) focusSegment(previousIndex);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"Delete\": {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tconst updatedValues = new Map(segmentValues);\n\t\t\t\t\tupdatedValues.set(index, \"\");\n\t\t\t\t\tsetDirtyValues(updatedValues);\n\t\t\t\t\ttryCommit(updatedValues);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[disabled, focusSegment, getNextEditable, getPreviousEditable, padValue, segmentValues, segments, tryCommit]\n\t);\n\n\t/**\n\t * Выделяет содержимое сегмента при фокусе.\n\t */\n\tconst handleFocus = useCallback(\n\t\t() => (event: FocusEvent<HTMLInputElement>) => {\n\t\t\tevent.target.select();\n\t\t},\n\t\t[]\n\t);\n\n\t/**\n\t * Сбрасывает таймер blur, когда контейнер получает фокус.\n\t */\n\tconst handleContainerFocus = useCallback(() => {\n\t\tclearTimeout(blurTimeout.current);\n\t}, []);\n\n\t/**\n\t * На blur оставляет только committed-значение либо полностью пустое состояние.\n\t */\n\tconst handleContainerBlur = useCallback(() => {\n\t\tconst currentValues = new Map(segmentValues);\n\n\t\tblurTimeout.current = window.setTimeout(() => {\n\t\t\tif (areAllDateSegmentsEmpty(segments, currentValues)) {\n\t\t\t\tonChange(null);\n\t\t\t\tsetDirtyValues(currentValues);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextDate = indexedSegmentsToDate(segments, currentValues, {\n\t\t\t\tdefaultDate: mode === \"time\" ? (normalizeDateTimeValue(value, \"time\") ?? createTimeOnlyBaseDate()) : undefined\n\t\t\t});\n\t\t\tif (!nextDate || !isDateTimeWithinRange(nextDate, minDate, maxDate, mode)) {\n\t\t\t\tsetDirtyValues(null);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetDirtyValues(currentValues);\n\t\t}, 0);\n\t}, [maxDate, minDate, mode, onChange, segmentValues, segments, value]);\n\n\t/**\n\t * Фокусирует первый пустой сегмент либо последний редактируемый.\n\t */\n\tconst focusFirstEmpty = useCallback(() => {\n\t\tconst firstEmpty = editableIndices.find((index) => !(segmentValues.get(index) ?? \"\"));\n\t\tconst targetIndex = firstEmpty ?? editableIndices[editableIndices.length - 1];\n\t\tif (targetIndex !== undefined) {\n\t\t\tfocusSegment(targetIndex);\n\t\t}\n\t}, [editableIndices, focusSegment, segmentValues]);\n\n\treturn {\n\t\tsegments,\n\t\tsegmentValues,\n\t\tregisterRef,\n\t\thandleInput,\n\t\thandleKeyDown,\n\t\thandleFocus,\n\t\thandleContainerFocus,\n\t\thandleContainerBlur,\n\t\tfocusFirstEmpty\n\t};\n}\n","@use \"@/styles/mixins\" as *;\n\n.segmentInput {\n\tborder: none;\n\tborder-radius: var(--radius-xs);\n\tbackground: transparent;\n\toutline: none;\n\tpadding: 0;\n\tmargin: 0;\n\tfont-family: var(--font-family-mono);\n\tcolor: inherit;\n\ttext-align: center;\n\tcaret-color: var(--content-0);\n\tfont-variant-numeric: tabular-nums;\n\n\t&::placeholder {\n\t\tcolor: var(--content-2);\n\t\t// font-size: var(--font-size-sm);\n\t}\n\n\t&::selection {\n\t\tbackground-color: var(--focus-ring);\n\t\tcolor: var(--surface-0);\n\t}\n\n\t&:disabled {\n\t\topacity: 0.25;\n\t}\n}\n\n.separator {\n\tuser-select: none;\n\tcolor: var(--content-1);\n\tflex-shrink: 0;\n\n\t&[data-disabled] {\n\t\topacity: 0.25;\n\t}\n}\n\n.calendarButton {\n\t&:hover {\n\t\tcolor: var(--focus-ring);\n\t}\n}\n\n.popoverContent {\n\tdisplay: grid;\n\tgap: var(--space-md);\n}\n\n.bottom {\n\tgrid-template-columns: minmax(0, 1fr);\n}\n\n.right {\n\tgrid-template-columns: auto calc(9em + var(--width-add));\n\talign-items: stretch;\n}\n\n.calendarPane {\n\tmin-width: 0;\n}\n\n.timePanelPane {\n\tmin-width: 0;\n}\n\n.timeOnlyPopoverContent {\n\tmin-width: calc(9em + var(--width-add));\n}\n\n.timePanelPaneBottom {\n\tpadding-top: var(--space-md);\n\tborder-top: var(--border);\n}\n\n.timePanelPaneRight {\n\tpadding-left: var(--space-md);\n\tborder-left: var(--border);\n}\n",".timePanel {\n\theight: 100%;\n}\n\n.hint {\n\tfont-size: var(--font-size-xs);\n\tcolor: var(--content-1);\n}\n\n.fields {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(2, minmax(0, 1fr));\n\tgap: var(--space-sm);\n\tmin-height: 10em;\n\theight: 100%;\n}\n\n.field {\n\tdisplay: grid;\n\tgrid-template-rows: auto 1fr;\n\tgap: var(--space-xs);\n\tmin-height: 0;\n}\n\n.label {\n\t// font-size: var(--font-size-sm);\n\tcolor: var(--content-1);\n}\n\n.wheel {\n\tmin-height: 10em;\n}\n","import { WheelPicker } from \"../../wheel-picker\";\nimport { buildTimePanelState } from \"../lib/timePanelState\";\n\nimport styles from \"./TimePanel.module.scss\";\n\nimport type { DateTimeInputMode } from \"../lib\";\n\n/**\n * Пропсы панели выбора времени.\n */\nexport interface TimePanelProps {\n\tvalue: Date;\n\tdisabled?: boolean;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\tmode?: DateTimeInputMode;\n\tonChange: (hours: number, minutes: number) => void;\n}\n\n/**\n * Переиспользуемая панель выбора времени поверх internal wheel-picker.\n */\nexport function TimePanel({ value, disabled, minDate, maxDate, mode = \"date-time\", onChange }: TimePanelProps) {\n\tconst state = buildTimePanelState(value, minDate, maxDate, mode);\n\n\t/**\n\t * Форматирует двузначное значение времени.\n\t */\n\tconst formatValue = (timePart: number) => String(timePart).padStart(2, \"0\");\n\n\tif (state.disabled) {\n\t\treturn (\n\t\t\t<div className={styles.timePanel}>\n\t\t\t\t<p className={styles.hint}>Для выбранного дня нет доступного времени в заданном диапазоне.</p>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={styles.timePanel}>\n\t\t\t<div className={styles.fields}>\n\t\t\t\t<label className={styles.field}>\n\t\t\t\t\t<span className={styles.label}>Часы</span>\n\t\t\t\t\t<WheelPicker\n\t\t\t\t\t\tclassName={styles.wheel}\n\t\t\t\t\t\titems={state.hours}\n\t\t\t\t\t\tvalue={state.selectedHour}\n\t\t\t\t\t\tonChange={(hours) => onChange(hours, state.selectedMinute)}\n\t\t\t\t\t\tariaLabel=\"Выбор часов\"\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tformatItem={formatValue}\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\n\t\t\t\t<label className={styles.field}>\n\t\t\t\t\t<span className={styles.label}>Минуты</span>\n\t\t\t\t\t<WheelPicker\n\t\t\t\t\t\tclassName={styles.wheel}\n\t\t\t\t\t\titems={state.minutes}\n\t\t\t\t\t\tvalue={state.selectedMinute}\n\t\t\t\t\t\tonChange={(minutes) => onChange(state.selectedHour, minutes)}\n\t\t\t\t\t\tariaLabel=\"Выбор минут\"\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tformatItem={formatValue}\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import { JSX, useEffect, useEffectEvent, useMemo, useState } from \"react\";\n\nimport { getStartOfDay, isDateRangeTuple, NullableDateRange } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CalendarDaysIcon, Clock3Icon } from \"lucide-react\";\n\nimport { Button } from \"../../button\";\nimport { CalendarView } from \"../../date-input/ui\";\nimport { InputControl, InputUI, useInputFieldIds } from \"../../input\";\nimport { Popover } from \"../../popover\";\nimport { UiBaseProps } from \"../../types\";\nimport uiStyles from \"../../ui.module.scss\";\nimport {\n\tclampTimeForDay,\n\tisDateTimeWithinRange,\n\tmergeDateWithTime,\n\tmergeTimeIntoDate,\n\tnormalizeDateTimeValue,\n\tresolvePickerBaseDate\n} from \"../lib\";\nimport { useDateTimeSegments } from \"../model\";\n\nimport styles from \"./SingleDateTimeInput.module.scss\";\nimport { TimePanel } from \"./TimePanel\";\n\nimport type { DateTimeInputMode } from \"../lib\";\n\ninterface BaseSingleDateTimeInputProps {\n\terror?: string;\n\tonClearError?: () => void;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\ttimePanelPlacement?: \"bottom\" | \"right\";\n\tmode?: DateTimeInputMode;\n}\n\nexport interface SingleDateTimeInputProps extends BaseSingleDateTimeInputProps, UiBaseProps<Date | null> {}\n\n/**\n * Поле выбора даты-времени со строгой сегментной маской и popover-пикером.\n */\nexport function SingleDateTimeInput({\n\tvalue,\n\tonChange,\n\tlabel,\n\tdescription,\n\tplaceholder,\n\tdisabled,\n\tsize,\n\terror,\n\tonClearError,\n\tminDate,\n\tmaxDate,\n\ttimePanelPlacement = \"right\",\n\tmode = \"date-time\"\n}: SingleDateTimeInputProps): JSX.Element {\n\tconst normalizedValue = normalizeDateTimeValue(value, mode);\n\tconst normalizedValueTime = normalizedValue?.getTime() ?? null;\n\n\tconst fallbackPickerDate = useMemo(() => getStartOfDay(new Date()), []);\n\n\tconst [open, setOpen] = useState(false);\n\tconst [draftValue, setDraftValue] = useState<Date | null>(normalizedValue ?? null);\n\tconst [calendarView, setCalendarView] = useState<\"day\" | \"month\" | \"year\">(\"day\");\n\tconst [pickerDate, setPickerDate] = useState<Date>(() => resolvePickerBaseDate(normalizedValue, fallbackPickerDate, mode));\n\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\tconst syncDraftDate = useEffectEvent((date: Date | null) => setDraftValue(date));\n\tconst syncPickerDate = useEffectEvent((date: Date) => setPickerDate(date));\n\n\tuseEffect(() => {\n\t\tif (!open) {\n\t\t\tsyncDraftDate(normalizedValue ?? null);\n\t\t}\n\n\t\tif (normalizedValue) {\n\t\t\tsyncPickerDate(normalizedValue);\n\t\t}\n\t}, [normalizedValue, normalizedValueTime, open]);\n\n\tuseEffect(() => {\n\t\tif (!normalizedValue) return;\n\t\tsyncPickerDate(normalizedValue);\n\t}, [normalizedValue, normalizedValueTime]);\n\n\tconst {\n\t\tsegments,\n\t\tsegmentValues,\n\t\tregisterRef,\n\t\thandleInput,\n\t\thandleKeyDown,\n\t\thandleFocus,\n\t\thandleContainerFocus,\n\t\thandleContainerBlur,\n\t\tfocusFirstEmpty\n\t} = useDateTimeSegments({\n\t\tvalue: normalizedValue,\n\t\tonChange,\n\t\tonClearError,\n\t\tdisabled,\n\t\tminDate,\n\t\tmaxDate,\n\t\tmode\n\t});\n\n\t/**\n\t * Выбирает дату в календаре и сохраняет текущее время.\n\t */\n\tconst handleCalendarSelect = (nextDate: Date | NullableDateRange) => {\n\t\tif (mode === \"time\" || isDateRangeTuple(nextDate) || disabled) return;\n\n\t\tconst baseValue = draftValue ?? normalizedValue ?? pickerDate;\n\t\tconst mergedDate = mergeDateWithTime(nextDate, baseValue);\n\t\tconst { hours, minutes } = clampTimeForDay(nextDate, mergedDate.getHours(), mergedDate.getMinutes(), minDate, maxDate, mode);\n\t\tconst nextValue = mergeTimeIntoDate(nextDate, hours, minutes);\n\n\t\tif (!isDateTimeWithinRange(nextValue, minDate, maxDate, mode)) return;\n\n\t\tonClearError?.();\n\t\tsetDraftValue(nextValue);\n\t\tsetPickerDate(nextValue);\n\t};\n\n\t/**\n\t * Выбирает время для текущего рабочего дня picker-а.\n\t */\n\tconst handleTimeChange = (hours: number, minutes: number) => {\n\t\tif (disabled) return;\n\n\t\tconst baseDate = draftValue ?? normalizedValue ?? pickerDate;\n\t\tconst clampedTime = clampTimeForDay(baseDate, hours, minutes, minDate, maxDate, mode);\n\t\tconst nextValue = mergeTimeIntoDate(baseDate, clampedTime.hours, clampedTime.minutes, mode);\n\n\t\tif (!isDateTimeWithinRange(nextValue, minDate, maxDate, mode)) return;\n\n\t\tonClearError?.();\n\t\tsetDraftValue(nextValue);\n\t\tsetPickerDate(nextValue);\n\t};\n\n\tconst handleOpenChange = (nextOpen: boolean) => {\n\t\tif (nextOpen) {\n\t\t\tsetDraftValue(normalizedValue ?? null);\n\t\t\tsetPickerDate(resolvePickerBaseDate(normalizedValue, fallbackPickerDate, mode));\n\t\t}\n\n\t\tsetOpen(nextOpen);\n\t};\n\n\tconst handlePopoverClose = () => {\n\t\tconst prevTime = normalizedValue?.getTime() ?? null;\n\t\tconst draftTime = draftValue?.getTime() ?? null;\n\n\t\tif (prevTime !== draftTime) {\n\t\t\tonChange(draftValue);\n\t\t}\n\t};\n\n\tconst panelPlacementClass = timePanelPlacement === \"right\" ? styles.timePanelPaneRight : styles.timePanelPaneBottom;\n\tconst buttonAriaLabel = mode === \"time\" ? \"Открыть выбор времени\" : \"Открыть календарь даты и времени\";\n\tconst inputPlaceholder = placeholder ?? (mode === \"time\" ? \"чч:мм\" : \"дд.мм.гггг чч:мм\");\n\tconst pickerValue = draftValue ?? normalizedValue ?? pickerDate;\n\n\treturn (\n\t\t<Popover open={open} onOpenChange={handleOpenChange}>\n\t\t\t<InputUI\n\t\t\t\tlabel={label}\n\t\t\t\tdescription={description}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tsize={size}\n\t\t\t\terror={error}\n\t\t\t\tcontrolId={controlId}\n\t\t\t\tlabelId={labelId}\n\t\t\t\tdescriptionId={descriptionId}\n\t\t\t\terrorId={errorId}>\n\t\t\t\t<InputControl\n\t\t\t\t\tendAdornmentWidth=\"var(--control-height)\"\n\t\t\t\t\tendAdornment={\n\t\t\t\t\t\t<Popover.Trigger>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"transparent\"\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\tclassName={styles.calendarButton}\n\t\t\t\t\t\t\t\ticon={mode === \"time\" ? <Clock3Icon /> : <CalendarDaysIcon />}\n\t\t\t\t\t\t\t\taria-label={buttonAriaLabel}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover.Trigger>\n\t\t\t\t\t}>\n\t\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControlFake, controlClassName)}\n\t\t\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\t\t\tdata-invalid={error ? \"\" : undefined}\n\t\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\t\t\taria-placeholder={inputPlaceholder}\n\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\tonFocus={handleContainerFocus}\n\t\t\t\t\t\t\tonBlur={handleContainerBlur}\n\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\tif (event.target === event.currentTarget) {\n\t\t\t\t\t\t\t\t\tfocusFirstEmpty();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t{segments.map((segment, index) => {\n\t\t\t\t\t\t\t\tif (segment.kind === \"literal\") {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<span key={index} className={styles.separator} data-disabled={disabled || undefined}>\n\t\t\t\t\t\t\t\t\t\t\t{segment.text}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\t\tref={registerRef(index)}\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tinputMode=\"numeric\"\n\t\t\t\t\t\t\t\t\t\tclassName={styles.segmentInput}\n\t\t\t\t\t\t\t\t\t\tstyle={{ width: `${segment.length + 0.5}ch` }}\n\t\t\t\t\t\t\t\t\t\tvalue={segmentValues.get(index) ?? \"\"}\n\t\t\t\t\t\t\t\t\t\tplaceholder={segment.placeholder}\n\t\t\t\t\t\t\t\t\t\tmaxLength={segment.length}\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\taria-label={segment.ariaLabel}\n\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\tonChange={handleInput(index)}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleKeyDown(index)}\n\t\t\t\t\t\t\t\t\t\tonFocus={handleFocus()}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</InputControl>\n\t\t\t</InputUI>\n\n\t\t\t<Popover.Content background=\"primary\" onClose={handlePopoverClose}>\n\t\t\t\t{mode === \"time\" ? (\n\t\t\t\t\t<div className={styles.timeOnlyPopoverContent}>\n\t\t\t\t\t\t<TimePanel\n\t\t\t\t\t\t\tvalue={pickerValue}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\tonChange={handleTimeChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div className={cn(styles.popoverContent, styles[timePanelPlacement])}>\n\t\t\t\t\t\t<div className={styles.calendarPane}>\n\t\t\t\t\t\t\t<CalendarView\n\t\t\t\t\t\t\t\tview={calendarView}\n\t\t\t\t\t\t\t\tdatePickerLevel=\"day\"\n\t\t\t\t\t\t\t\tselectionMode=\"day\"\n\t\t\t\t\t\t\t\tonViewChange={setCalendarView}\n\t\t\t\t\t\t\t\tvalue={pickerValue}\n\t\t\t\t\t\t\t\tonChange={handleCalendarSelect}\n\t\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\t\tcurrentDate={pickerDate}\n\t\t\t\t\t\t\t\tonCurrentDateChange={setPickerDate}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className={cn(styles.timePanelPane, panelPlacementClass)}>\n\t\t\t\t\t\t\t<TimePanel\n\t\t\t\t\t\t\t\tvalue={pickerValue}\n\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\tminDate={minDate}\n\t\t\t\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\tonChange={handleTimeChange}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Popover.Content>\n\t\t</Popover>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,IAAa,IAAyB,oBACzB,IAAoB,SAI3B,IAAsB,MACtB,IAAuB,GACvB,IAAqB;AACL,EAAqB,CAAiB;AAK5D,SAAgB,EAAuB,IAAQ,GAAG,IAAU,GAAS;CACpE,OAAO,EAAmB,GAAqB,GAAsB,GAAoB,GAAO,GAAS,GAAG,CAAC;AAC9G;AAKA,SAAgB,EAAuB,IAA0B,aAAqB;CACrF,OAAO,MAAS,SAAS,IAAoB;AAC9C;AAiBA,SAAgB,EAAuB,GAAgC,IAA0B,aAA0B;CAC1H,IAAI,KAAS,MAAM,OAAO;CAE1B,IAAM,IAAc,EAAU,CAAK;CAOnC,OANK,IAED,MAAS,SACL,EAAuB,EAAY,SAAS,GAAG,EAAY,WAAW,CAAC,IAGxE,IANkB;AAO1B;AAoCA,SAAgB,EAAsB,GAAa,GAAgB,GAAgB,IAA0B,aAAsB;CAClI,IAAM,IAAkB,EAAuB,GAAO,CAAI;CAC1D,IAAI,CAAC,GAAiB,OAAO;CAE7B,IAAI,MAAS,QAAQ;EACpB,IAAM,IAAe,EAAgB,SAAS,IAAI,KAAK,EAAgB,WAAW,GAC5E,IAAoB,IAAU,EAAuB,GAAS,MAAM,IAAI,MACxE,IAAoB,IAAU,EAAuB,GAAS,MAAM,IAAI;EAY9E,OALA,EALI,KAEC,IADe,EAAkB,SAAS,IAAI,KAAK,EAAkB,WAAW,KAIjF,KAEC,IADe,EAAkB,SAAS,IAAI,KAAK,EAAkB,WAAW;CAKtF;CAKA,OAFA,EADI,KAAW,IAAkB,KAC7B,KAAW,IAAkB;AAGlC;AAKA,SAAgB,EAAkB,GAAgB,GAAgC;CACjF,IAAM,IAAS,EAAuB,CAAU,GAC1C,IAAQ,GAAQ,SAAS,KAAK,GAC9B,IAAU,GAAQ,WAAW,KAAK;CAExC,OAAO,EAAmB,EAAS,YAAY,GAAG,EAAS,SAAS,GAAG,EAAS,QAAQ,GAAG,GAAO,GAAS,GAAG,CAAC;AAChH;AAKA,SAAgB,EAAkB,GAAgB,GAAe,GAAiB,IAA0B,aAAmB;CAK9H,OAJI,MAAS,SACL,EAAuB,GAAO,CAAO,IAGtC,EAAmB,EAAS,YAAY,GAAG,EAAS,SAAS,GAAG,EAAS,QAAQ,GAAG,GAAO,GAAS,GAAG,CAAC;AAChH;AAKA,SAAgB,EAAsB,GAAgC,GAAoB,IAA0B,aAAmB;CAKtI,OAJI,MAAS,SACL,EAAuB,GAAO,MAAM,KAAK,EAAuB,IAGjE,EAAuB,GAAO,CAAI,KAAK;AAC/C;AAKA,SAAgB,EACf,GACA,GACA,GACA,IAA0B,aAOzB;CACD,IAAM,IAAgB,EAAuB,GAAK,CAAI,KAAK,GACrD,IAAoB,IAAU,EAAuB,GAAS,CAAI,IAAI,MACtE,IAAoB,IAAU,EAAuB,GAAS,CAAI,IAAI,MACtE,IACL,CAAC,CAAC,KACF,EAAc,YAAY,MAAM,EAAkB,YAAY,KAC9D,EAAc,SAAS,MAAM,EAAkB,SAAS,KACxD,EAAc,QAAQ,MAAM,EAAkB,QAAQ,GACjD,IACL,CAAC,CAAC,KACF,EAAc,YAAY,MAAM,EAAkB,YAAY,KAC9D,EAAc,SAAS,MAAM,EAAkB,SAAS,KACxD,EAAc,QAAQ,MAAM,EAAkB,QAAQ,GAEjD,IAAU,IAAe,EAAmB,SAAS,IAAI,GACzD,IAAU,IAAe,EAAmB,SAAS,IAAI,IACzD,IAAsB,KAAgB,MAAY,IAAU,EAAmB,WAAW,IAAI,GAC9F,IAAsB,KAAgB,MAAY,IAAU,EAAmB,WAAW,IAAI,IAC9F,IAAW,IAAU,KAAY,MAAY,KAAW,IAAsB;CAEpF,OAAO;EACN;EACA;EACA;EACA,kBAAkB,MACb,IAAiB,IACd,KAAgB,MAAS,IAAU,EAAmB,WAAW,IAAI;EAE7E,kBAAkB,MACb,IAAiB,KACd,KAAgB,MAAS,IAAU,EAAmB,WAAW,IAAI;CAE9E;AACD;AAKA,SAAgB,EACf,GACA,GACA,GACA,GACA,GACA,IAA0B,aACW;CACrC,IAAM,IAAQ,EAAmB,GAAK,GAAS,GAAS,CAAI;CAC5D,IAAI,EAAM,UACT,OAAO;EAAE,OAAO;EAAG,SAAS;CAAE;CAG/B,IAAM,IAAc,KAAK,IAAI,KAAK,IAAI,GAAO,EAAM,OAAO,GAAG,EAAM,OAAO,GACpE,IAAY,EAAM,gBAAgB,CAAW,GAC7C,IAAY,EAAM,gBAAgB,CAAW;CAGnD,OAAO;EACN,OAAO;EACP,SAJqB,KAAK,IAAI,KAAK,IAAI,GAAS,CAAS,GAAG,CAInD;CACV;AACD;;;AC1NA,SAAgB,EAAoB,GAAa,GAAgB,GAAgB,IAA0B,aAA6B;CACvI,IAAM,IAAY,EAAmB,GAAO,GAAS,GAAS,CAAI,GAC5D,IAAe,EAAM,SAAS,GAC9B,IAAiB,EAAM,WAAW,GAClC,IAAY,EAAU,gBAAgB,CAAY,GAClD,IAAY,EAAU,gBAAgB,CAAY;CAYxD,OAVI,EAAU,WACN;EACN,UAAU;EACV;EACA;EACA,OAAO,CAAC;EACR,SAAS,CAAC;CACX,IAGM;EACN,UAAU;EACV;EACA;EACA,OAAO,MAAM,KAAK,EAAE,QAAQ,EAAU,UAAU,EAAU,UAAU,EAAE,IAAI,GAAG,MAAU,EAAU,UAAU,CAAK;EAChH,SAAS,MAAM,KAAK,EAAE,QAAQ,IAAY,IAAY,EAAE,IAAI,GAAG,MAAU,IAAY,CAAK;CAC3F;AACD;;;ACjBA,SAAS,EAAuB,GAAiD;CAChF,IAAM,IAAoB,CAAC;CAQ3B,OANA,EAAS,SAAS,GAAS,MAAU;EACpC,AAAI,EAAQ,SAAS,cACpB,EAAQ,KAAK,CAAK;CAEpB,CAAC,GAEM;AACR;AAKA,SAAgB,GAAoB,EACnC,UACA,aACA,iBACA,aACA,YACA,YACA,UAAO,eACuB;CAC9B,IAAM,IAAc,QAAc,EAAuB,CAAI,GAAG,CAAC,CAAI,CAAC,GAChE,IAAW,QAAc,EAAqB,CAAW,GAAG,CAAC,CAAW,CAAC,GACzE,IAAkB,QAAc,EAAuB,CAAQ,GAAG,CAAC,CAAQ,CAAC,GAC5E,IAAkB,QAAc,EAA2B,KAAS,MAAM,CAAQ,GAAG,CAAC,GAAU,CAAK,CAAC,GACtG,CAAC,GAAa,KAAkB,EAAqC,IAAI,GACzE,IAAmB,GAAO,QAAQ,KAAK,MAEvC,IAAkB,GAAgB,MAAuC,EAAe,CAAM,CAAC;CAErG,QAAgB;EACf,EAAgB,IAAI;CACrB,GAAG,CAAC,GAAkB,CAAI,CAAC;CAE3B,IAAM,IAAgB,KAAe,GAC/B,IAAU,kBAAsC,IAAI,IAAI,CAAC,GACzD,IAAc,EAAe,CAAC,GAK9B,IAAY,GAChB,MAAuC;EACvC,IAAI,EAAwB,GAAU,CAAa,GAElD,OADA,EAAS,IAAI,GACN;EAGR,IAAM,IAAW,EAAsB,GAAU,GAAe,EAC/D,aAAa,MAAS,SAAU,EAAuB,GAAO,MAAM,KAAK,EAAuB,IAAK,KAAA,EACtG,CAAC;EAKD,OAJI,CAAC,KACD,CAAC,EAAsB,GAAU,GAAS,GAAS,CAAI,IAAU,QAErE,EAAS,CAAQ,GACV;CACR,GACA;EAAC;EAAS;EAAS;EAAM;EAAU;EAAU;CAAK,CACnD,GAKM,IAAe,GAAa,GAAe,IAAY,OAAS;EACrE,IAAM,IAAU,EAAQ,QAAQ,IAAI,CAAK;EACpC,MAEL,EAAQ,MAAM,GACV,KACH,4BAA4B,EAAQ,OAAO,CAAC;CAE9C,GAAG,CAAC,CAAC,GAKC,IAAkB,GACtB,MAAwC;EACxC,IAAM,IAAW,EAAgB,QAAQ,CAAY;EACrD,OAAO,IAAW,EAAgB,SAAS,IAAI,EAAgB,IAAW,KAAK;CAChF,GACA,CAAC,CAAe,CACjB,GAKM,IAAsB,GAC1B,MAAwC;EACxC,IAAM,IAAW,EAAgB,QAAQ,CAAY;EACrD,OAAO,IAAW,IAAI,EAAgB,IAAW,KAAK;CACvD,GACA,CAAC,CAAe,CACjB,GAKM,IAAW,GAAa,GAAoB,MAAiC,EAAW,SAAS,EAAQ,QAAQ,GAAG,GAAG,CAAC,CAAC;CA8K/H,OAAO;EACN;EACA;EACA,aA5KmB,GAClB,OAAmB,MAAqC;GACxD,IAAI,GAAS;IACZ,EAAQ,QAAQ,IAAI,GAAO,CAAO;IAClC;GACD;GAEA,EAAQ,QAAQ,OAAO,CAAK;EAC7B,GACA,CAAC,CAmKD;EACA,aA9JmB,GAClB,OAAmB,MAAyC;GAC5D,IAAI,GAAU;GAEd,IAAM,IAAU,EAAS;GACzB,IAAI,EAAQ,SAAS,YAAY;GAGjC,IAAM,IADW,EAAM,OAAO,MAAM,QAAQ,OAAO,EAC9B,CAAA,CAAS,MAAM,GAAG,EAAQ,MAAM,GAC/C,IAAgB,IAAI,IAAI,CAAa;GAK3C,IAJA,EAAc,IAAI,GAAO,CAAY,GACrC,EAAe,CAAa,GAC5B,IAAe,GAEX,EAAa,WAAW,EAAQ,QAAQ;IAC3C,IAAM,IAAY,EAAgB,CAAK;IACvC,AAAI,MAAc,QACjB,4BAA4B,EAAa,CAAS,CAAC;GAErD;GAEA,EAAU,CAAa;EACxB,GACA;GAAC;GAAU;GAAc;GAAiB;GAAc;GAAe;GAAU;EAAS,CAuI1F;EACA,eAlIqB,GACpB,OAAmB,MAA2C;GAC9D,IAAI,GAAU;GAEd,IAAM,IAAU,EAAS;GACzB,IAAI,EAAQ,SAAS,YAAY;GAEjC,IAAM,IAAe,EAAc,IAAI,CAAK,KAAK,IAC3C,IAAU,EAAM;GAEtB,QAAQ,EAAM,KAAd;IACC,KAAK;KACJ,IAAI,EAAQ,mBAAmB,EAAa,UAAU,MAAiB,IAAI;MAC1E,EAAM,eAAe;MACrB,IAAM,IAAY,EAAgB,CAAK;MACvC,AAAI,MAAc,QAAM,EAAa,CAAS;KAC/C;KACA;IAED,KAAK;KACJ,IAAI,EAAQ,mBAAmB,KAAK,MAAiB,IAAI;MACxD,EAAM,eAAe;MACrB,IAAM,IAAgB,EAAoB,CAAK;MAC/C,AAAI,MAAkB,QAAM,EAAa,CAAa;KACvD;KACA;IAED,KAAK,WAAW;KACf,EAAM,eAAe;KACrB,IAAI,IAAe,MAAiB,KAAK,EAAQ,MAAM,OAAO,SAAS,GAAc,EAAE,IAAI;KAC3F,AAAI,IAAe,EAAQ,QAAK,IAAe,EAAQ;KAEvD,IAAM,IAAgB,IAAI,IAAI,CAAa;KAI3C,AAHA,EAAc,IAAI,GAAO,EAAS,OAAO,CAAY,GAAG,CAAO,CAAC,GAChE,EAAe,CAAa,GAC5B,EAAU,CAAa,GACvB,4BAA4B,EAAQ,OAAO,CAAC;KAC5C;IACD;IACA,KAAK,aAAa;KACjB,EAAM,eAAe;KACrB,IAAI,IAAe,MAAiB,KAAK,EAAQ,MAAM,OAAO,SAAS,GAAc,EAAE,IAAI;KAC3F,AAAI,IAAe,EAAQ,QAAK,IAAe,EAAQ;KAEvD,IAAM,IAAgB,IAAI,IAAI,CAAa;KAI3C,AAHA,EAAc,IAAI,GAAO,EAAS,OAAO,CAAY,GAAG,CAAO,CAAC,GAChE,EAAe,CAAa,GAC5B,EAAU,CAAa,GACvB,4BAA4B,EAAQ,OAAO,CAAC;KAC5C;IACD;IACA,KAAK;KACJ,IAAI,MAAiB,IAAI;MACxB,EAAM,eAAe;MACrB,IAAM,IAAgB,EAAoB,CAAK;MAC/C,AAAI,MAAkB,QAAM,EAAa,CAAa;KACvD;KACA;IAED,KAAK,UAAU;KACd,EAAM,eAAe;KACrB,IAAM,IAAgB,IAAI,IAAI,CAAa;KAG3C,AAFA,EAAc,IAAI,GAAO,EAAE,GAC3B,EAAe,CAAa,GAC5B,EAAU,CAAa;KACvB;IACD;GACD;EACD,GACA;GAAC;GAAU;GAAc;GAAiB;GAAqB;GAAU;GAAe;GAAU;EAAS,CA6D3G;EACA,aAxDmB,SACZ,MAAwC;GAC9C,EAAM,OAAO,OAAO;EACrB,GACA,CAAC,CAoDD;EACA,sBA/C4B,QAAkB;GAC9C,aAAa,EAAY,OAAO;EACjC,GAAG,CAAC,CA6CH;EACA,qBAzC2B,QAAkB;GAC7C,IAAM,IAAgB,IAAI,IAAI,CAAa;GAE3C,EAAY,UAAU,OAAO,iBAAiB;IAC7C,IAAI,EAAwB,GAAU,CAAa,GAAG;KAErD,AADA,EAAS,IAAI,GACb,EAAe,CAAa;KAC5B;IACD;IAEA,IAAM,IAAW,EAAsB,GAAU,GAAe,EAC/D,aAAa,MAAS,SAAU,EAAuB,GAAO,MAAM,KAAK,EAAuB,IAAK,KAAA,EACtG,CAAC;IACD,IAAI,CAAC,KAAY,CAAC,EAAsB,GAAU,GAAS,GAAS,CAAI,GAAG;KAC1E,EAAe,IAAI;KACnB;IACD;IAEA,EAAe,CAAa;GAC7B,GAAG,CAAC;EACL,GAAG;GAAC;GAAS;GAAS;GAAM;GAAU;GAAe;GAAU;EAAK,CAqBnE;EACA,iBAjBuB,QAAkB;GAEzC,IAAM,IADa,EAAgB,MAAM,MAAU,EAAE,EAAc,IAAI,CAAK,KAAK,GAC7D,KAAc,EAAgB,EAAgB,SAAS;GAC3E,AAAI,MAAgB,KAAA,KACnB,EAAa,CAAW;EAE1B,GAAG;GAAC;GAAiB;GAAc;EAAa,CAW/C;CACD;AACD;;;;;;;;;;;;;;;;;;;;;;;AGjSA,SAAgB,EAAU,EAAE,UAAO,aAAU,YAAS,YAAS,UAAO,aAAa,eAA4B;CAC9G,IAAM,IAAQ,EAAoB,GAAO,GAAS,GAAS,CAAI,GAKzD,KAAe,MAAqB,OAAO,CAAQ,CAAC,CAAC,SAAS,GAAG,GAAG;CAU1E,OARI,EAAM,WAER,kBAAC,OAAD;EAAK,WAAW,EAAO;YACtB,kBAAC,KAAD;GAAG,WAAW,EAAO;aAAM;EAAkE,CAAA;CACzF,CAAA,IAKN,kBAAC,OAAD;EAAK,WAAW,EAAO;YACtB,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACC,kBAAC,SAAD;IAAO,WAAW,EAAO;cAAzB,CACC,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAO;IAAU,CAAA,GACzC,kBAAC,GAAD;KACC,WAAW,EAAO;KAClB,OAAO,EAAM;KACb,OAAO,EAAM;KACb,WAAW,MAAU,EAAS,GAAO,EAAM,cAAc;KACzD,WAAU;KACA;KACV,YAAY;IACZ,CAAA,CACK;OAEP,kBAAC,SAAD;IAAO,WAAW,EAAO;cAAzB,CACC,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAO;IAAY,CAAA,GAC3C,kBAAC,GAAD;KACC,WAAW,EAAO;KAClB,OAAO,EAAM;KACb,OAAO,EAAM;KACb,WAAW,MAAY,EAAS,EAAM,cAAc,CAAO;KAC3D,WAAU;KACA;KACV,YAAY;IACZ,CAAA,CACK;KACH;;CACD,CAAA;AAEP;;;AC5BA,SAAgB,EAAoB,EACnC,UACA,aACA,UACA,gBACA,gBACA,aACA,SACA,UACA,iBACA,YACA,YACA,wBAAqB,SACrB,UAAO,eACkC;CACzC,IAAM,IAAkB,EAAuB,GAAO,CAAI,GACpD,IAAsB,GAAiB,QAAQ,KAAK,MAEpD,IAAqB,QAAc,kBAAc,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,GAEhE,CAAC,GAAM,KAAW,EAAS,EAAK,GAChC,CAAC,GAAY,KAAiB,EAAsB,KAAmB,IAAI,GAC3E,CAAC,GAAc,MAAmB,EAAmC,KAAK,GAC1E,CAAC,GAAY,KAAiB,QAAqB,EAAsB,GAAiB,GAAoB,CAAI,CAAC,GAEnH,EAAE,cAAW,YAAS,mBAAe,aAAS,oBAAgB,EAAiB;EACpF,UAAU,KAAiC;EAC3C,gBAAgB,CAAC,CAAC;EAClB,UAAU,CAAC,CAAC;CACb,CAAC,GAEK,KAAgB,GAAgB,MAAsB,EAAc,CAAI,CAAC,GACzE,IAAiB,GAAgB,MAAe,EAAc,CAAI,CAAC;CAYzE,AAVA,QAAgB;EAKf,AAJK,KACJ,GAAc,KAAmB,IAAI,GAGlC,KACH,EAAe,CAAe;CAEhC,GAAG;EAAC;EAAiB;EAAqB;CAAI,CAAC,GAE/C,QAAgB;EACV,KACL,EAAe,CAAe;CAC/B,GAAG,CAAC,GAAiB,CAAmB,CAAC;CAEzC,IAAM,EACL,cACA,mBACA,iBACA,iBACA,mBACA,iBACA,0BACA,yBACA,wBACG,GAAoB;EACvB,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;CACD,CAAC,GAKK,MAAwB,MAAuC;EACpE,IAAI,MAAS,UAAU,EAAiB,CAAQ,KAAK,GAAU;EAG/D,IAAM,IAAa,EAAkB,GADnB,KAAc,KAAmB,CACK,GAClD,EAAE,UAAO,eAAY,EAAgB,GAAU,EAAW,SAAS,GAAG,EAAW,WAAW,GAAG,GAAS,GAAS,CAAI,GACrH,IAAY,EAAkB,GAAU,GAAO,CAAO;EAEvD,EAAsB,GAAW,GAAS,GAAS,CAAI,MAE5D,IAAe,GACf,EAAc,CAAS,GACvB,EAAc,CAAS;CACxB,GAKM,KAAoB,GAAe,MAAoB;EAC5D,IAAI,GAAU;EAEd,IAAM,IAAW,KAAc,KAAmB,GAC5C,IAAc,EAAgB,GAAU,GAAO,GAAS,GAAS,GAAS,CAAI,GAC9E,IAAY,EAAkB,GAAU,EAAY,OAAO,EAAY,SAAS,CAAI;EAErF,EAAsB,GAAW,GAAS,GAAS,CAAI,MAE5D,IAAe,GACf,EAAc,CAAS,GACvB,EAAc,CAAS;CACxB,GAEM,MAAoB,MAAsB;EAM/C,AALI,MACH,EAAc,KAAmB,IAAI,GACrC,EAAc,EAAsB,GAAiB,GAAoB,CAAI,CAAC,IAG/E,EAAQ,CAAQ;CACjB,GAEM,WAA2B;EAIhC,CAHiB,GAAiB,QAAQ,KAAK,WAC7B,GAAY,QAAQ,KAAK,SAG1C,EAAS,CAAU;CAErB,GAEM,KAAsB,MAAuB,UAAU,EAAO,qBAAqB,EAAO,qBAC1F,KAAkB,MAAS,SAAS,0BAA0B,oCAC9D,KAAmB,MAAgB,MAAS,SAAS,UAAU,qBAC/D,IAAc,KAAc,KAAmB;CAErD,OACC,kBAAC,GAAD;EAAe;EAAM,cAAc;YAAnC,CACC,kBAAC,GAAD;GACQ;GACM;GACH;GACJ;GACC;GACI;GACF;GACM;GACN;aACT,kBAAC,GAAD;IACC,mBAAkB;IAClB,cACC,kBAAC,EAAQ,SAAT,EAAA,UACC,kBAAC,GAAD;KACC,SAAQ;KACE;KACV,WAAW,EAAO;KAClB,MAAwB,EAAlB,MAAS,SAAU,IAAiB,GAAlB,CAAa,CAAuB;KAC5D,cAAY;IACZ,CAAA,EACe,CAAA;eAEhB,EAAE,0BACH,kBAAC,OAAD;KACC,IAAI;KACJ,WAAW,EAAG,EAAS,oBAAoB,CAAgB;KAC3D,iBAAe,KAAY,KAAA;KAC3B,gBAAc,IAAQ,KAAK,KAAA;KAC3B,MAAK;KACL,gBAAc,CAAC,CAAC,KAAS,KAAA;KACzB,oBAAkB;KAClB,mBAAiB;KACjB,oBAAkB;KAClB,SAAS;KACT,QAAQ;KACR,UAAU,MAAU;MACnB,AAAI,EAAM,WAAW,EAAM,iBAC1B,GAAgB;KAElB;eACC,GAAS,KAAK,GAAS,MACnB,EAAQ,SAAS,YAEnB,kBAAC,QAAD;MAAkB,WAAW,EAAO;MAAW,iBAAe,KAAY,KAAA;gBACxE,EAAQ;KACJ,GAFK,CAEL,IAKP,kBAAC,SAAD;MAEC,KAAK,GAAY,CAAK;MACtB,MAAK;MACL,WAAU;MACV,WAAW,EAAO;MAClB,OAAO,EAAE,OAAO,GAAG,EAAQ,SAAS,GAAI,IAAI;MAC5C,OAAO,GAAc,IAAI,CAAK,KAAK;MACnC,aAAa,EAAQ;MACrB,WAAW,EAAQ;MACT;MACV,cAAY,EAAQ;MACpB,cAAa;MACb,UAAU,GAAY,CAAK;MAC3B,WAAW,GAAc,CAAK;MAC9B,SAAS,GAAY;KACrB,GAfK,CAeL,CAEF;IACG,CAAA;GAEO,CAAA;EACN,CAAA,GAET,kBAAC,EAAQ,SAAT;GAAiB,YAAW;GAAU,SAAS;aAC7C,MAAS,SACT,kBAAC,OAAD;IAAK,WAAW,EAAO;cACtB,kBAAC,GAAD;KACC,OAAO;KACG;KACD;KACA;KACH;KACN,UAAU;IACV,CAAA;GACG,CAAA,IAEL,kBAAC,OAAD;IAAK,WAAW,EAAG,EAAO,gBAAgB,EAAO,EAAmB;cAApE,CACC,kBAAC,OAAD;KAAK,WAAW,EAAO;eACtB,kBAAC,GAAD;MACC,MAAM;MACN,iBAAgB;MAChB,eAAc;MACd,cAAc;MACd,OAAO;MACP,UAAU;MACD;MACA;MACT,aAAa;MACb,qBAAqB;KACrB,CAAA;IACG,CAAA,GAEL,kBAAC,OAAD;KAAK,WAAW,EAAG,EAAO,eAAe,EAAmB;eAC3D,kBAAC,GAAD;MACC,OAAO;MACG;MACD;MACA;MACH;MACN,UAAU;KACV,CAAA;IACG,CAAA,CACD;;EAEU,CAAA,CACT;;AAEX"}
@@ -1,2 +1,80 @@
1
- import { t as e } from "../chunks/Detail-DHDMsg8q.js";
2
- export { e as Detail };
1
+ import { createContext as e, useContext as t } from "react";
2
+ import { cn as n } from "@ryuzaki13/react-foundation-lib/utils";
3
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ var o = {
5
+ detailList: "DyKaN-",
6
+ none: "_2Cf0DN",
7
+ small: "igyZiV",
8
+ normal: "lFsl-5",
9
+ large: "zQlD1x",
10
+ detail: "a6oRih",
11
+ dt: "MYdzIV",
12
+ dd: "Pxw-eb",
13
+ textCenter: "Kz2K6S",
14
+ inline: "Pbwja7",
15
+ start: "_1DseTb",
16
+ center: "h3oORx",
17
+ end: "gB9Kr4",
18
+ noWrap: "V-PlLc"
19
+ }, s = e({});
20
+ function c({ label: e, value: c, withColon: l, required: u }) {
21
+ let { semantic: d, inline: f, noWrap: p, center: m, vertical: h = "center", withColon: g = !0 } = t(s), _ = n(o.detail, m && o.textCenter, f && o.inline, p && o.noWrap, o[h]), v = /* @__PURE__ */ a(r, { children: [
22
+ e,
23
+ u && /* @__PURE__ */ i("span", {
24
+ className: "statusError",
25
+ children: "*"
26
+ }),
27
+ (typeof l == "boolean" ? l : g) && ":"
28
+ ] });
29
+ switch (d) {
30
+ case "detail": return /* @__PURE__ */ a("div", {
31
+ className: _,
32
+ children: [/* @__PURE__ */ i("dt", {
33
+ className: o.dt,
34
+ children: v
35
+ }), /* @__PURE__ */ i("dd", {
36
+ className: o.dd,
37
+ children: c
38
+ })]
39
+ });
40
+ case "list": return /* @__PURE__ */ a("li", {
41
+ className: _,
42
+ children: [/* @__PURE__ */ i("div", {
43
+ className: o.dt,
44
+ children: v
45
+ }), /* @__PURE__ */ i("div", {
46
+ className: o.dd,
47
+ children: c
48
+ })]
49
+ });
50
+ default: return /* @__PURE__ */ a("div", {
51
+ className: _,
52
+ children: [/* @__PURE__ */ i("div", {
53
+ className: o.dt,
54
+ children: v
55
+ }), /* @__PURE__ */ i("div", {
56
+ className: o.dd,
57
+ children: c
58
+ })]
59
+ });
60
+ }
61
+ }
62
+ var l = ({ children: e, columnCount: t = 1, rowGap: r = "none", semantic: a = "list", className: c, ...l }) => {
63
+ let u = n(o.detailList, o[r], c), d = i(a === "detail" ? "dl" : "ul", {
64
+ className: u,
65
+ style: { columnCount: Math.min(5, Math.max(1, t)) },
66
+ children: e
67
+ });
68
+ return /* @__PURE__ */ i(s.Provider, {
69
+ value: {
70
+ ...l,
71
+ semantic: a
72
+ },
73
+ children: d
74
+ });
75
+ };
76
+ l.Item = c;
77
+ //#endregion
78
+ export { l as Detail };
79
+
80
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/detail/Detail.module.scss","../../src/detail/Detail.tsx"],"sourcesContent":[".detailList {\n\tcolumn-gap: var(--space-sm);\n\n\t&.none {\n\t\t--row-gap: 0;\n\t}\n\n\t&.small {\n\t\t--row-gap: var(--space-xs);\n\t}\n\n\t&.normal {\n\t\t--row-gap: var(--space-sm);\n\t}\n\n\t&.large {\n\t\t--row-gap: var(--space-md);\n\t}\n}\n\n.detail {\n\t.dt {\n\t\tfont-weight: 700;\n\t\tfont-variation-settings: \"wght\" 700;\n\t}\n\n\t.dd {\n\t\tfont-weight: 500;\n\t\tfont-variation-settings: \"wght\" 500;\n\t}\n\n\t&.textCenter {\n\t\ttext-align: center;\n\n\t\t.dt,\n\t\t.dd {\n\t\t\tflex: 1;\n\t\t}\n\t}\n\n\t&.inline {\n\t\tdisplay: flex;\n\n\t\t.dt {\n\t\t\ttext-align: right;\n\t\t\tpadding-right: var(--space-sm);\n\t\t}\n\n\t\t.dd {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t&.start {\n\t\t\talign-items: flex-start;\n\t\t}\n\t\t&.center {\n\t\t\talign-items: center;\n\t\t}\n\t\t&.end {\n\t\t\talign-items: flex-end;\n\t\t}\n\t}\n\n\t&.noWrap {\n\t\t.dt,\n\t\t.dd {\n\t\t\twhite-space: nowrap;\n\t\t\tword-break: normal;\n\t\t}\n\n\t\t.dd {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t}\n\n\t&:not(:last-child) {\n\t\tmargin-bottom: var(--row-gap);\n\t}\n}\n","import { createContext, CSSProperties, FC, ReactNode, useContext } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./Detail.module.scss\";\n\nexport type DetailType = \"detail\" | \"list\";\n\nexport interface DetailContextType {\n\tsemantic?: DetailType;\n\tinline?: boolean;\n\tcenter?: boolean;\n\tvertical?: \"start\" | \"center\" | \"end\";\n\tnoWrap?: boolean;\n\twithColon?: boolean;\n}\n\nconst DetailContext = createContext<DetailContextType>({});\n\nexport interface DetailItemProps {\n\tlabel: ReactNode;\n\tvalue: ReactNode;\n\twithColon?: boolean;\n\trequired?: boolean;\n}\n\nfunction Item({ label, value, withColon, required }: DetailItemProps) {\n\tconst { semantic, inline, noWrap, center, vertical = \"center\", withColon: withColonParent = true } = useContext(DetailContext);\n\tconst detailClass = cn(styles.detail, center && styles.textCenter, inline && styles.inline, noWrap && styles.noWrap, styles[vertical]);\n\n\tconst labelContent = (\n\t\t<>\n\t\t\t{label}\n\t\t\t{required && <span className=\"statusError\">*</span>}\n\t\t\t{(typeof withColon === \"boolean\" ? withColon : withColonParent) && \":\"}\n\t\t</>\n\t);\n\n\tswitch (semantic) {\n\t\tcase \"detail\":\n\t\t\treturn (\n\t\t\t\t<div className={detailClass}>\n\t\t\t\t\t<dt className={styles.dt}>{labelContent}</dt>\n\t\t\t\t\t<dd className={styles.dd}>{value}</dd>\n\t\t\t\t</div>\n\t\t\t);\n\n\t\tcase \"list\":\n\t\t\treturn (\n\t\t\t\t<li className={detailClass}>\n\t\t\t\t\t<div className={styles.dt}>{labelContent}</div>\n\t\t\t\t\t<div className={styles.dd}>{value}</div>\n\t\t\t\t</li>\n\t\t\t);\n\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div className={detailClass}>\n\t\t\t\t\t<div className={styles.dt}>{labelContent}</div>\n\t\t\t\t\t<div className={styles.dd}>{value}</div>\n\t\t\t\t</div>\n\t\t\t);\n\t}\n}\n\nexport interface DetailProps {\n\tcolumnCount?: number;\n\trowGap?: \"none\" | \"small\" | \"normal\" | \"large\";\n\tchildren: ReactNode;\n\tclassName?: string;\n\n\tsemantic?: DetailType;\n\tinline?: boolean;\n\tcenter?: boolean;\n\tvertical?: \"start\" | \"center\" | \"end\";\n\tnoWrap?: boolean;\n\twithColon?: boolean;\n}\n\nexport interface DetailComponent extends FC<DetailProps> {\n\tItem: FC<DetailItemProps>;\n}\n\n/**\n * Компонент для вывода пар «заголовок-значение» в одну или несколько колонок. Подходит для карточек сущностей, сводок и страниц просмотра.\n */\nexport const Detail: DetailComponent = ({ children, columnCount = 1, rowGap = \"none\", semantic = \"list\", className, ...itemProps }) => {\n\tconst classes = cn(styles.detailList, styles[rowGap], className);\n\tconst style = { columnCount: Math.min(5, Math.max(1, columnCount)) } as CSSProperties;\n\tconst content =\n\t\tsemantic === \"detail\" ? (\n\t\t\t<dl className={classes} style={style}>\n\t\t\t\t{children}\n\t\t\t</dl>\n\t\t) : (\n\t\t\t<ul className={classes} style={style}>\n\t\t\t\t{children}\n\t\t\t</ul>\n\t\t);\n\n\treturn <DetailContext.Provider value={{ ...itemProps, semantic }}>{content}</DetailContext.Provider>;\n};\n\nDetail.Item = Item;\n"],"mappings":";;;;;;;;;;;;;;;;;;GCiBM,IAAgB,EAAiC,CAAC,CAAC;AASzD,SAAS,EAAK,EAAE,UAAO,UAAO,cAAW,eAA6B;CACrE,IAAM,EAAE,aAAU,WAAQ,WAAQ,WAAQ,cAAW,UAAU,WAAW,IAAkB,OAAS,EAAW,CAAa,GACvH,IAAc,EAAG,EAAO,QAAQ,KAAU,EAAO,YAAY,KAAU,EAAO,QAAQ,KAAU,EAAO,QAAQ,EAAO,EAAS,GAE/H,IACL,kBAAA,GAAA,EAAA,UAAA;EACE;EACA,KAAY,kBAAC,QAAD;GAAM,WAAU;aAAc;EAAO,CAAA;GAChD,OAAO,KAAc,YAAY,IAAY,MAAoB;CAClE,EAAA,CAAA;CAGH,QAAQ,GAAR;EACC,KAAK,UACJ,OACC,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACC,kBAAC,MAAD;IAAI,WAAW,EAAO;cAAK;GAAiB,CAAA,GAC5C,kBAAC,MAAD;IAAI,WAAW,EAAO;cAAK;GAAU,CAAA,CACjC;;EAGP,KAAK,QACJ,OACC,kBAAC,MAAD;GAAI,WAAW;aAAf,CACC,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAK;GAAkB,CAAA,GAC9C,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAK;GAAW,CAAA,CACpC;;EAGN,SACC,OACC,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACC,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAK;GAAkB,CAAA,GAC9C,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAK;GAAW,CAAA,CACnC;;CAER;AACD;AAuBA,IAAa,KAA2B,EAAE,aAAU,iBAAc,GAAG,YAAS,QAAQ,cAAW,QAAQ,cAAW,GAAG,QAAgB;CACtI,IAAM,IAAU,EAAG,EAAO,YAAY,EAAO,IAAS,CAAS,GAEzD,IAEJ,EADD,MAAa,WACX,OAIA,MAJD;EAAI,WAAW;EAAgB,SAHjB,aAAa,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,CAAW,CAAC,EAGhC;EAC7B;CACE,CAIA;CAGN,OAAO,kBAAC,EAAc,UAAf;EAAwB,OAAO;GAAE,GAAG;GAAW;EAAS;YAAI;CAAgC,CAAA;AACpG;AAEA,EAAO,OAAO"}