@ryuzaki13/react-foundation-ui 1.8.12 → 1.8.13

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 (257) hide show
  1. package/package.json +2 -2
  2. package/storybook-static/assets/{Badge-CveIo2LZ.js → Badge-BFhBl7yM.js} +1 -1
  3. package/storybook-static/assets/{Badge.stories-Bd8M64xJ.js → Badge.stories-BEu55X4s.js} +1 -1
  4. package/storybook-static/assets/{BadgeList-xT41a0VL.js → BadgeList-mqmnGtRR.js} +1 -1
  5. package/storybook-static/assets/{Button-C5bBSb3k.js → Button-CESdnWrO.js} +1 -1
  6. package/storybook-static/assets/{Button-DkDgfpHL.js → Button-_YPAu9sd.js} +1 -1
  7. package/storybook-static/assets/{Button.stories-CeKPeGK5.js → Button.stories-B0Y_T17B.js} +1 -1
  8. package/storybook-static/assets/{CalendarView-CEqcrblx.js → CalendarView-DLuO2Ywz.js} +1 -1
  9. package/storybook-static/assets/{CheckBox-DKeFkdOt.js → CheckBox-CGiNmAPT.js} +1 -1
  10. package/storybook-static/assets/{CheckBox-OVvAarW-.js → CheckBox-l0pbBm9z.js} +1 -1
  11. package/storybook-static/assets/{CheckBox.stories-CfZ0p1yo.js → CheckBox.stories-ROPAnqh8.js} +1 -1
  12. package/storybook-static/assets/{Color-6AOWCN3U-BWW7zrfs.js → Color-6AOWCN3U-kPaRN0HS.js} +1 -1
  13. package/storybook-static/assets/{ContextMenu-xn2GtiLR.js → ContextMenu-Bob4DtRn.js} +1 -1
  14. package/storybook-static/assets/{ContextMenu-kia7is1N.js → ContextMenu-DxfUAeJS.js} +1 -1
  15. package/storybook-static/assets/{ContextMenu.stories-CYuy9uXF.js → ContextMenu.stories-DCJmWy5n.js} +1 -1
  16. package/storybook-static/assets/{CustomOptionButton-C4w-APws.js → CustomOptionButton-DuEz9CXt.js} +1 -1
  17. package/storybook-static/assets/{DateInput-BiUFIihm.js → DateInput-BQ8SoeLE.js} +1 -1
  18. package/storybook-static/assets/{DateInput-DAzE5mCE.js → DateInput-DmNLD4Dz.js} +1 -1
  19. package/storybook-static/assets/{DateInput.stories-BcowGCRD.js → DateInput.stories-sTpYf7Ob.js} +1 -1
  20. package/storybook-static/assets/{DateRangePresetSelect-CQm4dNLR.js → DateRangePresetSelect-DRq4eJ2n.js} +1 -1
  21. package/storybook-static/assets/{DateRangePresetSelect-RIyqNBk9.js → DateRangePresetSelect-fgJfLaLO.js} +1 -1
  22. package/storybook-static/assets/{DateRangePresetSelect.stories-ypGyuGfy.js → DateRangePresetSelect.stories-ib7Qh_BB.js} +1 -1
  23. package/storybook-static/assets/{Detail-CEypL2Nh.js → Detail-CJniLn1R.js} +1 -1
  24. package/storybook-static/assets/{Detail.stories-DNkT7B-u.js → Detail.stories-BXjdNaL-.js} +1 -1
  25. package/storybook-static/assets/{Dialog-BVFFQJDH.js → Dialog-D6a_qzr3.js} +1 -1
  26. package/storybook-static/assets/{Dialog-DD0grLG3.js → Dialog-DOYnnXlU.js} +1 -1
  27. package/storybook-static/assets/{Dialog.stories-DSCypHqR.js → Dialog.stories-B1cZLRK3.js} +1 -1
  28. package/storybook-static/assets/{Disclosure-DauUgrev.js → Disclosure-Chh5o_0s.js} +1 -1
  29. package/storybook-static/assets/{Disclosure.stories-B1qB8vQZ.js → Disclosure.stories-Cvdvf7V8.js} +1 -1
  30. package/storybook-static/assets/{DisclosureGroup-D9oCCeHf.js → DisclosureGroup-CRnQOgVj.js} +1 -1
  31. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CmSf6tXp.js → DocsRenderer-JROSPFPF-BBiErkeC.js} +1 -1
  32. package/storybook-static/assets/{DropZone-D8hbPCAv.js → DropZone-Bm5gqdi9.js} +1 -1
  33. package/storybook-static/assets/{DropZone-D42ueN1w.js → DropZone-C4L7JAlq.js} +1 -1
  34. package/storybook-static/assets/{DropZone.stories-DO-T_Bh4.js → DropZone.stories-BhA9q8Qv.js} +1 -1
  35. package/storybook-static/assets/{DropdownMenu-CknJDoji.js → DropdownMenu-DtZNSUHF.js} +1 -1
  36. package/storybook-static/assets/{ExpandableActionPanel-Dqi_bo3c.js → ExpandableActionPanel-0ugXlJy_.js} +1 -1
  37. package/storybook-static/assets/{ExpandableActionPanel.stories-BD9QZGZN.js → ExpandableActionPanel.stories-CLgMlA9k.js} +1 -1
  38. package/storybook-static/assets/{Flex-CaVn1IOP.js → Flex-CJlia-8f.js} +1 -1
  39. package/storybook-static/assets/{Flex.stories-Bp9Y6q6b.js → Flex.stories-DCvfi1EY.js} +1 -1
  40. package/storybook-static/assets/{FloatingPopover-U7tx-Jlw.js → FloatingPopover-CsnfPiwV.js} +1 -1
  41. package/storybook-static/assets/{FormattedTableCell-pmmhsAbN.js → FormattedTableCell-Dz5xWVYO.js} +1 -1
  42. package/storybook-static/assets/{Grid-CEpMNurH.js → Grid-C-KwTRAM.js} +1 -1
  43. package/storybook-static/assets/{Grid.stories-BM-gO5DN.js → Grid.stories-CzbqknNR.js} +1 -1
  44. package/storybook-static/assets/{ImageCropper.stories-BWz5XU6U.js → ImageCropper.stories-DaE-gm-b.js} +1 -1
  45. package/storybook-static/assets/{ImageRenderer-BTYZEX5t.js → ImageRenderer-IsNCXCrZ.js} +1 -1
  46. package/storybook-static/assets/{ImageRenderer.stories-Dz2STM95.js → ImageRenderer.stories-BbsjUEfJ.js} +1 -1
  47. package/storybook-static/assets/{ImageView.stories-DBVe0an3.js → ImageView.stories-DY0UITYz.js} +1 -1
  48. package/storybook-static/assets/{ImageViewer.stories-C4Px97lD.js → ImageViewer.stories--9q9b9nv.js} +2 -2
  49. package/storybook-static/assets/{ImageViewerRuntime-TJtlJVfa.js → ImageViewerRuntime-CNEH3XGN.js} +1 -1
  50. package/storybook-static/assets/{Input-CIPgijvW.js → Input-DLubbE7P.js} +1 -1
  51. package/storybook-static/assets/{Input-D8io9jVS.js → Input-Dw2JblYt.js} +1 -1
  52. package/storybook-static/assets/{Input.stories-SUk3aYaC.js → Input.stories-DQeyDULG.js} +1 -1
  53. package/storybook-static/assets/{InputDateTime-DA5pIDuE.js → InputDateTime-BRzl8Vrt.js} +1 -1
  54. package/storybook-static/assets/{InputDateTime.stories-DeudzDSU.js → InputDateTime.stories-BJTj5v8J.js} +1 -1
  55. package/storybook-static/assets/{InputFile-CGAC7ruP.js → InputFile-B8UroZji.js} +1 -1
  56. package/storybook-static/assets/{InputFile-C5mp5Y5I.js → InputFile-DPftxjGw.js} +1 -1
  57. package/storybook-static/assets/{InputFile.stories-Cx1xQ6PE.js → InputFile.stories-C7yyqHqc.js} +1 -1
  58. package/storybook-static/assets/{InputFiles-B7OBcPJN.js → InputFiles-BQVXHVLy.js} +1 -1
  59. package/storybook-static/assets/{InputFiles-Hzl89Ghf.js → InputFiles-UD_9S7-N.js} +1 -1
  60. package/storybook-static/assets/{InputFiles.stories-CG6QjDZH.js → InputFiles.stories-DjjJS5pZ.js} +1 -1
  61. package/storybook-static/assets/{InputFilesList-B6htWHF1.js → InputFilesList-BNjijD3Y.js} +1 -1
  62. package/storybook-static/assets/{InputImage-BTa4S4Wp.js → InputImage-C-pHr-Sx.js} +1 -1
  63. package/storybook-static/assets/{InputImage-CQnoblAE.js → InputImage-DbcbqIhY.js} +1 -1
  64. package/storybook-static/assets/{InputImage.stories-CEI44Eyz.js → InputImage.stories-D-TC9r9t.js} +1 -1
  65. package/storybook-static/assets/{InteractiveComponents-B0ypWz1x.js → InteractiveComponents-DbhWgM9y.js} +1 -1
  66. package/storybook-static/assets/{InteractiveComponents.stories-BadApta9.js → InteractiveComponents.stories-B4mkVSea.js} +1 -1
  67. package/storybook-static/assets/{LayoutPicker-C_Uz7Tnj.js → LayoutPicker-BoV_E3qt.js} +1 -1
  68. package/storybook-static/assets/{LayoutPicker-COB9GlV_.js → LayoutPicker-w1EsRpYP.js} +1 -1
  69. package/storybook-static/assets/{LayoutPicker.stories-Btp0IcaL.js → LayoutPicker.stories--ChGnGxf.js} +1 -1
  70. package/storybook-static/assets/{Listbox-AAaZGSAl.js → Listbox-CzZRsr6a.js} +1 -1
  71. package/storybook-static/assets/{Listbox-CyfuZw7w.js → Listbox-qZdTi11b.js} +1 -1
  72. package/storybook-static/assets/{Listbox.stories-NDKQmjyQ.js → Listbox.stories-C9k_1850.js} +1 -1
  73. package/storybook-static/assets/{Modal-BJDnJ4zv.js → Modal-DCpul8QM.js} +1 -1
  74. package/storybook-static/assets/{Modal.stories-D_X5lTLO.js → Modal.stories-Cy0Xd4LF.js} +1 -1
  75. package/storybook-static/assets/{ModalManagerProvider-ShDjozpW.js → ModalManagerProvider-BrPVMcHV.js} +1 -1
  76. package/storybook-static/assets/{MultiSelect-DqXfrjcH.js → MultiSelect-BEQdl-F4.js} +1 -1
  77. package/storybook-static/assets/{MultiSelect-B5CElQ3-.js → MultiSelect-Dy4X94E2.js} +1 -1
  78. package/storybook-static/assets/{MultiSelect.stories-fB3mcFmx.js → MultiSelect.stories-FuzejJmz.js} +1 -1
  79. package/storybook-static/assets/{NoData-DDb0G7T8.js → NoData-BsQ9EfkA.js} +1 -1
  80. package/storybook-static/assets/{NotificationsHost-CIGL-pKX.js → NotificationsHost-BSrODvw7.js} +1 -1
  81. package/storybook-static/assets/{NotificationsHost.stories-B_MRb3fs.js → NotificationsHost.stories-DeiWspcY.js} +1 -1
  82. package/storybook-static/assets/{ODataMultiSelect-DQAitH4N.js → ODataMultiSelect-BEz9gcd2.js} +1 -1
  83. package/storybook-static/assets/{ODataMultiSelect.stories-DwW221S9.js → ODataMultiSelect.stories-BwMgAkbE.js} +1 -1
  84. package/storybook-static/assets/{ODataSelect-tiZhOIhE.js → ODataSelect-BgC7GHOv.js} +1 -1
  85. package/storybook-static/assets/{ODataSelect.stories-BhaatPjK.js → ODataSelect.stories-DEIRAB-s.js} +1 -1
  86. package/storybook-static/assets/{ODataTreeMultiSelect-B9WqJ-Un.js → ODataTreeMultiSelect-WyZZuX0_.js} +1 -1
  87. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CAfKuhfU.js → ODataTreeMultiSelect.stories-B6cxuagy.js} +1 -1
  88. package/storybook-static/assets/{ODataTreeSelect-Cel1phxZ.js → ODataTreeSelect-OJGi3-S7.js} +1 -1
  89. package/storybook-static/assets/{ODataTreeSelect.stories-BpBCpBA9.js → ODataTreeSelect.stories-wGRGErCH.js} +1 -1
  90. package/storybook-static/assets/{OneStepScroller-BSeGbz02.js → OneStepScroller-DycQ3RuL.js} +1 -1
  91. package/storybook-static/assets/{Option-BBtQ3GdK.js → Option-taxbFfjo.js} +1 -1
  92. package/storybook-static/assets/{OptionButton-B9nZuqqW.js → OptionButton-Q0QaPCII.js} +1 -1
  93. package/storybook-static/assets/{PeriodSelect-DA_zjcdA.js → PeriodSelect-DUJ2nF3F.js} +1 -1
  94. package/storybook-static/assets/{PeriodSelect-BGvhR3to.js → PeriodSelect-DnM7x-uC.js} +1 -1
  95. package/storybook-static/assets/{PeriodSelect.stories-DDP1eXyM.js → PeriodSelect.stories-Db0bqe3J.js} +1 -1
  96. package/storybook-static/assets/{PickerTriggerActions-BgvzqRBd.js → PickerTriggerActions-CGJd7xmR.js} +1 -1
  97. package/storybook-static/assets/{Popover-C0NebUMz.js → Popover-B6oidz5p.js} +1 -1
  98. package/storybook-static/assets/{Popover-BQql18MF.js → Popover-Tbhf8T81.js} +1 -1
  99. package/storybook-static/assets/{Popover.stories-CIyDUtlz.js → Popover.stories-DE1LxZvv.js} +1 -1
  100. package/storybook-static/assets/{PresetRangeDateInput-BsgzPwCV.js → PresetRangeDateInput-CQ5FfmrL.js} +1 -1
  101. package/storybook-static/assets/{PresetRangeDateInput-htbxc3ni.js → PresetRangeDateInput-DfgoR0My.js} +1 -1
  102. package/storybook-static/assets/{PresetRangeDateInput.stories-ClHM5Kah.js → PresetRangeDateInput.stories-CgoYAYBG.js} +1 -1
  103. package/storybook-static/assets/{PresetSelect-Dcx0BOTx.js → PresetSelect-BPtAknAr.js} +1 -1
  104. package/storybook-static/assets/{README-BSh5XUR9.js → README--TpGcM95.js} +1 -1
  105. package/storybook-static/assets/{README-ByALXSEH.js → README-4iBHWAP5.js} +1 -1
  106. package/storybook-static/assets/{README-CHbo4O3Z.js → README-98KIgy5G.js} +1 -1
  107. package/storybook-static/assets/{README-eHCINzP3.js → README-B6II8p0W.js} +1 -1
  108. package/storybook-static/assets/{README-DDBqoI-T.js → README-B6vU5_7I.js} +1 -1
  109. package/storybook-static/assets/README-BFJVjjZR.js +325 -0
  110. package/storybook-static/assets/README-BIT4HlFP.js +441 -0
  111. package/storybook-static/assets/{README-DvAlDsh9.js → README-BK6Epio1.js} +1 -1
  112. package/storybook-static/assets/{README-5M8ajrJp.js → README-BRlPB5_k.js} +1 -1
  113. package/storybook-static/assets/{README-CH_6ZIO2.js → README-BTFpEaXG.js} +1 -1
  114. package/storybook-static/assets/{README-DnA-4W65.js → README-BWhXgC_o.js} +1 -1
  115. package/storybook-static/assets/{README-Byo6DxIF.js → README-BbNHvOoR.js} +1 -1
  116. package/storybook-static/assets/{README-Bqnqu1bC.js → README-BbunUo8b.js} +1 -1
  117. package/storybook-static/assets/{README-CsoHGRve.js → README-BmYpfZKr.js} +1 -1
  118. package/storybook-static/assets/{README-C8E1O7DQ.js → README-Bu5uvhAT.js} +1 -1
  119. package/storybook-static/assets/{README-DE2wk9-v.js → README-Bx6fvSBE.js} +1 -1
  120. package/storybook-static/assets/{README-Am6Fa6-b.js → README-Bx6gIGiA.js} +1 -1
  121. package/storybook-static/assets/README-ByhxsX44.js +324 -0
  122. package/storybook-static/assets/{README-qHKxXU95.js → README-Byi1FFpw.js} +1 -1
  123. package/storybook-static/assets/{README-D9OypaFB.js → README-C3Is3a3B.js} +1 -1
  124. package/storybook-static/assets/{README-CNHemCS2.js → README-C6prwAXw.js} +1 -1
  125. package/storybook-static/assets/{README-BmhhWWEk.js → README-C9S83J_G.js} +1 -1
  126. package/storybook-static/assets/{README-CM-7E-Jf.js → README-CGgxP5Zo.js} +1 -1
  127. package/storybook-static/assets/{README-BIq-FXcN.js → README-CJ2ZVG2U.js} +1 -1
  128. package/storybook-static/assets/{README-B45Cwj2a.js → README-CNGCAm5d.js} +1 -1
  129. package/storybook-static/assets/{README-CAGQnLsv.js → README-Cb_q420B.js} +1 -1
  130. package/storybook-static/assets/{README-BxjYCoYA.js → README-CtIDPNJ3.js} +1 -1
  131. package/storybook-static/assets/{README-C9eh0JLs.js → README-CzO3Dchr.js} +1 -1
  132. package/storybook-static/assets/{README-DEj2wSK0.js → README-D0rzQthv.js} +1 -1
  133. package/storybook-static/assets/{README-Dl92E69Z.js → README-DEQu7djz.js} +1 -1
  134. package/storybook-static/assets/{README-BYSgTTZt.js → README-DFihT_sm.js} +1 -1
  135. package/storybook-static/assets/{README-CIGfHKKE.js → README-DMiWsyv_.js} +1 -1
  136. package/storybook-static/assets/{README-B3bFglqG.js → README-DOx8lXXk.js} +1 -1
  137. package/storybook-static/assets/{README-CWfPiPIB.js → README-DPhDjr43.js} +1 -1
  138. package/storybook-static/assets/{README-DJHVgrpj.js → README-D_NqWPa9.js} +1 -1
  139. package/storybook-static/assets/README-DhJ5Rb1w.js +355 -0
  140. package/storybook-static/assets/{README-DV4fCpqN.js → README-DlwhWCvQ.js} +1 -1
  141. package/storybook-static/assets/README-Dxi73a2Q.js +740 -0
  142. package/storybook-static/assets/README-Dycov6NP.js +583 -0
  143. package/storybook-static/assets/README-GTBkSG4_.js +3591 -0
  144. package/storybook-static/assets/{README-ui-uanyg.js → README-Gfd9tLTw.js} +1 -1
  145. package/storybook-static/assets/{README-B6ltJiw3.js → README-Kfawetke.js} +1 -1
  146. package/storybook-static/assets/{README-DjCArsA5.js → README-UDBM7ZMT.js} +1 -1
  147. package/storybook-static/assets/{README-DIbfpC-2.js → README-VTWQxLm_.js} +1 -1
  148. package/storybook-static/assets/README-YHNWrTZv.js +400 -0
  149. package/storybook-static/assets/README-_0Otw0eD.js +448 -0
  150. package/storybook-static/assets/{README-Ss-3t1nX.js → README-aw2Xu9xu.js} +1 -1
  151. package/storybook-static/assets/{README-BuMMG4_N.js → README-eg1emlll.js} +1 -1
  152. package/storybook-static/assets/{README-B6Nq7NCU.js → README-iqQHdhZ4.js} +1 -1
  153. package/storybook-static/assets/{README-BB_JPejH.js → README-llxZAtCj.js} +1 -1
  154. package/storybook-static/assets/{README-5NhzH8VL.js → README-wFnEIGl4.js} +1 -1
  155. package/storybook-static/assets/{README-CeK4kfFO.js → README-webB1yH0.js} +1 -1
  156. package/storybook-static/assets/{README-C3UcjOGB.js → README-wtreGRCe.js} +1 -1
  157. package/storybook-static/assets/{RadioButton-YIQXt0wx.js → RadioButton-CNOLDk_o.js} +1 -1
  158. package/storybook-static/assets/{RadioButton-CWtjclwT.js → RadioButton-Ce05_q7s.js} +1 -1
  159. package/storybook-static/assets/{RadioButton.stories-Ah-CBpeC.js → RadioButton.stories-CPd4lTl0.js} +1 -1
  160. package/storybook-static/assets/{RadioGroup-BnO-GL7A.js → RadioGroup-BtfD5Szd.js} +1 -1
  161. package/storybook-static/assets/{RadioGroup-CUS0etBD.js → RadioGroup-Ccm7G-dv.js} +1 -1
  162. package/storybook-static/assets/{RadioGroup.stories-DGwCawtU.js → RadioGroup.stories-D-RRPHwi.js} +1 -1
  163. package/storybook-static/assets/{Scrollable-D85fA6pO.js → Scrollable-DvdBIeig.js} +1 -1
  164. package/storybook-static/assets/{Select-gRnfvfGh.js → Select-8PV9PBKF.js} +1 -1
  165. package/storybook-static/assets/{Select-CGCxJjL9.js → Select-G04B41FM.js} +1 -1
  166. package/storybook-static/assets/{Select.stories-CMwt4F9i.js → Select.stories-Cf6CBhV8.js} +1 -1
  167. package/storybook-static/assets/{SerializableSelect-BLXfKJ38.js → SerializableSelect-CdQdHIVp.js} +1 -1
  168. package/storybook-static/assets/{SerializableSelect.stories-Bca1a9ZU.js → SerializableSelect.stories-0AKUGpbS.js} +1 -1
  169. package/storybook-static/assets/{SingleDateTimeInput-CyeQN0Rd.js → SingleDateTimeInput-DWT1ORhL.js} +1 -1
  170. package/storybook-static/assets/{SingleDateTimeInput-xrmZckzw.js → SingleDateTimeInput-DattLt6w.js} +1 -1
  171. package/storybook-static/assets/{SingleDateTimeInput.stories-BYFTQM9z.js → SingleDateTimeInput.stories-BLJV3jzV.js} +1 -1
  172. package/storybook-static/assets/{Slider-D8GtXVGI.js → Slider-DKEI4cDd.js} +1 -1
  173. package/storybook-static/assets/{Slider-1yJ3uVeR.js → Slider-Dci-mJt_.js} +1 -1
  174. package/storybook-static/assets/{Slider.stories-CyQ3ns_C.js → Slider.stories-Dp7oQueF.js} +1 -1
  175. package/storybook-static/assets/{SliderInput-ISSx9vH_.js → SliderInput-BGPQmlgY.js} +1 -1
  176. package/storybook-static/assets/{SliderInput-BOzHhEUA.js → SliderInput-BhjqGOKt.js} +1 -1
  177. package/storybook-static/assets/{SliderInput.stories-7ooTghrS.js → SliderInput.stories-DXNhRU3X.js} +1 -1
  178. package/storybook-static/assets/{Sortable-CCLiMmfZ.js → Sortable-CMd9l1Gd.js} +1 -1
  179. package/storybook-static/assets/{Sortable.stories-B36szI6t.js → Sortable.stories-BN1cFEFJ.js} +1 -1
  180. package/storybook-static/assets/{Splitter-DQGhgRwx.js → Splitter-GL65TlI9.js} +1 -1
  181. package/storybook-static/assets/{Splitter.stories-Hsq1wYaq.js → Splitter.stories-q5PlI6rB.js} +1 -1
  182. package/storybook-static/assets/{StateSelect-C6hldFgO.js → StateSelect-Byik5-iZ.js} +1 -1
  183. package/storybook-static/assets/{StateSelect-DieNn4VC.js → StateSelect-CT0JF2V6.js} +1 -1
  184. package/storybook-static/assets/{StateSelect.stories-CvAhDMix.js → StateSelect.stories-pPEPmgnN.js} +1 -1
  185. package/storybook-static/assets/{StringToggle.stories-CUT1tvt-.js → StringToggle.stories-BQlFmCE7.js} +1 -1
  186. package/storybook-static/assets/{Switch-CX9p_uYU.js → Switch--xGPiYk-.js} +1 -1
  187. package/storybook-static/assets/{Switch-nEMRtcWe.js → Switch-DhaLI9CG.js} +1 -1
  188. package/storybook-static/assets/{Switch.stories-CPsHa2_m.js → Switch.stories-5DisgIyj.js} +1 -1
  189. package/storybook-static/assets/{Table-BhtITVtj.js → Table-Bf6MicdG.js} +1 -1
  190. package/storybook-static/assets/{Table.stories-nWNhSydG.js → Table.stories-CS7rQgj9.js} +1 -1
  191. package/storybook-static/assets/{Tabs-DMQFh2BJ.js → Tabs-B4y4y8Ap.js} +1 -1
  192. package/storybook-static/assets/{Tabs.stories-D23_xvom.js → Tabs.stories-C0SpdGkh.js} +1 -1
  193. package/storybook-static/assets/{TabsBox-B5BsD_j_.js → TabsBox-C5LLLhnj.js} +1 -1
  194. package/storybook-static/assets/{TagInput-DO17z100.js → TagInput-D4BpuCoH.js} +1 -1
  195. package/storybook-static/assets/{TagInput.stories-CMMFnIzb.js → TagInput.stories-rn2wtZP_.js} +1 -1
  196. package/storybook-static/assets/{Text-ClnbDqRk.js → Text-BhBt9e7C.js} +1 -1
  197. package/storybook-static/assets/{Textarea-DkhohiNc.js → Textarea-B-Hz7ujq.js} +1 -1
  198. package/storybook-static/assets/{Textarea-C2IO_zsP.js → Textarea-BHHxY5sd.js} +1 -1
  199. package/storybook-static/assets/{Textarea.stories-NL6Aq8Vc.js → Textarea.stories-CZ2kWz20.js} +1 -1
  200. package/storybook-static/assets/{TimePanel-DNEPDlSW.js → TimePanel-Cg8fgFsn.js} +1 -1
  201. package/storybook-static/assets/{TimePanel.stories-DlfdPsz1.js → TimePanel.stories-BxdwtK2e.js} +1 -1
  202. package/storybook-static/assets/{Toggle-Cc6Ca-HI.js → Toggle-BWwfk9fi.js} +1 -1
  203. package/storybook-static/assets/{Toggle-3U5CceQN.js → Toggle-Ce9rbjBc.js} +1 -1
  204. package/storybook-static/assets/{Toggle.stories-BR-hVLDp.js → Toggle.stories-0fzcmzKy.js} +1 -1
  205. package/storybook-static/assets/{TreeMultiSelect-D9hMQN2O.js → TreeMultiSelect-B06Y0lIc.js} +1 -1
  206. package/storybook-static/assets/{TreeMultiSelect-B0oBc-4y.js → TreeMultiSelect-CrAdR_jM.js} +1 -1
  207. package/storybook-static/assets/{TreeMultiSelect.stories-CslpbvPR.js → TreeMultiSelect.stories-CAVoj56E.js} +1 -1
  208. package/storybook-static/assets/{TreePickerBase-B_dMCe45.js → TreePickerBase-qU2xPlar.js} +1 -1
  209. package/storybook-static/assets/{TreeSelect-2lj0Q8gm.js → TreeSelect-BIHydJFy.js} +1 -1
  210. package/storybook-static/assets/{TreeSelect-DEKNYF2b.js → TreeSelect-BKnWu0C7.js} +1 -1
  211. package/storybook-static/assets/{TreeSelect.stories-CVDxn8Vm.js → TreeSelect.stories-Dp_8ybAf.js} +1 -1
  212. package/storybook-static/assets/{TreeTable-CBIpzYRL.js → TreeTable-pVXjU9dG.js} +1 -1
  213. package/storybook-static/assets/{TreeTable.stories-BMzrr2Kc.js → TreeTable.stories-CV_8Ui6R.js} +1 -1
  214. package/storybook-static/assets/{blocks-B5YBxaaS.js → blocks-BY40djCc.js} +3 -3
  215. package/storybook-static/assets/{check-BjtdCRaW.js → check-CVkPTDzp.js} +1 -1
  216. package/storybook-static/assets/{chevron-down-B4u-y8Z1.js → chevron-down-BtNO4Vhe.js} +1 -1
  217. package/storybook-static/assets/{chevron-left-BQfWs7Ah.js → chevron-left-kceSK3sZ.js} +1 -1
  218. package/storybook-static/assets/{chevron-right-ChokKd-f.js → chevron-right-BA_LO2El.js} +1 -1
  219. package/storybook-static/assets/{chunk-W22LQPXL-meOkhzk4.js → chunk-W22LQPXL-yJiFPv6e.js} +1 -1
  220. package/storybook-static/assets/{circle-alert-B1AnDRf_.js → circle-alert-B2m4a1zz.js} +1 -1
  221. package/storybook-static/assets/{circle-check-JYnlcC1F.js → circle-check-Cfjhotlm.js} +1 -1
  222. package/storybook-static/assets/{components-C_wl1sL5.js → components-D6yV8PLX.js} +3 -3
  223. package/storybook-static/assets/{contextMenu-B-TUGs_1.js → contextMenu-B0pQBIW0.js} +1 -1
  224. package/storybook-static/assets/{download-eR3X8I-h.js → download-Lba8elK9.js} +1 -1
  225. package/storybook-static/assets/{floating-ui.react-D95VPQ0b.js → floating-ui.react-BFNvfMpU.js} +1 -1
  226. package/storybook-static/assets/{foundationApi-QhHXpYLB.js → foundationApi-DZhnQ2cC.js} +1 -1
  227. package/storybook-static/assets/{foundationLib-CEAjnstw.js → foundationLib-CoVTo22U.js} +1 -1
  228. package/storybook-static/assets/{hooks-awde7r2r.js → hooks-Cc6eXN6U.js} +1 -1
  229. package/storybook-static/assets/iframe-BXM-JBuH.js +1 -0
  230. package/storybook-static/assets/{iframe-FSp_AjJa.js → iframe-o7sH2IXC.js} +3 -3
  231. package/storybook-static/assets/{info-12vmb1sT.js → info-BpsVP_dM.js} +1 -1
  232. package/storybook-static/assets/{odata-C0Kpvttz.js → odata-CXsbxsRY.js} +1 -1
  233. package/storybook-static/assets/{odataStoryFixtures-BXZnk_C7.js → odataStoryFixtures-Dj_bzRqh.js} +1 -1
  234. package/storybook-static/assets/{react-BlCqWuXr.js → react-DeJ0JTHb.js} +1 -1
  235. package/storybook-static/assets/{refresh-cw-Bf5ufPte.js → refresh-cw-BvGyjEXe.js} +1 -1
  236. package/storybook-static/assets/{settings-2-DR-dTXIC.js → settings-2-BdXxnHos.js} +1 -1
  237. package/storybook-static/assets/{sortable-B5e5yb_-.js → sortable-XkyN-9r5.js} +1 -1
  238. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-EVJARTec.js → syntaxhighlighter-QEQV7K2Y-Cafn3LV1.js} +1 -1
  239. package/storybook-static/assets/{trash-2-QP7TS18H.js → trash-2-uPH9-fND.js} +1 -1
  240. package/storybook-static/assets/{triangle-alert-qw19mxHr.js → triangle-alert-tT01vSMw.js} +1 -1
  241. package/storybook-static/assets/{useODataSelectBase-Csu_Cct9.js → useODataSelectBase-B2LlOwPZ.js} +1 -1
  242. package/storybook-static/assets/{useODataTreeData-BAv-Twqf.js → useODataTreeData-CU7Rqcb9.js} +1 -1
  243. package/storybook-static/assets/{usePickerQuery-Da-XM_Y0.js → usePickerQuery-D8GHQ6KR.js} +1 -1
  244. package/storybook-static/assets/{usePickerTriggerController-C0TdC2Pz.js → usePickerTriggerController-CcK1jmDy.js} +1 -1
  245. package/storybook-static/assets/{x-aCjYTirW.js → x-BlAURbAH.js} +1 -1
  246. package/storybook-static/iframe.html +2 -2
  247. package/storybook-static/project.json +1 -1
  248. package/storybook-static/assets/README--LCKbep-.js +0 -110
  249. package/storybook-static/assets/README-BXJneZAJ.js +0 -147
  250. package/storybook-static/assets/README-C6BOdXNV.js +0 -322
  251. package/storybook-static/assets/README-CC00hlZK.js +0 -527
  252. package/storybook-static/assets/README-Cj2e6HrF.js +0 -178
  253. package/storybook-static/assets/README-DN9HKtp_.js +0 -124
  254. package/storybook-static/assets/README-DNricOkt.js +0 -136
  255. package/storybook-static/assets/README-DoCA4JXf.js +0 -273
  256. package/storybook-static/assets/README-tm9QH9cF.js +0 -103
  257. package/storybook-static/assets/iframe-DzQq_POR.js +0 -1
@@ -1,273 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-FSp_AjJa.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-B5YBxaaS.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Query/Generic Resource`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`generic-resources-через-ryuzaki13react-foundation-apiresource`,children:[`Generic resources через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/resource`})]}),`
3
- `,(0,c.jsx)(t.p,{children:`Модуль описывает transport-agnostic ресурс поверх TanStack Query: стабильные query keys, проверку scope, произвольные read/write operations и cache strategies после mutation.`}),`
4
- `,(0,c.jsx)(t.h2,{id:`для-кого-этот-документ`,children:`Для кого этот документ`}),`
5
- `,(0,c.jsx)(t.p,{children:`Здесь термины используются так:`}),`
6
- `,(0,c.jsxs)(t.ul,{children:[`
7
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.strong,{children:`resource`}),` — технически связанная группа данных, например `,(0,c.jsx)(t.code,{children:`orders`}),`;`]}),`
8
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.strong,{children:`scope`}),` — контекст, внутри которого данные уникальны, например `,(0,c.jsx)(t.code,{children:`{ companyId }`}),`;`]}),`
9
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.strong,{children:`query/read operation`}),` — чтение без изменения server state;`]}),`
10
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.strong,{children:`mutation/write operation`}),` — создание/изменение/удаление;`]}),`
11
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.strong,{children:`descriptor`}),` — объект, объединяющий identity, operations и правила доступности;`]}),`
12
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.strong,{children:`query key`}),` — сериализуемый identity записи в TanStack Query cache.`]}),`
13
- `]}),`
14
- `,(0,c.jsxs)(t.p,{children:[`Модуль не выполняет HTTP/OData сам. Transport находится внутри `,(0,c.jsx)(t.code,{children:`operation.execute`}),` или создаётся adapter-ом `,(0,c.jsx)(t.code,{children:`/server-fn`}),`.`]}),`
15
- `,(0,c.jsx)(t.h2,{id:`когда-использовать`,children:`Когда использовать`}),`
16
- `,(0,c.jsxs)(t.p,{children:[`Используйте `,(0,c.jsx)(t.code,{children:`/resource`}),`, когда названия операций произвольны: `,(0,c.jsx)(t.code,{children:`search`}),`, `,(0,c.jsx)(t.code,{children:`detail`}),`, `,(0,c.jsx)(t.code,{children:`archive`}),`, `,(0,c.jsx)(t.code,{children:`recalculate`}),`.`]}),`
17
- `,(0,c.jsxs)(t.p,{children:[`Для стандартной модели сохранённых записей `,(0,c.jsx)(t.code,{children:`list/latest/history/save/create/delete`}),` удобнее `,(0,c.jsx)(t.a,{href:`../persisted/README.mdx`,children:(0,c.jsx)(t.code,{children:`/persisted`})}),`.`]}),`
18
- `,(0,c.jsx)(t.h2,{id:`установка-и-provider`,children:`Установка и provider`}),`
19
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-api @ryuzaki13/react-foundation-lib @tanstack/react-query react
20
- `})}),`
21
- `,(0,c.jsxs)(t.p,{children:[`React hooks работают только внутри `,(0,c.jsx)(t.code,{children:`QueryClientProvider`}),`:`]}),`
22
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
23
-
24
- const queryClient = new QueryClient();
25
-
26
- export function App() {
27
- return <QueryClientProvider client={queryClient}>{/* routes */}</QueryClientProvider>;
28
- }
29
- `})}),`
30
- `,(0,c.jsx)(t.p,{children:`Создайте client один раз, а не внутри render.`}),`
31
- `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
32
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
33
- applyResourceCacheStrategy,
34
- buildResourceQueryOptions,
35
- composeResourceCacheStrategies,
36
- createInvalidateResourceScopeCacheStrategy,
37
- createResourceDescriptor,
38
- createResourceKeys,
39
- createResourceMutationOperation,
40
- createResourceQueryOperation,
41
- createSetResourceQueryDataCacheStrategy,
42
- getResourceQueryData,
43
- normalizeResourceKeyValue,
44
- useResourceMutation,
45
- useResourceQuery
46
- } from "@ryuzaki13/react-foundation-api/resource";
47
- `})}),`
48
- `,(0,c.jsx)(t.p,{children:`Типы экспортируются из того же subpath.`}),`
49
- `,(0,c.jsx)(t.h2,{id:`пошаговый-пример`,children:`Пошаговый пример`}),`
50
- `,(0,c.jsx)(t.h3,{id:`1-описать-scope-и-данные`,children:`1. Описать scope и данные`}),`
51
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type OrdersScope = {
52
- companyId: string;
53
- };
54
-
55
- type SearchOrdersArgs = {
56
- search: string;
57
- limit: number;
58
- };
59
-
60
- type Order = {
61
- id: string;
62
- title: string;
63
- };
64
-
65
- type SaveOrderInput = {
66
- id: string;
67
- title: string;
68
- };
69
- `})}),`
70
- `,(0,c.jsx)(t.h3,{id:`2-создать-operations`,children:`2. Создать operations`}),`
71
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const searchOperation = createResourceQueryOperation<
72
- OrdersScope,
73
- SearchOrdersArgs,
74
- Order[]
75
- >({
76
- async execute({ scope, args, signal }) {
77
- const query = new URLSearchParams({
78
- companyId: scope.companyId,
79
- search: args.search,
80
- limit: String(args.limit)
81
- });
82
-
83
- const response = await fetch(\`/api/orders?\${query}\`, { signal });
84
- if (!response.ok) throw new Error(\`HTTP \${response.status}\`);
85
- return response.json() as Promise<Order[]>;
86
- },
87
- isEnabled: (scope, args) => Boolean(scope?.companyId && args.limit > 0),
88
- staleTime: 60_000,
89
- gcTime: 5 * 60_000
90
- });
91
-
92
- const saveOperation = createResourceMutationOperation<
93
- OrdersScope,
94
- SaveOrderInput,
95
- Order,
96
- unknown
97
- >({
98
- async execute({ scope, input }) {
99
- const response = await fetch(\`/api/companies/\${scope.companyId}/orders/\${input.id}\`, {
100
- method: "PUT",
101
- headers: { "Content-Type": "application/json" },
102
- body: JSON.stringify(input)
103
- });
104
-
105
- if (!response.ok) throw new Error(\`HTTP \${response.status}\`);
106
- return response.json() as Promise<Order>;
107
- }
108
- });
109
- `})}),`
110
- `,(0,c.jsxs)(t.p,{children:[`Factories `,(0,c.jsx)(t.code,{children:`createResourceQueryOperation`}),` и `,(0,c.jsx)(t.code,{children:`createResourceMutationOperation`}),` не изменяют объект. Они помогают TypeScript сохранить generic types.`]}),`
111
- `,(0,c.jsx)(t.h3,{id:`3-создать-descriptor`,children:`3. Создать descriptor`}),`
112
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const ordersResource = createResourceDescriptor({
113
- namespace: "sales",
114
- resource: "orders",
115
- normalizeScope: (scope: OrdersScope | null | undefined) => ({
116
- companyId: scope?.companyId.trim() ?? ""
117
- }),
118
- operations: {
119
- queries: { search: searchOperation },
120
- mutations: { save: saveOperation }
121
- },
122
- isEnabled: (scope) => Boolean(scope?.companyId),
123
- getScopeError: () => "Не выбрана компания"
124
- });
125
- `})}),`
126
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`namespace + resource`}),` должны быть устойчивыми и уникальными. Не включайте локализованные labels или случайные значения.`]}),`
127
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`normalizeScope`}),` влияет только на query key. В `,(0,c.jsx)(t.code,{children:`execute`}),` приходит исходный literal scope. Например, key получит trimmed `,(0,c.jsx)(t.code,{children:`companyId`}),`, но operation увидит строку ровно в переданном object. Это позволяет нормализовать identity, не переписывая draft/input.`]}),`
128
- `,(0,c.jsx)(t.h3,{id:`4-использовать-query-hook`,children:`4. Использовать query hook`}),`
129
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`function OrdersList({ companyId, search }: Props) {
130
- const query = useResourceQuery(
131
- ordersResource,
132
- "search",
133
- { companyId },
134
- { search, limit: 50 }
135
- );
136
-
137
- if (query.isPending) return <p>Загрузка…</p>;
138
- if (query.isError) return <p>Ошибка загрузки</p>;
139
-
140
- return query.data.map((order) => <div key={order.id}>{order.title}</div>);
141
- }
142
- `})}),`
143
- `,(0,c.jsx)(t.p,{children:`Rules of Hooks применяются полностью: hook нельзя вызывать условно или в callback.`}),`
144
- `,(0,c.jsx)(t.h3,{id:`5-использовать-mutation-hook`,children:`5. Использовать mutation hook`}),`
145
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`const mutation = useResourceMutation(
146
- ordersResource,
147
- "save",
148
- { companyId },
149
- {
150
- onSuccess(savedOrder) {
151
- showSuccess(\`Сохранён \${savedOrder.title}\`);
152
- }
153
- }
154
- );
155
-
156
- mutation.mutate({ id: "42", title: "Новый заголовок" });
157
- `})}),`
158
- `,(0,c.jsxs)(t.p,{children:[`Mutation key содержит resource/scope/operation, но не input. Input передаётся только в `,(0,c.jsx)(t.code,{children:`mutationFn`}),`.`]}),`
159
- `,(0,c.jsx)(t.h2,{id:`query-lifecycle`,children:`Query lifecycle`}),`
160
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`buildResourceQueryOptions(descriptor, name, scope, args)`}),` создаёт TanStack `,(0,c.jsx)(t.code,{children:`queryOptions`}),`:`]}),`
161
- `,(0,c.jsxs)(t.ul,{children:[`
162
- `,(0,c.jsxs)(t.li,{children:[`key из `,(0,c.jsx)(t.code,{children:`descriptor.keys.operation`}),`;`]}),`
163
- `,(0,c.jsxs)(t.li,{children:[`query function с `,(0,c.jsx)(t.code,{children:`{ scope, args, client, signal }`}),`;`]}),`
164
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`enabled`}),` из descriptor и operation;`]}),`
165
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`staleTime`}),`/`,(0,c.jsx)(t.code,{children:`gcTime`}),` из operation.`]}),`
166
- `]}),`
167
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const options = buildResourceQueryOptions(
168
- ordersResource,
169
- "search",
170
- { companyId: "1000" },
171
- { search: "", limit: 50 }
172
- );
173
- `})}),`
174
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`enabled`}),` сначала проверяет `,(0,c.jsx)(t.code,{children:`descriptor.isEnabled(scope)`}),`, затем `,(0,c.jsx)(t.code,{children:`operation.isEnabled(scope, args)`}),`. Если одна проверка вернула `,(0,c.jsx)(t.code,{children:`false`}),`, React query не стартует автоматически.`]}),`
175
- `,(0,c.jsxs)(t.p,{children:[`Перед фактическим `,(0,c.jsx)(t.code,{children:`execute`}),` scope обязан быть не `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),` и пройти descriptor policy. Иначе выбрасывается `,(0,c.jsx)(t.code,{children:`getScopeError`}),` или стандартная ошибка.`]}),`
176
- `,(0,c.jsx)(t.h2,{id:`императивная-загрузка`,children:`Императивная загрузка`}),`
177
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const orders = await getResourceQueryData(
178
- ordersResource,
179
- "search",
180
- { companyId: "1000" },
181
- { search: "", limit: 50 },
182
- queryClient
183
- );
184
- `})}),`
185
- `,(0,c.jsxs)(t.p,{children:[`Функция использует `,(0,c.jsx)(t.code,{children:`queryClient.fetchQuery`}),`, поэтому переиспользует query cache. Передавайте только валидный scope: imperative `,(0,c.jsx)(t.code,{children:`fetchQuery`}),` нельзя воспринимать как disabled React observer; query function всё равно защищает scope и может бросить ошибку.`]}),`
186
- `,(0,c.jsx)(t.h2,{id:`query-keys`,children:`Query keys`}),`
187
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const keys = createResourceKeys<OrdersScope, "search" | "save">({
188
- namespace: "sales",
189
- resource: "orders",
190
- normalizeScope: (scope) => ({ companyId: scope?.companyId ?? "" })
191
- });
192
-
193
- keys.all;
194
- // ["sales", "orders"]
195
-
196
- keys.scope({ companyId: "1000" });
197
- // ["sales", "orders", { companyId: "1000" }]
198
-
199
- keys.operation("search", { companyId: "1000" }, { limit: 50 });
200
- // ["sales", "orders", { companyId: "1000" }, "search", { limit: 50 }]
201
- `})}),`
202
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`args === undefined`}),` не добавляется в key. `,(0,c.jsx)(t.code,{children:`args === null`}),` добавляется как `,(0,c.jsx)(t.code,{children:`null`}),`.`]}),`
203
- `,(0,c.jsx)(t.h3,{id:`normalizeresourcekeyvalue`,children:(0,c.jsx)(t.code,{children:`normalizeResourceKeyValue`})}),`
204
- `,(0,c.jsx)(t.p,{children:`Нормализация рекурсивна:`}),`
205
- `,(0,c.jsxs)(t.ul,{children:[`
206
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`null`}),` и `,(0,c.jsx)(t.code,{children:`undefined`}),` → `,(0,c.jsx)(t.code,{children:`null`}),`;`]}),`
207
- `,(0,c.jsxs)(t.li,{children:[`string → `,(0,c.jsx)(t.code,{children:`trim()`}),`;`]}),`
208
- `,(0,c.jsx)(t.li,{children:`number/boolean остаются без изменения;`}),`
209
- `,(0,c.jsx)(t.li,{children:`array нормализуется по элементам, порядок сохраняется;`}),`
210
- `,(0,c.jsx)(t.li,{children:`object keys сортируются, значения нормализуются;`}),`
211
- `,(0,c.jsxs)(t.li,{children:[`другие значения превращаются через `,(0,c.jsx)(t.code,{children:`String(value)`}),`.`]}),`
212
- `]}),`
213
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`normalizeResourceKeyValue({ b: " x ", a: undefined });
214
- // { a: null, b: "x" }
215
- `})}),`
216
- `,(0,c.jsx)(t.p,{children:`Ограничения:`}),`
217
- `,(0,c.jsxs)(t.ul,{children:[`
218
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`Date`}),`, `,(0,c.jsx)(t.code,{children:`Map`}),`, `,(0,c.jsx)(t.code,{children:`Set`}),` и class instances не имеют специальной сериализации; обычный `,(0,c.jsx)(t.code,{children:`Date`}),` превратится в `,(0,c.jsx)(t.code,{children:`{}`}),`;`]}),`
219
- `,(0,c.jsx)(t.li,{children:`cyclic object приведёт к рекурсивной ошибке;`}),`
220
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`NaN`}),`/`,(0,c.jsx)(t.code,{children:`Infinity`}),` остаются number, но их cache semantics могут быть неочевидны;`]}),`
221
- `,(0,c.jsx)(t.li,{children:`function/symbol/bigint превращаются в строки и могут collision-иться.`}),`
222
- `]}),`
223
- `,(0,c.jsx)(t.p,{children:`Нормализуйте специальные значения сами, например Date → ISO string. Query key не должен содержать secrets, DOM nodes или огромные payload.`}),`
224
- `,(0,c.jsx)(t.h2,{id:`cache-strategies-после-mutation`,children:`Cache strategies после mutation`}),`
225
- `,(0,c.jsx)(t.h3,{id:`инвалидация-scope`,children:`Инвалидация scope`}),`
226
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const invalidateScope = createInvalidateResourceScopeCacheStrategy();
227
- `})}),`
228
- `,(0,c.jsxs)(t.p,{children:[`Стратегия вызывает `,(0,c.jsx)(t.code,{children:`client.invalidateQueries`}),` по `,(0,c.jsx)(t.code,{children:`descriptor.keys.scope(scope)`}),`. Все query этого resource/scope становятся stale и активные observers могут refetch.`]}),`
229
- `,(0,c.jsxs)(t.h3,{id:`точечный-setquerydata`,children:[`Точечный `,(0,c.jsx)(t.code,{children:`setQueryData`})]}),`
230
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const updateDetail = createSetResourceQueryDataCacheStrategy<
231
- OrdersScope,
232
- SaveOrderInput,
233
- Order,
234
- Order[],
235
- typeof ordersResource
236
- >({
237
- getQueryKey: ({ descriptor, scope }) =>
238
- descriptor.keys.operation("search", scope, { search: "", limit: 50 }),
239
- update: (current = [], { result }) =>
240
- current.map((order) => (order.id === result.id ? result : order))
241
- });
242
- `})}),`
243
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`update`}),` получает текущее cache data или `,(0,c.jsx)(t.code,{children:`undefined`}),`, а также descriptor/scope/input/result/client. Оно должно возвращать новое значение и не мутировать старое.`]}),`
244
- `,(0,c.jsx)(t.h3,{id:`композиция`,children:`Композиция`}),`
245
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const strategy = composeResourceCacheStrategies(
246
- updateDetail,
247
- invalidateScope
248
- );
249
- `})}),`
250
- `,(0,c.jsxs)(t.p,{children:[`Strategies выполняются последовательно в переданном порядке. Если одна бросила ошибку, следующие и custom `,(0,c.jsx)(t.code,{children:`onSuccess`}),` mutation hook не выполнятся; сама server mutation при этом уже могла успешно завершиться.`]}),`
251
- `,(0,c.jsx)(t.h3,{id:`override-в-hook`,children:`Override в hook`}),`
252
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`useResourceMutation(descriptor, "save", scope, {
253
- cacheStrategy: undefined // Использовать strategy операции.
254
- });
255
-
256
- useResourceMutation(descriptor, "save", scope, {
257
- cacheStrategy: null // Полностью отключить strategy операции.
258
- });
259
- `})}),`
260
- `,(0,c.jsxs)(t.p,{children:[`Переданная strategy заменяет operation strategy, а не дополняет её. Для объединения используйте `,(0,c.jsx)(t.code,{children:`composeResourceCacheStrategies`}),`.`]}),`
261
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`applyResourceCacheStrategy(strategy, context)`}),` — низкоуровневый helper для ручного применения optional strategy.`]}),`
262
- `,(0,c.jsx)(t.h2,{id:`ошибки-и-границы`,children:`Ошибки и границы`}),`
263
- `,(0,c.jsxs)(t.ul,{children:[`
264
- `,(0,c.jsx)(t.li,{children:`Отсутствующая operation даёт раннюю ошибку с именем resource/operation.`}),`
265
- `,(0,c.jsxs)(t.li,{children:[`Невалидный scope блокирует hook через `,(0,c.jsx)(t.code,{children:`enabled`}),`, но ручное выполнение бросает ошибку.`]}),`
266
- `,(0,c.jsx)(t.li,{children:`Error transport-а сохраняется TanStack Query без автоматического преобразования.`}),`
267
- `,(0,c.jsx)(t.li,{children:`Descriptor лучше создавать на уровне module, чтобы ссылка не менялась на каждом render.`}),`
268
- `,(0,c.jsx)(t.li,{children:`Args/scope должны быть сериализуемыми и описывать все данные, влияющие на query result.`}),`
269
- `,(0,c.jsx)(t.li,{children:`Не используйте query cache как authoritative persistent storage.`}),`
270
- `,(0,c.jsx)(t.li,{children:`Cache strategy выполняется только после успешной mutation.`}),`
271
- `]}),`
272
- `,(0,c.jsx)(t.h2,{id:`полный-api`,children:`Полный API`}),`
273
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Группа`}),(0,c.jsx)(t.th,{children:`Exports`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Descriptor/operations`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`createResourceDescriptor`}),`, `,(0,c.jsx)(t.code,{children:`createResourceQueryOperation`}),`, `,(0,c.jsx)(t.code,{children:`createResourceMutationOperation`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Query/mutation`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`buildResourceQueryOptions`}),`, `,(0,c.jsx)(t.code,{children:`useResourceQuery`}),`, `,(0,c.jsx)(t.code,{children:`getResourceQueryData`}),`, `,(0,c.jsx)(t.code,{children:`useResourceMutation`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Keys`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`normalizeResourceKeyValue`}),`, `,(0,c.jsx)(t.code,{children:`createResourceKeys`}),`, `,(0,c.jsx)(t.code,{children:`ResourceKeyValue`}),`, `,(0,c.jsx)(t.code,{children:`ResourceKeys`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Cache`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`applyResourceCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`createInvalidateResourceScopeCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`createSetResourceQueryDataCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`composeResourceCacheStrategies`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Contracts`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`ResourceQueryOperationContext`}),`, `,(0,c.jsx)(t.code,{children:`ResourceMutationOperationContext`}),`, `,(0,c.jsx)(t.code,{children:`ResourceQueryOperation`}),`, `,(0,c.jsx)(t.code,{children:`ResourceMutationOperation`}),`, `,(0,c.jsx)(t.code,{children:`ResourceDescriptor`}),`, `,(0,c.jsx)(t.code,{children:`CreateResourceDescriptorOptions`}),`, `,(0,c.jsx)(t.code,{children:`ResourceCacheStrategyContext`}),`, `,(0,c.jsx)(t.code,{children:`ResourceCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`UseResourceMutationOptions`}),`, `,(0,c.jsx)(t.code,{children:`ResourceSetQueryDataStrategyOptions`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Type extraction`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`ResourceQueryArgs`}),`, `,(0,c.jsx)(t.code,{children:`ResourceQueryResult`}),`, `,(0,c.jsx)(t.code,{children:`ResourceMutationInput`}),`, `,(0,c.jsx)(t.code,{children:`ResourceMutationResult`})]})]})]})]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
@@ -1,103 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-FSp_AjJa.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-B5YBxaaS.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Errors/Error Report Delivery`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`доставка-error-reports-через-ryuzaki13react-foundation-apierror-report`,children:[`Доставка error reports через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/error-report`})]}),`
3
- `,(0,c.jsxs)(t.p,{children:[`Модуль превращает сохранённый черновик отчёта из `,(0,c.jsx)(t.code,{children:`foundation-lib`}),` в delivery body, вызывает adapter приложения и обновляет статус черновика.`]}),`
4
- `,(0,c.jsx)(t.h2,{id:`граница-ответственности`,children:`Граница ответственности`}),`
5
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`foundation-lib/error-report foundation-api/error-report host backend adapter
6
- collect + sanitize + draft store ──► lifecycle + delivery body ─────► HTTP/OData/serverFn
7
- `})}),`
8
- `,(0,c.jsxs)(t.p,{children:[`Модуль не собирает browser diagnostics, не выбирает endpoint и не отправляет запрос самостоятельно. Transport явно передаёт приложение через `,(0,c.jsx)(t.code,{children:`adapter`}),`.`]}),`
9
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
10
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
11
- createErrorReportDeliveryBody,
12
- sendErrorReport
13
- } from "@ryuzaki13/react-foundation-api/error-report";
14
-
15
- import type {
16
- ErrorReportDeliveryAdapter,
17
- ErrorReportDeliveryBody,
18
- ErrorReportDeliveryContext,
19
- SendErrorReportOptions
20
- } from "@ryuzaki13/react-foundation-api/error-report";
21
- `})}),`
22
- `,(0,c.jsxs)(t.p,{children:[`Нужны `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib`}),` и `,(0,c.jsx)(t.code,{children:`@tanstack/react-query`}),`.`]}),`
23
- `,(0,c.jsx)(t.h2,{id:`полный-сценарий`,children:`Полный сценарий`}),`
24
- `,(0,c.jsxs)(t.p,{children:[`Сначала другой слой создаёт и сохраняет draft средствами `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/error-report`}),`. Затем API-слой получает только его `,(0,c.jsx)(t.code,{children:`reportId`}),`:`]}),`
25
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { httpFetchPayload } from "@ryuzaki13/react-foundation-api/http";
26
- import { sendErrorReport } from "@ryuzaki13/react-foundation-api/error-report";
27
- import type { ErrorReportDeliveryAdapter } from "@ryuzaki13/react-foundation-api/error-report";
28
-
29
- const deliveryAdapter: ErrorReportDeliveryAdapter = async (body) => {
30
- await httpFetchPayload("/api/error-reports", {
31
- init: {
32
- method: "POST",
33
- headers: { "Content-Type": "application/json" },
34
- body: JSON.stringify(body)
35
- }
36
- });
37
- };
38
-
39
- await sendErrorReport(reportId, {
40
- adapter: deliveryAdapter,
41
- queryClient
42
- });
43
- `})}),`
44
- `,(0,c.jsx)(t.h2,{id:`createerrorreportdeliverybody`,children:(0,c.jsx)(t.code,{children:`createErrorReportDeliveryBody`})}),`
45
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const body = createErrorReportDeliveryBody(draft);
46
- `})}),`
47
- `,(0,c.jsx)(t.p,{children:`Результат:`}),`
48
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type ErrorReportDeliveryBody = {
49
- reportId: string;
50
- sessionId: string;
51
- createdUtc: string;
52
- category: ErrorReportCategory;
53
- errorClass: string;
54
- errorMessage: string;
55
- stackTrace?: string;
56
- payload: string;
57
- };
58
- `})}),`
59
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`payload`}),` — JSON string всего payload черновика, а не вложенный object. Это важно для backend contract.`]}),`
60
- `,(0,c.jsxs)(t.p,{children:[`Если `,(0,c.jsx)(t.code,{children:`draft.payload.error.message`}),` пуст, обязательные `,(0,c.jsx)(t.code,{children:`errorMessage`}),` и message внутри сериализованного payload получают значение `,(0,c.jsx)(t.code,{children:`"Неизвестная ошибка"`}),`. Остальной draft не нормализуется.`]}),`
61
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`JSON.stringify`}),` может выбросить ошибку при циклических или неподдерживаемых данных. Draft должен соответствовать сериализуемому контракту `,(0,c.jsx)(t.code,{children:`foundation-lib`}),`.`]}),`
62
- `,(0,c.jsx)(t.h2,{id:`senderrorreport`,children:(0,c.jsx)(t.code,{children:`sendErrorReport`})}),`
63
- `,(0,c.jsx)(t.p,{children:`Lifecycle:`}),`
64
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`draft отсутствует ─────────► undefined
65
- status sent/sending ───────► текущий draft, adapter не вызывается
66
- остальной draft ───────────► sending
67
-
68
- adapter success / error
69
- │ │
70
- ▼ ▼
71
- sent failed + failedReason
72
- `})}),`
73
- `,(0,c.jsx)(t.p,{children:`Пошагово функция:`}),`
74
- `,(0,c.jsxs)(t.ol,{children:[`
75
- `,(0,c.jsxs)(t.li,{children:[`Ищет draft по `,(0,c.jsx)(t.code,{children:`reportId`}),` в store из `,(0,c.jsx)(t.code,{children:`foundation-lib`}),`.`]}),`
76
- `,(0,c.jsxs)(t.li,{children:[`Возвращает `,(0,c.jsx)(t.code,{children:`undefined`}),`, если draft не найден.`]}),`
77
- `,(0,c.jsxs)(t.li,{children:[`Не отправляет повторно draft со статусом `,(0,c.jsx)(t.code,{children:`sent`}),` или `,(0,c.jsx)(t.code,{children:`sending`}),`.`]}),`
78
- `,(0,c.jsxs)(t.li,{children:[`Устанавливает `,(0,c.jsx)(t.code,{children:`status: "sending"`}),` и очищает `,(0,c.jsx)(t.code,{children:`failedReason`}),`.`]}),`
79
- `,(0,c.jsx)(t.li,{children:`Создаёт delivery body.`}),`
80
- `,(0,c.jsxs)(t.li,{children:[`Вызывает `,(0,c.jsx)(t.code,{children:`adapter(body, { draft, queryClient })`}),`.`]}),`
81
- `,(0,c.jsxs)(t.li,{children:[`При успехе устанавливает `,(0,c.jsx)(t.code,{children:`status: "sent"`}),` и `,(0,c.jsx)(t.code,{children:`sentUtc`}),`.`]}),`
82
- `,(0,c.jsxs)(t.li,{children:[`При ошибке устанавливает `,(0,c.jsx)(t.code,{children:`status: "failed"`}),`, сохраняет нормализованное сообщение и повторно бросает исходную ошибку.`]}),`
83
- `]}),`
84
- `,(0,c.jsxs)(t.p,{children:[`Adapter получает исходный snapshot `,(0,c.jsx)(t.code,{children:`draft`}),`, прочитанный до перевода store в `,(0,c.jsx)(t.code,{children:`sending`}),`. Используйте `,(0,c.jsx)(t.code,{children:`body`}),` как delivery payload, а context — для query invalidation или transport, которому нужен `,(0,c.jsx)(t.code,{children:`QueryClient`}),`.`]}),`
85
- `,(0,c.jsx)(t.h2,{id:`adapter-с-cache-invalidation`,children:`Adapter с cache invalidation`}),`
86
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const adapter: ErrorReportDeliveryAdapter = async (body, { queryClient }) => {
87
- await postReport(body);
88
- await queryClient.invalidateQueries({ queryKey: ["error-reports"] });
89
- };
90
- `})}),`
91
- `,(0,c.jsxs)(t.p,{children:[`Если invalidation бросит ошибку, вся доставка считается неуспешной и draft станет `,(0,c.jsx)(t.code,{children:`failed`}),`, даже если backend уже принял отчёт. Для non-critical cache update обработайте ошибку внутри adapter-а.`]}),`
92
- `,(0,c.jsx)(t.h2,{id:`повторная-отправка-и-concurrency`,children:`Повторная отправка и concurrency`}),`
93
- `,(0,c.jsxs)(t.p,{children:[`После `,(0,c.jsx)(t.code,{children:`failed`}),` функцию можно вызвать повторно. Проверка `,(0,c.jsx)(t.code,{children:`sending`}),` защищает от обычного повторного нажатия, но это не распределённая блокировка: два практически одновременных вызова могут успеть прочитать старый статус до его обновления. Backend желательно сделать идемпотентным по `,(0,c.jsx)(t.code,{children:`reportId`}),`.`]}),`
94
- `,(0,c.jsx)(t.h2,{id:`ошибки-и-безопасность`,children:`Ошибки и безопасность`}),`
95
- `,(0,c.jsxs)(t.ul,{children:[`
96
- `,(0,c.jsx)(t.li,{children:`Ошибка adapter-а не поглощается: вызывающий код обязан её обработать.`}),`
97
- `,(0,c.jsx)(t.li,{children:`Не добавляйте secrets в draft. Delivery layer не выполняет дополнительную redaction всего payload.`}),`
98
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`queryClient`}),` передаётся adapter-у, но модуль сам не инвалидирует queries.`]}),`
99
- `,(0,c.jsx)(t.li,{children:`Функция управляет локальным draft store; не вызывайте её в среде без подходящего storage/runtime, если draft store там недоступен.`}),`
100
- `,(0,c.jsxs)(t.li,{children:[`Статус `,(0,c.jsx)(t.code,{children:`sent`}),` означает успешное завершение adapter-а, а не обязательное подтверждение бизнес-обработки backend-ом.`]}),`
101
- `]}),`
102
- `,(0,c.jsx)(t.h2,{id:`полный-api`,children:`Полный API`}),`
103
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Export`}),(0,c.jsx)(t.th,{children:`Назначение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createErrorReportDeliveryBody`})}),(0,c.jsx)(t.td,{children:`Строит сериализуемый backend body`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`sendErrorReport`})}),(0,c.jsx)(t.td,{children:`Управляет status и вызывает adapter`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`ErrorReportDeliveryBody`})}),(0,c.jsx)(t.td,{children:`Поля delivery payload`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`ErrorReportDeliveryContext`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`draft`}),` и `,(0,c.jsx)(t.code,{children:`queryClient`}),` для adapter-а`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`ErrorReportDeliveryAdapter`})}),(0,c.jsx)(t.td,{children:`Контракт функции доставки`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`SendErrorReportOptions`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`adapter`}),` и `,(0,c.jsx)(t.code,{children:`queryClient`})]})]})]})]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./iframe-FSp_AjJa.js";e();