@ryuzaki13/react-foundation-ui 1.4.2 → 1.4.4

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 (515) hide show
  1. package/dist/advanced-search/index.js +12 -11
  2. package/dist/advanced-search/index.js.map +1 -1
  3. package/dist/badge/index.js +1 -1
  4. package/dist/base-table/index.js +2 -2
  5. package/dist/button/index.js +1 -1
  6. package/dist/chunks/{CalendarView-KCkhCtK-.js → CalendarView-Z_XWk7aI.js} +8 -8
  7. package/dist/chunks/{CalendarView-KCkhCtK-.js.map → CalendarView-Z_XWk7aI.js.map} +1 -1
  8. package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js → ImageViewerRuntime-BMs3BBkV.js} +4 -4
  9. package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js.map → ImageViewerRuntime-BMs3BBkV.js.map} +1 -1
  10. package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js → TextEditorLexicalClient-CK8j3RA4.js} +16 -18
  11. package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js.map → TextEditorLexicalClient-CK8j3RA4.js.map} +1 -1
  12. package/dist/chunks/{badge-Cri0-kVK.js → badge-DwIUjH0a.js} +2 -2
  13. package/dist/chunks/{badge-Cri0-kVK.js.map → badge-DwIUjH0a.js.map} +1 -1
  14. package/dist/chunks/{base-table-D5IqsjQD.js → base-table-BFsVwXg3.js} +13 -12
  15. package/dist/chunks/{base-table-D5IqsjQD.js.map → base-table-BFsVwXg3.js.map} +1 -1
  16. package/dist/chunks/{button-CC0Jdx1j.js → button-BU2kRzwu.js} +2 -2
  17. package/dist/chunks/{button-CC0Jdx1j.js.map → button-BU2kRzwu.js.map} +1 -1
  18. package/dist/chunks/check-box-Dd3YFuxd.js.map +1 -1
  19. package/dist/chunks/{context-menu-DQeR3y7M.js → context-menu-C6RO7soI.js} +7 -2
  20. package/dist/chunks/{context-menu-DQeR3y7M.js.map → context-menu-C6RO7soI.js.map} +1 -1
  21. package/dist/chunks/{date-input-DBJisPRz.js → date-input-BzExUQnc.js} +5 -5
  22. package/dist/chunks/{date-input-DBJisPRz.js.map → date-input-BzExUQnc.js.map} +1 -1
  23. package/dist/chunks/{flex-DYZ0IbU6.js → flex-C7njxZ74.js} +10 -7
  24. package/dist/chunks/{flex-DYZ0IbU6.js.map → flex-C7njxZ74.js.map} +1 -1
  25. package/dist/chunks/floating-arrow-BE-z4QkE.js.map +1 -1
  26. package/dist/chunks/{input-BCJfUdK_.js → input-Bp6_Ucgr.js} +15 -15
  27. package/dist/chunks/{input-BCJfUdK_.js.map → input-Bp6_Ucgr.js.map} +1 -1
  28. package/dist/chunks/{input-files-Dcc5K-_1.js → input-files-D1JzSw_Y.js} +2 -2
  29. package/dist/chunks/{input-files-Dcc5K-_1.js.map → input-files-D1JzSw_Y.js.map} +1 -1
  30. package/dist/chunks/{input-search-B7HmrAM7.js → input-search-Bkhcinru.js} +2 -2
  31. package/dist/chunks/{input-search-B7HmrAM7.js.map → input-search-Bkhcinru.js.map} +1 -1
  32. package/dist/chunks/{misc-DIF5h9ba.js → misc-BYxxlJz6.js} +3 -3
  33. package/dist/chunks/{misc-DIF5h9ba.js.map → misc-BYxxlJz6.js.map} +1 -1
  34. package/dist/chunks/{modal-DXHX_sA-.js → modal-paexEF0j.js} +4 -5
  35. package/dist/chunks/{modal-DXHX_sA-.js.map → modal-paexEF0j.js.map} +1 -1
  36. package/dist/chunks/{multi-select-CWx12rgb.js → multi-select-COEkc8Qc.js} +4 -5
  37. package/dist/chunks/multi-select-COEkc8Qc.js.map +1 -0
  38. package/dist/chunks/{picker-BAQ9NeHe.js → picker-e6IsrMUG.js} +3 -3
  39. package/dist/chunks/{picker-BAQ9NeHe.js.map → picker-e6IsrMUG.js.map} +1 -1
  40. package/dist/chunks/{popover-xJJqy1v6.js → popover-CGU3MlsH.js} +14 -14
  41. package/dist/chunks/{popover-xJJqy1v6.js.map → popover-CGU3MlsH.js.map} +1 -1
  42. package/dist/chunks/radio-group-CM9Lg_nc.js.map +1 -1
  43. package/dist/chunks/{select-BPb-eL3O.js → select-BON0S9Dr.js} +115 -115
  44. package/dist/chunks/select-BON0S9Dr.js.map +1 -0
  45. package/dist/chunks/sortable-DcTIAbjD.js.map +1 -1
  46. package/dist/chunks/{table-xMAjqtcY.js → table-Dd5BcC0k.js} +3 -3
  47. package/dist/chunks/{table-xMAjqtcY.js.map → table-Dd5BcC0k.js.map} +1 -1
  48. package/dist/chunks/{table-column-interactions-BGd5Lwy9.js → table-column-interactions-DzEvVuXe.js} +8 -5
  49. package/dist/chunks/{table-column-interactions-BGd5Lwy9.js.map → table-column-interactions-DzEvVuXe.js.map} +1 -1
  50. package/dist/chunks/useODataSelectBase-CKe1AVMI.js.map +1 -1
  51. package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
  52. package/dist/context-menu/index.js +1 -1
  53. package/dist/date-input/index.js +2 -2
  54. package/dist/date-time-input/index.js +4 -4
  55. package/dist/date-time-input/index.js.map +1 -1
  56. package/dist/detail/index.js.map +1 -1
  57. package/dist/dialog/index.js.map +1 -1
  58. package/dist/disclosure/index.js +1 -1
  59. package/dist/disclosure/index.js.map +1 -1
  60. package/dist/drop-zone/index.js +1 -1
  61. package/dist/drop-zone/index.js.map +1 -1
  62. package/dist/errors/index.js +1 -1
  63. package/dist/errors/index.js.map +1 -1
  64. package/dist/expandable-action-panel/index.js +2 -2
  65. package/dist/expandable-action-panel/index.js.map +1 -1
  66. package/dist/flex/index.js +1 -1
  67. package/dist/fullscreen-portal/index.js +3 -3
  68. package/dist/fullscreen-portal/index.js.map +1 -1
  69. package/dist/image/index.js +5 -5
  70. package/dist/image/index.js.map +1 -1
  71. package/dist/input/index.js +1 -1
  72. package/dist/input-date-time/index.js +1 -1
  73. package/dist/input-date-time/index.js.map +1 -1
  74. package/dist/input-file/index.js +1 -1
  75. package/dist/input-file/index.js.map +1 -1
  76. package/dist/input-files/index.js +1 -1
  77. package/dist/input-image/index.js +1 -1
  78. package/dist/input-image/index.js.map +1 -1
  79. package/dist/input-search/index.js +1 -1
  80. package/dist/layout-picker/index.js +3 -4
  81. package/dist/layout-picker/index.js.map +1 -1
  82. package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
  83. package/dist/list/index.js +7 -7
  84. package/dist/list/index.js.map +1 -1
  85. package/dist/listbox/index.js.map +1 -1
  86. package/dist/misc/index.js +1 -1
  87. package/dist/modal/index.js +1 -1
  88. package/dist/multi-select/index.js +1 -1
  89. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  90. package/dist/notifications/index.js +13 -11
  91. package/dist/notifications/index.js.map +1 -1
  92. package/dist/pages/index.js.map +1 -1
  93. package/dist/panel/index.js.map +1 -1
  94. package/dist/picker/index.js +1 -1
  95. package/dist/picker/types.d.ts +1 -1
  96. package/dist/picker/types.d.ts.map +1 -1
  97. package/dist/popover/index.js +1 -1
  98. package/dist/preset-range-date-input/index.js +2 -2
  99. package/dist/preset-range-date-input/index.js.map +1 -1
  100. package/dist/preset-select/index.js +1 -1
  101. package/dist/radio-button/index.js.map +1 -1
  102. package/dist/select/Select.d.ts.map +1 -1
  103. package/dist/select/index.js +1 -1
  104. package/dist/simple-table/index.js +1 -1
  105. package/dist/slider/index.js +27 -24
  106. package/dist/slider/index.js.map +1 -1
  107. package/dist/splitter/index.js.map +1 -1
  108. package/dist/state-select/index.js +12 -10
  109. package/dist/state-select/index.js.map +1 -1
  110. package/dist/styles.css +1 -1
  111. package/dist/switch/index.js +1 -1
  112. package/dist/switch/index.js.map +1 -1
  113. package/dist/table/index.js +1 -1
  114. package/dist/table-column-interactions/index.js +1 -1
  115. package/dist/table-sorting/index.js +1 -1
  116. package/dist/table-sorting/index.js.map +1 -1
  117. package/dist/tabs/index.js +6 -6
  118. package/dist/tabs/index.js.map +1 -1
  119. package/dist/tag-input/index.js +1 -1
  120. package/dist/tag-input/index.js.map +1 -1
  121. package/dist/text/index.js +10 -8
  122. package/dist/text/index.js.map +1 -1
  123. package/dist/text-editor/index.js +2 -2
  124. package/dist/textarea/index.js +1 -1
  125. package/dist/textarea/index.js.map +1 -1
  126. package/dist/toggle/index.js.map +1 -1
  127. package/dist/toolbar/index.js +1 -2
  128. package/dist/toolbar/index.js.map +1 -1
  129. package/dist/tree/index.js.map +1 -1
  130. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  131. package/dist/tree-select/index.js +134 -132
  132. package/dist/tree-select/index.js.map +1 -1
  133. package/dist/tree-table/index.js +2 -2
  134. package/dist/tree-table/index.js.map +1 -1
  135. package/package.json +52 -59
  136. package/storybook-static/assets/{Badge-SZ48u9qp.js → Badge-Bh73-APE.js} +11 -11
  137. package/storybook-static/assets/Badge.stories-gNFtCWnR.js +54 -0
  138. package/storybook-static/assets/{Button-CFCpYiPy.js → Button-O9QPAftp.js} +10 -10
  139. package/storybook-static/assets/Button-mjF9HSg0.js +12 -0
  140. package/storybook-static/assets/Button.stories-wkiE0c_a.js +75 -0
  141. package/storybook-static/assets/CalendarView-CqKlnF8k.js +1 -0
  142. package/storybook-static/assets/{DateInput-BfFTwd_P.css → CalendarView-DKvrkS40.css} +1 -1
  143. package/storybook-static/assets/{CheckBox-FoMSruZC.js → CheckBox-CB8fTQF0.js} +11 -11
  144. package/storybook-static/assets/CheckBox-Clpeg9q7.js +2 -0
  145. package/storybook-static/assets/CheckBox.module-BBzuj5He.js +1 -0
  146. package/storybook-static/assets/CheckBox.stories-pfWBxvOy.js +60 -0
  147. package/storybook-static/assets/Color-6AOWCN3U-CVvkiihj.js +1 -0
  148. package/storybook-static/assets/ContextMenu-Sv4wfyS3.js +1 -0
  149. package/storybook-static/assets/{ContextMenu-CU_1kOzV.js → ContextMenu-eGnlhRRu.js} +9 -9
  150. package/storybook-static/assets/ContextMenu.stories-CVw3hOvY.js +90 -0
  151. package/storybook-static/assets/DateInput-D8_Oleoy.js +1 -0
  152. package/storybook-static/assets/{DateInput-BeZ5esVE.js → DateInput-DQDplLib.js} +11 -11
  153. package/storybook-static/assets/DateInput-pmGiwdvw.css +1 -0
  154. package/storybook-static/assets/{DateInput.stories-Bkw2r8CD.js → DateInput.stories-BNpS4CND.js} +2 -2
  155. package/storybook-static/assets/DateRangePresetSelect-Bfx-d5qg.js +3 -0
  156. package/storybook-static/assets/{DateRangePresetSelect-C_mLvEoK.js → DateRangePresetSelect-DCBEf98i.js} +8 -8
  157. package/storybook-static/assets/DateRangePresetSelect.stories-PAV2jgQb.js +11 -0
  158. package/storybook-static/assets/{Detail-WzciiK9S.js → Detail-DvmdQCue.js} +11 -11
  159. package/storybook-static/assets/Detail.stories-CEm00aSN.js +44 -0
  160. package/storybook-static/assets/{Dialog-CwLsVxJY.js → Dialog-3I2Y7jD7.js} +9 -9
  161. package/storybook-static/assets/Dialog.stories-lcadmonM.js +31 -0
  162. package/storybook-static/assets/{Disclosure-BlRuGrk2.js → Disclosure-DUIQ37oh.js} +10 -10
  163. package/storybook-static/assets/Disclosure.stories-BeizaZWP.js +41 -0
  164. package/storybook-static/assets/DocsRenderer-JROSPFPF-DwPk6ai7.js +2 -0
  165. package/storybook-static/assets/{DropZone-Cr3nfCWA.js → DropZone-BGuCU5dq.js} +10 -10
  166. package/storybook-static/assets/DropZone.stories-B4J6OZ3T.js +44 -0
  167. package/storybook-static/assets/ExpandableActionPanel.stories-gCrqbhG6.js +20 -0
  168. package/storybook-static/assets/{Flex-C10912WS.js → Flex-CBwbh1yu.js} +18 -18
  169. package/storybook-static/assets/Flex.stories-cdk6vRZq.js +300 -0
  170. package/storybook-static/assets/FlexContainer-LmZIdhq2.js +1 -0
  171. package/storybook-static/assets/FlexItem-vkDYa5tA.js +3 -0
  172. package/storybook-static/assets/FloatingPopover-D4h-c24R.js +1 -0
  173. package/storybook-static/assets/FloatingPopover-DC84VrV3.css +1 -0
  174. package/storybook-static/assets/FormattedTableCell-CY3E21k8.css +1 -0
  175. package/storybook-static/assets/FormattedTableCell-Dh-kHTOC.js +18 -0
  176. package/storybook-static/assets/Grid-BCzygAqy.js +52 -0
  177. package/storybook-static/assets/{Grid-G88y3oB_.js → Grid-BkKqSMfk.js} +18 -18
  178. package/storybook-static/assets/{Grid.stories-BV7zL-6n.js → Grid.stories-828arrPi.js} +2 -2
  179. package/storybook-static/assets/{Grid-Bb0gH6CX.js → GridContainer-qDguE1HS.js} +2 -53
  180. package/storybook-static/assets/ImageCropper.stories-CrIWrKKR.js +115 -0
  181. package/storybook-static/assets/ImageRenderer-F3AaZx-K.js +2 -0
  182. package/storybook-static/assets/ImageRenderer.stories-l3PnRYxy.js +22 -0
  183. package/storybook-static/assets/ImageView.stories-C6uhkvCN.js +9 -0
  184. package/storybook-static/assets/{ImageViewer.stories-PlFXSB5n.js → ImageViewer.stories-BSPiv5lU.js} +5 -5
  185. package/storybook-static/assets/ImageViewerRuntime-BOpMGgz6.js +51 -0
  186. package/storybook-static/assets/Input-Co--DMHY.js +3 -0
  187. package/storybook-static/assets/{Input-pyUNDVtk.js → Input-D-ZrbHVw.js} +11 -11
  188. package/storybook-static/assets/Input.stories-vqPv6pLx.js +38 -0
  189. package/storybook-static/assets/{InputDateTime-CWk5KBwD.js → InputDateTime-DHBVbRii.js} +11 -11
  190. package/storybook-static/assets/InputDateTime.stories-BAvLMBuk.js +35 -0
  191. package/storybook-static/assets/{InputFile-BLQq7mY9.js → InputFile-B9TVOEZV.js} +10 -10
  192. package/storybook-static/assets/InputFile.stories-CypBLWFh.js +36 -0
  193. package/storybook-static/assets/{InputFiles-B6J4XBdP.js → InputFiles-CxZkOZFK.js} +10 -10
  194. package/storybook-static/assets/InputFiles.stories-BGwCp7OC.js +33 -0
  195. package/storybook-static/assets/InputFilesList-OEX4zGI3.js +1 -0
  196. package/storybook-static/assets/{InputImage--2PSB_E_.js → InputImage-31A6fxSf.js} +10 -10
  197. package/storybook-static/assets/InputImage.stories-CdpOudXI.js +51 -0
  198. package/storybook-static/assets/{LayoutPicker-RZDisgZ_.js → LayoutPicker-Dc55ovYM.js} +13 -13
  199. package/storybook-static/assets/LayoutPicker.stories-DXcn-WXQ.js +449 -0
  200. package/storybook-static/assets/{Listbox-xwfNjBpV.js → Listbox-DF8E6oMR.js} +10 -10
  201. package/storybook-static/assets/Listbox.stories-C98_9wX3.js +47 -0
  202. package/storybook-static/assets/{Modal-HJt_Y-a6.js → Modal-CXvDgktT.js} +12 -12
  203. package/storybook-static/assets/Modal.stories-DAC_QwN7.js +180 -0
  204. package/storybook-static/assets/MultiSelect-B-wX6JPo.js +2 -0
  205. package/storybook-static/assets/{MultiSelect-CvNsFdE4.js → MultiSelect-DN4foQlG.js} +11 -11
  206. package/storybook-static/assets/MultiSelect.stories-CgKNQmma.js +29 -0
  207. package/storybook-static/assets/MultiSelectToken-DDu5n78h.css +1 -0
  208. package/storybook-static/assets/MultiSelectToken-fjW8p4YG.js +1 -0
  209. package/storybook-static/assets/NoData-C7KqaHUh.css +1 -0
  210. package/storybook-static/assets/NoData-W7wK8oTW.js +1 -0
  211. package/storybook-static/assets/{NotificationsHost-DXCf3CQX.js → NotificationsHost-D1UoWmF8.js} +9 -9
  212. package/storybook-static/assets/NotificationsHost.stories-BWUuMmPl.js +25 -0
  213. package/storybook-static/assets/{ODataMultiSelect-CIJNiwGb.js → ODataMultiSelect-DE1V4el8.js} +15 -15
  214. package/storybook-static/assets/ODataMultiSelect.stories-Q1DUIL2W.js +73 -0
  215. package/storybook-static/assets/{ODataSelect-BDga9TUb.js → ODataSelect-CtoT2Wxx.js} +15 -15
  216. package/storybook-static/assets/ODataSelect.stories-DLi7Rwzk.js +73 -0
  217. package/storybook-static/assets/ODataTreeMultiSelect-DEZfgyPK.js +19 -0
  218. package/storybook-static/assets/ODataTreeMultiSelect.stories-H42q78xI.js +30 -0
  219. package/storybook-static/assets/ODataTreeSelect-BeylEiPN.js +17 -0
  220. package/storybook-static/assets/ODataTreeSelect.stories-MOILmtfY.js +24 -0
  221. package/storybook-static/assets/OneStepScroller-BSvYN6QP.js +5 -0
  222. package/storybook-static/assets/OneStepScroller-NRYd-egY.css +1 -0
  223. package/storybook-static/assets/{PeriodSelect-BJbjl62O.js → PeriodSelect-KQFGCxq6.js} +13 -13
  224. package/storybook-static/assets/PeriodSelect.stories-BIYx4_Yy.js +64 -0
  225. package/storybook-static/assets/PickerSelectionToolbar-Cvv8vTZm.js +2 -0
  226. package/storybook-static/assets/PickerTriggerActions-BBZmXagt.js +1 -0
  227. package/storybook-static/assets/{Popover-Dg2T0DoN.js → Popover-7YZIq8Fi.js} +11 -11
  228. package/storybook-static/assets/Popover-D6gSyjaW.js +2 -0
  229. package/storybook-static/assets/Popover-DGX7JNNK.css +1 -0
  230. package/storybook-static/assets/Popover.stories-DM69Ztws.js +69 -0
  231. package/storybook-static/assets/{PresetRangeDateInput-CNmTMNHF.js → PresetRangeDateInput-Ch6GapcJ.js} +8 -8
  232. package/storybook-static/assets/PresetRangeDateInput.stories-Cqd4eb0N.js +15 -0
  233. package/storybook-static/assets/PresetSelect-C8uIYhPJ.js +5 -0
  234. package/storybook-static/assets/{RadioButton-2rfUPkwC.js → RadioButton-BQjiyASl.js} +10 -10
  235. package/storybook-static/assets/RadioButton.stories-Cbho4i83.js +36 -0
  236. package/storybook-static/assets/RadioGroup-DNqu6WaC.js +1 -0
  237. package/storybook-static/assets/{RadioGroup-BduGGVKj.js → RadioGroup-vw4ObVj-.js} +10 -10
  238. package/storybook-static/assets/RadioGroup.stories-B-WQzZW_.js +42 -0
  239. package/storybook-static/assets/Scrollable-DrxMuH2M.js +1 -0
  240. package/storybook-static/assets/{Select-DnZ83aZs.js → Select-BxigZNtu.js} +13 -13
  241. package/storybook-static/assets/Select-X_O4M8Hi.js +12 -0
  242. package/storybook-static/assets/Select.stories-BpTrYJSr.js +46 -0
  243. package/storybook-static/assets/SelectOptionContent-RAmgWCOm.js +1 -0
  244. package/storybook-static/assets/{SerializableSelect-BiFhAxAJ.js → SerializableSelect-CA9wjk2m.js} +12 -12
  245. package/storybook-static/assets/SerializableSelect.stories-DXd4E-3U.js +46 -0
  246. package/storybook-static/assets/{SingleDateTimeInput-Bc-ifbML.js → SingleDateTimeInput-BeFLYUBF.js} +12 -12
  247. package/storybook-static/assets/SingleDateTimeInput.stories-B1aZ754N.js +78 -0
  248. package/storybook-static/assets/Slider-BYrHesOR.js +1 -0
  249. package/storybook-static/assets/{Slider-DfjBSsR3.js → Slider-BdWBkKp4.js} +15 -15
  250. package/storybook-static/assets/Slider.stories-CgmOhVBs.js +77 -0
  251. package/storybook-static/assets/{SliderInput-o9uCcVMP.js → SliderInput-QmF2VQWA.js} +16 -16
  252. package/storybook-static/assets/SliderInput.stories-MjSmhiOM.js +68 -0
  253. package/storybook-static/assets/{Sortable-B6Y9Q9Yn.js → Sortable-D5OTpesH.js} +13 -13
  254. package/storybook-static/assets/Sortable.stories-yz3c5EhY.js +141 -0
  255. package/storybook-static/assets/{Splitter-CfUVnAs7.js → Splitter-DVq6XBul.js} +11 -11
  256. package/storybook-static/assets/Splitter.stories-CopPw1_p.js +22 -0
  257. package/storybook-static/assets/{StateSelect-h0i4M4vO.js → StateSelect-ojwXeKmx.js} +10 -10
  258. package/storybook-static/assets/StateSelect.stories-D46m5HNn.js +47 -0
  259. package/storybook-static/assets/StringToggle.stories-ByYMmlXl.js +6 -0
  260. package/storybook-static/assets/{Switch-CPKaENqL.js → Switch-Dy4Pahkn.js} +10 -10
  261. package/storybook-static/assets/Switch.stories-EiAb5Z-D.js +26 -0
  262. package/storybook-static/assets/{Table-xV66crR1.js → Table-BO6Oa4JV.js} +22 -22
  263. package/storybook-static/assets/Table.stories--TpBKwmP.js +122 -0
  264. package/storybook-static/assets/{Tabs-v9YZeJoc.js → Tabs-7c93qVyH.js} +15 -15
  265. package/storybook-static/assets/Tabs.stories-DXZ0r2ix.js +58 -0
  266. package/storybook-static/assets/TagInput.stories-CoM8rXwa.js +18 -0
  267. package/storybook-static/assets/Text-BPlJUr3R.js +1 -0
  268. package/storybook-static/assets/{Textarea-CRThqX0z.js → Textarea-D3S4MkiX.js} +10 -10
  269. package/storybook-static/assets/Textarea.stories-47k8uHdB.js +27 -0
  270. package/storybook-static/assets/TimePanel-C2iZ9Qr6.js +1 -0
  271. package/storybook-static/assets/TimePanel.stories-JTjIv6z1.js +25 -0
  272. package/storybook-static/assets/{Toggle-CzopviU2.js → Toggle-CHmajZE5.js} +10 -10
  273. package/storybook-static/assets/Toggle-OlKw8qaK.js +1 -0
  274. package/storybook-static/assets/Toggle.stories-k4Z8qQVs.js +30 -0
  275. package/storybook-static/assets/TreeMultiSelect-BC_n1Wb-.js +1 -0
  276. package/storybook-static/assets/TreeMultiSelect-dOg0l7rk.js +19 -0
  277. package/storybook-static/assets/TreeMultiSelect.stories-CAzZRxn5.js +35 -0
  278. package/storybook-static/assets/TreePickerBase-ycYQYQgi.js +22 -0
  279. package/storybook-static/assets/TreeSelect-BrNyI_Qx.js +16 -0
  280. package/storybook-static/assets/TreeSelect-CDecTnag.js +1 -0
  281. package/storybook-static/assets/TreeSelect.stories-BUOw2Rwn.js +18 -0
  282. package/storybook-static/assets/{TreeTable-DbzoCcR5.js → TreeTable-BXw7lFBk.js} +22 -22
  283. package/storybook-static/assets/TreeTable.stories-z40pruPV.js +83 -0
  284. package/storybook-static/assets/WithTooltip-7X4HQR7L-Cakt_JaX.js +9 -0
  285. package/storybook-static/assets/array-BBSjoTRy-CIRmlF93.js +1 -0
  286. package/storybook-static/assets/{async-D27PcxoG.js → async-BLDV04P4.js} +3 -3
  287. package/storybook-static/assets/axe-Bq-2xuso.js +20 -0
  288. package/storybook-static/assets/blocks-BiaKjftm.js +48 -0
  289. package/storybook-static/assets/browserAndReact-DX4H5rjQ.js +105 -0
  290. package/storybook-static/assets/check-fB4gCKB_.js +1 -0
  291. package/storybook-static/assets/chevron-down-B9GH0QvB.js +1 -0
  292. package/storybook-static/assets/chevron-left-DjbyJeHO.js +1 -0
  293. package/storybook-static/assets/chevron-right-D29uf09I.js +1 -0
  294. package/storybook-static/assets/chunk-242VQQM5-BMWWiybC.js +1 -0
  295. package/storybook-static/assets/chunk-DRQKCCAG-CqE-Zrl9.js +1 -0
  296. package/storybook-static/assets/chunk-IMSF75WX-yvVUwIQZ.js +6 -0
  297. package/storybook-static/assets/chunk-KJHJLCBK-D-yQfkOi.js +1 -0
  298. package/storybook-static/assets/chunk-QQBDHPVZ-B98qboss.js +1 -0
  299. package/storybook-static/assets/chunk-W22LQPXL-CGkHFiZ0.js +18 -0
  300. package/storybook-static/assets/circle-alert-Dmd7-WNp.js +1 -0
  301. package/storybook-static/assets/circle-check-VtVMsaJJ.js +1 -0
  302. package/storybook-static/assets/components-CsfQDbHv.js +241 -0
  303. package/storybook-static/assets/contextMenu-CzdfaUsd.js +2 -0
  304. package/storybook-static/assets/date-segments-D3HouZ37.js +1 -0
  305. package/storybook-static/assets/dom-B3G_GtJw.js +1 -0
  306. package/storybook-static/assets/download-CyVhTbv6.js +1 -0
  307. package/storybook-static/assets/error-BZrNlEUO.js +1 -0
  308. package/storybook-static/assets/file-vPGnhPr-.js +1 -0
  309. package/storybook-static/assets/filesAndExcel-DlUnL-Uu.js +122 -0
  310. package/storybook-static/assets/floating-ui.react-DZ8IyUV4.js +1 -0
  311. package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +1 -0
  312. package/storybook-static/assets/formatters--mhLir82-v41eaI4a.js +1 -0
  313. package/storybook-static/assets/formatters-BTz64vfu.js +291 -0
  314. package/storybook-static/assets/formatters-runtime-DVi3RdYb.js +384 -0
  315. package/storybook-static/assets/foundationLib-CFj4J-Pc.js +82 -0
  316. package/storybook-static/assets/hooks-Ch5aYb7R.js +5 -0
  317. package/storybook-static/assets/iframe-Cr7AcW_R.js +1 -0
  318. package/storybook-static/assets/iframe-DaN-XFub.js +1151 -0
  319. package/storybook-static/assets/info-Cirk1RKZ.js +1 -0
  320. package/storybook-static/assets/{matchers-JIUQ3HVY-BPS-eazD.js → matchers-JIUQ3HVY-DvR2XErZ.js} +3 -3
  321. package/storybook-static/assets/media-BycWpjAl.js +1 -0
  322. package/storybook-static/assets/odata-BtfB5Aje.js +1 -0
  323. package/storybook-static/assets/odata-service-DnPlNGpU-Bpd4Zh9L.js +3 -0
  324. package/storybook-static/assets/odataAndTables-TEZyQ-TZ.js +126 -0
  325. package/storybook-static/assets/{odataFetchFn-BVgXXKgx.js → odataFetchFn-DEKVPDzV.js} +3 -3
  326. package/storybook-static/assets/odataStoryFixtures-CDDaJZKW.js +25 -0
  327. package/storybook-static/assets/{persisted-D8qUQbts.js → persisted-BzLLmgUK.js} +3 -3
  328. package/storybook-static/assets/preload-helper-BHmFeTtP.js +1 -0
  329. package/storybook-static/assets/pureUtilities-Dw249t3R.js +69 -0
  330. package/storybook-static/assets/react-18-CgkwBzTo.js +9 -0
  331. package/storybook-static/assets/react-C21x__mS.js +1 -0
  332. package/storybook-static/assets/react-CvkUhHUq.js +1 -0
  333. package/storybook-static/assets/react-KzpmXJc9.js +9 -0
  334. package/storybook-static/assets/react-dom-2o2phaJG.js +1 -0
  335. package/storybook-static/assets/react-qN2cStNd.js +1 -0
  336. package/storybook-static/assets/refresh-cw-BN3JCsXv.js +1 -0
  337. package/storybook-static/assets/rolldown-runtime-C0FnF6B9.js +1 -0
  338. package/storybook-static/assets/runtimeAndState-CCVgv3ck.js +117 -0
  339. package/storybook-static/assets/settings-2-jtcbbWm5.js +1 -0
  340. package/storybook-static/assets/sortable-dNWaObUX.js +1 -0
  341. package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-hYwVxXYm.js +6 -0
  342. package/storybook-static/assets/theming-mTWhffkp.js +39 -0
  343. package/storybook-static/assets/trash-2-DrVfT0z5.js +1 -0
  344. package/storybook-static/assets/treeStoryFixtures-Ci7STpiz.js +1 -0
  345. package/storybook-static/assets/triangle-alert-B1Q28Bq9.js +1 -0
  346. package/storybook-static/assets/ui.module-DoMIk8Oc.js +1 -0
  347. package/storybook-static/assets/uiClasses-CO3Cdv1E.js +1 -0
  348. package/storybook-static/assets/useFlexClasses-Gn9spXEB.js +1 -0
  349. package/storybook-static/assets/useODataSelectBase-DlbeGYUP.js +1 -0
  350. package/storybook-static/assets/useODataTreeData-CvsoLfiG.js +1 -0
  351. package/storybook-static/assets/usePickerDefaultFilter-DdxyE_i8.js +1 -0
  352. package/storybook-static/assets/usePickerQuery-6rDaPaB0.js +1 -0
  353. package/storybook-static/assets/usePickerTriggerController-BHBjSLtn.js +1 -0
  354. package/storybook-static/assets/utils-DUM89eIj.js +1 -0
  355. package/storybook-static/assets/x-Dh43gJN9.js +1 -0
  356. package/storybook-static/iframe.html +8 -3
  357. package/storybook-static/index.html +6 -0
  358. package/storybook-static/index.json +1 -1
  359. package/storybook-static/project.json +1 -1
  360. package/storybook-static/sb-addons/a11y-3/manager-bundle.js +3 -3
  361. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +17 -17
  362. package/storybook-static/sb-addons/docs-2/manager-bundle.js +16 -1
  363. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +85 -83
  364. package/storybook-static/sb-addons/vitest-4/manager-bundle.js +1 -1
  365. package/storybook-static/sb-manager/globals-runtime.js +9939 -7695
  366. package/storybook-static/sb-manager/runtime.js +16128 -15326
  367. package/storybook-static/vite-inject-mocker-entry.js +2 -2
  368. package/dist/chunks/multi-select-CWx12rgb.js.map +0 -1
  369. package/dist/chunks/select-BPb-eL3O.js.map +0 -1
  370. package/storybook-static/assets/Badge.stories-CzsgAfG9.js +0 -51
  371. package/storybook-static/assets/Button-MoWVKehO.js +0 -12
  372. package/storybook-static/assets/Button.stories-wwep4c2p.js +0 -75
  373. package/storybook-static/assets/CheckBox-DHvne_6w.js +0 -2
  374. package/storybook-static/assets/CheckBox.module-ezWPE2pa.js +0 -1
  375. package/storybook-static/assets/CheckBox.stories-C14Axs5p.js +0 -60
  376. package/storybook-static/assets/Color-KMSTOMOX-CmMBFN4-.js +0 -1
  377. package/storybook-static/assets/ContextMenu.stories-Dr-tkpqd.js +0 -90
  378. package/storybook-static/assets/DateInput-erobPRG_.js +0 -1
  379. package/storybook-static/assets/DateRangePresetSelect-Cg90Kc_w.js +0 -3
  380. package/storybook-static/assets/DateRangePresetSelect.stories-BVap0joC.js +0 -11
  381. package/storybook-static/assets/Detail.stories-CLdtvJ7q.js +0 -44
  382. package/storybook-static/assets/Dialog.stories-Dx0jZO19.js +0 -31
  383. package/storybook-static/assets/Disclosure.stories-DhUdeDK6.js +0 -41
  384. package/storybook-static/assets/DocsRenderer-JROSPFPF-Dd1n83Uq.js +0 -2
  385. package/storybook-static/assets/DropZone.stories-6yYrwQOe.js +0 -44
  386. package/storybook-static/assets/DropdownMenu-D_2LfViU.js +0 -1
  387. package/storybook-static/assets/ExpandableActionPanel.stories-DVOFSOlm.js +0 -20
  388. package/storybook-static/assets/Flex-V-qg6Ejw.js +0 -3
  389. package/storybook-static/assets/Flex.stories-BZv94LD8.js +0 -300
  390. package/storybook-static/assets/ImageCropper.stories-MLFZyJxZ.js +0 -115
  391. package/storybook-static/assets/ImageRenderer-DHhD7mUz.js +0 -2
  392. package/storybook-static/assets/ImageRenderer.stories-ChcPymk2.js +0 -22
  393. package/storybook-static/assets/ImageView.stories-DszVNgC8.js +0 -9
  394. package/storybook-static/assets/ImageViewerRuntime-D8wFAKx5.js +0 -51
  395. package/storybook-static/assets/Input-BGdz8TmT.js +0 -3
  396. package/storybook-static/assets/Input.stories-Ban0Gnck.js +0 -38
  397. package/storybook-static/assets/InputDateTime.stories-DgKVmf54.js +0 -35
  398. package/storybook-static/assets/InputFile.stories-VnRv_q2r.js +0 -36
  399. package/storybook-static/assets/InputFiles-Dn9afnyd.js +0 -1
  400. package/storybook-static/assets/InputFiles.stories-CLVn5Xfq.js +0 -33
  401. package/storybook-static/assets/InputImage.stories-D__QcSho.js +0 -51
  402. package/storybook-static/assets/LayoutPicker.stories-BCnR-zBu.js +0 -449
  403. package/storybook-static/assets/Listbox.stories-B0HctqVp.js +0 -47
  404. package/storybook-static/assets/Modal.stories-BE-VpK-a.js +0 -180
  405. package/storybook-static/assets/MultiSelect-BoIwmje6.css +0 -1
  406. package/storybook-static/assets/MultiSelect-CaCNRNIe.js +0 -2
  407. package/storybook-static/assets/MultiSelect.stories-CNkbVGsb.js +0 -29
  408. package/storybook-static/assets/NotificationsHost.stories-BgqvZzT3.js +0 -25
  409. package/storybook-static/assets/ODataMultiSelect-CMyI4yYs.js +0 -1
  410. package/storybook-static/assets/ODataMultiSelect.stories-DTGCC6np.js +0 -73
  411. package/storybook-static/assets/ODataSelect-CGplYBh_.js +0 -1
  412. package/storybook-static/assets/ODataSelect.stories-CsxqRAvn.js +0 -73
  413. package/storybook-static/assets/ODataTreeMultiSelect-4ZiAtFZk.js +0 -19
  414. package/storybook-static/assets/ODataTreeMultiSelect.stories-B29Od8BL.js +0 -30
  415. package/storybook-static/assets/ODataTreeSelect-yZy7MBsZ.js +0 -17
  416. package/storybook-static/assets/ODataTreeSelect.stories-H7eaj1Sz.js +0 -24
  417. package/storybook-static/assets/PeriodSelect.stories-6CEzS2_H.js +0 -64
  418. package/storybook-static/assets/Popover.stories-BNgWOHlJ.js +0 -69
  419. package/storybook-static/assets/PresetRangeDateInput.stories-6UPVDF62.js +0 -15
  420. package/storybook-static/assets/RadioButton.stories-DbdFfJqO.js +0 -36
  421. package/storybook-static/assets/RadioGroup-BA21indC.js +0 -1
  422. package/storybook-static/assets/RadioGroup.stories-Ce6x0WUN.js +0 -42
  423. package/storybook-static/assets/Select-DyO25wSA.js +0 -12
  424. package/storybook-static/assets/Select.stories-CQ8f9fY9.js +0 -46
  425. package/storybook-static/assets/SelectOptionContent-fC4HFG5Q.js +0 -1
  426. package/storybook-static/assets/SerializableSelect-ki4BThj7.js +0 -4
  427. package/storybook-static/assets/SerializableSelect.stories-BzXBkWPI.js +0 -43
  428. package/storybook-static/assets/SingleDateTimeInput.stories-CI2yrD-f.js +0 -78
  429. package/storybook-static/assets/Slider.stories-D3O3_tqE.js +0 -77
  430. package/storybook-static/assets/SliderInput.stories-D1puleZB.js +0 -67
  431. package/storybook-static/assets/Sortable.stories-BoaL4W6r.js +0 -141
  432. package/storybook-static/assets/Splitter.stories-DJpFzZVJ.js +0 -22
  433. package/storybook-static/assets/StateSelect.stories-Ch2Gzzmd.js +0 -47
  434. package/storybook-static/assets/StringToggle.stories-B8qIG0M3.js +0 -6
  435. package/storybook-static/assets/Switch.stories-BysIhUHa.js +0 -26
  436. package/storybook-static/assets/Table.stories-CBpgmq7b.js +0 -122
  437. package/storybook-static/assets/Tabs.stories-BPYZuvzR.js +0 -58
  438. package/storybook-static/assets/TagInput.stories-BwOEnVpz.js +0 -18
  439. package/storybook-static/assets/Textarea.stories-BSJGz7JF.js +0 -27
  440. package/storybook-static/assets/TimePanel-ClMfq_py.js +0 -1
  441. package/storybook-static/assets/TimePanel.stories-_FqWdmta.js +0 -25
  442. package/storybook-static/assets/Toggle-BFhzeK2e.js +0 -1
  443. package/storybook-static/assets/Toggle.stories-Dw5UkD_b.js +0 -30
  444. package/storybook-static/assets/TreeMultiSelect-CerqHY2K.js +0 -19
  445. package/storybook-static/assets/TreeMultiSelect-Dw7FI3ic.js +0 -1
  446. package/storybook-static/assets/TreeMultiSelect.stories-BTQKFbeP.js +0 -35
  447. package/storybook-static/assets/TreePickerBase-rJISGJBT.js +0 -22
  448. package/storybook-static/assets/TreeSelect-CQ1vj_c9.js +0 -16
  449. package/storybook-static/assets/TreeSelect-Cp_lX0-B.js +0 -1
  450. package/storybook-static/assets/TreeSelect.stories-D6Q02Phx.js +0 -18
  451. package/storybook-static/assets/TreeTable.stories-YfyhkqH9.js +0 -83
  452. package/storybook-static/assets/WithTooltip-7X4HQR7L-BSQyvCOM.js +0 -9
  453. package/storybook-static/assets/axe-GLfyhAYL.js +0 -20
  454. package/storybook-static/assets/base-table-BNO0lnTL.css +0 -1
  455. package/storybook-static/assets/base-table-Dy3fEhQe.js +0 -18
  456. package/storybook-static/assets/blocks-ixiC6_NZ.js +0 -285
  457. package/storybook-static/assets/button-DZpTIXz2.js +0 -1
  458. package/storybook-static/assets/check-box-DByHwJGx.js +0 -1
  459. package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +0 -1
  460. package/storybook-static/assets/chunk-3LY4VQVK-BohfESrT.js +0 -6
  461. package/storybook-static/assets/chunk-LITCR56V-XaMGADKk.js +0 -18
  462. package/storybook-static/assets/contextMenu-BbMrBF3b.js +0 -2
  463. package/storybook-static/assets/date-7kR6zFX5.js +0 -461
  464. package/storybook-static/assets/date-segments-CzU9k5bl.js +0 -1
  465. package/storybook-static/assets/error-BRUjWXbJ.js +0 -1
  466. package/storybook-static/assets/file-CI_sonB1.js +0 -291
  467. package/storybook-static/assets/file-hArYcyES.js +0 -1
  468. package/storybook-static/assets/flex-C--89Z3g.js +0 -1
  469. package/storybook-static/assets/floating-ui.react-DLXcGGFR.js +0 -1
  470. package/storybook-static/assets/formatter-L2YTDE3Q-DgyzUf7M.js +0 -1
  471. package/storybook-static/assets/formatters-BtIOYENB.js +0 -3
  472. package/storybook-static/assets/formulas-DRh9I2eS.js +0 -2
  473. package/storybook-static/assets/grid-DLxeTZJe.js +0 -1
  474. package/storybook-static/assets/hooks-DWeJq8G1.js +0 -5
  475. package/storybook-static/assets/iframe-BJGIOdSH.js +0 -1119
  476. package/storybook-static/assets/input-DXi75xv1.js +0 -1
  477. package/storybook-static/assets/mdx-react-shim-CmoAsjhK.js +0 -1
  478. package/storybook-static/assets/media-DWFaNgLM.js +0 -1
  479. package/storybook-static/assets/misc-BElIqBdV.css +0 -1
  480. package/storybook-static/assets/misc-DNZTbWc6.js +0 -5
  481. package/storybook-static/assets/notifications-DjtgzFqT.js +0 -1
  482. package/storybook-static/assets/number-Xkw1yPJo.js +0 -2
  483. package/storybook-static/assets/odata-C4Liwkjx.js +0 -1
  484. package/storybook-static/assets/odata-service-C2oJ-ZmZ.js +0 -1
  485. package/storybook-static/assets/odataStoryFixtures-eEGvvtmw.js +0 -25
  486. package/storybook-static/assets/picker-DsP4xCcJ.js +0 -2
  487. package/storybook-static/assets/popover-BiQHI7Wi.css +0 -1
  488. package/storybook-static/assets/popover-CuFTypCp.js +0 -2
  489. package/storybook-static/assets/preload-helper-B45gAKPr.js +0 -1
  490. package/storybook-static/assets/preset-select-SPNHA-mp.js +0 -5
  491. package/storybook-static/assets/pwa-B7uYfAPd.js +0 -640
  492. package/storybook-static/assets/queryClient-CA0puYc0.js +0 -567
  493. package/storybook-static/assets/react-18-CaNSmcD-.js +0 -9
  494. package/storybook-static/assets/react-3qMIUlAf.js +0 -9
  495. package/storybook-static/assets/react-dom-BC7xZNHy.js +0 -1
  496. package/storybook-static/assets/select-sUla5-3b.js +0 -1
  497. package/storybook-static/assets/slider--Yp_sa_W.js +0 -2
  498. package/storybook-static/assets/sortable-jALaQqYE.js +0 -1
  499. package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-u_WDwfDn.js +0 -6
  500. package/storybook-static/assets/text-D5xgciF8.js +0 -4
  501. package/storybook-static/assets/theming-oB64gsjY.js +0 -39
  502. package/storybook-static/assets/treeStoryFixtures-Y_nnjz0_.js +0 -1
  503. package/storybook-static/assets/ui-DWDaBPQx.js +0 -1
  504. package/storybook-static/assets/ui.module-wFHXkJzp.js +0 -1
  505. package/storybook-static/assets/uiClasses-CaHp0EWd.js +0 -1
  506. package/storybook-static/assets/useODataSelectBase-DjlPxmxr.js +0 -1
  507. package/storybook-static/assets/useODataTreeData-1W6cbuec.js +0 -1
  508. package/storybook-static/assets/utils-DzbSigQl.js +0 -1
  509. package/storybook-static/assets/valueState-GnkKWBTr.js +0 -277
  510. /package/storybook-static/assets/{DropdownMenu-BgzIzwzM.css → ContextMenu-BgzIzwzM.css} +0 -0
  511. /package/storybook-static/assets/{Grid-K9R_IHaw.css → GridContainer-K9R_IHaw.css} +0 -0
  512. /package/storybook-static/assets/{InputFiles-ByK52qUe.css → InputFilesList-ByK52qUe.css} +0 -0
  513. /package/storybook-static/assets/{slider-DMDFRH6B.css → Slider-DMDFRH6B.css} +0 -0
  514. /package/storybook-static/assets/{Flex-IXK2se1Y.css → useFlexClasses-IXK2se1Y.css} +0 -0
  515. /package/storybook-static/assets/{picker-DzBkX15M.css → usePickerTriggerController-DzBkX15M.css} +0 -0
@@ -1 +0,0 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{n,pn as r,s as i,t as a}from"./iframe-BJGIOdSH.js";import{n as o,t as s}from"./Button-MoWVKehO.js";function c({onPreRemove:e,onRemove:t,className:n}){let[r,a]=(0,l.useState)(!1),o=(0,l.useRef)(null);return(0,u.jsx)(s,{icon:(0,u.jsx)(i,{}),onClick:n=>{n.preventDefault(),o.current&&=(window.clearTimeout(o.current),null),r?(t(),a(!1)):(e?.(),a(!0),o.current=window.setTimeout(()=>{a(!1)},1500))},tone:`error`,appearance:r?`solid`:`outline`,className:n})}var l,u,d=t((()=>{l=e(r(),1),n(),o(),u=a(),c.__docgenInfo={description:"Специализированная кнопка удаления сущности или вложения. Инкапсулирует подтверждающее поведение перед окончательным вызовом `onRemove`.",methods:[],displayName:`ButtonRemove`,props:{onRemove:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onPreRemove:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})),f=t((()=>{o(),d()}));export{f as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{n as t}from"./CheckBox-DHvne_6w.js";var n=e((()=>{t()}));export{n as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";function t(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var n=e((()=>{}));export{n,t};
@@ -1,6 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{en as t,in as n,nn as r}from"./iframe-BJGIOdSH.js";var i,a=e((()=>{n(),i=t({"../../node_modules/memoizerific/memoizerific.js"(e,t){(function(n){if(typeof e==`object`&&typeof t<`u`)t.exports=n();else if(typeof define==`function`&&define.amd)define([],n);else{var r=typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:this;r.memoizerific=n()}})(function(){return(function e(t,n,i){function a(s,c){if(!n[s]){if(!t[s]){var l=typeof r==`function`&&r;if(!c&&l)return l(s,!0);if(o)return o(s,!0);var u=Error(`Cannot find module '`+s+`'`);throw u.code=`MODULE_NOT_FOUND`,u}var d=n[s]={exports:{}};t[s][0].call(d.exports,function(e){var n=t[s][1][e];return a(n||e)},d,d.exports,e,t,n,i)}return n[s].exports}for(var o=typeof r==`function`&&r,s=0;s<i.length;s++)a(i[s]);return a})({1:[function(e,t,n){t.exports=function(t){return typeof Map!=`function`||t?new(e(`./similar`)):new Map}},{"./similar":2}],2:[function(e,t,n){function r(){return this.list=[],this.lastItem=void 0,this.size=0,this}r.prototype.get=function(e){var t;if(this.lastItem&&this.isEqual(this.lastItem.key,e))return this.lastItem.val;if(t=this.indexOf(e),t>=0)return this.lastItem=this.list[t],this.list[t].val},r.prototype.set=function(e,t){var n;return this.lastItem&&this.isEqual(this.lastItem.key,e)?(this.lastItem.val=t,this):(n=this.indexOf(e),n>=0?(this.lastItem=this.list[n],this.list[n].val=t,this):(this.lastItem={key:e,val:t},this.list.push(this.lastItem),this.size++,this))},r.prototype.delete=function(e){var t;if(this.lastItem&&this.isEqual(this.lastItem.key,e)&&(this.lastItem=void 0),t=this.indexOf(e),t>=0)return this.size--,this.list.splice(t,1)[0]},r.prototype.has=function(e){var t;return this.lastItem&&this.isEqual(this.lastItem.key,e)?!0:(t=this.indexOf(e),t>=0?(this.lastItem=this.list[t],!0):!1)},r.prototype.forEach=function(e,t){var n;for(n=0;n<this.size;n++)e.call(t||this,this.list[n].val,this.list[n].key,this)},r.prototype.indexOf=function(e){var t;for(t=0;t<this.size;t++)if(this.isEqual(this.list[t].key,e))return t;return-1},r.prototype.isEqual=function(e,t){return e===t||e!==e&&t!==t},t.exports=r},{}],3:[function(e,t,n){var r=e(`map-or-similar`);t.exports=function(e){var t=new r(!1),n=[];return function(o){var s=function(){var c=t,l,u,d=arguments.length-1,f=Array(d+1),p=!0,m;if((s.numArgs||s.numArgs===0)&&s.numArgs!==d+1)throw Error(`Memoizerific functions should always be called with the same number of arguments`);for(m=0;m<d;m++){if(f[m]={cacheItem:c,arg:arguments[m]},c.has(arguments[m])){c=c.get(arguments[m]);continue}p=!1,l=new r(!1),c.set(arguments[m],l),c=l}return p&&(c.has(arguments[d])?u=c.get(arguments[d]):p=!1),p||(u=o.apply(null,arguments),c.set(arguments[d],u)),e>0&&(f[d]={cacheItem:c,arg:arguments[d]},p?i(n,f):n.push(f),n.length>e&&a(n.shift())),s.wasMemoized=p,s.numArgs=d+1,u};return s.limit=e,s.wasMemoized=!1,s.cache=t,s.lru=n,s}};function i(e,t){var n=e.length,r=t.length,i,a,s;for(a=0;a<n;a++){for(i=!0,s=0;s<r;s++)if(!o(e[a][s].arg,t[s].arg)){i=!1;break}if(i)break}e.push(e.splice(a,1)[0])}function a(e){var t=e.length,n=e[t-1],r,i;for(n.cacheItem.delete(n.arg),i=t-2;i>=0&&(n=e[i],r=n.cacheItem.get(n.arg),!r||!r.size);i--)n.cacheItem.delete(n.arg)}function o(e,t){return e===t||e!==e&&t!==t}},{"map-or-similar":1}]},{},[3])(3)})}})}));function o(e){var t=[...arguments].slice(1),n=Array.from(typeof e==`string`?[e]:e);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,``);var r=n.reduce(function(e,t){var n=t.match(/\n([\t ]+|(?!\s).)/g);return n?e.concat(n.map(function(e){return e.match(/[\t ]/g)?.length??0})):e},[]);if(r.length){var i=RegExp(`
2
- [ ]{`+Math.min.apply(Math,r)+`}`,`g`);n=n.map(function(e){return e.replace(i,`
3
- `)})}n[0]=n[0].replace(/^\r?\n/,``);var a=n[0];return t.forEach(function(e,t){var r=a.match(/(?:^|\n)( *)$/),i=r?r[1]:``,o=e;typeof e==`string`&&e.includes(`
4
- `)&&(o=String(e).split(`
5
- `).map(function(e,t){return t===0?e:``+i+e}).join(`
6
- `)),a+=o+n[t+1]}),a}var s=e((()=>{}));export{i,s as n,a as r,o as t};
@@ -1,18 +0,0 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{pn as n,t as r}from"./iframe-BJGIOdSH.js";import{a as i,l as a}from"./theming-oB64gsjY.js";import{t as o}from"./react-dom-BC7xZNHy.js";function s(e,t){typeof e==`function`?e(t):e!=null&&(e.current=t)}function c(...e){return t=>e.forEach(e=>s(e,t))}function l(...e){return oe.useCallback(c(...e),e)}function u(e){return M.isValidElement(e)&&e.type===he}function d(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{a(...e),i(...e)}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function f(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function p(e,t){return ue.useReducer((e,n)=>t[e][n]??e,e)}function m(e){let[t,n]=P.useState(),r=P.useRef({}),i=P.useRef(e),a=P.useRef(`none`),[o,s]=p(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return P.useEffect(()=>{let e=h(r.current);a.current=o===`mounted`?e:`none`},[o]),U(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=h(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),U(()=>{if(t){let e=e=>{let n=h(r.current).includes(e.animationName);e.target===t&&n&&ce.flushSync(()=>s(`ANIMATION_END`))},n=e=>{e.target===t&&(a.current=h(r.current))};return t.addEventListener(`animationstart`,n),t.addEventListener(`animationcancel`,e),t.addEventListener(`animationend`,e),()=>{t.removeEventListener(`animationstart`,n),t.removeEventListener(`animationcancel`,e),t.removeEventListener(`animationend`,e)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:P.useCallback(e=>{e&&(r.current=getComputedStyle(e)),n(e)},[])}}function h(e){return e?.animationName||`none`}function ee(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function g(e,t=[]){let n=[];function r(t,r){let i=F.createContext(r),a=n.length;n=[...n,r];function o(t){let{scope:n,children:r,...o}=t,s=n?.[e][a]||i,c=F.useMemo(()=>o,Object.values(o));return(0,de.jsx)(s.Provider,{value:c,children:r})}function s(n,o){let s=o?.[e][a]||i,c=F.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return o.displayName=t+`Provider`,[o,s]}let i=()=>{let t=n.map(e=>F.createContext(e));return function(n){let r=n?.[e]||t;return F.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,_(i,...t)]}function _(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return F.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function v(e){let t=I.useRef(e);return I.useEffect(()=>{t.current=e}),I.useMemo(()=>(...e)=>t.current?.(...e),[])}function te(e){let t=L.useContext(ge);return e||t||`ltr`}function y(e,[t,n]){return Math.min(n,Math.max(t,e))}function b(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function x(e,t){return fe.useReducer((e,n)=>t[e][n]??e,e)}function S(e){return e?parseInt(e,10):0}function C(e,t){let n=e/t;return isNaN(n)?0:n}function w(e){let t=C(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function T(e,t,n,r=`ltr`){let i=w(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return ne([c,l],d)(e)}function E(e,t,n=`ltr`){let r=w(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=y(e,n===`ltr`?[0,o]:[o*-1,0]);return ne([0,o],[0,s])(c)}function ne(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function re(e,t){return e>0&&e<t}function D(e,t){let n=v(e),r=j.useRef(0);return j.useEffect(()=>()=>window.clearTimeout(r.current),[]),j.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function O(e,t){let n=v(t);U(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}function ie(e,t){let{asChild:n,children:r}=e;if(!n)return typeof t==`function`?t(r):t;let i=j.Children.only(r);return j.cloneElement(i,{children:typeof t==`function`?t(i.props.children):t})}var k,A,j,ae,M,oe,N,se,P,ce,le,ue,F,de,I,L,fe,R,pe,z,me,B,V,he,H,U,W,ge,G,K,_e,ve,q,J,ye,be,Y,xe,Se,Ce,we,X,Te,Ee,De,Oe,ke,Z,Ae,je,Q,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge=t((()=>{k=e(n(),1),i(),A=e(n(),1),j=e(n(),1),ae=e(n(),1),o(),M=e(n(),1),oe=e(n(),1),N=r(),se=r(),P=e(n(),1),ce=e(o(),1),le=e(n(),1),ue=e(n(),1),F=e(n(),1),de=r(),I=e(n(),1),L=e(n(),1),r(),fe=e(n(),1),R=r(),pe=a.div(({theme:e,$flexLayout:t=!1})=>[{background:e.background.content},t?{display:`inline-flex`,marginInlineStart:`auto`,alignSelf:`flex-end`}:{position:`absolute`,bottom:0,right:0,maxWidth:`100%`,display:`flex`,zIndex:1}]),z=a.button(({theme:e})=>({margin:0,border:`0 none`,padding:`4px 10px`,cursor:`pointer`,display:`flex`,alignItems:`center`,color:e.color.defaultText,background:e.background.content,fontSize:12,lineHeight:`16px`,fontFamily:e.typography.fonts.base,fontWeight:e.typography.weight.bold,borderTop:`1px solid ${e.appBorderColor}`,borderLeft:`1px solid ${e.appBorderColor}`,marginLeft:-1,borderRadius:`4px 0 0 0`,"&:not(:last-child)":{borderRight:`1px solid ${e.appBorderColor}`},"& + *":{borderLeft:`1px solid ${e.appBorderColor}`,borderRadius:0},"&:focus":{boxShadow:`${e.color.secondary} 0 -3px 0 0 inset`,outline:`0 none`,"@media (forced-colors: active)":{outline:`1px solid highlight`}}}),({disabled:e})=>e&&{cursor:`not-allowed`,opacity:.5}),z.displayName=`ActionButton`,me=({actionItems:e,flexLayout:t=!1,...n})=>k.createElement(pe,{...n,$flexLayout:t},e.map(({title:e,className:t,onClick:n,disabled:r},i)=>k.createElement(z,{key:i,className:t,onClick:n,disabled:!!r},e))),B=M.forwardRef((e,t)=>{let{children:n,...r}=e,i=M.Children.toArray(n),a=i.find(u);if(a){let e=a.props.children,n=i.map(t=>t===a?M.Children.count(e)>1?M.Children.only(null):M.isValidElement(e)?e.props.children:null:t);return(0,N.jsx)(V,{...r,ref:t,children:M.isValidElement(e)?M.cloneElement(e,void 0,n):null})}return(0,N.jsx)(V,{...r,ref:t,children:n})}),B.displayName=`Slot`,V=M.forwardRef((e,t)=>{let{children:n,...r}=e;if(M.isValidElement(n)){let e=f(n);return M.cloneElement(n,{...d(r,n.props),ref:t?c(t,e):e})}return M.Children.count(n)>1?M.Children.only(null):null}),V.displayName=`SlotClone`,he=({children:e})=>(0,N.jsx)(N.Fragment,{children:e}),H=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=ae.forwardRef((e,n)=>{let{asChild:r,...i}=e,a=r?B:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,se.jsx)(a,{...i,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{}),U=globalThis?.document?le.useLayoutEffect:()=>{},W=e=>{let{present:t,children:n}=e,r=m(t),i=typeof n==`function`?n({present:r.isPresent}):P.Children.only(n),a=l(r.ref,ee(i));return typeof n==`function`||r.isPresent?P.cloneElement(i,{ref:a}):null},W.displayName=`Presence`,ge=L.createContext(void 0),G=`ScrollArea`,[K,_e]=g(G),[ve,q]=K(G),J=j.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=j.useState(null),[u,d]=j.useState(null),[f,p]=j.useState(null),[m,h]=j.useState(null),[ee,g]=j.useState(null),[_,v]=j.useState(0),[y,b]=j.useState(0),[x,S]=j.useState(!1),[C,w]=j.useState(!1),T=l(t,e=>c(e)),E=te(i);return(0,R.jsx)(ve,{scope:n,type:r,dir:E,scrollHideDelay:a,scrollArea:s,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:x,onScrollbarXEnabledChange:S,scrollbarY:ee,onScrollbarYChange:g,scrollbarYEnabled:C,onScrollbarYEnabledChange:w,onCornerWidthChange:v,onCornerHeightChange:b,children:(0,R.jsx)(H.div,{dir:E,...o,ref:T,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":y+`px`,...e.style}})})}),J.displayName=G,ye=`ScrollAreaViewport`,be=j.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,asChild:i,nonce:a,...o}=e,s=q(ye,n),c=l(t,j.useRef(null),s.onViewportChange);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`
2
- [data-radix-scroll-area-viewport] {
3
- scrollbar-width: none;
4
- -ms-overflow-style: none;
5
- -webkit-overflow-scrolling: touch;
6
- }
7
- [data-radix-scroll-area-viewport]::-webkit-scrollbar {
8
- display: none;
9
- }
10
- :where([data-radix-scroll-area-viewport]) {
11
- display: flex;
12
- flex-direction: column;
13
- align-items: stretch;
14
- }
15
- :where([data-radix-scroll-area-content]) {
16
- flex-grow: 1;
17
- }
18
- `},nonce:a}),(0,R.jsx)(H.div,{"data-radix-scroll-area-viewport":``,...o,asChild:i,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:ie({asChild:i,children:r},e=>(0,R.jsx)(`div`,{"data-radix-scroll-area-content":``,ref:s.onContentChange,style:{minWidth:s.scrollbarXEnabled?`fit-content`:void 0},children:e}))})]})}),be.displayName=ye,Y=`ScrollAreaScrollbar`,xe=j.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(Y,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return j.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,R.jsx)(Se,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,R.jsx)(Ce,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,R.jsx)(we,{...r,ref:t,forceMount:n}):i.type===`always`?(0,R.jsx)(X,{...r,ref:t}):null}),xe.displayName=Y,Se=j.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(Y,e.__scopeScrollArea),[a,o]=j.useState(!1);return j.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,R.jsx)(W,{present:n||a,children:(0,R.jsx)(we,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),Ce=j.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=q(Y,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=D(()=>c(`SCROLL_END`),100),[s,c]=x(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return j.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),j.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,R.jsx)(W,{present:n||s!==`hidden`,children:(0,R.jsx)(X,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:b(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:b(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),we=j.forwardRef((e,t)=>{let n=q(Y,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=j.useState(!1),s=e.orientation===`horizontal`,c=D(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return O(n.viewport,c),O(n.content,c),(0,R.jsx)(W,{present:r||a,children:(0,R.jsx)(X,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),X=j.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=q(Y,e.__scopeScrollArea),a=j.useRef(null),o=j.useRef(0),[s,c]=j.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=C(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return T(e,o.current,s,t)}return n===`horizontal`?(0,R.jsx)(Te,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=E(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,R.jsx)(Ee,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=E(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),Te=j.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=q(Y,e.__scopeScrollArea),[o,s]=j.useState(),c=j.useRef(null),u=l(t,c,a.onScrollbarXChange);return j.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,R.jsx)(ke,{"data-orientation":`horizontal`,...i,ref:u,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":w(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),re(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:S(o.paddingLeft),paddingEnd:S(o.paddingRight)}})}})}),Ee=j.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=q(Y,e.__scopeScrollArea),[o,s]=j.useState(),c=j.useRef(null),u=l(t,c,a.onScrollbarYChange);return j.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,R.jsx)(ke,{"data-orientation":`vertical`,...i,ref:u,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":w(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),re(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:S(o.paddingTop),paddingEnd:S(o.paddingBottom)}})}})}),[De,Oe]=K(Y),ke=j.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:u,onWheelScroll:d,onResize:f,...p}=e,m=q(Y,n),[h,ee]=j.useState(null),g=l(t,e=>ee(e)),_=j.useRef(null),te=j.useRef(``),y=m.viewport,x=r.content-r.viewport,S=v(d),C=v(c),w=D(f,10);function T(e){if(_.current){let t=e.clientX-_.current.left,n=e.clientY-_.current.top;u({x:t,y:n})}}return j.useEffect(()=>{let e=e=>{let t=e.target;h?.contains(t)&&S(e,x)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[y,h,x,S]),j.useEffect(C,[r,C]),O(h,w),O(m.content,w),(0,R.jsx)(De,{scope:n,scrollbar:h,hasThumb:i,onThumbChange:v(a),onThumbPointerUp:v(o),onThumbPositionChange:C,onThumbPointerDown:v(s),children:(0,R.jsx)(H.div,{...p,ref:g,style:{position:`absolute`,...p.style},onPointerDown:b(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=h.getBoundingClientRect(),te.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,m.viewport&&(m.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:b(e.onPointerMove,T),onPointerUp:b(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=te.current,m.viewport&&(m.viewport.style.scrollBehavior=``),_.current=null})})})}),Z=`ScrollAreaThumb`,Ae=j.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Oe(Z,e.__scopeScrollArea);return(0,R.jsx)(W,{present:n||i.hasThumb,children:(0,R.jsx)(je,{ref:t,...r})})}),je=j.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=q(Z,n),o=Oe(Z,n),{onThumbPositionChange:s}=o,c=l(t,e=>o.onThumbChange(e)),u=j.useRef(),d=D(()=>{u.current&&=(u.current(),void 0)},100);return j.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{if(d(),!u.current){let t=Pe(e,s);u.current=t,s()}};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,d,s]),(0,R.jsx)(H.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:b(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:b(e.onPointerUp,o.onThumbPointerUp)})}),Ae.displayName=Z,Q=`ScrollAreaCorner`,Me=j.forwardRef((e,t)=>{let n=q(Q,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,R.jsx)(Ne,{...e,ref:t}):null}),Me.displayName=Q,Ne=j.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=q(Q,n),[a,o]=j.useState(0),[s,c]=j.useState(0),l=!!(a&&s);return O(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),O(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,R.jsx)(H.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null}),Pe=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)},Fe=J,Ie=be,Le=xe,Re=Ae,ze=Me,Be=a(Fe)(({scrollbarsize:e,offset:t})=>({width:`100%`,height:`100%`,overflow:`hidden`,"--scrollbar-size":`${e+t}px`,"--radix-scroll-area-thumb-width":`${e}px`})),Ve=a(Ie)(({focusable:e,theme:t})=>({width:`100%`,height:`100%`,"&:focus":e?{outline:`2px solid ${t.color.secondary}`,outlineOffset:-2}:{}})),He=a(Le)(({offset:e,horizontal:t,vertical:n})=>({display:`flex`,userSelect:`none`,touchAction:`none`,background:`transparent`,transition:`all 0.2s ease-out`,borderRadius:`var(--scrollbar-size)`,zIndex:1,'&[data-orientation="vertical"]':{width:`var(--scrollbar-size)`,paddingRight:e,marginTop:e,marginBottom:t===`true`&&n===`true`?0:e},'&[data-orientation="horizontal"]':{flexDirection:`column`,height:`var(--scrollbar-size)`,paddingBottom:e,marginLeft:e,marginRight:t===`true`&&n===`true`?0:e}})),Ue=a(Re)(({theme:e})=>({flex:1,background:e.textMutedColor,opacity:.5,borderRadius:`var(--scrollbar-size)`,position:`relative`,transition:`opacity 0.2s ease-out`,zIndex:1,"&:hover":{opacity:.8},"::before":{content:`""`,position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%,-50%)`,width:`100%`,height:`100%`}})),We=(0,A.forwardRef)(({children:e,horizontal:t=!1,vertical:n=!1,offset:r=2,scrollbarSize:i=6,scrollPadding:a=0,className:o,focusable:s=!1},c)=>A.createElement(Be,{scrollbarsize:i,offset:r,className:o},A.createElement(Ve,{ref:c,style:{scrollPadding:a},tabIndex:s?0:void 0,focusable:s},e),t&&A.createElement(He,{orientation:`horizontal`,offset:r,horizontal:t.toString(),vertical:n.toString()},A.createElement(Ue,null)),n&&A.createElement(He,{orientation:`vertical`,offset:r,horizontal:t.toString(),vertical:n.toString()},A.createElement(Ue,null)),t&&n&&A.createElement(ze,null))),We.displayName=`ScrollArea`}));function Ke(e,t=`assertive`,n=7e3){$?$.announce(e,t,n):($=new Je,(typeof IS_REACT_ACT_ENVIRONMENT==`boolean`?IS_REACT_ACT_ENVIRONMENT:typeof jest<`u`)?$.announce(e,t,n):setTimeout(()=>{$?.isAttached()&&$?.announce(e,t,n)},100))}function qe(e){$&&$.clear(e)}var $,Je,Ye=t((()=>{$=null,Je=class{isAttached(){return this.node?.isConnected}createLog(e){let t=document.createElement(`div`);return t.setAttribute(`role`,`log`),t.setAttribute(`aria-live`,e),t.setAttribute(`aria-relevant`,`additions`),t}destroy(){this.node&&=(document.body.removeChild(this.node),null)}announce(e,t=`assertive`,n=7e3){var r,i;if(!this.node)return;let a=document.createElement(`div`);typeof e==`object`?(a.setAttribute(`role`,`img`),a.setAttribute(`aria-labelledby`,e[`aria-labelledby`])):a.textContent=e,t===`assertive`?(r=this.assertiveLog)==null||r.appendChild(a):(i=this.politeLog)==null||i.appendChild(a),e!==``&&setTimeout(()=>{a.remove()},n)}clear(e){this.node&&((!e||e===`assertive`)&&this.assertiveLog&&(this.assertiveLog.innerHTML=``),(!e||e===`polite`)&&this.politeLog&&(this.politeLog.innerHTML=``))}constructor(){this.node=null,this.assertiveLog=null,this.politeLog=null,typeof document<`u`&&(this.node=document.createElement(`div`),this.node.dataset.liveAnnouncer=`true`,Object.assign(this.node.style,{border:0,clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,width:`1px`,whiteSpace:`nowrap`}),this.assertiveLog=this.createLog(`assertive`),this.node.appendChild(this.assertiveLog),this.politeLog=this.createLog(`polite`),this.node.appendChild(this.politeLog),document.body.prepend(this.node))}}}));export{We as a,me as i,qe as n,Ge as o,Ye as r,Ke as t};
@@ -1,2 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-BJGIOdSH.js";import{E as n,c as r,l as i,m as a}from"./blocks-ixiC6_NZ.js";import{t as o}from"./mdx-react-shim-CmoAsjhK.js";var s,c=e((()=>{s='# Context Menu\n\nУниверсальный модуль меню с двумя сценариями открытия:\n\n- `DropdownMenu` — открытие по обычному клику.\n- `ContextMenu` — открытие строго по событию `contextmenu` (правый клик), также поддержан клавиатурный вызов `Shift+F10` и клавиша `ContextMenu`.\n\nРеализация разделена на:\n\n- функциональный слой в `src/shared/lib/context-menu`;\n- UI-слой в `src/shared/ui/basic/context-menu`.\n\nМодуль готов к production-использованию: поддерживает controlled/uncontrolled режим, позиционирование через `floating-ui`, анимацию через `motion`, базовую a11y-разметку и клавиатурную навигацию.\n\n---\n\n## Быстрый старт\n\n```tsx\nimport { ContextMenu, DropdownMenu } from "@/shared/ui";\n```\n\n### Обычное меню (по клику)\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Действия</button>\n </DropdownMenu.Trigger>\n\n <DropdownMenu.Content>\n <DropdownMenu.Item>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item>Копировать</DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.Item>Удалить</DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n### Контекстное меню (по правому клику)\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.Content>\n <ContextMenu.Item>Переименовать</ContextMenu.Item>\n <ContextMenu.Item>Дублировать</ContextMenu.Item>\n <ContextMenu.Separator />\n <ContextMenu.Item>Переместить в корзину</ContextMenu.Item>\n </ContextMenu.Content>\n</ContextMenu>\n```\n\n### Радиальное контекстное меню\n\nРадиальное меню подходит для короткого набора частых действий, которые удобно выбирать вокруг точки вызова. Для длинных списков, групп, разделителей и вложенных сценариев используйте обычный `ContextMenu.Content`.\n\n```tsx\n<ContextMenu>\n <ContextMenu.Trigger>\n <div style={{ width: 320, height: 180 }}>Нажмите правой кнопкой мыши</div>\n </ContextMenu.Trigger>\n\n <ContextMenu.RadialContent>\n <ContextMenu.RadialItem icon={<PencilLine />}>Править</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Copy />}>Копия</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Pin />}>Закрепить</ContextMenu.RadialItem>\n <ContextMenu.RadialItem icon={<Eye />}>Просмотр</ContextMenu.RadialItem>\n </ContextMenu.RadialContent>\n</ContextMenu>\n```\n\nВ v1 радиальное меню поддерживает выбор только кликом по пункту. Выбор жестом по направлению движения и отпусканию кнопки мыши не реализован.\n\n---\n\n## API: UI-слой\n\n## `DropdownMenu`\n\nRoot-компонент для меню, открываемого по клику.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | ---------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"bottom-start"` | Позиция меню относительно trigger-элемента |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu`\n\nRoot-компонент для меню, открываемого по `contextmenu`.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| -------------- | ---------------------------------- | --------------- | ---------------------------------------------------------------------------------- |\n| `children` | `React.ReactNode` | — | Композиция из `Trigger`, `Content` и опционально `Item`, `Separator`, `GroupLabel` |\n| `placement` | `Placement` (`@floating-ui/react`) | `"right-start"` | Позиция меню относительно точки правого клика |\n| `open` | `boolean` | — | Controlled-состояние открытия |\n| `defaultOpen` | `boolean` | `false` | Начальное состояние в uncontrolled-режиме |\n| `onOpenChange` | `(open: boolean) => void` | — | Колбэк изменения состояния |\n\n---\n\n## `ContextMenu.RadialContent`\n\nКольцевой контейнер для коротких контекстных команд вокруг точки открытия.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | --------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Набор `ContextMenu.RadialItem` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n| `restoreFocus` | `boolean` | `true` | Возвращать ли фокус в trigger после закрытия |\n| `radius` | `number` | `76` | Радиус раскладки пунктов в пикселях |\n| `itemSize` | `number` | `64` | Размер одного пункта в пикселях |\n| `closeLabel` | `string` | `"Закрыть"` | Текст и `aria-label` центральной кнопки |\n\n### Поведение\n\n- Рендер в `document.body` через портал.\n- Центрируется на точке правого клика или на центре trigger-элемента при `Shift+F10`.\n- Центральная кнопка закрывает меню и не участвует в раскладке `RadialItem`.\n- Не выходит за границы viewport.\n- Навигация с клавиатуры: `ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`, `Home`, `End`, `Escape`.\n- Оптимальный диапазон — 4-8 пунктов.\n\n---\n\n## `ContextMenu.RadialItem`\n\nПункт радиального меню.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------------ | ------------ | --------------------------- |\n| `children` | `React.ReactNode` | — | Подпись пункта |\n| `icon` | `React.ReactNode` | — | Иконка над подписью |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLButtonElement>) => void` | — | Обработчик выбора |\n\n---\n\n## `*.Trigger`\n\nКомпоненты-триггеры:\n\n- `DropdownMenu.Trigger`\n- `ContextMenu.Trigger`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ---------- | -------------------- | ------------ | ------------------------------------------------------------------- |\n| `children` | `React.ReactElement` | — | Единственный дочерний элемент, в который пробрасываются обработчики |\n\n### Важные детали\n\n- Для `DropdownMenu.Trigger` используется `onClick`.\n- Для `ContextMenu.Trigger` используется `onContextMenu` (с `preventDefault()`).\n- В оба trigger-компонента добавляются `aria-haspopup="menu"` и `aria-expanded`.\n- Вызов через клавиатуру работает в обоих триггерах: `Shift+F10` и `ContextMenu`.\n\n---\n\n## `*.Content`\n\nКомпонент отображения меню:\n\n- `DropdownMenu.Content`\n- `ContextMenu.Content`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------------- | -------------------------------------------------------------------------- | ------------ | ---------------------------------------------- |\n| `children` | `React.ReactNode \\| ((ctx: { closeMenu: () => void }) => React.ReactNode)` | — | Контент меню или render-function с `closeMenu` |\n| `className` | `string` | — | Дополнительный CSS-класс контейнера меню |\n| `closeOnOutside` | `boolean` | `true` | Закрывать ли меню при клике вне него |\n| `closeOnEscape` | `boolean` | `true` | Закрывать ли меню по клавише `Escape` |\n| `disableOutsideClick` | `boolean` | `false` | Полностью выключить закрытие по клику снаружи |\n\n### Поведение по умолчанию\n\n- Рендер в `document.body` через портал.\n- Роль контейнера: `role="menu"`.\n- Автофокус на первый доступный пункт меню.\n- Навигация с клавиатуры:\n- `ArrowDown`, `ArrowUp`\n- `Home`, `End`\n- `Escape`\n\n---\n\n## `*.Item`\n\nПункт меню:\n\n- `DropdownMenu.Item`\n- `ContextMenu.Item`\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| --------------- | ------------------------------------------------ | ------------ | ---------------------------------- |\n| `children` | `React.ReactNode` | — | Текст/контент пункта |\n| `icon` | `React.ReactNode` | — | Иконка слева |\n| `hotKey` | `string` | — | Подсказка сочетания клавиш справа |\n| `className` | `string` | — | Дополнительный CSS-класс |\n| `disabled` | `boolean` | `false` | Блокирует выбор пункта |\n| `href` | `string` | — | Рендер как `<a>` вместо `<button>` |\n| `target` | `string` | — | Атрибут ссылки |\n| `rel` | `string` | — | Атрибут ссылки |\n| `closeOnSelect` | `boolean` | `true` | Закрывать меню после выбора |\n| `onSelect` | `(event: React.MouseEvent<HTMLElement>) => void` | — | Обработчик выбора |\n\n### Поведение\n\n- Если передан `href`, рендерится ссылка `<a role="menuitem">`.\n- Если `href` не передан, рендерится `<button role="menuitem">`.\n- Если `disabled`, выбор блокируется и закрытие не выполняется.\n\n---\n\n## `*.Separator`\n\nРазделитель группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | -------- | ------------ | ------------------------ |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## `*.GroupLabel`\n\nЛейбл группы пунктов.\n\n### Props\n\n| Prop | Тип | По умолчанию | Описание |\n| ----------- | ----------------- | ------------ | ------------------------ |\n| `children` | `React.ReactNode` | — | Текст группы |\n| `className` | `string` | — | Дополнительный CSS-класс |\n\n---\n\n## API: функциональный слой (`src/shared/lib/context-menu`)\n\nИмпорт:\n\n```ts\nimport {\n initialMenuState,\n openMenu,\n closeMenu,\n toggleMenu,\n getMenuPointFromEvent,\n getMenuPointFromRect,\n createVirtualAnchor\n} from "@/shared/lib/context-menu";\n```\n\n### Типы\n\n```ts\ninterface MenuPoint {\n x: number;\n y: number;\n}\n\ntype MenuOpenSource = "click" | "contextmenu" | "keyboard" | "programmatic";\n\ntype MenuAnchor = { type: "element"; element: HTMLElement } | { type: "point"; point: MenuPoint; contextElement?: Element | null };\n\ninterface MenuState {\n open: boolean;\n source: MenuOpenSource | null;\n anchor: MenuAnchor | null;\n}\n\ninterface OpenMenuPayload {\n source: MenuOpenSource;\n anchor: MenuAnchor;\n}\n```\n\n### Функции состояния\n\n| Функция | Сигнатура | Назначение |\n| ------------------ | ----------------------------------------------------------- | ------------------------------------- |\n| `initialMenuState` | `MenuState` | Начальное состояние закрытого меню |\n| `openMenu` | `(payload: OpenMenuPayload) => MenuState` | Создать состояние открытого меню |\n| `closeMenu` | `(state: MenuState) => MenuState` | Закрыть меню и очистить anchor/source |\n| `toggleMenu` | `(state: MenuState, payload: OpenMenuPayload) => MenuState` | Переключить состояние |\n\n### Функции позиционирования\n\n| Функция | Сигнатура | Назначение |\n| ----------------------- | ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------- |\n| `getMenuPointFromEvent` | `(event: { clientX: number; clientY: number }) => MenuPoint` | Получить координаты из mouse event |\n| `getMenuPointFromRect` | `(rect: { left: number; top: number; width: number; height: number }) => MenuPoint` | Получить центр прямоугольника |\n| `createVirtualAnchor` | `(point: MenuPoint, contextElement?: Element \\| null) => { getBoundingClientRect(): DOMRect; contextElement?: Element }` | Создать virtual anchor для `floating-ui` |\n\n---\n\n## Примеры использования\n\n## 1) Controlled `DropdownMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenu.Trigger>\n <button type="button">{open ? "Скрыть" : "Показать"} меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.Item onSelect={() => console.log("Edit")}>Редактировать</DropdownMenu.Item>\n <DropdownMenu.Item onSelect={() => setOpen(false)}>Закрыть вручную</DropdownMenu.Item>\n </DropdownMenu.Content>\n </DropdownMenu>\n);\n```\n\n## 2) Controlled `ContextMenu`\n\n```tsx\nconst [open, setOpen] = useState(false);\n\nreturn (\n <ContextMenu open={open} onOpenChange={setOpen}>\n <ContextMenu.Trigger>\n <div tabIndex={0}>Правая кнопка мыши</div>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n <ContextMenu.Item onSelect={() => alert("Открыть")}>Открыть</ContextMenu.Item>\n </ContextMenu.Content>\n </ContextMenu>\n);\n```\n\n## 3) Группы, иконки, горячие клавиши\n\n```tsx\n<DropdownMenu>\n <DropdownMenu.Trigger>\n <button type="button">Меню</button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content>\n <DropdownMenu.GroupLabel>Документ</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<FilePenLine size={14} />} hotKey="Ctrl+E">\n Редактировать\n </DropdownMenu.Item>\n <DropdownMenu.Item icon={<Copy size={14} />} hotKey="Ctrl+C">\n Копировать\n </DropdownMenu.Item>\n <DropdownMenu.Separator />\n <DropdownMenu.GroupLabel>Опасные</DropdownMenu.GroupLabel>\n <DropdownMenu.Item icon={<Trash2 size={14} />} hotKey="Del">\n Удалить\n </DropdownMenu.Item>\n </DropdownMenu.Content>\n</DropdownMenu>\n```\n\n## 4) Пункт-ссылка\n\n```tsx\n<ContextMenu.Item href="/docs/123" target="_blank" rel="noreferrer">\n Открыть документацию\n</ContextMenu.Item>\n```\n\n## 5) Оставлять меню открытым после выбора\n\n```tsx\n<DropdownMenu.Item closeOnSelect={false} onSelect={() => setFilter("active")}>\n Только активные\n</DropdownMenu.Item>\n```\n\n## 6) Render-function контента с `closeMenu`\n\n```tsx\n<ContextMenu.Content>\n {({ closeMenu }) => (\n <div>\n <ContextMenu.Item onSelect={() => runCommand("rename")}>Переименовать</ContextMenu.Item>\n <button type="button" onClick={closeMenu}>\n Закрыть\n </button>\n </div>\n )}\n</ContextMenu.Content>\n```\n\n## 7) Асинхронный `onSelect` с ручным закрытием\n\n```tsx\n<DropdownMenu.Item\n closeOnSelect={false}\n onSelect={async () => {\n await saveDraft();\n notify("Черновик сохранен");\n }}>\n Сохранить черновик\n</DropdownMenu.Item>\n```\n\n## 8) Отключить закрытие по клику вне меню\n\n```tsx\n<DropdownMenu.Content disableOutsideClick closeOnEscape>\n <DropdownMenu.Item>Пункт</DropdownMenu.Item>\n</DropdownMenu.Content>\n```\n\n## 9) Кастомные стили контейнера\n\n```tsx\n<ContextMenu.Content className="myContextMenu">\n <ContextMenu.Item>Кастомный пункт</ContextMenu.Item>\n</ContextMenu.Content>\n```\n\n```scss\n.myContextMenu {\n min-width: 18rem;\n max-width: 28rem;\n}\n```\n\n## 10) Использование low-level функций `shared/lib/context-menu`\n\n```ts\nimport { closeMenu, initialMenuState, openMenu, toggleMenu } from "@/shared/lib/context-menu";\n\nlet state = initialMenuState;\n\nstate = openMenu({\n source: "programmatic",\n anchor: {\n type: "point",\n point: { x: 100, y: 200 }\n }\n});\n\nstate = toggleMenu(state, {\n source: "click",\n anchor: {\n type: "point",\n point: { x: 120, y: 220 }\n }\n});\n\nstate = closeMenu(state);\n```\n\n---\n\n## Доступность и клавиатура\n\n- `Trigger` получает `aria-haspopup="menu"` и `aria-expanded`.\n- Контент рендерится с `role="menu"`.\n- Элементы действий рендерятся с `role="menuitem"`.\n- Поддержка клавиш:\n- `Shift+F10` / `ContextMenu` для открытия;\n- `ArrowUp` / `ArrowDown` для перемещения;\n- `Home` / `End` для перехода к первому/последнему пункту;\n- `Escape` для закрытия.\n\n---\n\n## Storybook\n\nИстории находятся в:\n\n- `src/shared/ui/atomic/context-menu/stories/ContextMenu.stories.tsx`\n\nОсновные сценарии:\n\n- `DropdownMenu / Базовый`\n- `ContextMenu / По правому клику`\n- `DropdownMenu / Контролируемый`\n\n---\n\n## Внутренние детали реализации\n\n- Позиционирование: `@floating-ui/react`.\n- Анимация открытия/закрытия: `motion/react` (`AnimatePresence`, `motion.div`).\n- Для совместимости с анимацией позиционирование `floating-ui` переведено на `top/left` (`transform: false`), чтобы исключить конфликт `transform` со стороны `motion`.\n\n---\n\n## Тесты\n\nПокрыты функциональные утилиты слоя `shared/lib/context-menu`:\n\n- `src/shared/lib/context-menu/state.test.ts`\n- `src/shared/lib/context-menu/anchor.test.ts`\n\nЗапуск:\n\n```bash\nnpx vitest run src/shared/lib/context-menu/state.test.ts src/shared/lib/context-menu/anchor.test.ts\n```\n'}));function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i,{title:`Документация/shared/ui/contextMenu`}),`
2
- `,(0,d.jsx)(r,{children:s})]})}function u(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}var d;e((()=>{d=t(),o(),a(),c()}))();export{u as default};
@@ -1,461 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-BJGIOdSH.js";import{E as n,c as r,l as i,m as a}from"./blocks-ixiC6_NZ.js";import{t as o}from"./mdx-react-shim-CmoAsjhK.js";var s,c=e((()=>{s=`# Модуль форматирования дат
2
-
3
- Утилитарный модуль для форматирования, парсинга и простых календарных операций в "плавающей" календарной семантике.
4
- Человекочитаемые форматы строятся на заранее созданных \`Intl.DateTimeFormat\`, чтобы переиспользовать formatter в больших таблицах и не создавать \`Intl\` на каждый вызов.
5
-
6
- ## Ключевая идея
7
-
8
- Модуль намеренно не пересчитывает входные значения по timezone клиента. Для него важны видимые календарные компоненты:
9
-
10
- - год
11
- - месяц
12
- - день
13
- - часы
14
- - минуты
15
- - секунды
16
-
17
- Например, строка \`2026-03-03T18:03:50Z\` будет трактоваться как "03.03.2026 18:03:50", а не как локально пересчитанное время браузера.
18
-
19
- В настройках \`Intl\` поля \`timeZone\` и \`timeZoneName\` намеренно игнорируются. Даже если пользовательская предустановка передаст их явно, форматирование не должно сдвигать календарные компоненты и не должно выводить \`GMT\`/\`UTC\`-метку.
20
-
21
- Это поведение одинаково важно для:
22
-
23
- - ISO-строк с timezone
24
- - OData ticks и OData literals
25
- - timestamp-значений
26
- - ручного форматирования через пресеты
27
-
28
- ## Что умеет модуль
29
-
30
- - форматировать даты и диапазоны
31
- - нормализовать \`Date | null | [Date | null, Date | null]\` в диапазон \`Date\`
32
- - парсить вход из \`unknown\`
33
- - разбирать даты по пользовательскому шаблону
34
- - приводить результат парсинга к \`Date | null\`
35
- - хранить и переопределять именованные пресеты форматирования
36
- - выполнять базовые календарные операции без timezone-сдвига
37
-
38
- ## Поддерживаемые входы
39
-
40
- - \`Date\`
41
- - \`number\` с Unix timestamp в секундах или миллисекундах
42
- - ISO local: \`2026-03-03\`, \`2026-03-03T18:03:50.327\`
43
- - ISO zoned: \`2026-03-03T18:03:50Z\`, \`2026-03-03T18:03:50+05:00\`
44
- - OData ticks: \`/Date(1772524230327)/\`, \`/Date(1772513430327+0300)/\`
45
- - OData literals: \`datetime'2026-03-03T18:03:50'\`, \`datetimeoffset'2026-03-03T18:03:50Z'\`
46
- - ABAP compact: \`20260303\`
47
- - ABAP dotted: \`03.03.2026\`
48
- - slash-date: \`03/03/2026\`
49
- - ISO-8601 duration: \`PT2H30M\`, \`P1DT2H3M4S\`
50
-
51
- ## Встроенные пресеты
52
-
53
- - \`date\`: \`dd.MM.yyyy\`
54
- - \`datetime\`: \`dd.MM.yyyy HH:mm\`
55
- - \`datetime-seconds\`: \`dd.MM.yyyy HH:mm:ss\`
56
- - \`time\`: \`HH:mm\`
57
- - \`time-seconds\`: \`HH:mm:ss\`
58
- - \`date-short\`: \`03.03.2026\`
59
- - \`date-medium\`: \`3 мар. 2026 г.\`
60
- - \`date-long\`: \`3 марта 2026 г.\`
61
- - \`month-short\`: \`3 мар.\`
62
- - \`month-long\`: \`3 марта\`
63
- - \`time-short\`: \`18:03\`
64
- - \`time-medium\`: \`18:03:50\`
65
- - \`time-long\`: \`18:03:50\`
66
- - \`datetime-short\`: \`03.03.2026, 18:03\`
67
- - \`datetime-medium\`: \`3 мар. 2026 г., 18:03:50\`
68
- - \`datetime-long\`: \`3 марта 2026 г., 18:03:50\`
69
- - \`odata-date\`: \`yyyy-MM-dd\`
70
- - \`odata-datetime\`: \`yyyy-MM-ddTHH:mm:ss\`
71
- - \`abap-date\`: \`yyyyMMdd\`
72
- - \`abap-datetime\`: \`yyyyMMddHHmmss\`
73
-
74
- Style-пресеты используют \`Intl.DateTimeFormat\` с \`ru-RU\`, но время описано явными полями. Это важно для \`long\`: стандартный \`timeStyle: "long"\` добавляет timezone, а в этом модуле timezone-семантика запрещена.
75
-
76
- Значения по умолчанию для любого пресета:
77
-
78
- \`\`\`ts
79
- {
80
- locale: "ru-RU",
81
- intlOptions: { day: "2-digit", month: "2-digit", year: "numeric" },
82
- invalidFallback: ""
83
- }
84
- \`\`\`
85
-
86
- ## Быстрый старт
87
-
88
- \`\`\`ts
89
- import { formatDate, formatDateAsDateTime, formatDateRange, normalizeDateRange } from "@/shared/lib";
90
-
91
- formatDate("2026-03-03T18:03:50.327Z", "datetime");
92
- // "03.03.2026 18:03"
93
-
94
- formatDateAsDateTime("/Date(1772524230327)/");
95
- // "03.03.2026 18:03"
96
-
97
- formatDateRange("2026-03-03T18:03:50Z", "2026-03-04T05:20:00+03:00", "datetime");
98
- // "03.03.2026 18:03 - 04.03.2026 05:20"
99
-
100
- normalizeDateRange(new Date(2026, 2, 3, 18, 3));
101
- // [Date(2026-03-03 00:00:00), Date(2026-03-03 23:59:59)]
102
- \`\`\`
103
-
104
- ## Форматирование
105
-
106
- ### \`formatDate\`
107
-
108
- Универсальный вход в форматирование.
109
-
110
- \`\`\`ts
111
- import { formatDate } from "@/shared/lib";
112
-
113
- formatDate("20260303", "date");
114
- // "03.03.2026"
115
-
116
- formatDate("2026-06-25", "month-short");
117
- // "25 июн."
118
-
119
- formatDate("datetimeoffset'2026-03-03T18:03:50.327Z'", "datetimeSeconds");
120
- // "03.03.2026 18:03:50"
121
- \`\`\`
122
-
123
- Можно передавать не только имя пресета, но и объект пресета:
124
-
125
- \`\`\`ts
126
- formatDate("2026-03-03T18:03:50", {
127
- name: "machine",
128
- pattern: "yyyy-MM-ddTHH:mm:ss",
129
- locale: "ru-RU",
130
- invalidFallback: ""
131
- });
132
- // "2026-03-03T18:03:50"
133
- \`\`\`
134
-
135
- Для человекочитаемых форматов лучше передавать \`intlOptions\`. Такой объект будет скомпилирован один раз и переиспользован через внутренний \`WeakMap\`, если переиспользуется сама ссылка на объект:
136
-
137
- \`\`\`ts
138
- import type { DateFormatPreset } from "@/shared/lib";
139
-
140
- const monthDatePreset = {
141
- name: "month-date",
142
- locale: "ru-RU",
143
- intlOptions: { day: "numeric", month: "long" },
144
- invalidFallback: ""
145
- } satisfies DateFormatPreset;
146
-
147
- formatDate("2026-03-03T18:03:50Z", monthDatePreset);
148
- // "3 марта"
149
- \`\`\`
150
-
151
- Можно задать fallback:
152
-
153
- \`\`\`ts
154
- formatDate("abc", "datetime", { fallback: "н/д" });
155
- // "н/д"
156
- \`\`\`
157
-
158
- ### \`formatDateAsDate\`, \`formatDateAsMonthLong\`, \`formatDateAsDateTime\`, \`formatDateAsTime\`
159
-
160
- Упрощённые helper-обёртки поверх встроенных пресетов:
161
-
162
- \`\`\`ts
163
- import { formatDateAsDate, formatDateAsDateTime, formatDateAsMonthLong, formatDateAsTime } from "@/shared/lib";
164
-
165
- formatDateAsDate("2026-03-03T18:03:50Z");
166
- // "03.03.2026"
167
-
168
- formatDateAsMonthLong("2026-03-03T18:03:50Z");
169
- // "3 марта"
170
-
171
- formatDateAsDateTime("2026-03-03T18:03:50Z");
172
- // "03.03.2026 18:03"
173
-
174
- formatDateAsTime("2026-03-03T18:03:50Z");
175
- // "18:03"
176
- \`\`\`
177
-
178
- ### \`formatDateRange\`
179
-
180
- Форматирует две даты в строку вида \`start - end\`.
181
-
182
- \`\`\`ts
183
- import { formatDateRange } from "@/shared/lib";
184
-
185
- formatDateRange("2026-03-03T18:03:50Z", "2026-03-03T22:10:00Z", "timeSeconds");
186
- // "18:03:50 - 22:10:00"
187
- \`\`\`
188
-
189
- ### \`normalizeDateRange\`, \`requireDateRange\`
190
-
191
- Нормализуют UI-значение диапазона в пару дат. Одиночная дата и частично заполненный диапазон превращаются в полный календарный день.
192
- Пара дат всегда упорядочивается от меньшей к большей.
193
-
194
- \`\`\`ts
195
- import { normalizeDateRange, requireDateRange } from "@/shared/lib";
196
-
197
- normalizeDateRange(new Date(2026, 2, 3, 18, 3));
198
- // [Date(2026-03-03 00:00:00), Date(2026-03-03 23:59:59)]
199
-
200
- normalizeDateRange([new Date(2026, 2, 5, 18, 3), new Date(2026, 2, 3, 5, 20)]);
201
- // [Date(2026-03-03 00:00:00), Date(2026-03-05 23:59:59)]
202
-
203
- normalizeDateRange([new Date(2026, 2, 5, 18, 3), new Date(2026, 2, 3, 5, 20)], { timeMode: "preserve" });
204
- // [Date(2026-03-03 05:20:00), Date(2026-03-05 18:03:00)]
205
-
206
- normalizeDateRange(null);
207
- // null
208
-
209
- requireDateRange(null);
210
- // Error: Диапазон дат не задан
211
- \`\`\`
212
-
213
- ### Форматирование \`duration\`
214
-
215
- \`duration\` поддерживается только для time-шаблонов. Если шаблон содержит токены даты, вернётся fallback.
216
-
217
- \`\`\`ts
218
- formatDate("PT2H30M", "time");
219
- // "02:30"
220
-
221
- formatDate("P1DT2H3M4S", "timeSeconds");
222
- // "26:03:04"
223
-
224
- formatDate("PT12H", "date", { fallback: "н/д" });
225
- // "н/д"
226
- \`\`\`
227
-
228
- ## Парсинг
229
-
230
- ### \`parseDateValue\`
231
-
232
- Возвращает подробный результат с признаком типа:
233
-
234
- \`\`\`ts
235
- import { parseDateValue } from "@/shared/lib";
236
-
237
- parseDateValue("2026-03-03T18:03:50Z");
238
- // {
239
- // kind: "date-time",
240
- // source: "iso-zoned",
241
- // date: Date
242
- // }
243
-
244
- parseDateValue("PT2H30M");
245
- // {
246
- // kind: "duration",
247
- // source: "iso-duration",
248
- // durationMs: 9000000
249
- // }
250
- \`\`\`
251
-
252
- Источники \`source\` для \`kind: "date-time"\`:
253
-
254
- - \`date-object\`
255
- - \`timestamp\`
256
- - \`odata-ticks\`
257
- - \`odata-literal\`
258
- - \`abap-compact\`
259
- - \`abap-dotted\`
260
- - \`slash-date\`
261
- - \`iso-local\`
262
- - \`iso-zoned\`
263
-
264
- \`null\` возвращается для:
265
-
266
- - \`null\` и \`undefined\`
267
- - пустых строк
268
- - строк \`"null"\` и \`"undefined"\`
269
- - невалидных \`Date\`
270
- - неподдерживаемых типов
271
- - битых дат и duration-строк
272
-
273
- ### \`parseDateByPattern\`
274
-
275
- Парсит строку по пользовательскому шаблону с токенами:
276
-
277
- - \`dd\`
278
- - \`MM\`
279
- - \`yyyy\`
280
- - \`yy\`
281
-
282
- \`\`\`ts
283
- import { parseDateByPattern } from "@/shared/lib";
284
-
285
- parseDateByPattern("03/03/2026", "dd/MM/yyyy");
286
- // { kind: "date-time", source: "iso-local", date: Date }
287
-
288
- parseDateByPattern("03-03-69", "dd-MM-yy");
289
- // 03.03.2069
290
-
291
- parseDateByPattern("03+03+2026", "dd+MM+yyyy");
292
- // 03.03.2026
293
- \`\`\`
294
-
295
- Если \`value\` не строка, \`parseDateByPattern\` делегирует обработку в \`parseDateValue\`.
296
-
297
- ## Обёртки с результатом \`Date | null\`
298
-
299
- ### \`parseDate\`
300
-
301
- Если нужен не подробный объект, а сразу \`Date | null\`, используй эту обёртку:
302
-
303
- \`\`\`ts
304
- import { parseDate } from "@/shared/lib";
305
-
306
- parseDate("2026-03-03T18:03:50Z");
307
- // Date(2026-03-03 18:03:50)
308
-
309
- parseDate("PT2H30M");
310
- // Date(1970-01-01 02:30:00)
311
- \`\`\`
312
-
313
- Для \`duration\` модуль строит \`Date\` из длительности без timezone-сдвига, сохраняя видимые UTC-компоненты. Это удобно для унификации API, но важно помнить: длительность и календарная дата не одно и то же.
314
-
315
- Например:
316
-
317
- - \`PT2H30M\` можно безопасно представить как \`01.01.1970 02:30\`
318
- - \`P1DT2H3M4S\` уже становится календарной датой \`02.01.1970 02:03:04\`
319
- - \`PT30H\` не сохраняет семантику "30 часов" как отдельную длительность, а превращается в календарное смещение
320
-
321
- Если downstream-код должен различать дату и длительность, лучше использовать \`parseDateValue\`, а не \`parseDate\`.
322
-
323
- ## Работа с пресетами
324
-
325
- ### Просмотр пресетов
326
-
327
- \`\`\`ts
328
- import { getDatePreset, getDatePresetNames } from "@/shared/lib";
329
-
330
- getDatePresetNames();
331
- // ["date", "datetime", "datetimeSeconds", "time", "timeSeconds"]
332
-
333
- getDatePreset("datetime");
334
- // { name: "datetime", pattern: "dd.MM.yyyy HH:mm", ... }
335
- \`\`\`
336
-
337
- ### Регистрация пользовательского пресета
338
-
339
- \`\`\`ts
340
- import { formatDate, registerDatePreset } from "@/shared/lib";
341
-
342
- registerDatePreset({
343
- name: "machine",
344
- pattern: "yyyy-MM-ddTHH:mm:ss"
345
- });
346
-
347
- formatDate("2026-03-03T18:03:50", "machine");
348
- // "2026-03-03T18:03:50"
349
- \`\`\`
350
-
351
- ### Сброс пресетов и очистка кэша форматирования
352
-
353
- \`\`\`ts
354
- import { clearDateFormatCache, resetDatePresets } from "@/shared/lib";
355
-
356
- resetDatePresets();
357
- clearDateFormatCache();
358
- \`\`\`
359
-
360
- Обычно \`clearDateFormatCache()\` имеет смысл вызывать после массового изменения пресетов, если форматирование уже использовалось ранее.
361
-
362
- ## Календарные helper-функции
363
-
364
- ### \`createCalendarDate\`
365
-
366
- Создаёт локальный \`Date\` без дополнительной timezone-семантики:
367
-
368
- \`\`\`ts
369
- import { createCalendarDate } from "@/shared/lib";
370
-
371
- createCalendarDate(2026, 2, 3, 18, 3, 50);
372
- // 03.03.2026 18:03:50
373
- \`\`\`
374
-
375
- Важно: месяц передаётся в формате JavaScript \`Date\`, то есть с нуля:
376
-
377
- - \`0\` = январь
378
- - \`1\` = февраль
379
- - \`2\` = март
380
-
381
- ### Начало и конец периода
382
-
383
- \`\`\`ts
384
- import { getEndOfDay, getStartOfDay, getStartOfMonth } from "@/shared/lib";
385
-
386
- const value = new Date(2026, 2, 3, 18, 3, 50);
387
-
388
- getStartOfDay(value);
389
- // 03.03.2026 00:00:00
390
-
391
- getEndOfDay(value);
392
- // 03.03.2026 23:59:59
393
-
394
- getStartOfMonth(value);
395
- // 01.03.2026 00:00:00
396
- \`\`\`
397
-
398
- ### Сдвиг по календарю
399
-
400
- \`\`\`ts
401
- import { addCalendarDays, addCalendarMonths, addCalendarYears } from "@/shared/lib";
402
-
403
- const value = new Date(2026, 2, 3, 18, 3, 50);
404
-
405
- addCalendarDays(value, 7);
406
- addCalendarMonths(value, 1);
407
- addCalendarYears(value, -1);
408
- \`\`\`
409
-
410
- ### Сравнение дат по календарному дню
411
-
412
- \`\`\`ts
413
- import { isSameCalendarDay } from "@/shared/lib";
414
-
415
- isSameCalendarDay(new Date(2026, 2, 3, 1, 0, 0), new Date(2026, 2, 3, 23, 59, 59));
416
- // true
417
- \`\`\`
418
-
419
- ## Публичный API
420
-
421
- Функции:
422
-
423
- - \`formatDate\`
424
- - \`formatDateAsDate\`
425
- - \`formatDateAsDateTime\`
426
- - \`formatDateAsMonthLong\`
427
- - \`formatDateAsMonthShort\`
428
- - \`formatDateAsTime\`
429
- - \`formatDateRange\`
430
- - \`parseDateValue\`
431
- - \`parseDateByPattern\`
432
- - \`parseDate\`
433
- - \`registerDatePreset\`
434
- - \`getDatePreset\`
435
- - \`getDatePresetNames\`
436
- - \`resetDatePresets\`
437
- - \`clearDateFormatCache\`
438
- - \`createCalendarDate\`
439
- - \`getStartOfDay\`
440
- - \`getEndOfDay\`
441
- - \`getStartOfMonth\`
442
- - \`addCalendarDays\`
443
- - \`addCalendarMonths\`
444
- - \`addCalendarYears\`
445
- - \`isSameCalendarDay\`
446
-
447
- Константы:
448
-
449
- - \`DATE_FORMAT_DEFAULTS\`
450
- - \`DEFAULT_DATE_PRESET_NAMES\`
451
-
452
- Типы:
453
-
454
- - \`DateInputSource\`
455
- - \`ParsedDateValue\`
456
- - \`DateFormatPattern\`
457
- - \`DateFormatPreset\`
458
- - \`DateFormatPresetConfig\`
459
- - \`FormatDateOptions\`
460
- `}));function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i,{title:`Документация/shared/lib/formatters/date`}),`
461
- `,(0,d.jsx)(r,{children:s})]})}function u(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}var d;e((()=>{d=t(),o(),a(),c()}))();export{u as default};
@@ -1 +0,0 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";function t(e){let t=[],n=0,r=``,i=()=>{r&&=(t.push({kind:`literal`,text:r}),``)};for(;n<e.length;){let a=null;for(let t of l)if(e.slice(n,n+t.length)===t){a=t;break}if(!a){r+=e[n],n+=1;continue}i(),t.push({kind:`editable`,token:a,...c[a]}),n+=a.length}return i(),t}function n(e){return e.kind===`editable`}function r(e,t){let r=new Map;return t.forEach((t,i)=>{if(!n(t))return;if(!(e instanceof Date)||Number.isNaN(e.getTime())){r.set(i,``);return}let a=o(e,t);r.set(i,a)}),r}function i(e,t){return e.every((e,r)=>!n(e)||!(t.get(r)??``))}function a(e,t,r){let i=e.map((e,t)=>({segment:e,index:t})).filter(e=>n(e.segment));for(let{segment:e,index:n}of i)if((t.get(n)??``).length<e.length)return null;let a=r?.defaultDate??new Date(1970,0,1,0,0,0,0),o=s(i,t,`year`)??a.getFullYear(),c=s(i,t,`month`)??a.getMonth()+1,l=s(i,t,`day`)??a.getDate(),u=s(i,t,`hours`)??a.getHours(),d=s(i,t,`minutes`)??a.getMinutes(),f=s(i,t,`seconds`)??a.getSeconds();if(c<1||c>12||l<1||l>31||u<0||u>23||d<0||d>59||f<0||f>59)return null;let p=new Date(o,c-1,l,u,d,f,0);return p.getFullYear()===o&&p.getMonth()===c-1&&p.getDate()===l&&p.getHours()===u&&p.getMinutes()===d&&p.getSeconds()===f?p:null}function o(e,t){let n=String(e.getFullYear());switch(t.id){case`year`:return t.length===2?n.slice(-2):n.padStart(t.length,`0`);case`month`:return String(e.getMonth()+1).padStart(t.length,`0`);case`day`:return String(e.getDate()).padStart(t.length,`0`);case`hours`:return String(e.getHours()).padStart(t.length,`0`);case`minutes`:return String(e.getMinutes()).padStart(t.length,`0`);case`seconds`:return String(e.getSeconds()).padStart(t.length,`0`)}}function s(e,t,n){let r=e.find(({segment:e})=>e.id===n);if(!r)return null;let i=t.get(r.index);if(!i)return null;let a=Number.parseInt(i,10);return Number.isFinite(a)?n===`year`&&r.segment.length===2?a<70?2e3+a:1900+a:a:null}var c,l,u=e((()=>{c={YYYY:{id:`year`,length:4,min:1,max:9999,placeholder:`ГГГГ`,ariaLabel:`Год`},yyyy:{id:`year`,length:4,min:1,max:9999,placeholder:`гггг`,ariaLabel:`Год`},yy:{id:`year`,length:2,min:0,max:99,placeholder:`гг`,ariaLabel:`Год`},MM:{id:`month`,length:2,min:1,max:12,placeholder:`мм`,ariaLabel:`Месяц`},DD:{id:`day`,length:2,min:1,max:31,placeholder:`ДД`,ariaLabel:`День`},dd:{id:`day`,length:2,min:1,max:31,placeholder:`дд`,ariaLabel:`День`},hh:{id:`hours`,length:2,min:0,max:23,placeholder:`чч`,ariaLabel:`Часы`},HH:{id:`hours`,length:2,min:0,max:23,placeholder:`чч`,ariaLabel:`Часы`},mm:{id:`minutes`,length:2,min:0,max:59,placeholder:`мм`,ariaLabel:`Минуты`},ss:{id:`seconds`,length:2,min:0,max:59,placeholder:`сс`,ariaLabel:`Секунды`}},l=Object.keys(c).sort((e,t)=>t.length-e.length)}));export{a,t as i,r as n,u as r,i as t};
@@ -1 +0,0 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{pn as n}from"./iframe-BJGIOdSH.js";function r(e){if(typeof document>`u`)return null;let t=document.getElementById(e);if(t instanceof HTMLElement)return t;let n=document.createElement(`div`);return n.id=e,document.body.append(n),n}function i(e,t){(0,s.useEffect)(()=>{let n=n=>{if(Array.isArray(e)){let r=!0;for(let t of e)t.current&&t.current.contains(n.target)&&(r=!1);r&&t()}else e.current&&!e.current.contains(n.target)&&t()};return document.addEventListener(`mousedown`,n),()=>document.removeEventListener(`mousedown`,n)},[e,t])}function a({active:e,onDismiss:t,enabled:n=!0,documentTarget:r,containerRef:i}){let a=(0,s.useEffectEvent)(()=>t());(0,s.useEffect)(()=>{if(!e||!n)return;let t=r??(typeof document>`u`?null:document);if(!t)return;let o=e=>{if(e.key!==`Escape`)return;let n=t.activeElement,r=i?.current;r&&n instanceof Node&&n!==r&&!r.contains(n)||(e.preventDefault(),a())};return t.addEventListener(`keydown`,o,!0),()=>t.removeEventListener(`keydown`,o,!0)},[e,n,r,i])}function o({active:e,trapFocus:t=!1,restoreFocus:n=!0,initialFocus:r=`auto`,restoreFocusTarget:i,containerRef:a}){let o=(0,s.useRef)(null),l=a??o,u=(0,s.useRef)(null),d=(0,s.useEffectEvent)(e=>Array.from(e.querySelectorAll(c)).filter(e=>!e.hasAttribute(`aria-hidden`))),f=(0,s.useEffectEvent)(e=>{if(r===`container`)return e;if(typeof r==`function`)return r(e)??e;let t=d(e);return t.find(e=>e.hasAttribute(`autofocus`)||e.hasAttribute(`autoFocus`))??t[0]??e}),p=(0,s.useEffectEvent)(()=>i?.()??u.current);return(0,s.useEffect)(()=>{if(!e)return;u.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let r=null,i=0,a=()=>{if(r=l.current,!r){i=window.requestAnimationFrame(a);return}let e=f(r);e instanceof HTMLElement&&e.isConnected&&e.focus(),t&&r.addEventListener(`keydown`,o)},o=e=>{if(!t||e.key!==`Tab`||!r)return;let n=d(r);if(n.length===0){e.preventDefault(),r.focus();return}let i=n[0],a=n[n.length-1],o=document.activeElement;if(e.shiftKey){(o===i||o===r)&&(e.preventDefault(),a.focus());return}o===a&&(e.preventDefault(),i.focus())};return a(),()=>{if(window.cancelAnimationFrame(i),t&&r&&r.removeEventListener(`keydown`,o),!n)return;let e=p();e?.isConnected&&e.focus()}},[e,t,n,l]),l}var s,c,l=t((()=>{s=e(n(),1),c=`button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])`}));function u({hookName:e,providerName:t,contextName:n}){let r=n?` "${n}"`:``;return[`Хук ${e} должен использоваться внутри ${t}.`,`Контекст${r} равен null, поэтому, вероятно, дерево компонентов не обёрнуто в ${t}.`,`Убедитесь, что ${t} расположен выше компонента, который вызывает ${e}.`].join(` `)}function d({hookName:e,providerName:t,contextName:n}){return Error(u({hookName:e,providerName:t,contextName:n}))}var f=t((()=>{}));export{l as a,a as i,d as n,i as o,r,o as s,f as t};