@ryuzaki13/react-foundation-ui 1.10.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/dist/advanced-search/index.js +1 -1
  2. package/dist/base-table/index.js +1 -1
  3. package/dist/chunks/{base-table-BNtd1xSl.js → base-table-CClQop2i.js} +2 -2
  4. package/dist/chunks/{base-table-BNtd1xSl.js.map → base-table-CClQop2i.js.map} +1 -1
  5. package/dist/chunks/{context-menu-CCAr_R-t.js → context-menu-HC7Vteb5.js} +66 -59
  6. package/dist/chunks/context-menu-HC7Vteb5.js.map +1 -0
  7. package/dist/chunks/{table-C3sKpYHL.js → table-ZPWbKoR-.js} +2 -2
  8. package/dist/chunks/{table-C3sKpYHL.js.map → table-ZPWbKoR-.js.map} +1 -1
  9. package/dist/context-menu/components/ContextMenuTrigger.d.ts +2 -0
  10. package/dist/context-menu/components/ContextMenuTrigger.d.ts.map +1 -1
  11. package/dist/context-menu/components/MenuContext.d.ts +2 -2
  12. package/dist/context-menu/components/MenuContext.d.ts.map +1 -1
  13. package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
  14. package/dist/context-menu/index.js +1 -1
  15. package/dist/simple-table/index.js +1 -1
  16. package/dist/table/index.js +1 -1
  17. package/dist/table-sorting/index.js +1 -1
  18. package/dist/tree-table/index.js +1 -1
  19. package/package.json +1 -1
  20. package/storybook-static/assets/{Badge-jMoGaWlH.js → Badge-Bmocdlmq.js} +1 -1
  21. package/storybook-static/assets/{Badge.stories-DCRYgiFn.js → Badge.stories-Dq22iAGc.js} +1 -1
  22. package/storybook-static/assets/{BadgeList-hUxkrQKk.js → BadgeList-Cf2yUv1u.js} +1 -1
  23. package/storybook-static/assets/{Button-BLZxiBx_.js → Button-BUk07f_S.js} +1 -1
  24. package/storybook-static/assets/{Button-CN90zPTE.js → Button-DQHgQZCq.js} +1 -1
  25. package/storybook-static/assets/{Button.stories-C3IDTh6L.js → Button.stories-4tFPDHfK.js} +1 -1
  26. package/storybook-static/assets/{CalendarView-Da3lEn5n.js → CalendarView-DQYsbm4g.js} +1 -1
  27. package/storybook-static/assets/{CheckBox-C88r1nU9.js → CheckBox-CLhfwAlH.js} +1 -1
  28. package/storybook-static/assets/{CheckBox-BDPsgkY9.js → CheckBox-CwRh9b03.js} +1 -1
  29. package/storybook-static/assets/{CheckBox.stories-CLL1W22k.js → CheckBox.stories-m5AGRWTh.js} +1 -1
  30. package/storybook-static/assets/{Color-6AOWCN3U-BeYazCuF.js → Color-6AOWCN3U-BT97ThGN.js} +1 -1
  31. package/storybook-static/assets/{ContextMenu-CEmrtmjw.js → ContextMenu-1Qwp2Dk8.js} +1 -1
  32. package/storybook-static/assets/ContextMenu-BgDahw7W.js +1 -0
  33. package/storybook-static/assets/{ContextMenu.stories-CJdQ3DxK.js → ContextMenu.stories-DTDQ8JRw.js} +1 -1
  34. package/storybook-static/assets/{CustomOptionButton-BlBnyItt.js → CustomOptionButton-DRSpQRg_.js} +1 -1
  35. package/storybook-static/assets/{DateInput-BOeTDc10.js → DateInput-BggMfSmA.js} +1 -1
  36. package/storybook-static/assets/{DateInput-BplJWRap.js → DateInput-Cp6xhtI3.js} +1 -1
  37. package/storybook-static/assets/{DateInput.stories-Dvsg67Q7.js → DateInput.stories-B-N5Y0hy.js} +1 -1
  38. package/storybook-static/assets/{DateRangePresetSelect-CQlubR_0.js → DateRangePresetSelect-BIXgqhm3.js} +1 -1
  39. package/storybook-static/assets/{DateRangePresetSelect-BNAtaJ9P.js → DateRangePresetSelect-DWPqA3yb.js} +1 -1
  40. package/storybook-static/assets/{DateRangePresetSelect.stories-iaVAJzrk.js → DateRangePresetSelect.stories-BWLmoEKH.js} +1 -1
  41. package/storybook-static/assets/{Detail-DDYBXrvC.js → Detail-BjruCzcN.js} +1 -1
  42. package/storybook-static/assets/{Detail.stories-DNRTPZcT.js → Detail.stories-DwJ3aW8_.js} +1 -1
  43. package/storybook-static/assets/{Dialog-_8-5uCF4.js → Dialog-0MGsluCV.js} +1 -1
  44. package/storybook-static/assets/{Dialog-D60NKiU7.js → Dialog-BvAqe0gX.js} +1 -1
  45. package/storybook-static/assets/{Dialog.stories-LMG0RjuL.js → Dialog.stories-B5Lx37As.js} +1 -1
  46. package/storybook-static/assets/{Disclosure-DTCWb38a.js → Disclosure-D4q6GuUV.js} +1 -1
  47. package/storybook-static/assets/{Disclosure.stories-D98Sqa6B.js → Disclosure.stories-DlzUmJUQ.js} +1 -1
  48. package/storybook-static/assets/{DisclosureGroup-rjsQrwwz.js → DisclosureGroup-DKik623a.js} +1 -1
  49. package/storybook-static/assets/{DocsRenderer-JROSPFPF-C8rtPh64.js → DocsRenderer-JROSPFPF-CWcb1DRR.js} +1 -1
  50. package/storybook-static/assets/{DropZone-Cc-Nr7qt.js → DropZone-XGiHG9SW.js} +1 -1
  51. package/storybook-static/assets/{DropZone-xZSakToS.js → DropZone-anfzi8dm.js} +1 -1
  52. package/storybook-static/assets/{DropZone.stories-BrNYMWdp.js → DropZone.stories-DJJ60MOp.js} +1 -1
  53. package/storybook-static/assets/{DropdownMenu-CKHgBr1G.js → DropdownMenu-JcsvtCfI.js} +1 -1
  54. package/storybook-static/assets/{ExpandableActionPanel-CaRPw6Wm.js → ExpandableActionPanel-Bs10HN-A.js} +1 -1
  55. package/storybook-static/assets/{ExpandableActionPanel.stories-D84EsMIi.js → ExpandableActionPanel.stories-jdXKbV2C.js} +1 -1
  56. package/storybook-static/assets/{Flex-ksn1ULug.js → Flex-VTK7hPbc.js} +1 -1
  57. package/storybook-static/assets/{Flex.stories-CImsjHxn.js → Flex.stories-Dk-dArHA.js} +1 -1
  58. package/storybook-static/assets/{FloatingPopover-Cmz412EM.js → FloatingPopover-Bdkmabj9.js} +1 -1
  59. package/storybook-static/assets/{FormattedTableCell-DIPPfMCP.js → FormattedTableCell-Do9NiavS.js} +1 -1
  60. package/storybook-static/assets/{Grid-COjPAy0V.js → Grid-Dd2vYRwB.js} +1 -1
  61. package/storybook-static/assets/{Grid.stories-DInra2zZ.js → Grid.stories-C46OA4mX.js} +1 -1
  62. package/storybook-static/assets/{ImageCropper.stories-BaN5T0Sj.js → ImageCropper.stories-CMi9hgfG.js} +1 -1
  63. package/storybook-static/assets/{ImageRenderer-BiX7KYHn.js → ImageRenderer-CTSioI7M.js} +1 -1
  64. package/storybook-static/assets/{ImageRenderer.stories-DRA0tvY5.js → ImageRenderer.stories-DBBOQIIJ.js} +1 -1
  65. package/storybook-static/assets/{ImageView.stories-DmgrraU8.js → ImageView.stories-CIevFKkS.js} +1 -1
  66. package/storybook-static/assets/{ImageViewer.stories-B1lcBTZL.js → ImageViewer.stories-YNYWn4Bm.js} +2 -2
  67. package/storybook-static/assets/{ImageViewerRuntime-Ba0P6JkW.js → ImageViewerRuntime-BOhXjUiB.js} +1 -1
  68. package/storybook-static/assets/{Input-DWaSzRT6.js → Input-DMnIZD0A.js} +1 -1
  69. package/storybook-static/assets/{Input-BE3ev4c3.js → Input-NQpoWTtN.js} +1 -1
  70. package/storybook-static/assets/{Input.stories-BwSh-rG5.js → Input.stories-DL4OuLQq.js} +1 -1
  71. package/storybook-static/assets/{InputDateTime-Bzcathpr.js → InputDateTime-BkrwE0eN.js} +1 -1
  72. package/storybook-static/assets/{InputDateTime.stories-BKSNyeGW.js → InputDateTime.stories-cfzBkOug.js} +1 -1
  73. package/storybook-static/assets/{InputFile-B1xshCl7.js → InputFile-BH8z42gA.js} +1 -1
  74. package/storybook-static/assets/{InputFile-BkcqAe9e.js → InputFile-C0GfBgah.js} +1 -1
  75. package/storybook-static/assets/{InputFile.stories-DNzDLdnM.js → InputFile.stories-DnIX3AC1.js} +1 -1
  76. package/storybook-static/assets/{InputFiles-Beh9VGnI.js → InputFiles-BYkZJb9A.js} +1 -1
  77. package/storybook-static/assets/{InputFiles-DoIpCwD8.js → InputFiles-Bf5645s-.js} +1 -1
  78. package/storybook-static/assets/{InputFiles.stories-D463o_2j.js → InputFiles.stories-DVIHMGIP.js} +1 -1
  79. package/storybook-static/assets/{InputFilesList-XBhxIwzm.js → InputFilesList-qpPFSFtG.js} +1 -1
  80. package/storybook-static/assets/{InputImage-DFOKaSvG.js → InputImage-CC3lb8gi.js} +1 -1
  81. package/storybook-static/assets/{InputImage-BxplZPLz.js → InputImage-_gvKkzWD.js} +1 -1
  82. package/storybook-static/assets/{InputImage.stories-9_4PdNVX.js → InputImage.stories-BgN8VFFS.js} +1 -1
  83. package/storybook-static/assets/{InteractiveComponents-gVX-Co65.js → InteractiveComponents-CgGBx8l1.js} +1 -1
  84. package/storybook-static/assets/{InteractiveComponents.stories-xGm6Qn3p.js → InteractiveComponents.stories-D7Wep_1W.js} +1 -1
  85. package/storybook-static/assets/{LayoutPicker-CAIUGlYR.js → LayoutPicker-CTD5g0Wu.js} +1 -1
  86. package/storybook-static/assets/{LayoutPicker-DyNgBEDt.js → LayoutPicker-DR5y1Myb.js} +1 -1
  87. package/storybook-static/assets/{LayoutPicker.stories-DjWIoqq_.js → LayoutPicker.stories-Dt7yQp6w.js} +1 -1
  88. package/storybook-static/assets/{Listbox-C1nug1gi.js → Listbox-C2RgETsr.js} +1 -1
  89. package/storybook-static/assets/{Listbox-DdUSWuvx.js → Listbox-CRXdkzAx.js} +1 -1
  90. package/storybook-static/assets/{Listbox.stories-CgXZhffL.js → Listbox.stories-45YthQmO.js} +1 -1
  91. package/storybook-static/assets/{Modal-C2JN8byf.js → Modal-BpcQFiJm.js} +1 -1
  92. package/storybook-static/assets/{Modal.stories-CEF1CDMw.js → Modal.stories-Il0VwPqg.js} +1 -1
  93. package/storybook-static/assets/{ModalManagerProvider-DpQegT4s.js → ModalManagerProvider-DLXe4U3x.js} +1 -1
  94. package/storybook-static/assets/{MultiSelect-4BySiqWq.js → MultiSelect-BD6mJ2vx.js} +1 -1
  95. package/storybook-static/assets/{MultiSelect-DI65H684.js → MultiSelect-Dxz8DA8o.js} +1 -1
  96. package/storybook-static/assets/{MultiSelect.stories-BMINO4tp.js → MultiSelect.stories-gkbGwBpe.js} +1 -1
  97. package/storybook-static/assets/{NoData-BF8QLM-6.js → NoData-Cl4UXZP6.js} +1 -1
  98. package/storybook-static/assets/{NotificationsHost-CoKBvP6W.js → NotificationsHost-B2vgz-sQ.js} +1 -1
  99. package/storybook-static/assets/{NotificationsHost.stories-ABBuJJZn.js → NotificationsHost.stories-7Fw9T4s4.js} +1 -1
  100. package/storybook-static/assets/{ODataMultiSelect-8jdLzrag.js → ODataMultiSelect-CGXrGRDW.js} +1 -1
  101. package/storybook-static/assets/{ODataMultiSelect.stories-Bbx2pEhr.js → ODataMultiSelect.stories-ppuz3Ivh.js} +1 -1
  102. package/storybook-static/assets/{ODataSelect-CCBMuL_6.js → ODataSelect-xKIjMIAt.js} +1 -1
  103. package/storybook-static/assets/{ODataSelect.stories-IRVdMUYS.js → ODataSelect.stories-laNLY7vk.js} +1 -1
  104. package/storybook-static/assets/{ODataTreeMultiSelect-CMYSul4g.js → ODataTreeMultiSelect-DFUONEUd.js} +1 -1
  105. package/storybook-static/assets/{ODataTreeMultiSelect.stories-B-7VuEMx.js → ODataTreeMultiSelect.stories-DKTkUiBW.js} +1 -1
  106. package/storybook-static/assets/{ODataTreeSelect-wABuQQ8m.js → ODataTreeSelect-J4u4Wsfe.js} +1 -1
  107. package/storybook-static/assets/{ODataTreeSelect.stories-B4PexyPP.js → ODataTreeSelect.stories-Drgf1o53.js} +1 -1
  108. package/storybook-static/assets/{OneStepScroller-Bsx2cAbW.js → OneStepScroller-hE3u2cmJ.js} +1 -1
  109. package/storybook-static/assets/{Option-Bi34xfha.js → Option-DhjNWSm2.js} +1 -1
  110. package/storybook-static/assets/{OptionButton-sAMQ-B-2.js → OptionButton-pWyuhK8d.js} +1 -1
  111. package/storybook-static/assets/{PeriodSelect-D8M2m7Ae.js → PeriodSelect-Clv23FEy.js} +1 -1
  112. package/storybook-static/assets/{PeriodSelect-DvbYBRp0.js → PeriodSelect-DKRTbhor.js} +1 -1
  113. package/storybook-static/assets/{PeriodSelect.stories-CF9om3YB.js → PeriodSelect.stories-BmMj08to.js} +1 -1
  114. package/storybook-static/assets/{PickerTriggerActions-DQ6Irt2H.js → PickerTriggerActions-l0pz64kI.js} +1 -1
  115. package/storybook-static/assets/{Popover-CoKI13TR.js → Popover-C6ma37U9.js} +1 -1
  116. package/storybook-static/assets/{Popover-Y5ZKg3I8.js → Popover-CgImrEnF.js} +1 -1
  117. package/storybook-static/assets/{Popover.stories-D8WTwZ-k.js → Popover.stories-pYPdoCie.js} +1 -1
  118. package/storybook-static/assets/{PresetRangeDateInput-C8-UkEaY.js → PresetRangeDateInput-BBTaxl7U.js} +1 -1
  119. package/storybook-static/assets/{PresetRangeDateInput-kYlehlXI.js → PresetRangeDateInput-BOz7K4tq.js} +1 -1
  120. package/storybook-static/assets/{PresetRangeDateInput.stories-Bw2Olt9n.js → PresetRangeDateInput.stories-DLm_xsNg.js} +1 -1
  121. package/storybook-static/assets/{PresetSelect-L0tuYJEl.js → PresetSelect-DVJNVQ0Y.js} +1 -1
  122. package/storybook-static/assets/{README-DZwnGvV1.js → README-9jx1x6qi.js} +1 -1
  123. package/storybook-static/assets/{README-gft7Uab5.js → README-B4Xr-JsN.js} +1 -1
  124. package/storybook-static/assets/{README-S2VOLhWx.js → README-B5rZ3QLJ.js} +1 -1
  125. package/storybook-static/assets/{README-CjqrGvr8.js → README-BDdVg3By.js} +1 -1
  126. package/storybook-static/assets/{README-C33_zdBH.js → README-BECvJlYF.js} +1 -1
  127. package/storybook-static/assets/{README-BVQt8mtd.js → README-BEjUSrTw.js} +1 -1
  128. package/storybook-static/assets/{README-CrYAH16i.js → README-BXKptrTk.js} +1 -1
  129. package/storybook-static/assets/{README-BXPXMULk.js → README-B_wGX6sN.js} +1 -1
  130. package/storybook-static/assets/{README-D13Q95J6.js → README-BfIVJh3-.js} +1 -1
  131. package/storybook-static/assets/{README-N9wZCeCb.js → README-Bgf6v4CI.js} +1 -1
  132. package/storybook-static/assets/{README-BxwHKa3w.js → README-Bmto4mN8.js} +1 -1
  133. package/storybook-static/assets/{README-BnVbW7Gs.js → README-CDlwnugz.js} +1 -1
  134. package/storybook-static/assets/{README-D5yuEPPv.js → README-CGRGUCj5.js} +1 -1
  135. package/storybook-static/assets/{README-B10YW1sd.js → README-CNkhkjA3.js} +1 -1
  136. package/storybook-static/assets/{README-BzHuSALx.js → README-CPbiCM44.js} +1 -1
  137. package/storybook-static/assets/{README-ChqY7Icu.js → README-CaQ_tDiK.js} +1 -1
  138. package/storybook-static/assets/{README-CHEiSVyW.js → README-CaYMYOLi.js} +1 -1
  139. package/storybook-static/assets/{README-Cab4zgqv.js → README-CgV2GMjt.js} +1 -1
  140. package/storybook-static/assets/{README-xgO81XJN.js → README-Cj1-wuG7.js} +1 -1
  141. package/storybook-static/assets/{README-DdW8haTK.js → README-CjvdkRtH.js} +1 -1
  142. package/storybook-static/assets/{README-Dp6_DOef.js → README-ClaZhzyO.js} +1 -1
  143. package/storybook-static/assets/{README-DlIoOZ58.js → README-Cs2RDVgN.js} +1 -1
  144. package/storybook-static/assets/{README-BrCC1uJU.js → README-CsE00A8j.js} +1 -1
  145. package/storybook-static/assets/{README-UELPBLbA.js → README-CsZEzBJP.js} +1 -1
  146. package/storybook-static/assets/{README-CO3dUhsD.js → README-CuS7_hvi.js} +1 -1
  147. package/storybook-static/assets/{README-CXPodKHT.js → README-D09eq_kv.js} +1 -1
  148. package/storybook-static/assets/{README-rfp-yzSZ.js → README-DDNwItD0.js} +1 -1
  149. package/storybook-static/assets/{README-CjCfW25k.js → README-DFI_0Xa-.js} +1 -1
  150. package/storybook-static/assets/{README-0xG00EW_.js → README-DNyQ5dAL.js} +1 -1
  151. package/storybook-static/assets/{README-Cyb-5mOG.js → README-DO_EutNH.js} +1 -1
  152. package/storybook-static/assets/{README-DBqfDDoK.js → README-DPhYvx9a.js} +1 -1
  153. package/storybook-static/assets/{README-BQsFSC9n.js → README-D_shHX2g.js} +1 -1
  154. package/storybook-static/assets/{README-BocI24Kg.js → README-DcN57PQO.js} +1 -1
  155. package/storybook-static/assets/{README-1v-Ux6-4.js → README-Dprsyjb3.js} +1 -1
  156. package/storybook-static/assets/{README-q3ocfiGy.js → README-DsKMlp5D.js} +1 -1
  157. package/storybook-static/assets/{README-NmcS3YJ6.js → README-DuSlk_Zw.js} +1 -1
  158. package/storybook-static/assets/{README-DrwiMWd7.js → README-DwJSX6TF.js} +1 -1
  159. package/storybook-static/assets/{README-BQ2U05OE.js → README-Dy8QkJy5.js} +1 -1
  160. package/storybook-static/assets/{README-DIa084ap.js → README-EYy5nk_J.js} +1 -1
  161. package/storybook-static/assets/{README-DvMUuU1d.js → README-EbWehfGJ.js} +1 -1
  162. package/storybook-static/assets/{README-CDufFsWQ.js → README-MPTR3r1B.js} +1 -1
  163. package/storybook-static/assets/{README-gpDcs_LH.js → README-PECG8BRh.js} +1 -1
  164. package/storybook-static/assets/{README-BN-M1WU0.js → README-UeQ6P9dU.js} +1 -1
  165. package/storybook-static/assets/{README-DSqT3qTl.js → README-bUo0Smq-.js} +1 -1
  166. package/storybook-static/assets/{README-CFpRXUWW.js → README-d4RlrI_M.js} +1 -1
  167. package/storybook-static/assets/{README-CmhWsQkb.js → README-emZYwvTg.js} +1 -1
  168. package/storybook-static/assets/{README-BPWfZ4-n.js → README-gKvDIeCq.js} +1 -1
  169. package/storybook-static/assets/{README-B1ksGK8E.js → README-p7SV8llU.js} +1 -1
  170. package/storybook-static/assets/{README-VcApJaXd.js → README-qhDVrEux.js} +1 -1
  171. package/storybook-static/assets/{README-CZLMmuEJ.js → README-rV7rsInW.js} +1 -1
  172. package/storybook-static/assets/{README-DIlnpVMH.js → README-uRH_sJT9.js} +1 -1
  173. package/storybook-static/assets/{README-D_zvxXbp.js → README-zlCSWis-.js} +1 -1
  174. package/storybook-static/assets/{RadioButton-DJEpCllJ.js → RadioButton-C6rZp79x.js} +1 -1
  175. package/storybook-static/assets/{RadioButton-CoPal8pt.js → RadioButton-PzYp1sbh.js} +1 -1
  176. package/storybook-static/assets/{RadioButton.stories-CrNbB_Qs.js → RadioButton.stories-DlBlaipI.js} +1 -1
  177. package/storybook-static/assets/{RadioGroup-DBlvBC8z.js → RadioGroup-BZ6jpcRK.js} +1 -1
  178. package/storybook-static/assets/{RadioGroup-Dv_q57B4.js → RadioGroup-CUTPaFXh.js} +1 -1
  179. package/storybook-static/assets/{RadioGroup.stories-CdafywwL.js → RadioGroup.stories-BmA8DAEX.js} +1 -1
  180. package/storybook-static/assets/{Scrollable-CVZxkb7b.js → Scrollable-CxrPKShA.js} +1 -1
  181. package/storybook-static/assets/{Select-BtuStcTW.js → Select-B3FoE2zw.js} +1 -1
  182. package/storybook-static/assets/{Select-B7fM7XXA.js → Select-CRnpjYGa.js} +1 -1
  183. package/storybook-static/assets/{Select.stories-D2i9D1wO.js → Select.stories-DxhEaTHD.js} +1 -1
  184. package/storybook-static/assets/{SerializableSelect-DsjutVwZ.js → SerializableSelect-JfVyMsfo.js} +1 -1
  185. package/storybook-static/assets/{SerializableSelect.stories-C4qr93lP.js → SerializableSelect.stories-DIHqxl-P.js} +1 -1
  186. package/storybook-static/assets/{SingleDateTimeInput-jOTDUNrw.js → SingleDateTimeInput-BHrmqVUi.js} +1 -1
  187. package/storybook-static/assets/{SingleDateTimeInput-CV1HjRhb.js → SingleDateTimeInput-DYi2W5-T.js} +1 -1
  188. package/storybook-static/assets/{SingleDateTimeInput.stories-yb4i7Se-.js → SingleDateTimeInput.stories-SJfUXQ27.js} +1 -1
  189. package/storybook-static/assets/{Slider-DGAxIRgF.js → Slider-DAsAVPS3.js} +1 -1
  190. package/storybook-static/assets/{Slider-DbiTyk2d.js → Slider-DhdKtsT1.js} +1 -1
  191. package/storybook-static/assets/{Slider.stories-BIPqFQgF.js → Slider.stories-BpMfeLzl.js} +1 -1
  192. package/storybook-static/assets/{SliderInput-DEbF8pTt.js → SliderInput-B63Rq_wR.js} +1 -1
  193. package/storybook-static/assets/{SliderInput-DPmmdNSI.js → SliderInput-H9TKoqbL.js} +1 -1
  194. package/storybook-static/assets/{SliderInput.stories-DpNI0YBv.js → SliderInput.stories-Cn7GhuHt.js} +1 -1
  195. package/storybook-static/assets/{Sortable-BYYO2Rd5.js → Sortable-CAjeg1_l.js} +1 -1
  196. package/storybook-static/assets/{Sortable.stories-CAig11WS.js → Sortable.stories-8lzpL0Lt.js} +1 -1
  197. package/storybook-static/assets/{Splitter-k76UJpxB.js → Splitter-D54uXac9.js} +1 -1
  198. package/storybook-static/assets/{Splitter.stories-CuaNuNp7.js → Splitter.stories-qqnOp0Be.js} +1 -1
  199. package/storybook-static/assets/{StateSelect-BdvIKDtX.js → StateSelect-CIwqD4QX.js} +1 -1
  200. package/storybook-static/assets/{StateSelect-BSx0a0xn.js → StateSelect-UC8bRpDR.js} +1 -1
  201. package/storybook-static/assets/{StateSelect.stories-Cn2k7xLt.js → StateSelect.stories-CeWB2shZ.js} +1 -1
  202. package/storybook-static/assets/{StringToggle.stories-BzYQZVOT.js → StringToggle.stories-CId-fhHG.js} +1 -1
  203. package/storybook-static/assets/{Switch-WXicw9j3.js → Switch-CRVzhG2B.js} +1 -1
  204. package/storybook-static/assets/{Switch-DtsM7AlJ.js → Switch-CVtJtLtK.js} +1 -1
  205. package/storybook-static/assets/{Switch.stories-DSJ6cmJH.js → Switch.stories-QTri2bfY.js} +1 -1
  206. package/storybook-static/assets/{Table-DG3Ysl0M.js → Table-BXvnFfUe.js} +1 -1
  207. package/storybook-static/assets/{Table.stories-DZld4Wa8.js → Table.stories-BcDC_lz-.js} +1 -1
  208. package/storybook-static/assets/{Tabs-BUkYwc0R.js → Tabs-D0eZ9Cgh.js} +1 -1
  209. package/storybook-static/assets/{Tabs.stories-Bxj65iOe.js → Tabs.stories-Co4DPEfD.js} +1 -1
  210. package/storybook-static/assets/{TabsBox-BufsM8ff.js → TabsBox-DbflFmuw.js} +1 -1
  211. package/storybook-static/assets/{TagInput-ButGKwPX.js → TagInput-DB7FGBMX.js} +1 -1
  212. package/storybook-static/assets/{TagInput.stories-BdBPL9C4.js → TagInput.stories-DUFf2b0k.js} +1 -1
  213. package/storybook-static/assets/{Text-CfVgVnx4.js → Text-B2YuarGk.js} +1 -1
  214. package/storybook-static/assets/{Textarea-Cw0dpv9O.js → Textarea-CKEIyyZn.js} +1 -1
  215. package/storybook-static/assets/{Textarea-BlRdt8GB.js → Textarea-DTqLlnko.js} +1 -1
  216. package/storybook-static/assets/{Textarea.stories-DIztJwoG.js → Textarea.stories-BgIIz2G-.js} +1 -1
  217. package/storybook-static/assets/{TimePanel-BaHjWmQy.js → TimePanel-B0OHydPr.js} +1 -1
  218. package/storybook-static/assets/{TimePanel.stories-CLhOwXWZ.js → TimePanel.stories-VwoN28G5.js} +1 -1
  219. package/storybook-static/assets/{Toggle-CeEIN_2z.js → Toggle-BCL50yyX.js} +1 -1
  220. package/storybook-static/assets/{Toggle-DS0d4WQL.js → Toggle-Cs4DVygF.js} +1 -1
  221. package/storybook-static/assets/{Toggle.stories-qQruW7gc.js → Toggle.stories-CpXAf4PL.js} +1 -1
  222. package/storybook-static/assets/{TreeMultiSelect-C19YnmWz.js → TreeMultiSelect-B_XsAJp-.js} +1 -1
  223. package/storybook-static/assets/{TreeMultiSelect-xvnFdWRY.js → TreeMultiSelect-DK2Y3CsI.js} +1 -1
  224. package/storybook-static/assets/{TreeMultiSelect.stories-CfvfyxYD.js → TreeMultiSelect.stories-BgPTdk2V.js} +1 -1
  225. package/storybook-static/assets/{TreePickerBase-CtEPKSbm.js → TreePickerBase-BEH20lQJ.js} +1 -1
  226. package/storybook-static/assets/{TreeSelect-BnLvixZ5.js → TreeSelect-B3sF0Kdg.js} +1 -1
  227. package/storybook-static/assets/{TreeSelect-CBkH-AEV.js → TreeSelect-Vx2Lkr0D.js} +1 -1
  228. package/storybook-static/assets/{TreeSelect.stories-Ee033WTq.js → TreeSelect.stories-t3hHAqnv.js} +1 -1
  229. package/storybook-static/assets/{TreeTable-Bj-wmrBR.js → TreeTable-C_wS4KRn.js} +1 -1
  230. package/storybook-static/assets/{TreeTable.stories-BIOrVNfx.js → TreeTable.stories-DqhjGEev.js} +1 -1
  231. package/storybook-static/assets/{blocks-DFW8ghoN.js → blocks-Cyh_k-EZ.js} +3 -3
  232. package/storybook-static/assets/{check-7oGyK4Lh.js → check-C2TxO0vM.js} +1 -1
  233. package/storybook-static/assets/{chevron-down-BBUXCskk.js → chevron-down-D-NHGmtk.js} +1 -1
  234. package/storybook-static/assets/{chevron-left-C9RcDRYm.js → chevron-left-CM7EAsdD.js} +1 -1
  235. package/storybook-static/assets/{chevron-right-Bz2dxTCT.js → chevron-right-CfuaKuy2.js} +1 -1
  236. package/storybook-static/assets/{chunk-W22LQPXL-BFc9wUX9.js → chunk-W22LQPXL-B7RoPLDL.js} +1 -1
  237. package/storybook-static/assets/{circle-alert-DxODWI3W.js → circle-alert-DOSGRi-t.js} +1 -1
  238. package/storybook-static/assets/{circle-check-Dt98F3HY.js → circle-check-BkRw3adn.js} +1 -1
  239. package/storybook-static/assets/{components-C9PL8fDL.js → components-znwoLfgu.js} +3 -3
  240. package/storybook-static/assets/contextMenu-8DDN0Php.js +2 -0
  241. package/storybook-static/assets/{download-Cicfr3Yq.js → download-vwxw-yX8.js} +1 -1
  242. package/storybook-static/assets/{floating-ui.react-j2x4WoIe.js → floating-ui.react-YRjL1BGe.js} +1 -1
  243. package/storybook-static/assets/{foundationApi-Czup-_8C.js → foundationApi-BxPdFkTS.js} +1 -1
  244. package/storybook-static/assets/{foundationLib-CvOU0kH6.js → foundationLib-rTXFCRH-.js} +1 -1
  245. package/storybook-static/assets/{hooks-D1LxuSK1.js → hooks-D9hEAXzf.js} +1 -1
  246. package/storybook-static/assets/iframe-CBbpuUos.js +1 -0
  247. package/storybook-static/assets/{iframe-CB9pifff.js → iframe-Ctjgxy8H.js} +3 -3
  248. package/storybook-static/assets/{info-H3kL_ony.js → info-Dl61zQfI.js} +1 -1
  249. package/storybook-static/assets/{odata-DZHQPho8.js → odata-BDsYgYEZ.js} +1 -1
  250. package/storybook-static/assets/{odataStoryFixtures-Dv4IyA2E.js → odataStoryFixtures-CokWXYCf.js} +1 -1
  251. package/storybook-static/assets/{react-D9ony7ur.js → react-0DwxKZMs.js} +1 -1
  252. package/storybook-static/assets/{refresh-cw-C1wTVwsA.js → refresh-cw-B8DNzoOe.js} +1 -1
  253. package/storybook-static/assets/{settings-2-CYAxQ8JZ.js → settings-2-DckqP9jM.js} +1 -1
  254. package/storybook-static/assets/{sortable-D3dOipv-.js → sortable-DREBv4GG.js} +1 -1
  255. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-BEAJBt17.js → syntaxhighlighter-QEQV7K2Y-BBaSxtnH.js} +1 -1
  256. package/storybook-static/assets/{trash-2-DFYiqA7Y.js → trash-2-CSbUpfo-.js} +1 -1
  257. package/storybook-static/assets/{triangle-alert-DT66rGfn.js → triangle-alert-BRLCqBPU.js} +1 -1
  258. package/storybook-static/assets/{useODataSelectBase-SGoINsPA.js → useODataSelectBase-oNEeP0OC.js} +1 -1
  259. package/storybook-static/assets/{useODataTreeData-Bd0rjQ8C.js → useODataTreeData-Blp3jPg9.js} +1 -1
  260. package/storybook-static/assets/{usePickerQuery-jINMRgys.js → usePickerQuery-DbaNcz3d.js} +1 -1
  261. package/storybook-static/assets/{usePickerTriggerController-C0xxhsv5.js → usePickerTriggerController-8HqdXbS9.js} +1 -1
  262. package/storybook-static/assets/{x-DgcBZVW3.js → x-4Az7SNSv.js} +1 -1
  263. package/storybook-static/iframe.html +2 -2
  264. package/storybook-static/project.json +1 -1
  265. package/dist/chunks/context-menu-CCAr_R-t.js.map +0 -1
  266. package/storybook-static/assets/ContextMenu-BvDbyzAk.js +0 -1
  267. package/storybook-static/assets/contextMenu-BOrF5Hzw.js +0 -2
  268. package/storybook-static/assets/iframe-BhNcQkWA.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{a as r,i,t as a}from"./chunk-IMSF75WX-CGYlPTyG.js";import{i as o,n as s,r as c,t as l}from"./chunk-W22LQPXL-BFc9wUX9.js";import{a as u,u as d,w as f}from"./theming-BgT2grXK.js";import{n as p,t as m}from"./chunk-DRQKCCAG-DvsmU7ha.js";import{t as h}from"./chunk-242VQQM5-bHL6qIJq.js";function g(e){"@babel/helpers - typeof";return g=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},g(e)}function _(e,t){if(g(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(g(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function v(e){var t=_(e,`string`);return g(t)==`symbol`?t:t+``}function ee(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e,t){if(e==null)return{};var n,r,i=h(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function y(){return(y=t((()=>{})))()}function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?b(Object(n),!0).forEach(function(t){ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function S(e){var t=e.length;if(t===0||t===1)return e;if(t===2)return[e[0],e[1],`${e[0]}.${e[1]}`,`${e[1]}.${e[0]}`];if(t===3)return[e[0],e[1],e[2],`${e[0]}.${e[1]}`,`${e[0]}.${e[2]}`,`${e[1]}.${e[0]}`,`${e[1]}.${e[2]}`,`${e[2]}.${e[0]}`,`${e[2]}.${e[1]}`,`${e[0]}.${e[1]}.${e[2]}`,`${e[0]}.${e[2]}.${e[1]}`,`${e[1]}.${e[0]}.${e[2]}`,`${e[1]}.${e[2]}.${e[0]}`,`${e[2]}.${e[0]}.${e[1]}`,`${e[2]}.${e[1]}.${e[0]}`];if(t>=4)return[e[0],e[1],e[2],e[3],`${e[0]}.${e[1]}`,`${e[0]}.${e[2]}`,`${e[0]}.${e[3]}`,`${e[1]}.${e[0]}`,`${e[1]}.${e[2]}`,`${e[1]}.${e[3]}`,`${e[2]}.${e[0]}`,`${e[2]}.${e[1]}`,`${e[2]}.${e[3]}`,`${e[3]}.${e[0]}`,`${e[3]}.${e[1]}`,`${e[3]}.${e[2]}`,`${e[0]}.${e[1]}.${e[2]}`,`${e[0]}.${e[1]}.${e[3]}`,`${e[0]}.${e[2]}.${e[1]}`,`${e[0]}.${e[2]}.${e[3]}`,`${e[0]}.${e[3]}.${e[1]}`,`${e[0]}.${e[3]}.${e[2]}`,`${e[1]}.${e[0]}.${e[2]}`,`${e[1]}.${e[0]}.${e[3]}`,`${e[1]}.${e[2]}.${e[0]}`,`${e[1]}.${e[2]}.${e[3]}`,`${e[1]}.${e[3]}.${e[0]}`,`${e[1]}.${e[3]}.${e[2]}`,`${e[2]}.${e[0]}.${e[1]}`,`${e[2]}.${e[0]}.${e[3]}`,`${e[2]}.${e[1]}.${e[0]}`,`${e[2]}.${e[1]}.${e[3]}`,`${e[2]}.${e[3]}.${e[0]}`,`${e[2]}.${e[3]}.${e[1]}`,`${e[3]}.${e[0]}.${e[1]}`,`${e[3]}.${e[0]}.${e[2]}`,`${e[3]}.${e[1]}.${e[0]}`,`${e[3]}.${e[1]}.${e[2]}`,`${e[3]}.${e[2]}.${e[0]}`,`${e[3]}.${e[2]}.${e[1]}`,`${e[0]}.${e[1]}.${e[2]}.${e[3]}`,`${e[0]}.${e[1]}.${e[3]}.${e[2]}`,`${e[0]}.${e[2]}.${e[1]}.${e[3]}`,`${e[0]}.${e[2]}.${e[3]}.${e[1]}`,`${e[0]}.${e[3]}.${e[1]}.${e[2]}`,`${e[0]}.${e[3]}.${e[2]}.${e[1]}`,`${e[1]}.${e[0]}.${e[2]}.${e[3]}`,`${e[1]}.${e[0]}.${e[3]}.${e[2]}`,`${e[1]}.${e[2]}.${e[0]}.${e[3]}`,`${e[1]}.${e[2]}.${e[3]}.${e[0]}`,`${e[1]}.${e[3]}.${e[0]}.${e[2]}`,`${e[1]}.${e[3]}.${e[2]}.${e[0]}`,`${e[2]}.${e[0]}.${e[1]}.${e[3]}`,`${e[2]}.${e[0]}.${e[3]}.${e[1]}`,`${e[2]}.${e[1]}.${e[0]}.${e[3]}`,`${e[2]}.${e[1]}.${e[3]}.${e[0]}`,`${e[2]}.${e[3]}.${e[0]}.${e[1]}`,`${e[2]}.${e[3]}.${e[1]}.${e[0]}`,`${e[3]}.${e[0]}.${e[1]}.${e[2]}`,`${e[3]}.${e[0]}.${e[2]}.${e[1]}`,`${e[3]}.${e[1]}.${e[0]}.${e[2]}`,`${e[3]}.${e[1]}.${e[2]}.${e[0]}`,`${e[3]}.${e[2]}.${e[0]}.${e[1]}`,`${e[3]}.${e[2]}.${e[1]}.${e[0]}`]}function C(e){if(e.length===0||e.length===1)return e;var t=e.join(`.`);return qe[t]||(qe[t]=S(e)),qe[t]}function w(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return C(e.filter(function(e){return e!==`token`})).reduce(function(e,t){return x(x({},e),n[t])},t)}function T(e){return e.join(` `)}function E(e,t){var n=0;return function(r){return n+=1,r.map(function(r,i){return D({node:r,stylesheet:e,useInlineStyles:t,key:`code-segment-${n}-${i}`})})}}function D(e){var t=e.node,n=e.stylesheet,r=e.style,i=r===void 0?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,c=t.type,l=t.tagName,u=t.value;if(c===`text`)return u;if(l){var d=E(n,a),p;if(!a)p=x(x({},s),{},{className:T(s.className)});else{var m=Object.keys(n).reduce(function(e,t){return t.split(`.`).forEach(function(t){e.includes(t)||e.push(t)}),e},[]),h=s.className&&s.className.includes(`token`)?[`token`]:[],g=s.className&&h.concat(s.className.filter(function(e){return!m.includes(e)}));p=x(x({},s),{},{className:T(g)||void 0,style:w(s.className,Object.assign({},s.style,i),n)})}var _=d(t.children);return pe.createElement(l,f({key:o},p),_)}}function O(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e){if(Array.isArray(e))return O(e)}function A(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function ne(e,t){if(e){if(typeof e==`string`)return O(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(e,t):void 0}}function j(){throw TypeError(`Invalid attempt to spread non-iterable instance.
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{a as r,i,t as a}from"./chunk-IMSF75WX-CGYlPTyG.js";import{i as o,n as s,r as c,t as l}from"./chunk-W22LQPXL-B7RoPLDL.js";import{a as u,u as d,w as f}from"./theming-BgT2grXK.js";import{n as p,t as m}from"./chunk-DRQKCCAG-DvsmU7ha.js";import{t as h}from"./chunk-242VQQM5-bHL6qIJq.js";function g(e){"@babel/helpers - typeof";return g=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},g(e)}function _(e,t){if(g(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(g(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function v(e){var t=_(e,`string`);return g(t)==`symbol`?t:t+``}function ee(e,t,n){return(t=v(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e,t){if(e==null)return{};var n,r,i=h(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function y(){return(y=t((()=>{})))()}function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function x(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?b(Object(n),!0).forEach(function(t){ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function S(e){var t=e.length;if(t===0||t===1)return e;if(t===2)return[e[0],e[1],`${e[0]}.${e[1]}`,`${e[1]}.${e[0]}`];if(t===3)return[e[0],e[1],e[2],`${e[0]}.${e[1]}`,`${e[0]}.${e[2]}`,`${e[1]}.${e[0]}`,`${e[1]}.${e[2]}`,`${e[2]}.${e[0]}`,`${e[2]}.${e[1]}`,`${e[0]}.${e[1]}.${e[2]}`,`${e[0]}.${e[2]}.${e[1]}`,`${e[1]}.${e[0]}.${e[2]}`,`${e[1]}.${e[2]}.${e[0]}`,`${e[2]}.${e[0]}.${e[1]}`,`${e[2]}.${e[1]}.${e[0]}`];if(t>=4)return[e[0],e[1],e[2],e[3],`${e[0]}.${e[1]}`,`${e[0]}.${e[2]}`,`${e[0]}.${e[3]}`,`${e[1]}.${e[0]}`,`${e[1]}.${e[2]}`,`${e[1]}.${e[3]}`,`${e[2]}.${e[0]}`,`${e[2]}.${e[1]}`,`${e[2]}.${e[3]}`,`${e[3]}.${e[0]}`,`${e[3]}.${e[1]}`,`${e[3]}.${e[2]}`,`${e[0]}.${e[1]}.${e[2]}`,`${e[0]}.${e[1]}.${e[3]}`,`${e[0]}.${e[2]}.${e[1]}`,`${e[0]}.${e[2]}.${e[3]}`,`${e[0]}.${e[3]}.${e[1]}`,`${e[0]}.${e[3]}.${e[2]}`,`${e[1]}.${e[0]}.${e[2]}`,`${e[1]}.${e[0]}.${e[3]}`,`${e[1]}.${e[2]}.${e[0]}`,`${e[1]}.${e[2]}.${e[3]}`,`${e[1]}.${e[3]}.${e[0]}`,`${e[1]}.${e[3]}.${e[2]}`,`${e[2]}.${e[0]}.${e[1]}`,`${e[2]}.${e[0]}.${e[3]}`,`${e[2]}.${e[1]}.${e[0]}`,`${e[2]}.${e[1]}.${e[3]}`,`${e[2]}.${e[3]}.${e[0]}`,`${e[2]}.${e[3]}.${e[1]}`,`${e[3]}.${e[0]}.${e[1]}`,`${e[3]}.${e[0]}.${e[2]}`,`${e[3]}.${e[1]}.${e[0]}`,`${e[3]}.${e[1]}.${e[2]}`,`${e[3]}.${e[2]}.${e[0]}`,`${e[3]}.${e[2]}.${e[1]}`,`${e[0]}.${e[1]}.${e[2]}.${e[3]}`,`${e[0]}.${e[1]}.${e[3]}.${e[2]}`,`${e[0]}.${e[2]}.${e[1]}.${e[3]}`,`${e[0]}.${e[2]}.${e[3]}.${e[1]}`,`${e[0]}.${e[3]}.${e[1]}.${e[2]}`,`${e[0]}.${e[3]}.${e[2]}.${e[1]}`,`${e[1]}.${e[0]}.${e[2]}.${e[3]}`,`${e[1]}.${e[0]}.${e[3]}.${e[2]}`,`${e[1]}.${e[2]}.${e[0]}.${e[3]}`,`${e[1]}.${e[2]}.${e[3]}.${e[0]}`,`${e[1]}.${e[3]}.${e[0]}.${e[2]}`,`${e[1]}.${e[3]}.${e[2]}.${e[0]}`,`${e[2]}.${e[0]}.${e[1]}.${e[3]}`,`${e[2]}.${e[0]}.${e[3]}.${e[1]}`,`${e[2]}.${e[1]}.${e[0]}.${e[3]}`,`${e[2]}.${e[1]}.${e[3]}.${e[0]}`,`${e[2]}.${e[3]}.${e[0]}.${e[1]}`,`${e[2]}.${e[3]}.${e[1]}.${e[0]}`,`${e[3]}.${e[0]}.${e[1]}.${e[2]}`,`${e[3]}.${e[0]}.${e[2]}.${e[1]}`,`${e[3]}.${e[1]}.${e[0]}.${e[2]}`,`${e[3]}.${e[1]}.${e[2]}.${e[0]}`,`${e[3]}.${e[2]}.${e[0]}.${e[1]}`,`${e[3]}.${e[2]}.${e[1]}.${e[0]}`]}function C(e){if(e.length===0||e.length===1)return e;var t=e.join(`.`);return qe[t]||(qe[t]=S(e)),qe[t]}function w(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;return C(e.filter(function(e){return e!==`token`})).reduce(function(e,t){return x(x({},e),n[t])},t)}function T(e){return e.join(` `)}function E(e,t){var n=0;return function(r){return n+=1,r.map(function(r,i){return D({node:r,stylesheet:e,useInlineStyles:t,key:`code-segment-${n}-${i}`})})}}function D(e){var t=e.node,n=e.stylesheet,r=e.style,i=r===void 0?{}:r,a=e.useInlineStyles,o=e.key,s=t.properties,c=t.type,l=t.tagName,u=t.value;if(c===`text`)return u;if(l){var d=E(n,a),p;if(!a)p=x(x({},s),{},{className:T(s.className)});else{var m=Object.keys(n).reduce(function(e,t){return t.split(`.`).forEach(function(t){e.includes(t)||e.push(t)}),e},[]),h=s.className&&s.className.includes(`token`)?[`token`]:[],g=s.className&&h.concat(s.className.filter(function(e){return!m.includes(e)}));p=x(x({},s),{},{className:T(g)||void 0,style:w(s.className,Object.assign({},s.style,i),n)})}var _=d(t.children);return pe.createElement(l,f({key:o},p),_)}}function O(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function k(e){if(Array.isArray(e))return O(e)}function A(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function ne(e,t){if(e){if(typeof e==`string`)return O(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(e,t):void 0}}function j(){throw TypeError(`Invalid attempt to spread non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function M(e){return k(e)||A(e)||ne(e)||j()}function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function P(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?N(Object(n),!0).forEach(function(t){ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function re(e){return e.match(st)}function ie(e){var t=e.lines,n=e.startingLineNumber,r=e.style;return t.map(function(e,t){var i=t+n;return z.createElement(`span`,{key:`line-${t}`,className:`react-syntax-highlighter-line-number`,style:typeof r==`function`?r(i):r},`${i}
3
3
  `)})}function ae(e){var t=e.codeString,n=e.codeStyle,r=e.containerStyle,i=r===void 0?{float:`left`,paddingRight:`10px`}:r,a=e.numberStyle,o=a===void 0?{}:a,s=e.startingLineNumber;return z.createElement(`code`,{style:Object.assign({},n,i)},ie({lines:t.replace(/\n$/,``).split(`
4
4
  `),style:o,startingLineNumber:s}))}function oe(e){return`${e.toString().length}.25em`}function se(e,t){return{type:`element`,tagName:`span`,properties:{key:`line-number--${e}`,className:[`comment`,`linenumber`,`react-syntax-highlighter-line-number`],style:t},children:[{type:`text`,value:e}]}}function ce(e,t,n){var r={display:`inline-block`,minWidth:oe(n),paddingRight:`1em`,textAlign:`right`,userSelect:`none`},i=typeof e==`function`?e(t):e;return P(P({},r),i)}function F(e){var t=e.children,n=e.lineNumber,r=e.lineNumberStyle,i=e.largestLineNumber,a=e.showInlineLineNumbers,o=e.lineProps,s=o===void 0?{}:o,c=e.className,l=c===void 0?[]:c,u=e.showLineNumbers,d=e.wrapLongLines,f=e.wrapLines,p=f!==void 0&&f?P({},typeof s==`function`?s(n):s):{};if(p.className=p.className?[].concat(M(p.className.trim().split(/\s+/)),M(l)):l,n&&a){var m=ce(r,n,i);t.unshift(se(n,m))}return d&u&&(p.style=P({display:`flex`},p.style)),{type:`element`,tagName:`span`,properties:p,children:t}}function le(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=0;r<e.length;r++){var i=e[r];if(i.type===`text`)n.push(F({children:[i],className:M(new Set(t))}));else if(i.children){var a=t.concat(i.properties.className);le(i.children,a).forEach(function(e){return n.push(e)})}}return n}function ue(e,t,n,r,i,a,o,s,c){var l,u=le(e.value),d=[],f=-1,p=0;function m(e,a){return F({children:e,lineNumber:a,lineNumberStyle:s,largestLineNumber:o,showInlineLineNumbers:i,lineProps:n,className:arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],showLineNumbers:r,wrapLongLines:c,wrapLines:t})}function h(e,t){if(r&&t&&i){var n=ce(s,t,o);e.unshift(se(t,n))}return e}function g(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return t||r.length>0?m(e,n,r):h(e,n)}for(var _=function(){var e=u[p],t=e.children[0].value;if(re(t)){var n=t.split(`
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-CB9pifff.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],i=n(`trash-2`,r)})))()}export{a as n,i as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-Ctjgxy8H.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]],i=n(`trash-2`,r)})))()}export{a as n,i as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-CB9pifff.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],i=n(`triangle-alert`,r)})))()}export{a as n,i as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-Ctjgxy8H.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],i=n(`triangle-alert`,r)})))()}export{a as n,i as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{a as n,n as r}from"./odata-DZHQPho8.js";import{S as i,y as a}from"./formatters-D33Uh3si-Df97arf9.js";function o(e,t){return t.indexOf(e)}function s({values:e,defaultValues:t,onChange:n,selectionMode:r=`independent`,segmentOrder:i=[]}){let[a,s]=(0,c.useState)(()=>t??{}),l=e??a,u=(0,c.useCallback)(t=>{e===void 0&&s(t),n?.(t)},[n,e]),d=(0,c.useCallback)(e=>{if(r===`independent`)return!1;let t=o(e,i);return t<0||i.slice(0,t).some(e=>!l[e]?.length)},[l,i,r]);return{values:l,updateValues:u,updateSegment:(0,c.useCallback)((e,t)=>{if(d(e))return;let n={...l,[e]:[...t]};if(r===`sequential`){let t=o(e,i);for(let e of i.slice(t+1))e in n&&(n[e]=[])}u(n)},[d,l,i,r,u]),isSegmentDisabled:d}}var c;function l(){return(l=e((()=>{c=t()})))()}function u(e){return e?.length?[...new Set(e)].sort():[]}function d(e,t,n){let r=[];for(let i of Object.keys(t).sort()){if(i===e)continue;let t=u(n?.[i]);t.length&&r.push(`${i}:${t.join(_)}`)}return r.join(g)}function f(e){let t=new Map;if(!e)return t;for(let n of e.split(g)){let e=n.indexOf(`:`);if(e<0)continue;let r=n.slice(0,e),i=n.slice(e+1).split(_).filter(Boolean);r&&i.length&&t.set(r,i)}return t}function p({odata:e,segment:t,model:n,value:a,dependencies:o}){let[s,c]=(0,h.useState)(``),[l,u]=(0,h.useState)(``),{codeKey:p,searchDebounceDelay:m,minSearchCodeLength:g,minSearchTextLength:_}=n,{data:v,textKey:y,isLoading:b,isError:x,getItems:S,separatedItems:C,findSourceItemsByKeys:w,setFilteredItems:T,debounce:E}=r({odata:e,model:n}),D=C.length,O=t.selectText&&y?y:p,k=(0,h.useMemo)(()=>v?d(p,v.keyPairsMap,o):``,[v,p,o]);(0,h.useEffect)(()=>{if(!v)return;let e=v.chain.findIndex(e=>e.codeKey===p),t=f(k),n=e=>{let n=v.chain[e].codeKey,r=t.get(n);if(r?.length)return w(n,r)};for(let t=v.chain.length-1;t>e;t--){let e=n(t);if(e){T(e);return}}for(let t=0;t<e;t++){let e=n(t);if(e){T(e);return}}T(void 0)},[v,k,p,w,T]),(0,h.useEffect)(()=>{E(`search`,()=>{u(s.trim().toLowerCase())},m)},[E,s,m]);let A=(0,h.useMemo)(()=>{if(!a?.length||!O)return[];let e=new Set(a);return C.filter(t=>e.has(t[O]))},[C,O,a]);return{query:s,setQuery:c,debouncedQuery:l,selectedItems:A,filteredItems:(0,h.useMemo)(()=>{if(!v)return[];if(!(l.length>=_))return S(void 0,A);let e=l.length>=_,n=!t.hideCode&&l.length>=g&&!Number.isNaN(Number(l));return S((t,r)=>!!(t&&r&&(n&&i(t,l)||e&&r.toLowerCase().includes(l))),A)},[l,S,g,_,v,t.hideCode,A]),itemsCount:D,isLoading:b,isError:x,codeKey:p,textKey:y,selectionKey:O,placeholder:t.placeholder}}function m(e,t){return e.map(e=>e[t])}var h,g,_;function v(){return(v=e((()=>{h=t(),n(),a(),g=``,_=``})))()}export{s as a,l as i,m as n,p as r,v as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{a as n,n as r}from"./odata-BDsYgYEZ.js";import{S as i,y as a}from"./formatters-D33Uh3si-Df97arf9.js";function o(e,t){return t.indexOf(e)}function s({values:e,defaultValues:t,onChange:n,selectionMode:r=`independent`,segmentOrder:i=[]}){let[a,s]=(0,c.useState)(()=>t??{}),l=e??a,u=(0,c.useCallback)(t=>{e===void 0&&s(t),n?.(t)},[n,e]),d=(0,c.useCallback)(e=>{if(r===`independent`)return!1;let t=o(e,i);return t<0||i.slice(0,t).some(e=>!l[e]?.length)},[l,i,r]);return{values:l,updateValues:u,updateSegment:(0,c.useCallback)((e,t)=>{if(d(e))return;let n={...l,[e]:[...t]};if(r===`sequential`){let t=o(e,i);for(let e of i.slice(t+1))e in n&&(n[e]=[])}u(n)},[d,l,i,r,u]),isSegmentDisabled:d}}var c;function l(){return(l=e((()=>{c=t()})))()}function u(e){return e?.length?[...new Set(e)].sort():[]}function d(e,t,n){let r=[];for(let i of Object.keys(t).sort()){if(i===e)continue;let t=u(n?.[i]);t.length&&r.push(`${i}:${t.join(_)}`)}return r.join(g)}function f(e){let t=new Map;if(!e)return t;for(let n of e.split(g)){let e=n.indexOf(`:`);if(e<0)continue;let r=n.slice(0,e),i=n.slice(e+1).split(_).filter(Boolean);r&&i.length&&t.set(r,i)}return t}function p({odata:e,segment:t,model:n,value:a,dependencies:o}){let[s,c]=(0,h.useState)(``),[l,u]=(0,h.useState)(``),{codeKey:p,searchDebounceDelay:m,minSearchCodeLength:g,minSearchTextLength:_}=n,{data:v,textKey:y,isLoading:b,isError:x,getItems:S,separatedItems:C,findSourceItemsByKeys:w,setFilteredItems:T,debounce:E}=r({odata:e,model:n}),D=C.length,O=t.selectText&&y?y:p,k=(0,h.useMemo)(()=>v?d(p,v.keyPairsMap,o):``,[v,p,o]);(0,h.useEffect)(()=>{if(!v)return;let e=v.chain.findIndex(e=>e.codeKey===p),t=f(k),n=e=>{let n=v.chain[e].codeKey,r=t.get(n);if(r?.length)return w(n,r)};for(let t=v.chain.length-1;t>e;t--){let e=n(t);if(e){T(e);return}}for(let t=0;t<e;t++){let e=n(t);if(e){T(e);return}}T(void 0)},[v,k,p,w,T]),(0,h.useEffect)(()=>{E(`search`,()=>{u(s.trim().toLowerCase())},m)},[E,s,m]);let A=(0,h.useMemo)(()=>{if(!a?.length||!O)return[];let e=new Set(a);return C.filter(t=>e.has(t[O]))},[C,O,a]);return{query:s,setQuery:c,debouncedQuery:l,selectedItems:A,filteredItems:(0,h.useMemo)(()=>{if(!v)return[];if(!(l.length>=_))return S(void 0,A);let e=l.length>=_,n=!t.hideCode&&l.length>=g&&!Number.isNaN(Number(l));return S((t,r)=>!!(t&&r&&(n&&i(t,l)||e&&r.toLowerCase().includes(l))),A)},[l,S,g,_,v,t.hideCode,A]),itemsCount:D,isLoading:b,isError:x,codeKey:p,textKey:y,selectionKey:O,placeholder:t.placeholder}}function m(e,t){return e.map(e=>e[t])}var h,g,_;function v(){return(v=e((()=>{h=t(),n(),a(),g=``,_=``})))()}export{s as a,l as i,m as n,p as r,v as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{a as n,n as r,o as i,r as a,s as o,t as s}from"./odata-DZHQPho8.js";import{C as c,w as l}from"./odata-service-CWkHASdw-CXhFi03v.js";function u(e,t,n){return e?`${e}/${t}:${n}`:`${t}:${n}`}function d(e,t,n){let r=n[t];return r&&e[r]||e[t]}function f(e){return[...new Set(e.filter(Boolean))].join(` `)}function p(e){return{id:u(e.parentId,e.codeKey,e.value),codeKey:e.codeKey,value:e.value,label:e.label,code:e.code,searchText:f([e.value,e.label,e.code]),sortCode:e.sortCode,children:[],childByBranchKey:new Map}}function m(e,t){e.sort((e,n)=>{let r=t?e.sortCode:e.label,i=t?n.sortCode:n.label;return l(r,i)||l(e.sortCode,n.sortCode)});for(let n of e)m(n.children,t)}function h(e){return{id:e.id,codeKey:e.codeKey,value:e.value,label:e.label,code:e.code,searchText:e.searchText,children:e.children.length>0?e.children.map(h):void 0}}function g({items:e,orderedCodeKeys:t,keyPairsMap:n,hiddenCodeKeys:r,textValueCodeKeys:i,allowEmptyCodeKeys:a,sortByCode:o=!0}){if(t.length===0||e.length===0)return[];let s=[],c=new Map;for(let o of e){let e;for(let l of t){let t=String(o[l]??``);if(!t&&!a?.has(l))break;let u=String(d(o,l,n)??``),f=i?.has(l)?u:t,m=`${l}:${f}`,h=e?e.childByBranchKey:c,g=h.get(m);g||(g=p({parentId:e?.id,codeKey:l,value:f,label:u,code:r.has(l)?void 0:t,sortCode:t}),h.set(m,g),e?e.children.push(g):s.push(g)),e=g}}return m(s,o),s.map(h)}function _(){return(_=e((()=>{c()})))()}function v(e,t,n){return i(e,t,n)}function y(){return(y=e((()=>{n()})))()}function b(e,t,n){return s([{odata:e,segments:t,model:n}])}function x(e){return e[0]?.id}function S({odata:e,segments:t,model:n,segmentOrder:i,allowEmptyCodeKeys:s}){let c=`${e.service}.${e.target}`,l=(0,C.useMemo)(()=>b(e,t,n),[e,t,n]),u=a([e]),d=(0,C.useMemo)(()=>v(l,u,i),[l,u,i]),f=(0,C.useMemo)(()=>d.map(e=>e.id),[d]),p=(0,C.useMemo)(()=>new Set(s),[s]),m=x(d)??Object.keys(t)[0],h=o({codeKey:m,...n}),_=r({odata:e,model:h}),{hiddenCodeKeys:y,textValueCodeKeys:S}=(0,C.useMemo)(()=>{let t=new Set,n=new Set;for(let r of d)(r.segment.hideCode??e.hideCode)&&t.add(r.id),r.segment.selectText&&n.add(r.id);return{hiddenCodeKeys:t,textValueCodeKeys:n}},[e.hideCode,d]),w=(0,C.useMemo)(()=>g({items:_.data?.items??[],orderedCodeKeys:f,keyPairsMap:_.data?.keyPairsMap??{},hiddenCodeKeys:y,textValueCodeKeys:S,allowEmptyCodeKeys:p,sortByCode:e.sortByCode}),[p,_.data?.items,_.data?.keyPairsMap,y,e.sortByCode,f,S]),T=d[0]?.segment.placeholder??`Выберите значение`,E=!!u[c]?.length;return{nodes:w,orderedSegmentItems:d,orderedCodeKeys:f,isLoading:_.isLoading,isError:_.isError,placeholder:T,hasResolvedChain:E}}var C;function w(){return(w=e((()=>{C=t(),n(),_(),y()})))()}export{S as n,w as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{a as n,n as r,o as i,r as a,s as o,t as s}from"./odata-BDsYgYEZ.js";import{C as c,w as l}from"./odata-service-CWkHASdw-CXhFi03v.js";function u(e,t,n){return e?`${e}/${t}:${n}`:`${t}:${n}`}function d(e,t,n){let r=n[t];return r&&e[r]||e[t]}function f(e){return[...new Set(e.filter(Boolean))].join(` `)}function p(e){return{id:u(e.parentId,e.codeKey,e.value),codeKey:e.codeKey,value:e.value,label:e.label,code:e.code,searchText:f([e.value,e.label,e.code]),sortCode:e.sortCode,children:[],childByBranchKey:new Map}}function m(e,t){e.sort((e,n)=>{let r=t?e.sortCode:e.label,i=t?n.sortCode:n.label;return l(r,i)||l(e.sortCode,n.sortCode)});for(let n of e)m(n.children,t)}function h(e){return{id:e.id,codeKey:e.codeKey,value:e.value,label:e.label,code:e.code,searchText:e.searchText,children:e.children.length>0?e.children.map(h):void 0}}function g({items:e,orderedCodeKeys:t,keyPairsMap:n,hiddenCodeKeys:r,textValueCodeKeys:i,allowEmptyCodeKeys:a,sortByCode:o=!0}){if(t.length===0||e.length===0)return[];let s=[],c=new Map;for(let o of e){let e;for(let l of t){let t=String(o[l]??``);if(!t&&!a?.has(l))break;let u=String(d(o,l,n)??``),f=i?.has(l)?u:t,m=`${l}:${f}`,h=e?e.childByBranchKey:c,g=h.get(m);g||(g=p({parentId:e?.id,codeKey:l,value:f,label:u,code:r.has(l)?void 0:t,sortCode:t}),h.set(m,g),e?e.children.push(g):s.push(g)),e=g}}return m(s,o),s.map(h)}function _(){return(_=e((()=>{c()})))()}function v(e,t,n){return i(e,t,n)}function y(){return(y=e((()=>{n()})))()}function b(e,t,n){return s([{odata:e,segments:t,model:n}])}function x(e){return e[0]?.id}function S({odata:e,segments:t,model:n,segmentOrder:i,allowEmptyCodeKeys:s}){let c=`${e.service}.${e.target}`,l=(0,C.useMemo)(()=>b(e,t,n),[e,t,n]),u=a([e]),d=(0,C.useMemo)(()=>v(l,u,i),[l,u,i]),f=(0,C.useMemo)(()=>d.map(e=>e.id),[d]),p=(0,C.useMemo)(()=>new Set(s),[s]),m=x(d)??Object.keys(t)[0],h=o({codeKey:m,...n}),_=r({odata:e,model:h}),{hiddenCodeKeys:y,textValueCodeKeys:S}=(0,C.useMemo)(()=>{let t=new Set,n=new Set;for(let r of d)(r.segment.hideCode??e.hideCode)&&t.add(r.id),r.segment.selectText&&n.add(r.id);return{hiddenCodeKeys:t,textValueCodeKeys:n}},[e.hideCode,d]),w=(0,C.useMemo)(()=>g({items:_.data?.items??[],orderedCodeKeys:f,keyPairsMap:_.data?.keyPairsMap??{},hiddenCodeKeys:y,textValueCodeKeys:S,allowEmptyCodeKeys:p,sortByCode:e.sortByCode}),[p,_.data?.items,_.data?.keyPairsMap,y,e.sortByCode,f,S]),T=d[0]?.segment.placeholder??`Выберите значение`,E=!!u[c]?.length;return{nodes:w,orderedSegmentItems:d,orderedCodeKeys:f,isLoading:_.isLoading,isError:_.isError,placeholder:T,hasResolvedChain:E}}var C;function w(){return(w=e((()=>{C=t(),n(),_(),y()})))()}export{S as n,w as t};
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-CB9pifff.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{n as a,t as o}from"./ui.module-31LPbZGK.js";import{a as s}from"./usePickerTriggerController-C0xxhsv5.js";import{c,s as l}from"./Option-Bi34xfha.js";function u({emptyState:e,errorState:t}){let n=t??e;return n==null?null:(0,d.jsx)(`div`,{className:r(a.uiPopupOption,l.status,t!==void 0&&l.statusError),"aria-disabled":!0,children:n})}var d;function f(){return(f=e((()=>{i(),o(),c(),d=n(),u.__docgenInfo={description:``,methods:[],displayName:`PickerStatus`,props:{emptyState:{required:!1,tsType:{name:`ReactNode`},description:``},errorState:{required:!1,tsType:{name:`ReactNode`},description:``}}}})))()}function p({query:e,defaultQuery:t,onQuery:n,resetOnClose:r,triggerMode:i}){let a=e!==void 0,[o,c]=(0,m.useState)(t??``),l=a?e??``:o,u=r??(!i||s(i).resetQueryOnClose),d=e=>{a||c(e),n?.(e)};return{query:l,setQuery:d,clearQuery:()=>d(``),resetQueryOnClose:u}}var m;function h(){return(h=e((()=>{m=t()})))()}export{f as i,p as n,u as r,h as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-Ctjgxy8H.js";import{a as r,i}from"./utils-tg3ibbzi.js";import{n as a,t as o}from"./ui.module-31LPbZGK.js";import{a as s}from"./usePickerTriggerController-8HqdXbS9.js";import{c,s as l}from"./Option-DhjNWSm2.js";function u({emptyState:e,errorState:t}){let n=t??e;return n==null?null:(0,d.jsx)(`div`,{className:r(a.uiPopupOption,l.status,t!==void 0&&l.statusError),"aria-disabled":!0,children:n})}var d;function f(){return(f=e((()=>{i(),o(),c(),d=n(),u.__docgenInfo={description:``,methods:[],displayName:`PickerStatus`,props:{emptyState:{required:!1,tsType:{name:`ReactNode`},description:``},errorState:{required:!1,tsType:{name:`ReactNode`},description:``}}}})))()}function p({query:e,defaultQuery:t,onQuery:n,resetOnClose:r,triggerMode:i}){let a=e!==void 0,[o,c]=(0,m.useState)(t??``),l=a?e??``:o,u=r??(!i||s(i).resetQueryOnClose),d=e=>{a||c(e),n?.(e)};return{query:l,setQuery:d,clearQuery:()=>d(``),resetQueryOnClose:u}}var m;function h(){return(h=e((()=>{m=t()})))()}export{f as i,p as n,u as r,h as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-DgcBZVW3.js";import{n as i}from"./iframe-CB9pifff.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{n as s,r as c,t as l}from"./floating-ui.react-j2x4WoIe.js";import{n as u,t as d}from"./ui.module-31LPbZGK.js";import{n as f,r as p,t as m}from"./react-D9ony7ur.js";import{d as h,i as g,l as _,r as v,s as y,u as b}from"./Input-DWaSzRT6.js";import{c as x,i as S,r as ee,s as C}from"./Option-Bi34xfha.js";import{n as w,t as T}from"./PickerTriggerActions-DQ6Irt2H.js";import{n as E,t as D}from"./hooks-D1LxuSK1.js";function O({id:e,label:t,description:n,disabled:r,size:i,className:a,error:o,children:s}){let{controlId:c,labelId:l,descriptionId:u,errorId:d,describedBy:f}=h({id:e,hasLabel:t!=null,hasDescription:!!n,hasError:!!o});return(0,k.jsx)(y,{label:t,description:n,disabled:r,size:i,className:a,error:o,controlId:c,labelId:l,descriptionId:u,errorId:d,children:s({controlId:c,labelId:l,descriptionId:u,errorId:d,describedBy:f})})}var k;function A(){return(A=e((()=>{_(),b(),k=i(),O.__docgenInfo={description:``,methods:[],displayName:`PickerField`,props:{id:{required:!1,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``},error:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(context: PickerFieldContext) => ReactNode`,signature:{arguments:[{type:{name:`PickerFieldContext`},name:`context`}],return:{name:`ReactNode`}}},description:``}},composes:[`Omit`]}})))()}function j({disabled:e,ariaLabel:t=`Очистить выбор`,onClear:n}){let i=e=>{e.preventDefault(),e.stopPropagation()};return(0,M.jsx)(`button`,{type:`button`,disabled:e,className:u.uiClearButton,"data-ui":`picker-clear-button`,"data-action":`clear-picker`,onMouseDown:i,onClick:e=>{i(e),n()},"aria-label":t,children:(0,M.jsx)(r,{})})}var M;function N(){return(N=e((()=>{n(),d(),M=i(),j.__docgenInfo={description:`Единое действие очистки выбранного значения во всех clearable picker-компонентах.`,methods:[],displayName:`PickerClearButton`,props:{disabled:{required:!1,tsType:{name:`boolean`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Очистить выбор"`,computed:!1}},onClear:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}function P(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(P).filter(e=>!!e).map(e=>e.trim()).filter(Boolean);return t.length?t.join(` `):void 0}if((0,F.isValidElement)(e))return typeof e.props.searchText==`string`?e.props.searchText:P(e.props.children)}var F;function I(){return(I=e((()=>{F=t()})))()}function te({placeholder:e,label:t,optionCount:n,fallback:r=`Выберите значение`}){let i=P(t);return`${e??i??r} <${n}>`}function L(){return(L=e((()=>{I()})))()}function ne(e){e.stopPropagation()}function R({open:e,context:t,floatingStyles:n,listId:r,labelId:i,popupAriaLabel:a,descriptionId:o,activeOptionId:c,ariaMultiselectable:u,popupRole:d=`listbox`,setFloating:m,getFloatingProps:h,onKeyDown:g,initialFocus:_=-1,returnFocus:v=!1,tabIndex:y=0,className:b,maxWidth:x,layoutClassName:S,bodyClassName:w,toolbar:T,selectionActions:E,children:D}){return(0,z.jsx)(p,{children:e&&(0,z.jsx)(s,{children:(0,z.jsx)(l,{context:t,modal:!1,initialFocus:_,returnFocus:v,children:(0,z.jsx)(f.div,{ref:m,style:{...n,maxWidth:x},initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},...h({id:r,role:d,tabIndex:y,"aria-labelledby":i,"aria-label":i?void 0:a,"aria-describedby":o,"aria-activedescendant":c,"aria-multiselectable":u||void 0,onMouseDown:ne,onKeyDown:g,className:C.popupPositioner}),children:(0,z.jsx)(ee,{className:b,layoutClassName:S,bodyClassName:w,toolbar:T,selectionActions:E,scrollable:!1,children:D})})})})})}var z;function B(){return(B=e((()=>{c(),m(),x(),S(),z=i(),R.__docgenInfo={description:``,methods:[],displayName:`PickerPopup`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},context:{required:!0,tsType:{name:`FloatingContext`},description:``},floatingStyles:{required:!0,tsType:{name:`CSSProperties`},description:``},listId:{required:!0,tsType:{name:`string`},description:``},labelId:{required:!1,tsType:{name:`string`},description:``},popupAriaLabel:{required:!1,tsType:{name:`string`},description:``},descriptionId:{required:!1,tsType:{name:`string`},description:``},activeOptionId:{required:!1,tsType:{name:`string`},description:``},ariaMultiselectable:{required:!1,tsType:{name:`boolean`},description:``},popupRole:{required:!1,tsType:{name:`union`,raw:`"listbox" | "dialog"`,elements:[{name:`literal`,value:`"listbox"`},{name:`literal`,value:`"dialog"`}]},description:``,defaultValue:{value:`"listbox"`,computed:!1}},setFloating:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(node: HTMLElement | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`HTMLElement | null`,elements:[{name:`HTMLElement`},{name:`null`}]},name:`node`}],return:{name:`void`}}},description:``},getFloatingProps:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(userProps?: Record<string, unknown>) => Record<string, unknown>`,signature:{arguments:[{type:{name:`Record`,elements:[{name:`string`},{name:`unknown`}],raw:`Record<string, unknown>`},name:`userProps`}],return:{name:`Record`,elements:[{name:`string`},{name:`unknown`}],raw:`Record<string, unknown>`}}},description:``},onKeyDown:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(event: KeyboardEvent<HTMLElement>) => void`,signature:{arguments:[{type:{name:`KeyboardEvent`,elements:[{name:`HTMLElement`}],raw:`KeyboardEvent<HTMLElement>`},name:`event`}],return:{name:`void`}}},description:``},initialFocus:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`-1`,computed:!1}},returnFocus:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},tabIndex:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},maxWidth:{required:!1,tsType:{name:`CSSProperties["maxWidth"]`,raw:`CSSProperties["maxWidth"]`},description:``},layoutClassName:{required:!1,tsType:{name:`string`},description:``},bodyClassName:{required:!1,tsType:{name:`string`},description:``},toolbar:{required:!1,tsType:{name:`union`,raw:`ReactNode | false`,elements:[{name:`ReactNode`},{name:`literal`,value:`false`}]},description:``},selectionActions:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-4Az7SNSv.js";import{n as i}from"./iframe-Ctjgxy8H.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{n as s,r as c,t as l}from"./floating-ui.react-YRjL1BGe.js";import{n as u,t as d}from"./ui.module-31LPbZGK.js";import{n as f,r as p,t as m}from"./react-0DwxKZMs.js";import{d as h,i as g,l as _,r as v,s as y,u as b}from"./Input-DMnIZD0A.js";import{c as x,i as S,r as ee,s as C}from"./Option-DhjNWSm2.js";import{n as w,t as T}from"./PickerTriggerActions-l0pz64kI.js";import{n as E,t as D}from"./hooks-D9hEAXzf.js";function O({id:e,label:t,description:n,disabled:r,size:i,className:a,error:o,children:s}){let{controlId:c,labelId:l,descriptionId:u,errorId:d,describedBy:f}=h({id:e,hasLabel:t!=null,hasDescription:!!n,hasError:!!o});return(0,k.jsx)(y,{label:t,description:n,disabled:r,size:i,className:a,error:o,controlId:c,labelId:l,descriptionId:u,errorId:d,children:s({controlId:c,labelId:l,descriptionId:u,errorId:d,describedBy:f})})}var k;function A(){return(A=e((()=>{_(),b(),k=i(),O.__docgenInfo={description:``,methods:[],displayName:`PickerField`,props:{id:{required:!1,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``},error:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(context: PickerFieldContext) => ReactNode`,signature:{arguments:[{type:{name:`PickerFieldContext`},name:`context`}],return:{name:`ReactNode`}}},description:``}},composes:[`Omit`]}})))()}function j({disabled:e,ariaLabel:t=`Очистить выбор`,onClear:n}){let i=e=>{e.preventDefault(),e.stopPropagation()};return(0,M.jsx)(`button`,{type:`button`,disabled:e,className:u.uiClearButton,"data-ui":`picker-clear-button`,"data-action":`clear-picker`,onMouseDown:i,onClick:e=>{i(e),n()},"aria-label":t,children:(0,M.jsx)(r,{})})}var M;function N(){return(N=e((()=>{n(),d(),M=i(),j.__docgenInfo={description:`Единое действие очистки выбранного значения во всех clearable picker-компонентах.`,methods:[],displayName:`PickerClearButton`,props:{disabled:{required:!1,tsType:{name:`boolean`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Очистить выбор"`,computed:!1}},onClear:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}function P(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(P).filter(e=>!!e).map(e=>e.trim()).filter(Boolean);return t.length?t.join(` `):void 0}if((0,F.isValidElement)(e))return typeof e.props.searchText==`string`?e.props.searchText:P(e.props.children)}var F;function I(){return(I=e((()=>{F=t()})))()}function te({placeholder:e,label:t,optionCount:n,fallback:r=`Выберите значение`}){let i=P(t);return`${e??i??r} <${n}>`}function L(){return(L=e((()=>{I()})))()}function ne(e){e.stopPropagation()}function R({open:e,context:t,floatingStyles:n,listId:r,labelId:i,popupAriaLabel:a,descriptionId:o,activeOptionId:c,ariaMultiselectable:u,popupRole:d=`listbox`,setFloating:m,getFloatingProps:h,onKeyDown:g,initialFocus:_=-1,returnFocus:v=!1,tabIndex:y=0,className:b,maxWidth:x,layoutClassName:S,bodyClassName:w,toolbar:T,selectionActions:E,children:D}){return(0,z.jsx)(p,{children:e&&(0,z.jsx)(s,{children:(0,z.jsx)(l,{context:t,modal:!1,initialFocus:_,returnFocus:v,children:(0,z.jsx)(f.div,{ref:m,style:{...n,maxWidth:x},initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.95},...h({id:r,role:d,tabIndex:y,"aria-labelledby":i,"aria-label":i?void 0:a,"aria-describedby":o,"aria-activedescendant":c,"aria-multiselectable":u||void 0,onMouseDown:ne,onKeyDown:g,className:C.popupPositioner}),children:(0,z.jsx)(ee,{className:b,layoutClassName:S,bodyClassName:w,toolbar:T,selectionActions:E,scrollable:!1,children:D})})})})})}var z;function B(){return(B=e((()=>{c(),m(),x(),S(),z=i(),R.__docgenInfo={description:``,methods:[],displayName:`PickerPopup`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},context:{required:!0,tsType:{name:`FloatingContext`},description:``},floatingStyles:{required:!0,tsType:{name:`CSSProperties`},description:``},listId:{required:!0,tsType:{name:`string`},description:``},labelId:{required:!1,tsType:{name:`string`},description:``},popupAriaLabel:{required:!1,tsType:{name:`string`},description:``},descriptionId:{required:!1,tsType:{name:`string`},description:``},activeOptionId:{required:!1,tsType:{name:`string`},description:``},ariaMultiselectable:{required:!1,tsType:{name:`boolean`},description:``},popupRole:{required:!1,tsType:{name:`union`,raw:`"listbox" | "dialog"`,elements:[{name:`literal`,value:`"listbox"`},{name:`literal`,value:`"dialog"`}]},description:``,defaultValue:{value:`"listbox"`,computed:!1}},setFloating:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(node: HTMLElement | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`HTMLElement | null`,elements:[{name:`HTMLElement`},{name:`null`}]},name:`node`}],return:{name:`void`}}},description:``},getFloatingProps:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(userProps?: Record<string, unknown>) => Record<string, unknown>`,signature:{arguments:[{type:{name:`Record`,elements:[{name:`string`},{name:`unknown`}],raw:`Record<string, unknown>`},name:`userProps`}],return:{name:`Record`,elements:[{name:`string`},{name:`unknown`}],raw:`Record<string, unknown>`}}},description:``},onKeyDown:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(event: KeyboardEvent<HTMLElement>) => void`,signature:{arguments:[{type:{name:`KeyboardEvent`,elements:[{name:`HTMLElement`}],raw:`KeyboardEvent<HTMLElement>`},name:`event`}],return:{name:`void`}}},description:``},initialFocus:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`-1`,computed:!1}},returnFocus:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},tabIndex:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},maxWidth:{required:!1,tsType:{name:`CSSProperties["maxWidth"]`,raw:`CSSProperties["maxWidth"]`},description:``},layoutClassName:{required:!1,tsType:{name:`string`},description:``},bodyClassName:{required:!1,tsType:{name:`string`},description:``},toolbar:{required:!1,tsType:{name:`union`,raw:`ReactNode | false`,elements:[{name:`ReactNode`},{name:`literal`,value:`false`}]},description:``},selectionActions:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
2
2
  onSelectAll: () => void;
3
3
  onDeselectAll: () => void;
4
4
  selectAllButtonRef?: Ref<HTMLButtonElement>;
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-CB9pifff.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]],i=n(`x`,r)})))()}export{a as n,i as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{i as t,r as n}from"./iframe-Ctjgxy8H.js";var r,i;function a(){return(a=e((()=>{t(),r=[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]],i=n(`x`,r)})))()}export{a as n,i as t};
@@ -552,13 +552,13 @@
552
552
  }
553
553
  </script>
554
554
 
555
- <script type="module" crossorigin src="./assets/iframe-BhNcQkWA.js"></script>
555
+ <script type="module" crossorigin src="./assets/iframe-CBbpuUos.js"></script>
556
556
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-DkW27tQK.js">
557
557
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-wdlQj8DP.js">
558
558
  <link rel="modulepreload" crossorigin href="./assets/react-BZJXY1be.js">
559
559
  <link rel="modulepreload" crossorigin href="./assets/chunk-KJHJLCBK-yRlRMfNs.js">
560
560
  <link rel="modulepreload" crossorigin href="./assets/chunk-IMSF75WX-CGYlPTyG.js">
561
- <link rel="modulepreload" crossorigin href="./assets/iframe-CB9pifff.js">
561
+ <link rel="modulepreload" crossorigin href="./assets/iframe-Ctjgxy8H.js">
562
562
  <link rel="stylesheet" crossorigin href="./assets/iframe-B-mSv97o.css">
563
563
  </head>
564
564
 
@@ -1 +1 @@
1
- {"generatedAt":1788684727288,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"tanstack-react","packageName":"@tanstack/react-router","version":"1.170.32"},"knownPackages":{"testPackages":{"@chromatic-com/storybook":"5.3.0","@storybook/addon-vitest":"10.5.10","@testing-library/dom":"10.4.1","@testing-library/react":"16.3.3","@testing-library/user-event":"^14.6.1","@vitest/browser":"4.1.11","playwright":"1.62.1","vitest":"4.1.11"},"stateManagementPackages":{"zustand":"5.0.0"},"dataFetchingPackages":{"@tanstack/react-query":"5.101.4"},"routerPackages":{"@tanstack/react-router":"1.170.23"}},"hasRouterPackage":false,"packageManager":{"type":"npm","version":"11.7.0","agent":"npm","nodeLinker":"node_modules"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/react-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/react","portableStoriesFileCount":1,"applicationFileCount":9,"storybookVersion":"10.5.10","storybookVersionSpecifier":"^10.5.5","language":"typescript","storybookPackages":{"@storybook/react-vite":{"version":"10.5.10"},"storybook":{}},"addons":{"@chromatic-com/storybook":{"version":"5.3.0"},"@storybook/addon-docs":{"version":"10.5.10"},"@storybook/addon-a11y":{"version":"10.5.10"},"@storybook/addon-vitest":{"version":"10.5.10"}},"packageJsonType":"module"}
1
+ {"generatedAt":1788707553882,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"metaFramework":{"name":"tanstack-react","packageName":"@tanstack/react-router","version":"1.170.32"},"knownPackages":{"testPackages":{"@chromatic-com/storybook":"5.3.0","@storybook/addon-vitest":"10.5.10","@testing-library/dom":"10.4.1","@testing-library/react":"16.3.3","@testing-library/user-event":"^14.6.1","@vitest/browser":"4.1.11","playwright":"1.62.1","vitest":"4.1.11"},"stateManagementPackages":{"zustand":"5.0.0"},"dataFetchingPackages":{"@tanstack/react-query":"5.101.4"},"routerPackages":{"@tanstack/react-router":"1.170.23"}},"hasRouterPackage":false,"packageManager":{"type":"npm","version":"11.7.0","agent":"npm","nodeLinker":"node_modules"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/react-vite","options":{}},"builder":"@storybook/builder-vite","renderer":"@storybook/react","portableStoriesFileCount":1,"applicationFileCount":9,"storybookVersion":"10.5.10","storybookVersionSpecifier":"^10.5.5","language":"typescript","storybookPackages":{"@storybook/react-vite":{"version":"10.5.10"},"storybook":{}},"addons":{"@chromatic-com/storybook":{"version":"5.3.0"},"@storybook/addon-docs":{"version":"10.5.10"},"@storybook/addon-a11y":{"version":"10.5.10"},"@storybook/addon-vitest":{"version":"10.5.10"}},"packageJsonType":"module"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-menu-CCAr_R-t.js","names":[],"sources":["../../src/context-menu/components/helpers.ts","../../src/context-menu/components/MenuContext.tsx","../../src/context-menu/components/ContextMenuTrigger.tsx","../../src/context-menu/ContextMenu.module.scss","../../src/context-menu/components/MenuContent.tsx","../../src/context-menu/components/MenuGroupLabel.tsx","../../src/context-menu/components/MenuItem.tsx","../../src/context-menu/components/MenuRoot.tsx","../../src/context-menu/components/MenuSeparator.tsx","../../src/context-menu/components/RadialMenuContent.tsx","../../src/context-menu/components/RadialMenuItem.tsx","../../src/context-menu/components/ContextMenu.tsx","../../src/context-menu/components/DropdownMenuTrigger.tsx","../../src/context-menu/components/DropdownMenu.tsx"],"sourcesContent":["import React from \"react\";\n\nexport function assignRef<T>(ref: React.Ref<T> | undefined, value: T) {\n\tif (!ref) return;\n\n\tif (typeof ref === \"function\") {\n\t\tref(value);\n\t\treturn;\n\t}\n\n\t(ref as React.MutableRefObject<T>).current = value;\n}\n\nexport function composeMouseHandlers<T extends HTMLElement>(\n\tuserHandler: ((event: React.MouseEvent<T>) => void) | undefined,\n\tlibraryHandler: (event: React.MouseEvent<T>) => void\n) {\n\treturn (event: React.MouseEvent<T>) => {\n\t\tuserHandler?.(event);\n\t\tif (event.defaultPrevented) return;\n\t\tlibraryHandler(event);\n\t};\n}\n\nexport function composeKeyboardHandlers<T extends HTMLElement>(\n\tuserHandler: ((event: React.KeyboardEvent<T>) => void) | undefined,\n\tlibraryHandler: (event: React.KeyboardEvent<T>) => void\n) {\n\treturn (event: React.KeyboardEvent<T>) => {\n\t\tuserHandler?.(event);\n\t\tif (event.defaultPrevented) return;\n\t\tlibraryHandler(event);\n\t};\n}\n","import { createContext, useContext } from \"react\";\n\nimport { createMissingContextError } from \"@ryuzaki13/react-foundation-lib/error\";\n\nimport type { MenuOpenSource, MenuPoint } from \"@ryuzaki13/react-foundation-lib/context-menu\";\n\nexport type MenuTriggerMode = \"click\" | \"contextmenu\";\n\ninterface MenuContextValue {\n\tmode: MenuTriggerMode;\n\topen: boolean;\n\topenSource: MenuOpenSource | null;\n\tanchorPoint: MenuPoint | null;\n\tfloatingStyles: React.CSSProperties;\n\tfloatingRef: React.RefObject<HTMLElement | null>;\n\ttriggerRef: React.RefObject<HTMLElement | null>;\n\tsetFloating: (node: HTMLElement | null) => void;\n\tregisterTriggerElement: (node: HTMLElement | null) => void;\n\tonTriggerClick: (event: React.MouseEvent<HTMLElement>) => void;\n\tonTriggerContextMenu: (event: React.MouseEvent<HTMLElement>) => void;\n\tonTriggerKeyDown: (event: React.KeyboardEvent<HTMLElement>) => void;\n\tcloseMenu: () => void;\n}\n\nexport const MenuContext = createContext<MenuContextValue | null>(null);\n\nexport function useMenuContext() {\n\tconst context = useContext(MenuContext);\n\tif (!context) {\n\t\tthrow createMissingContextError({\n\t\t\thookName: \"useMenuContext\",\n\t\t\tproviderName: \"MenuRoot\"\n\t\t});\n\t}\n\treturn context;\n}\n","import React, { cloneElement } from \"react\";\n\nimport { assignRef, composeKeyboardHandlers, composeMouseHandlers } from \"./helpers\";\nimport { useMenuContext } from \"./MenuContext\";\n\nexport interface ContextMenuTriggerProps {\n\tchildren: React.ReactElement<React.HTMLAttributes<HTMLElement> & { ref?: React.Ref<HTMLElement> }>;\n}\n\nexport const ContextMenuTrigger: React.FC<ContextMenuTriggerProps> = ({ children }) => {\n\tconst { mode, open, registerTriggerElement, onTriggerContextMenu, onTriggerKeyDown } = useMenuContext();\n\n\tif (mode !== \"contextmenu\") {\n\t\tthrow new Error(\"ContextMenu.Trigger must be used within <ContextMenu>\");\n\t}\n\n\treturn cloneElement(children, {\n\t\tref: (node: HTMLElement | null) => {\n\t\t\tconst childRef = (children.props as { ref?: React.Ref<HTMLElement> }).ref;\n\t\t\tassignRef(childRef, node);\n\t\t\tregisterTriggerElement(node);\n\t\t},\n\t\t\"aria-haspopup\": \"menu\",\n\t\t\"aria-expanded\": open,\n\t\tonContextMenu: composeMouseHandlers(children.props.onContextMenu, onTriggerContextMenu),\n\t\tonKeyDown: composeKeyboardHandlers(children.props.onKeyDown, onTriggerKeyDown)\n\t});\n};\n","@use \"@/styles/mixins\" as *;\n\n.menuPositioner {\n\tz-index: var(--z-dropdown);\n\toutline: none;\n}\n\n.menuOptions {\n\t--menu-max-height: calc(100dvh - var(--space-xl));\n\t--menu-min-width: 14em;\n\t--menu-max-width: min(24em, calc(100dvw - var(--space-xl)));\n\t--input-width: var(--menu-min-width);\n\n\tmin-width: var(--menu-min-width);\n\tmax-width: var(--menu-max-width);\n\tmax-height: var(--menu-max-height);\n}\n\n.radialPanel {\n\tposition: fixed;\n\twidth: var(--radial-panel-size);\n\theight: var(--radial-panel-size);\n\tz-index: var(--z-context-menu, var(--z-dropdown));\n\toutline: none;\n\tpointer-events: none;\n}\n\n.radialRing {\n\tposition: absolute;\n\tinset: calc(var(--radial-item-size) / 2);\n\tborder: var(--border);\n\tborder-radius: 50%;\n\tbackground:\n\t\tradial-gradient(circle, color-mix(in srgb, var(--surface-0) 96%, transparent) 0 36%, transparent 37%),\n\t\tcolor-mix(in srgb, var(--surface-0) 88%, transparent);\n\tbox-shadow: var(--shadow-md);\n\tpointer-events: none;\n}\n\n.radialCenterButton {\n\tposition: absolute;\n\tleft: 50%;\n\ttop: 50%;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: calc(var(--radial-item-size) * 0.72);\n\theight: calc(var(--radial-item-size) * 0.72);\n\tpadding: var(--space-xs);\n\ttransform: translate(-50%, -50%);\n\tborder: var(--border);\n\tborder-radius: 50%;\n\tbackground-color: var(--surface-0);\n\tcolor: var(--content-0);\n\tbox-shadow: var(--shadow-sm);\n\tpointer-events: auto;\n\ttransition:\n\t\tbackground-color var(--transition-fast) ease,\n\t\tborder-color var(--transition-fast) ease,\n\t\tcolor var(--transition-fast) ease,\n\t\ttransform var(--transition-fast) ease;\n\n\t&:focus {\n\t\tbackground-color: var(--surface-1);\n\t\tborder-color: var(--border-1);\n\t}\n\n\t@include hover(true) {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-accent);\n\t\tcursor: pointer;\n\t\ttransform: translate(-50%, -50%) scale(1.06);\n\t}\n}\n\n.radialCenterButtonText {\n\tmax-width: 100%;\n\toverflow: hidden;\n\ttext-align: center;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tfont-size: var(--font-size-sm);\n\tline-height: 1.1;\n}\n\n.radialItems {\n\tposition: absolute;\n\tinset: 0;\n\tpointer-events: none;\n}\n\n.radialItemSlot {\n\tposition: absolute;\n\tleft: 50%;\n\ttop: 50%;\n\twidth: var(--radial-item-size);\n\theight: var(--radial-item-size);\n\ttransform: rotate(var(--radial-item-angle)) translate(var(--radial-radius)) rotate(calc(var(--radial-item-angle) * -1))\n\t\ttranslate(-50%, -50%);\n\tpointer-events: none;\n}\n\n.radialItem {\n\tdisplay: grid;\n\tgrid-template-rows: 1fr auto;\n\talign-items: center;\n\tjustify-items: center;\n\tgap: 0.15rem;\n\twidth: 100%;\n\theight: 100%;\n\tpadding: var(--space-xs);\n\tborder: var(--border);\n\tborder-radius: 50%;\n\tbackground-color: var(--surface-0);\n\tcolor: var(--content-0);\n\tbox-shadow: var(--shadow-sm);\n\tpointer-events: auto;\n\ttransition:\n\t\tbackground-color var(--transition-fast) ease,\n\t\tborder-color var(--transition-fast) ease,\n\t\tcolor var(--transition-fast) ease,\n\t\ttransform var(--transition-fast) ease;\n\n\t&:focus {\n\t\tbackground-color: var(--surface-1);\n\t\tborder-color: var(--border-1);\n\t}\n\n\t&:disabled,\n\t&[aria-disabled=\"true\"] {\n\t\tcursor: default;\n\t\tcolor: var(--content-2);\n\t\topacity: 0.52;\n\t\tpointer-events: none;\n\t}\n\n\t@include hover(true) {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-accent);\n\t\tcursor: pointer;\n\t\ttransform: scale(1.06);\n\t}\n}\n\n.radialItemIcon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmin-width: var(--space-md);\n\tmin-height: var(--space-md);\n\n\t> svg {\n\t\twidth: var(--space-md);\n\t\theight: var(--space-md);\n\t}\n}\n\n.radialItemText {\n\tmax-width: 100%;\n\toverflow: hidden;\n\ttext-align: center;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n\tfont-size: var(--font-size-sm);\n}\n","import React, { useCallback } from \"react\";\n\nimport { useClickOutside, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { createPortal } from \"react-dom\";\n\nimport { PickerOptions } from \"../../picker\";\nimport styles from \"../ContextMenu.module.scss\";\n\nimport { useMenuContext } from \"./MenuContext\";\n\nexport interface MenuContentProps {\n\tchildren: React.ReactNode | ((ctx: { closeMenu: () => void }) => React.ReactNode);\n\tclassName?: string;\n\tcloseOnOutside?: boolean;\n\tcloseOnEscape?: boolean;\n\tdisableOutsideClick?: boolean;\n\trestoreFocus?: boolean;\n}\n\nexport const MenuContent: React.FC<MenuContentProps> = ({\n\tchildren,\n\tclassName,\n\tcloseOnOutside = true,\n\tcloseOnEscape = true,\n\tdisableOutsideClick = false,\n\trestoreFocus = true\n}) => {\n\tconst { open, floatingStyles, floatingRef, triggerRef, setFloating, closeMenu } = useMenuContext();\n\n\tconst getNavigableItems = useCallback(() => {\n\t\tconst floatingElement = floatingRef.current;\n\t\tif (!floatingElement) return [];\n\n\t\treturn Array.from(floatingElement.querySelectorAll<HTMLElement>('[data-menu-item=\"true\"]:not([data-disabled=\"true\"])'));\n\t}, [floatingRef]);\n\n\tuseOverlayFocus<HTMLElement>({\n\t\tactive: open,\n\t\tinitialFocus: (container) => getNavigableItems()[0] ?? container,\n\t\trestoreFocus,\n\t\trestoreFocusTarget: () => triggerRef.current,\n\t\tcontainerRef: floatingRef\n\t});\n\n\tuseEscapeDismiss({\n\t\tactive: open,\n\t\tenabled: closeOnEscape,\n\t\tonDismiss: closeMenu,\n\t\tcontainerRef: floatingRef\n\t});\n\n\tconst outsideClose = useCallback(() => {\n\t\tif (!open || disableOutsideClick) return;\n\t\tif (closeOnOutside) {\n\t\t\tcloseMenu();\n\t\t}\n\t}, [open, disableOutsideClick, closeOnOutside, closeMenu]);\n\n\tuseClickOutside([floatingRef as React.RefObject<HTMLElement>, triggerRef as React.RefObject<HTMLElement>], outsideClose);\n\n\tconst onMenuKeyDown = useCallback(\n\t\t(event: React.KeyboardEvent<HTMLElement>) => {\n\t\t\tconst items = getNavigableItems();\n\t\t\tif (items.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst activeElement = document.activeElement as HTMLElement | null;\n\t\t\tconst currentIndex = activeElement ? items.indexOf(activeElement) : -1;\n\n\t\t\tif (event.key === \"ArrowDown\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex = currentIndex >= 0 ? (currentIndex + 1) % items.length : 0;\n\t\t\t\titems[nextIndex]?.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"ArrowUp\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex = currentIndex >= 0 ? (currentIndex - 1 + items.length) % items.length : items.length - 1;\n\t\t\t\titems[nextIndex]?.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"Home\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\titems[0]?.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"End\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\titems[items.length - 1]?.focus();\n\t\t\t}\n\t\t},\n\t\t[getNavigableItems]\n\t);\n\n\tif (typeof document === \"undefined\") return null;\n\n\treturn createPortal(\n\t\t<AnimatePresence>\n\t\t\t{open && (\n\t\t\t\t<motion.div\n\t\t\t\t\tref={setFloating}\n\t\t\t\t\tstyle={floatingStyles}\n\t\t\t\t\trole=\"menu\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\tclassName={styles.menuPositioner}\n\t\t\t\t\tonKeyDown={onMenuKeyDown}\n\t\t\t\t\tinitial={{ opacity: 0, scale: 0.96, y: -2 }}\n\t\t\t\t\tanimate={{ opacity: 1, scale: 1, y: 0 }}\n\t\t\t\t\texit={{ opacity: 0, scale: 0.96, y: -2 }}\n\t\t\t\t\ttransition={{ duration: 0.14, ease: \"easeOut\" }}>\n\t\t\t\t\t<PickerOptions className={cn(styles.menuOptions, className)}>\n\t\t\t\t\t\t{typeof children === \"function\" ? children({ closeMenu }) : children}\n\t\t\t\t\t</PickerOptions>\n\t\t\t\t</motion.div>\n\t\t\t)}\n\t\t</AnimatePresence>,\n\t\tdocument.body\n\t);\n};\n","import React from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport uiStyles from \"../../ui.module.scss\";\n\nexport interface MenuGroupLabelProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport const MenuGroupLabel: React.FC<MenuGroupLabelProps> = ({ children, className }) => {\n\treturn <div className={cn(uiStyles.uiPopupGroupLabel, className)}>{children}</div>;\n};\n","import { type HTMLAttributeAnchorTarget, type MouseEvent, type ReactNode, useCallback } from \"react\";\n\nimport { Option, OptionButton, OptionLink } from \"../../option\";\n\nimport { useMenuContext } from \"./MenuContext\";\n\nexport interface MenuItemProps {\n\tchildren: string;\n\ticon?: ReactNode;\n\thotKey?: string;\n\tclassName?: string;\n\tdisabled?: boolean;\n\thref?: string;\n\ttarget?: HTMLAttributeAnchorTarget;\n\trel?: string;\n\tcloseOnSelect?: boolean;\n\tonSelect?: (event: MouseEvent<HTMLElement>) => void;\n}\n\nexport function MenuItem({\n\tchildren,\n\ticon,\n\thotKey,\n\tclassName,\n\tdisabled,\n\thref,\n\ttarget,\n\trel,\n\tcloseOnSelect = true,\n\tonSelect\n}: MenuItemProps) {\n\tconst { closeMenu } = useMenuContext();\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLElement>) => {\n\t\t\tif (disabled) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonSelect?.(event);\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\tif (closeOnSelect) {\n\t\t\t\tcloseMenu();\n\t\t\t}\n\t\t},\n\t\t[disabled, onSelect, closeOnSelect, closeMenu]\n\t);\n\n\tif (href) {\n\t\treturn (\n\t\t\t<Option disabled={disabled} className={className}>\n\t\t\t\t<OptionLink\n\t\t\t\t\ticon={icon}\n\t\t\t\t\thotkey={hotKey}\n\t\t\t\t\ttext={children}\n\t\t\t\t\thref={href}\n\t\t\t\t\ttarget={target}\n\t\t\t\t\trel={rel}\n\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\taria-disabled={disabled}\n\t\t\t\t\tdata-menu-item=\"true\"\n\t\t\t\t\tdata-disabled={disabled ? \"true\" : undefined}\n\t\t\t\t\tdata-ui=\"context-menu-item\"\n\t\t\t\t\tdata-action=\"select-context-menu-item\"\n\t\t\t\t\tonClick={handleClick as React.MouseEventHandler<HTMLAnchorElement>}\n\t\t\t\t/>\n\t\t\t</Option>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Option disabled={disabled} className={className}>\n\t\t\t<OptionButton\n\t\t\t\ticon={icon}\n\t\t\t\thotkey={hotKey}\n\t\t\t\ttext={children}\n\t\t\t\trole=\"menuitem\"\n\t\t\t\ttabIndex={-1}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdata-menu-item=\"true\"\n\t\t\t\tdata-disabled={disabled ? \"true\" : undefined}\n\t\t\t\tdata-ui=\"context-menu-item\"\n\t\t\t\tdata-action=\"select-context-menu-item\"\n\t\t\t\tonClick={handleClick as React.MouseEventHandler<HTMLButtonElement>}\n\t\t\t/>\n\t\t</Option>\n\t);\n}\n","import React, { useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { autoUpdate, flip, offset, Placement, shift, useFloating } from \"@floating-ui/react\";\nimport {\n\tcloseMenu,\n\tcreateVirtualAnchor,\n\tgetMenuPointFromEvent,\n\tgetMenuPointFromRect,\n\tinitialMenuState,\n\topenMenu\n} from \"@ryuzaki13/react-foundation-lib/context-menu\";\n\nimport { MenuContext, MenuTriggerMode } from \"./MenuContext\";\n\ninterface MenuRootProps {\n\tchildren: React.ReactNode;\n\tmode: MenuTriggerMode;\n\tplacement?: Placement;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\nexport function MenuRoot({\n\tchildren,\n\tmode,\n\tplacement = mode === \"click\" ? \"bottom-start\" : \"right-start\",\n\topen: controlledOpen,\n\tdefaultOpen,\n\tonOpenChange\n}: MenuRootProps) {\n\tconst [menuState, setMenuState] = useState(initialMenuState);\n\tconst [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen ?? false);\n\tconst isControlled = controlledOpen !== undefined;\n\tconst open = isControlled ? controlledOpen : uncontrolledOpen;\n\tconst triggerElementRef = useRef<HTMLElement | null>(null);\n\n\tconst { refs, floatingStyles, update } = useFloating({\n\t\tplacement,\n\t\tstrategy: mode === \"contextmenu\" ? \"fixed\" : \"absolute\",\n\t\ttransform: false,\n\t\tmiddleware: [offset(6), flip({ padding: 8 }), shift({ padding: 8 })],\n\t\twhileElementsMounted: autoUpdate\n\t});\n\n\tconst setOpen = useCallback(\n\t\t(nextOpen: boolean) => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetUncontrolledOpen(nextOpen);\n\t\t\t}\n\t\t\tonOpenChange?.(nextOpen);\n\t\t\tif (!nextOpen) {\n\t\t\t\tsetMenuState((state) => closeMenu(state));\n\t\t\t}\n\t\t},\n\t\t[isControlled, onOpenChange]\n\t);\n\n\tconst closeMenuHandler = useCallback(() => {\n\t\tsetOpen(false);\n\t}, [setOpen]);\n\n\tconst openAtElement = useCallback(\n\t\t(element: HTMLElement, source: \"click\" | \"keyboard\") => {\n\t\t\trefs.setReference(element);\n\t\t\tsetMenuState(\n\t\t\t\topenMenu({\n\t\t\t\t\tsource,\n\t\t\t\t\tanchor: {\n\t\t\t\t\t\ttype: \"element\",\n\t\t\t\t\t\telement\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\tsetOpen(true);\n\t\t},\n\t\t[refs, setOpen]\n\t);\n\n\tconst openAtPoint = useCallback(\n\t\t(point: { x: number; y: number }, source: \"contextmenu\" | \"keyboard\", contextElement?: HTMLElement | null) => {\n\t\t\trefs.setReference(createVirtualAnchor(point, contextElement));\n\t\t\tsetMenuState(\n\t\t\t\topenMenu({\n\t\t\t\t\tsource,\n\t\t\t\t\tanchor: {\n\t\t\t\t\t\ttype: \"point\",\n\t\t\t\t\t\tpoint,\n\t\t\t\t\t\tcontextElement\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t\t\tsetOpen(true);\n\t\t\tupdate();\n\t\t},\n\t\t[refs, setOpen, update]\n\t);\n\n\tconst registerTriggerElement = useCallback(\n\t\t(node: HTMLElement | null) => {\n\t\t\ttriggerElementRef.current = node;\n\t\t\tif (mode === \"click\") {\n\t\t\t\trefs.setReference(node);\n\t\t\t}\n\t\t},\n\t\t[mode, refs]\n\t);\n\n\tconst onTriggerClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLElement>) => {\n\t\t\tif (mode !== \"click\") return;\n\t\t\tconst element = event.currentTarget;\n\n\t\t\tif (open && menuState.anchor?.type === \"element\" && menuState.anchor.element === element) {\n\t\t\t\tcloseMenuHandler();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\topenAtElement(element, \"click\");\n\t\t},\n\t\t[mode, open, menuState.anchor, closeMenuHandler, openAtElement]\n\t);\n\n\tconst onTriggerContextMenu = useCallback(\n\t\t(event: React.MouseEvent<HTMLElement>) => {\n\t\t\tif (mode !== \"contextmenu\") return;\n\t\t\tevent.preventDefault();\n\n\t\t\tconst element = event.currentTarget;\n\t\t\tconst point = getMenuPointFromEvent(event);\n\t\t\topenAtPoint(point, \"contextmenu\", element);\n\t\t},\n\t\t[mode, openAtPoint]\n\t);\n\n\tconst onTriggerKeyDown = useCallback(\n\t\t(event: React.KeyboardEvent<HTMLElement>) => {\n\t\t\tconst isContextMenuKeyboardOpen = event.key === \"ContextMenu\" || (event.shiftKey && event.key === \"F10\");\n\t\t\tif (!isContextMenuKeyboardOpen) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tconst element = event.currentTarget;\n\n\t\t\tif (mode === \"click\") {\n\t\t\t\topenAtElement(element, \"keyboard\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst point = getMenuPointFromRect(element.getBoundingClientRect());\n\t\t\topenAtPoint(point, \"keyboard\", element);\n\t\t},\n\t\t[mode, openAtElement, openAtPoint]\n\t);\n\n\tconst visible = open && menuState.anchor !== null;\n\tconst anchorPoint = useMemo(() => {\n\t\tif (!menuState.anchor) return null;\n\n\t\tif (menuState.anchor.type === \"point\") {\n\t\t\treturn menuState.anchor.point;\n\t\t}\n\n\t\tconst rect = menuState.anchor.element.getBoundingClientRect();\n\t\treturn getMenuPointFromRect(rect);\n\t}, [menuState.anchor]);\n\n\tconst value = useMemo(\n\t\t() => ({\n\t\t\tmode,\n\t\t\topen: visible,\n\t\t\topenSource: menuState.source,\n\t\t\tanchorPoint,\n\t\t\tfloatingStyles,\n\t\t\tfloatingRef: refs.floating,\n\t\t\ttriggerRef: triggerElementRef,\n\t\t\tsetFloating: refs.setFloating,\n\t\t\tregisterTriggerElement,\n\t\t\tonTriggerClick,\n\t\t\tonTriggerContextMenu,\n\t\t\tonTriggerKeyDown,\n\t\t\tcloseMenu: closeMenuHandler\n\t\t}),\n\t\t[\n\t\t\tmode,\n\t\t\tvisible,\n\t\t\tmenuState.source,\n\t\t\tanchorPoint,\n\t\t\tfloatingStyles,\n\t\t\trefs.floating,\n\t\t\trefs.setFloating,\n\t\t\tregisterTriggerElement,\n\t\t\tonTriggerClick,\n\t\t\tonTriggerContextMenu,\n\t\t\tonTriggerKeyDown,\n\t\t\tcloseMenuHandler\n\t\t]\n\t);\n\n\treturn <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n","import React from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport uiStyles from \"../../ui.module.scss\";\n\nexport interface MenuSeparatorProps {\n\tclassName?: string;\n}\n\nexport const MenuSeparator: React.FC<MenuSeparatorProps> = ({ className }) => {\n\treturn <div role=\"separator\" className={cn(uiStyles.uiPopupOptionSeparator, className)} />;\n};\n","import React, { Children, useCallback, useEffect, useMemo } from \"react\";\n\nimport { useClickOutside, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { createPortal } from \"react-dom\";\n\nimport styles from \"../ContextMenu.module.scss\";\n\nimport { useMenuContext } from \"./MenuContext\";\n\nexport interface RadialMenuContentProps {\n\tchildren: React.ReactNode | ((ctx: { closeMenu: () => void }) => React.ReactNode);\n\tclassName?: string;\n\tcloseOnOutside?: boolean;\n\tcloseOnEscape?: boolean;\n\tdisableOutsideClick?: boolean;\n\trestoreFocus?: boolean;\n\tradius?: number;\n\titemSize?: number;\n\tcloseLabel?: string;\n}\n\nfunction clamp(value: number, min: number, max: number) {\n\tif (max < min) return min;\n\treturn Math.min(Math.max(value, min), max);\n}\n\nexport const RadialMenuContent: React.FC<RadialMenuContentProps> = ({\n\tchildren,\n\tclassName,\n\tcloseOnOutside = true,\n\tcloseOnEscape = true,\n\tdisableOutsideClick = false,\n\trestoreFocus = true,\n\tradius = 76,\n\titemSize = 64,\n\tcloseLabel = \"Закрыть\"\n}) => {\n\tconst { open, anchorPoint, floatingRef, triggerRef, setFloating, closeMenu } = useMenuContext();\n\n\tconst resolvedChildren = typeof children === \"function\" ? children({ closeMenu }) : children;\n\tconst itemNodes = useMemo(() => Children.toArray(resolvedChildren), [resolvedChildren]);\n\tconst itemCount = itemNodes.length;\n\tconst panelSize = radius * 2 + itemSize;\n\n\tconst panelPoint = useMemo(() => {\n\t\tif (typeof window === \"undefined\" || !anchorPoint) return null;\n\n\t\t// Радиальное меню центрируется на точке вызова, но не выходит за границы viewport.\n\t\tconst safeOffset = panelSize / 2 + 8;\n\t\treturn {\n\t\t\tx: clamp(anchorPoint.x, safeOffset, window.innerWidth - safeOffset),\n\t\t\ty: clamp(anchorPoint.y, safeOffset, window.innerHeight - safeOffset)\n\t\t};\n\t}, [anchorPoint, panelSize]);\n\n\tconst getNavigableItems = useCallback(() => {\n\t\tconst floatingElement = floatingRef.current;\n\t\tif (!floatingElement) return [];\n\n\t\treturn Array.from(floatingElement.querySelectorAll<HTMLElement>('[data-menu-item=\"true\"]:not([data-disabled=\"true\"])'));\n\t}, [floatingRef]);\n\n\tuseOverlayFocus<HTMLElement>({\n\t\tactive: open,\n\t\tinitialFocus: (container) => getNavigableItems()[0] ?? container,\n\t\trestoreFocus,\n\t\trestoreFocusTarget: () => triggerRef.current,\n\t\tcontainerRef: floatingRef\n\t});\n\n\tuseEffect(() => {\n\t\tif (!open || !anchorPoint) return;\n\n\t\tlet rafId = 0;\n\n\t\t/**\n\t\t * Повторный правый клик при уже открытом меню меняет только якорь, поэтому общий\n\t\t * эффект начального фокуса не перезапускается. Возвращаем фокус в меню явно.\n\t\t */\n\t\tconst focusMenuOnReposition = () => {\n\t\t\tconst focusTarget = getNavigableItems()[0] ?? floatingRef.current;\n\t\t\tfocusTarget?.focus();\n\t\t};\n\n\t\trafId = window.requestAnimationFrame(focusMenuOnReposition);\n\t\treturn () => window.cancelAnimationFrame(rafId);\n\t}, [open, anchorPoint, getNavigableItems, floatingRef]);\n\n\tuseEscapeDismiss({\n\t\tactive: open,\n\t\tenabled: closeOnEscape,\n\t\tonDismiss: closeMenu,\n\t\tcontainerRef: floatingRef\n\t});\n\n\tconst outsideClose = useCallback(() => {\n\t\tif (!open || disableOutsideClick) return;\n\t\tif (closeOnOutside) {\n\t\t\tcloseMenu();\n\t\t}\n\t}, [open, disableOutsideClick, closeOnOutside, closeMenu]);\n\n\tuseClickOutside([floatingRef as React.RefObject<HTMLElement>, triggerRef as React.RefObject<HTMLElement>], outsideClose);\n\n\tconst onMenuKeyDown = useCallback(\n\t\t(event: React.KeyboardEvent<HTMLElement>) => {\n\t\t\tconst items = getNavigableItems();\n\t\t\tif (items.length === 0) return;\n\n\t\t\tconst activeElement = document.activeElement as HTMLElement | null;\n\t\t\tconst currentIndex = activeElement ? items.indexOf(activeElement) : -1;\n\n\t\t\tif (event.key === \"ArrowRight\" || event.key === \"ArrowDown\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex = currentIndex >= 0 ? (currentIndex + 1) % items.length : 0;\n\t\t\t\titems[nextIndex]?.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"ArrowLeft\" || event.key === \"ArrowUp\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex = currentIndex >= 0 ? (currentIndex - 1 + items.length) % items.length : items.length - 1;\n\t\t\t\titems[nextIndex]?.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"Home\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\titems[0]?.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.key === \"End\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\titems[items.length - 1]?.focus();\n\t\t\t}\n\t\t},\n\t\t[getNavigableItems]\n\t);\n\n\tif (typeof document === \"undefined\") return null;\n\n\treturn createPortal(\n\t\t<AnimatePresence>\n\t\t\t{open && panelPoint && (\n\t\t\t\t<motion.div\n\t\t\t\t\tref={setFloating}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--radial-panel-size\": `${panelSize}px`,\n\t\t\t\t\t\t\t\"--radial-radius\": `${radius}px`,\n\t\t\t\t\t\t\t\"--radial-item-size\": `${itemSize}px`,\n\t\t\t\t\t\t\tleft: panelPoint.x - panelSize / 2,\n\t\t\t\t\t\t\ttop: panelPoint.y - panelSize / 2,\n\t\t\t\t\t\t\ttransformOrigin: \"center\"\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\trole=\"menu\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\tclassName={cn(styles.radialPanel, className)}\n\t\t\t\t\tonKeyDown={onMenuKeyDown}\n\t\t\t\t\tinitial={{ opacity: 0, scale: 0.78 }}\n\t\t\t\t\tanimate={{ opacity: 1, scale: 1 }}\n\t\t\t\t\texit={{ opacity: 0, scale: 0.78 }}\n\t\t\t\t\ttransition={{ duration: 0.16, ease: \"easeOut\" }}>\n\t\t\t\t\t<div className={styles.radialRing} aria-hidden=\"true\" />\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\tclassName={styles.radialCenterButton}\n\t\t\t\t\t\taria-label={closeLabel}\n\t\t\t\t\t\tdata-menu-item=\"true\"\n\t\t\t\t\t\tdata-radial-close=\"true\"\n\t\t\t\t\t\tonClick={closeMenu}>\n\t\t\t\t\t\t<span className={styles.radialCenterButtonText}>{closeLabel}</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<div className={styles.radialItems}>\n\t\t\t\t\t\t{itemNodes.map((item, index) => {\n\t\t\t\t\t\t\tconst angle = itemCount > 0 ? -90 + (360 / itemCount) * index : -90;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t// Индекс допустим: порядок пунктов полностью задает геометрию кольца.\n\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\tclassName={styles.radialItemSlot}\n\t\t\t\t\t\t\t\t\tstyle={{ \"--radial-item-angle\": `${angle}deg` } as React.CSSProperties}>\n\t\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</motion.div>\n\t\t\t)}\n\t\t</AnimatePresence>,\n\t\tdocument.body\n\t);\n};\n","import React, { useCallback } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"../ContextMenu.module.scss\";\n\nimport { useMenuContext } from \"./MenuContext\";\n\nexport interface RadialMenuItemProps {\n\tchildren: React.ReactNode;\n\ticon?: React.ReactNode;\n\tclassName?: string;\n\tdisabled?: boolean;\n\tcloseOnSelect?: boolean;\n\tonSelect?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nexport const RadialMenuItem: React.FC<RadialMenuItemProps> = ({ children, icon, className, disabled, closeOnSelect = true, onSelect }) => {\n\tconst { closeMenu } = useMenuContext();\n\n\tconst handleClick = useCallback(\n\t\t(event: React.MouseEvent<HTMLButtonElement>) => {\n\t\t\tif (disabled) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonSelect?.(event);\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\tif (closeOnSelect) {\n\t\t\t\tcloseMenu();\n\t\t\t}\n\t\t},\n\t\t[disabled, onSelect, closeOnSelect, closeMenu]\n\t);\n\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\trole=\"menuitem\"\n\t\t\ttabIndex={-1}\n\t\t\tdisabled={disabled}\n\t\t\taria-disabled={disabled}\n\t\t\tdata-menu-item=\"true\"\n\t\t\tdata-disabled={disabled ? \"true\" : undefined}\n\t\t\tdata-ui=\"radial-menu-item\"\n\t\t\tdata-action=\"select-radial-menu-item\"\n\t\t\tclassName={cn(styles.radialItem, className)}\n\t\t\tonClick={handleClick}>\n\t\t\t{icon && <span className={styles.radialItemIcon}>{icon}</span>}\n\t\t\t<span className={styles.radialItemText}>{children}</span>\n\t\t</button>\n\t);\n};\n","/* eslint-disable react-refresh/only-export-components */\nimport React from \"react\";\n\nimport { Placement } from \"@floating-ui/react\";\n\nimport { ContextMenuTrigger } from \"./ContextMenuTrigger\";\nimport { MenuContent } from \"./MenuContent\";\nimport { MenuGroupLabel } from \"./MenuGroupLabel\";\nimport { MenuItem } from \"./MenuItem\";\nimport { MenuRoot } from \"./MenuRoot\";\nimport { MenuSeparator } from \"./MenuSeparator\";\nimport { RadialMenuContent } from \"./RadialMenuContent\";\nimport { RadialMenuItem } from \"./RadialMenuItem\";\n\nexport interface ContextMenuProps {\n\tchildren: React.ReactNode;\n\tplacement?: Placement;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\nconst ContextMenuRoot: React.FC<ContextMenuProps> = ({ children, placement, open, defaultOpen, onOpenChange }) => {\n\treturn (\n\t\t<MenuRoot mode=\"contextmenu\" placement={placement} open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n\t\t\t{children}\n\t\t</MenuRoot>\n\t);\n};\n\nexport const ContextMenu = Object.assign(ContextMenuRoot, {\n\tTrigger: ContextMenuTrigger,\n\tContent: MenuContent,\n\tRadialContent: RadialMenuContent,\n\tItem: MenuItem,\n\tRadialItem: RadialMenuItem,\n\tSeparator: MenuSeparator,\n\tGroupLabel: MenuGroupLabel\n});\n","import React, { cloneElement } from \"react\";\n\nimport { assignRef, composeKeyboardHandlers, composeMouseHandlers } from \"./helpers\";\nimport { useMenuContext } from \"./MenuContext\";\n\nexport interface DropdownMenuTriggerProps {\n\tchildren: React.ReactElement<React.HTMLAttributes<HTMLElement> & { ref?: React.Ref<HTMLElement> }>;\n}\n\nexport const DropdownMenuTrigger: React.FC<DropdownMenuTriggerProps> = ({ children }) => {\n\tconst { mode, open, registerTriggerElement, onTriggerClick, onTriggerKeyDown } = useMenuContext();\n\n\tif (mode !== \"click\") {\n\t\tthrow new Error(\"DropdownMenu.Trigger must be used within <DropdownMenu>\");\n\t}\n\n\treturn cloneElement(children, {\n\t\tref: (node: HTMLElement | null) => {\n\t\t\tconst childRef = (children.props as { ref?: React.Ref<HTMLElement> }).ref;\n\t\t\tassignRef(childRef, node);\n\t\t\tregisterTriggerElement(node);\n\t\t},\n\t\t\"aria-haspopup\": \"menu\",\n\t\t\"aria-expanded\": open,\n\t\tonClick: composeMouseHandlers(children.props.onClick, onTriggerClick),\n\t\tonKeyDown: composeKeyboardHandlers(children.props.onKeyDown, onTriggerKeyDown)\n\t});\n};\n","/* eslint-disable react-refresh/only-export-components */\nimport React from \"react\";\n\nimport { Placement } from \"@floating-ui/react\";\n\nimport { DropdownMenuTrigger } from \"./DropdownMenuTrigger\";\nimport { MenuContent } from \"./MenuContent\";\nimport { MenuGroupLabel } from \"./MenuGroupLabel\";\nimport { MenuItem } from \"./MenuItem\";\nimport { MenuRoot } from \"./MenuRoot\";\nimport { MenuSeparator } from \"./MenuSeparator\";\n\nexport interface DropdownMenuProps {\n\tchildren: React.ReactNode;\n\tplacement?: Placement;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\nconst DropdownMenuRoot: React.FC<DropdownMenuProps> = ({ children, placement, open, defaultOpen, onOpenChange }) => {\n\treturn (\n\t\t<MenuRoot mode=\"click\" placement={placement} open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n\t\t\t{children}\n\t\t</MenuRoot>\n\t);\n};\n\nexport const DropdownMenu = Object.assign(DropdownMenuRoot, {\n\tTrigger: DropdownMenuTrigger,\n\tContent: MenuContent,\n\tItem: MenuItem,\n\tSeparator: MenuSeparator,\n\tGroupLabel: MenuGroupLabel\n});\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-CB9pifff.js";import{t as i}from"./react-dom-BzEl8usk.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{i as s,n as c,r as l,t as u}from"./OptionButton-sAMQ-B-2.js";import{a as d,d as f,g as p,m as ee,p as m,r as h}from"./floating-ui.react-j2x4WoIe.js";import{a as g,i as _,n as v,r as y}from"./dom-DBd_DWF8.js";import{n as b}from"./error-De9R4E_F.js";import{n as x,t as S}from"./ui.module-31LPbZGK.js";import{n as C,r as w,t as T}from"./react-D9ony7ur.js";import{i as E,n as D,r as O,t as k}from"./Option-Bi34xfha.js";function A(e,t){if(e){if(typeof e==`function`){e(t);return}e.current=t}}function te(e,t){return n=>{e?.(n),!n.defaultPrevented&&t(n)}}function ne(e,t){return n=>{e?.(n),!n.defaultPrevented&&t(n)}}function re(){return(re=t((()=>{})))()}function j(){let e=(0,M.useContext)(N);if(!e)throw b({hookName:`useMenuContext`,providerName:`MenuRoot`});return e}var M,N;function P(){return(P=t((()=>{M=n(),N=(0,M.createContext)(null)})))()}var ie,F;function ae(){return(ae=t((()=>{ie=n(),P(),F=({children:e})=>{let{mode:t,open:n,registerTriggerElement:r,onTriggerContextMenu:i,onTriggerKeyDown:a}=j();if(t!==`contextmenu`)throw Error(`ContextMenu.Trigger must be used within <ContextMenu>`);return(0,ie.cloneElement)(e,{ref:t=>{let n=e.props.ref;A(n,t),r(t)},"aria-haspopup":`menu`,"aria-expanded":n,onContextMenu:te(e.props.onContextMenu,i),onKeyDown:ne(e.props.onKeyDown,a)})},F.__docgenInfo={description:``,methods:[],displayName:`ContextMenuTrigger`,props:{children:{required:!0,tsType:{name:`ReactReactElement`,raw:`React.ReactElement<React.HTMLAttributes<HTMLElement> & { ref?: React.Ref<HTMLElement> }>`,elements:[{name:`intersection`,raw:`React.HTMLAttributes<HTMLElement> & { ref?: React.Ref<HTMLElement> }`,elements:[{name:`ReactHTMLAttributes`,raw:`React.HTMLAttributes<HTMLElement>`,elements:[{name:`HTMLElement`}]},{name:`signature`,type:`object`,raw:`{ ref?: React.Ref<HTMLElement> }`,signature:{properties:[{key:`ref`,value:{name:`ReactRef`,raw:`React.Ref<HTMLElement>`,elements:[{name:`HTMLElement`}],required:!1}}]}}]}]},description:``}}}})))()}var oe,se,ce,le,ue,de,fe,pe,me,he,ge,I;function L(){return(L=t((()=>{oe=`MsGee8`,se=`_5yVJwD`,ce=`f9wo9l`,le=`_9IPwGF`,ue=`CAmmlz`,de=`_5KEBWR`,fe=`L28onY`,pe=`Pg-1Y3`,me=`ObIrS2`,he=`_0jf5vt`,ge=`zKwsQF`,I={menuPositioner:oe,menuOptions:se,radialPanel:ce,radialRing:le,radialCenterButton:ue,radialCenterButtonText:de,radialItems:fe,radialItemSlot:pe,radialItem:me,radialItemIcon:he,radialItemText:ge}})))()}var R,_e,z,ve;function ye(){return(ye=t((()=>{R=e(n(),1),y(),o(),T(),_e=i(),E(),L(),P(),z=r(),ve=({children:e,className:t,closeOnOutside:n=!0,closeOnEscape:r=!0,disableOutsideClick:i=!1,restoreFocus:o=!0})=>{let{open:s,floatingStyles:c,floatingRef:l,triggerRef:u,setFloating:d,closeMenu:f}=j(),p=(0,R.useCallback)(()=>{let e=l.current;return e?Array.from(e.querySelectorAll(`[data-menu-item="true"]:not([data-disabled="true"])`)):[]},[l]);g({active:s,initialFocus:e=>p()[0]??e,restoreFocus:o,restoreFocusTarget:()=>u.current,containerRef:l}),v({active:s,enabled:r,onDismiss:f,containerRef:l});let ee=(0,R.useCallback)(()=>{!s||i||n&&f()},[s,i,n,f]);_([l,u],ee);let m=(0,R.useCallback)(e=>{let t=p();if(t.length===0)return;let n=document.activeElement,r=n?t.indexOf(n):-1;if(e.key===`ArrowDown`){e.preventDefault(),t[r>=0?(r+1)%t.length:0]?.focus();return}if(e.key===`ArrowUp`){e.preventDefault(),t[r>=0?(r-1+t.length)%t.length:t.length-1]?.focus();return}if(e.key===`Home`){e.preventDefault(),t[0]?.focus();return}e.key===`End`&&(e.preventDefault(),t[t.length-1]?.focus())},[p]);return typeof document>`u`?null:(0,_e.createPortal)((0,z.jsx)(w,{children:s&&(0,z.jsx)(C.div,{ref:d,style:c,role:`menu`,tabIndex:-1,className:I.menuPositioner,onKeyDown:m,initial:{opacity:0,scale:.96,y:-2},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.96,y:-2},transition:{duration:.14,ease:`easeOut`},children:(0,z.jsx)(O,{className:a(I.menuOptions,t),children:typeof e==`function`?e({closeMenu:f}):e})})}),document.body)}})))()}var be,B;function V(){return(V=t((()=>{n(),o(),S(),be=r(),B=({children:e,className:t})=>(0,be.jsx)(`div`,{className:a(x.uiPopupGroupLabel,t),children:e}),B.__docgenInfo={description:``,methods:[],displayName:`MenuGroupLabel`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}function xe({ref:e,icon:t,text:n,searchText:r,code:i,hotkey:o,...s}){return(0,H.jsx)(`a`,{...s,ref:e,className:a(x.uiOptionLink,s.className),children:(0,H.jsx)(l,{icon:t,text:n,searchText:r,...i===void 0?{hotkey:o}:{code:i}})})}var H;function Se(){return(Se=t((()=>{o(),S(),s(),H=r(),xe.__docgenInfo={description:`Основное link-действие внутри внешней оболочки Option.`,methods:[],displayName:`OptionLink`,props:{icon:{required:!1,tsType:{name:`ReactNode`},description:``},text:{required:!0,tsType:{name:`string`},description:``},searchText:{required:!1,tsType:{name:`string`},description:``},emphasizeContent:{required:!1,tsType:{name:`boolean`},description:``},ref:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLAnchorElement`}],raw:`Ref<HTMLAnchorElement>`},description:``}}}})))()}function U({children:e,icon:t,hotKey:n,className:r,disabled:i,href:a,target:o,rel:s,closeOnSelect:c=!0,onSelect:l}){let{closeMenu:d}=j(),f=(0,Ce.useCallback)(e=>{if(i){e.preventDefault(),e.stopPropagation();return}l?.(e),!e.defaultPrevented&&c&&d()},[i,l,c,d]);return a?(0,W.jsx)(k,{disabled:i,className:r,children:(0,W.jsx)(xe,{icon:t,hotkey:n,text:e,href:a,target:o,rel:s,role:`menuitem`,tabIndex:-1,"aria-disabled":i,"data-menu-item":`true`,"data-disabled":i?`true`:void 0,"data-ui":`context-menu-item`,"data-action":`select-context-menu-item`,onClick:f})}):(0,W.jsx)(k,{disabled:i,className:r,children:(0,W.jsx)(u,{icon:t,hotkey:n,text:e,role:`menuitem`,tabIndex:-1,disabled:i,"data-menu-item":`true`,"data-disabled":i?`true`:void 0,"data-ui":`context-menu-item`,"data-action":`select-context-menu-item`,onClick:f})})}var Ce,W;function G(){return(G=t((()=>{Ce=n(),D(),c(),Se(),P(),W=r(),U.__docgenInfo={description:``,methods:[],displayName:`MenuItem`,props:{children:{required:!0,tsType:{name:`string`},description:``},icon:{required:!1,tsType:{name:`ReactNode`},description:``},hotKey:{required:!1,tsType:{name:`string`},description:``},className:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},href:{required:!1,tsType:{name:`string`},description:``},target:{required:!1,tsType:{name:`HTMLAttributeAnchorTarget`},description:``},rel:{required:!1,tsType:{name:`string`},description:``},closeOnSelect:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},onSelect:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: MouseEvent<HTMLElement>) => void`,signature:{arguments:[{type:{name:`MouseEvent`,elements:[{name:`HTMLElement`}],raw:`MouseEvent<HTMLElement>`},name:`event`}],return:{name:`void`}}},description:``}}}})))()}function we(e){return{x:e.clientX,y:e.clientY}}function Te(e){return{x:e.left+e.width/2,y:e.top+e.height/2}}function Ee(e,t){return{contextElement:t??void 0,getBoundingClientRect:()=>({x:e.x,y:e.y,top:e.y,left:e.x,bottom:e.y,right:e.x,width:0,height:0,toJSON:()=>{}})}}function De(e){return{open:!0,source:e.source,anchor:e.anchor}}function Oe(e){return!e.open&&e.anchor===null?e:{open:!1,source:null,anchor:null}}var ke;function Ae(){return(Ae=t((()=>{ke={open:!1,source:null,anchor:null}})))()}function K({children:e,mode:t,placement:n=t===`click`?`bottom-start`:`right-start`,open:r,defaultOpen:i,onOpenChange:a}){let[o,s]=(0,q.useState)(ke),[c,l]=(0,q.useState)(i??!1),u=r!==void 0,h=u?r:c,g=(0,q.useRef)(null),{refs:_,floatingStyles:v,update:y}=d({placement:n,strategy:t===`contextmenu`?`fixed`:`absolute`,transform:!1,middleware:[m(6),f({padding:8}),ee({padding:8})],whileElementsMounted:p}),b=(0,q.useCallback)(e=>{u||l(e),a?.(e),e||s(e=>Oe(e))},[u,a]),x=(0,q.useCallback)(()=>{b(!1)},[b]),S=(0,q.useCallback)((e,t)=>{_.setReference(e),s(De({source:t,anchor:{type:`element`,element:e}})),b(!0)},[_,b]),C=(0,q.useCallback)((e,t,n)=>{_.setReference(Ee(e,n)),s(De({source:t,anchor:{type:`point`,point:e,contextElement:n}})),b(!0),y()},[_,b,y]),w=(0,q.useCallback)(e=>{g.current=e,t===`click`&&_.setReference(e)},[t,_]),T=(0,q.useCallback)(e=>{if(t!==`click`)return;let n=e.currentTarget;if(h&&o.anchor?.type===`element`&&o.anchor.element===n){x();return}S(n,`click`)},[t,h,o.anchor,x,S]),E=(0,q.useCallback)(e=>{if(t!==`contextmenu`)return;e.preventDefault();let n=e.currentTarget,r=we(e);C(r,`contextmenu`,n)},[t,C]),D=(0,q.useCallback)(e=>{if(!(e.key===`ContextMenu`||e.shiftKey&&e.key===`F10`))return;e.preventDefault();let n=e.currentTarget;if(t===`click`){S(n,`keyboard`);return}let r=Te(n.getBoundingClientRect());C(r,`keyboard`,n)},[t,S,C]),O=h&&o.anchor!==null,k=(0,q.useMemo)(()=>o.anchor?o.anchor.type===`point`?o.anchor.point:Te(o.anchor.element.getBoundingClientRect()):null,[o.anchor]),A=(0,q.useMemo)(()=>({mode:t,open:O,openSource:o.source,anchorPoint:k,floatingStyles:v,floatingRef:_.floating,triggerRef:g,setFloating:_.setFloating,registerTriggerElement:w,onTriggerClick:T,onTriggerContextMenu:E,onTriggerKeyDown:D,closeMenu:x}),[t,O,o.source,k,v,_.floating,_.setFloating,w,T,E,D,x]);return(0,je.jsx)(N.Provider,{value:A,children:e})}var q,je;function J(){return(J=t((()=>{q=e(n(),1),h(),Ae(),P(),je=r(),K.__docgenInfo={description:``,methods:[],displayName:`MenuRoot`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},mode:{required:!0,tsType:{name:`union`,raw:`"click" | "contextmenu"`,elements:[{name:`literal`,value:`"click"`},{name:`literal`,value:`"contextmenu"`}]},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`mode === "click" ? "bottom-start" : "right-start"`,computed:!1}},open:{required:!1,tsType:{name:`boolean`},description:``},defaultOpen:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``}}}})))()}var Me,Y;function X(){return(X=t((()=>{n(),o(),S(),Me=r(),Y=({className:e})=>(0,Me.jsx)(`div`,{role:`separator`,className:a(x.uiPopupOptionSeparator,e)}),Y.__docgenInfo={description:``,methods:[],displayName:`MenuSeparator`,props:{className:{required:!1,tsType:{name:`string`},description:``}}}})))()}function Ne(e,t,n){return n<t?t:Math.min(Math.max(e,t),n)}var Z,Pe,Q,Fe;function Ie(){return(Ie=t((()=>{Z=e(n(),1),y(),o(),T(),Pe=i(),L(),P(),Q=r(),Fe=({children:e,className:t,closeOnOutside:n=!0,closeOnEscape:r=!0,disableOutsideClick:i=!1,restoreFocus:o=!0,radius:s=76,itemSize:c=64,closeLabel:l=`Закрыть`})=>{let{open:u,anchorPoint:d,floatingRef:f,triggerRef:p,setFloating:ee,closeMenu:m}=j(),h=typeof e==`function`?e({closeMenu:m}):e,y=(0,Z.useMemo)(()=>Z.Children.toArray(h),[h]),b=y.length,x=s*2+c,S=(0,Z.useMemo)(()=>{if(typeof window>`u`||!d)return null;let e=x/2+8;return{x:Ne(d.x,e,window.innerWidth-e),y:Ne(d.y,e,window.innerHeight-e)}},[d,x]),T=(0,Z.useCallback)(()=>{let e=f.current;return e?Array.from(e.querySelectorAll(`[data-menu-item="true"]:not([data-disabled="true"])`)):[]},[f]);g({active:u,initialFocus:e=>T()[0]??e,restoreFocus:o,restoreFocusTarget:()=>p.current,containerRef:f}),(0,Z.useEffect)(()=>{if(!u||!d)return;let e=0;return e=window.requestAnimationFrame(()=>{(T()[0]??f.current)?.focus()}),()=>window.cancelAnimationFrame(e)},[u,d,T,f]),v({active:u,enabled:r,onDismiss:m,containerRef:f});let E=(0,Z.useCallback)(()=>{!u||i||n&&m()},[u,i,n,m]);_([f,p],E);let D=(0,Z.useCallback)(e=>{let t=T();if(t.length===0)return;let n=document.activeElement,r=n?t.indexOf(n):-1;if(e.key===`ArrowRight`||e.key===`ArrowDown`){e.preventDefault(),t[r>=0?(r+1)%t.length:0]?.focus();return}if(e.key===`ArrowLeft`||e.key===`ArrowUp`){e.preventDefault(),t[r>=0?(r-1+t.length)%t.length:t.length-1]?.focus();return}if(e.key===`Home`){e.preventDefault(),t[0]?.focus();return}e.key===`End`&&(e.preventDefault(),t[t.length-1]?.focus())},[T]);return typeof document>`u`?null:(0,Pe.createPortal)((0,Q.jsx)(w,{children:u&&S&&(0,Q.jsxs)(C.div,{ref:ee,style:{"--radial-panel-size":`${x}px`,"--radial-radius":`${s}px`,"--radial-item-size":`${c}px`,left:S.x-x/2,top:S.y-x/2,transformOrigin:`center`},role:`menu`,tabIndex:-1,className:a(I.radialPanel,t),onKeyDown:D,initial:{opacity:0,scale:.78},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.78},transition:{duration:.16,ease:`easeOut`},children:[(0,Q.jsx)(`div`,{className:I.radialRing,"aria-hidden":`true`}),(0,Q.jsx)(`button`,{type:`button`,role:`menuitem`,className:I.radialCenterButton,"aria-label":l,"data-menu-item":`true`,"data-radial-close":`true`,onClick:m,children:(0,Q.jsx)(`span`,{className:I.radialCenterButtonText,children:l})}),(0,Q.jsx)(`div`,{className:I.radialItems,children:y.map((e,t)=>{let n=b>0?-90+360/b*t:-90;return(0,Q.jsx)(`div`,{className:I.radialItemSlot,style:{"--radial-item-angle":`${n}deg`},children:e},t)})})]})}),document.body)}})))()}var Le,$,Re;function ze(){return(ze=t((()=>{Le=e(n(),1),o(),L(),P(),$=r(),Re=({children:e,icon:t,className:n,disabled:r,closeOnSelect:i=!0,onSelect:o})=>{let{closeMenu:s}=j(),c=(0,Le.useCallback)(e=>{if(r){e.preventDefault(),e.stopPropagation();return}o?.(e),!e.defaultPrevented&&i&&s()},[r,o,i,s]);return(0,$.jsxs)(`button`,{type:`button`,role:`menuitem`,tabIndex:-1,disabled:r,"aria-disabled":r,"data-menu-item":`true`,"data-disabled":r?`true`:void 0,"data-ui":`radial-menu-item`,"data-action":`select-radial-menu-item`,className:a(I.radialItem,n),onClick:c,children:[t&&(0,$.jsx)(`span`,{className:I.radialItemIcon,children:t}),(0,$.jsx)(`span`,{className:I.radialItemText,children:e})]})},Re.__docgenInfo={description:``,methods:[],displayName:`RadialMenuItem`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},icon:{required:!1,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},closeOnSelect:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},onSelect:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: React.MouseEvent<HTMLButtonElement>) => void`,signature:{arguments:[{type:{name:`ReactMouseEvent`,raw:`React.MouseEvent<HTMLButtonElement>`,elements:[{name:`HTMLButtonElement`}]},name:`event`}],return:{name:`void`}}},description:``}}}})))()}var Be,Ve,He;function Ue(){return(Ue=t((()=>{n(),ae(),ye(),V(),G(),J(),X(),Ie(),ze(),Be=r(),Ve=({children:e,placement:t,open:n,defaultOpen:r,onOpenChange:i})=>(0,Be.jsx)(K,{mode:`contextmenu`,placement:t,open:n,defaultOpen:r,onOpenChange:i,children:e}),He=Object.assign(Ve,{Trigger:F,Content:ve,RadialContent:Fe,Item:U,RadialItem:Re,Separator:Y,GroupLabel:B}),Ve.__docgenInfo={description:``,methods:[],displayName:`ContextMenuRoot`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``},open:{required:!1,tsType:{name:`boolean`},description:``},defaultOpen:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``}}}})))()}export{te as _,K as a,G as c,ve as d,ye as f,ne as g,A as h,X as i,B as l,j as m,Ue as n,J as o,P as p,Y as r,U as s,He as t,V as u,re as v};
@@ -1,2 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CB9pifff.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{c as i,l as a,m as o}from"./blocks-DFW8ghoN.js";var s;function c(){return(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)(a,{title:`Документация/ContextMenu`}),`
2
- `,(0,d.jsx)(i,{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;function f(){return(f=e((()=>{d=t(),r(),o(),c()})))()}f();export{u as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./iframe-CB9pifff.js";e();