@ryuzaki13/react-foundation-ui 1.0.13 → 1.0.15

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 (178) hide show
  1. package/dist/advanced-search/index.js +1 -1
  2. package/dist/chunks/{TextEditorLexicalClient-CxOJuwOC.js → TextEditorLexicalClient-jQ7V9jFm.js} +2 -2
  3. package/dist/chunks/{TextEditorLexicalClient-CxOJuwOC.js.map → TextEditorLexicalClient-jQ7V9jFm.js.map} +1 -1
  4. package/dist/chunks/{modal-C0j0hEIt.js → modal-4vYSSbAa.js} +19 -19
  5. package/dist/chunks/{modal-C0j0hEIt.js.map → modal-4vYSSbAa.js.map} +1 -1
  6. package/dist/image/index.js +1 -1
  7. package/dist/modal/ModalManagerProvider.d.ts +6 -3
  8. package/dist/modal/ModalManagerProvider.d.ts.map +1 -1
  9. package/dist/modal/index.js +1 -1
  10. package/dist/text-editor/index.js +1 -1
  11. package/package.json +1 -1
  12. package/src/styles/_base.scss +13 -46
  13. package/storybook-static/assets/{Badge-Q8iX86Mn.js → Badge-BJuMBcdz.js} +1 -1
  14. package/storybook-static/assets/{Badge.stories-BEMBzR2f.js → Badge.stories-IgBcw1Cf.js} +1 -1
  15. package/storybook-static/assets/{Button-CfX05aoR.js → Button-B_GEc_r4.js} +1 -1
  16. package/storybook-static/assets/{Button-BUkCW8Zg.js → Button-DRBTSyRM.js} +1 -1
  17. package/storybook-static/assets/{Button.stories-BoNLZb6w.js → Button.stories-Di4OQvY8.js} +1 -1
  18. package/storybook-static/assets/{CheckBox-CcXGzkSE.js → CheckBox-57qzcUkX.js} +1 -1
  19. package/storybook-static/assets/{CheckBox-DTSi8Yok.js → CheckBox-WHmt7FbU.js} +1 -1
  20. package/storybook-static/assets/{CheckBox.stories-Bo53TxC7.js → CheckBox.stories-BItLovUs.js} +1 -1
  21. package/storybook-static/assets/{Color-KMSTOMOX-Mbprgrbi.js → Color-KMSTOMOX-CWP56kfm.js} +1 -1
  22. package/storybook-static/assets/{ContextMenu-DYlSojIE.js → ContextMenu-DKl_ZfMI.js} +1 -1
  23. package/storybook-static/assets/{ContextMenu.stories-BJr53bsq.js → ContextMenu.stories-D-Xnld63.js} +1 -1
  24. package/storybook-static/assets/{DateInput-BrmilavO.js → DateInput-B2X74zQf.js} +1 -1
  25. package/storybook-static/assets/{DateInput-C72jV86j.js → DateInput-BSyYH-et.js} +1 -1
  26. package/storybook-static/assets/{DateInput.stories-0hU_T1iZ.js → DateInput.stories-Dwk-9ZjA.js} +1 -1
  27. package/storybook-static/assets/{DateRangePresetSelect-C7gJVkMB.js → DateRangePresetSelect-CPeX_HRn.js} +1 -1
  28. package/storybook-static/assets/{DateRangePresetSelect-BklzgpCR.js → DateRangePresetSelect-DTSWmoT_.js} +1 -1
  29. package/storybook-static/assets/{DateRangePresetSelect.stories-DQKDcAdP.js → DateRangePresetSelect.stories-CGNvBg03.js} +1 -1
  30. package/storybook-static/assets/{Detail-BMu0MY4h.js → Detail-BQwyVo2M.js} +1 -1
  31. package/storybook-static/assets/{Detail.stories-CgBJjWQd.js → Detail.stories-x4juDK19.js} +1 -1
  32. package/storybook-static/assets/{Dialog-M7Uy3LiO.js → Dialog-CH9J4tmL.js} +1 -1
  33. package/storybook-static/assets/{Dialog.stories-BZ0opvaJ.js → Dialog.stories-Cp3J86ce.js} +1 -1
  34. package/storybook-static/assets/{Disclosure-BXnfHC6v.js → Disclosure-B7i9P4YG.js} +1 -1
  35. package/storybook-static/assets/{Disclosure.stories-C7wh6KJU.js → Disclosure.stories-DzZ5RLXm.js} +1 -1
  36. package/storybook-static/assets/{DocsRenderer-JROSPFPF-BjXFJaat.js → DocsRenderer-JROSPFPF-D61SC7UY.js} +2 -2
  37. package/storybook-static/assets/{DropZone-cd1aCNT1.js → DropZone-MiBUScxG.js} +1 -1
  38. package/storybook-static/assets/{DropZone.stories-CVu731Lk.js → DropZone.stories-C2qhbfNj.js} +1 -1
  39. package/storybook-static/assets/{DropdownMenu-B97Ad5Dg.js → DropdownMenu-X7PLdfVp.js} +1 -1
  40. package/storybook-static/assets/{ExpandableActionPanel.stories-k-eTxMyV.js → ExpandableActionPanel.stories-Ca2AoCI0.js} +1 -1
  41. package/storybook-static/assets/{Flex-BQkqAqL5.js → Flex-BaD8FRom.js} +1 -1
  42. package/storybook-static/assets/{Flex-C_VnI9xY.js → Flex-CML6WrKV.js} +1 -1
  43. package/storybook-static/assets/{Flex.stories-C1VO9Ct3.js → Flex.stories-F8YaKEO0.js} +1 -1
  44. package/storybook-static/assets/{Grid-y8wKyEwc.js → Grid-BewDzBtv.js} +1 -1
  45. package/storybook-static/assets/{Grid-Dr3BuEgd.js → Grid-ZTR_R-m1.js} +1 -1
  46. package/storybook-static/assets/{Grid.stories-6WUp6Tof.js → Grid.stories-Cu78z_oE.js} +1 -1
  47. package/storybook-static/assets/{Input-B7DWcGCL.js → Input-D6z--4tm.js} +1 -1
  48. package/storybook-static/assets/{Input-yly8wxYE.js → Input-DjRjmBbJ.js} +1 -1
  49. package/storybook-static/assets/{Input.stories-CkVqvY-C.js → Input.stories-CBkJ60Z3.js} +1 -1
  50. package/storybook-static/assets/{InputDateTime-DHirw8rp.js → InputDateTime-B2V4I801.js} +1 -1
  51. package/storybook-static/assets/{InputDateTime.stories-Dci_81MA.js → InputDateTime.stories-gepL7zcB.js} +1 -1
  52. package/storybook-static/assets/{InputFile-DBFfWIkJ.js → InputFile-B_rtgdVs.js} +1 -1
  53. package/storybook-static/assets/{InputFile.stories-Bar27dP5.js → InputFile.stories-CVD-PTav.js} +1 -1
  54. package/storybook-static/assets/{InputFiles-DPz7PiOC.js → InputFiles-CFlxBgsw.js} +1 -1
  55. package/storybook-static/assets/{InputFiles-tULKp1KR.js → InputFiles-Cy_fvMYT.js} +1 -1
  56. package/storybook-static/assets/{InputFiles.stories-CkZ8et32.js → InputFiles.stories-DIbO_ACP.js} +1 -1
  57. package/storybook-static/assets/{InputImage-D8VckxKl.js → InputImage-BWbT8pGH.js} +1 -1
  58. package/storybook-static/assets/{InputImage.stories-Dq8ORce3.js → InputImage.stories-SyFATair.js} +1 -1
  59. package/storybook-static/assets/{LayoutPicker-l3XFAkqv.js → LayoutPicker-0dJNS0bb.js} +1 -1
  60. package/storybook-static/assets/{LayoutPicker.stories-BjUmm2cg.js → LayoutPicker.stories-BUohHOWt.js} +1 -1
  61. package/storybook-static/assets/{Listbox-B_6QVPAJ.js → Listbox-Cn1Z-r2n.js} +1 -1
  62. package/storybook-static/assets/{Listbox.stories-Cf_ApbmT.js → Listbox.stories-c1NSeGUa.js} +1 -1
  63. package/storybook-static/assets/{Modal-BzienAaa.js → Modal-Db2Ne_PP.js} +1 -1
  64. package/storybook-static/assets/Modal.stories-CZum1nVD.js +180 -0
  65. package/storybook-static/assets/{MultiSelect-CK2D25RA.js → MultiSelect-CkHso-Za.js} +1 -1
  66. package/storybook-static/assets/{MultiSelect-CjGBd2pC.js → MultiSelect-D-r3_Bry.js} +1 -1
  67. package/storybook-static/assets/{MultiSelect.stories--f_FoBzR.js → MultiSelect.stories-CjNtbPvc.js} +1 -1
  68. package/storybook-static/assets/{NotificationsHost-DKmlmqh0.js → NotificationsHost-DcsexLl8.js} +1 -1
  69. package/storybook-static/assets/{NotificationsHost.stories-1bPUJXfm.js → NotificationsHost.stories-DxB9wp4P.js} +1 -1
  70. package/storybook-static/assets/{ODataMultiSelect-BWUXuzlr.js → ODataMultiSelect-BB6pa_2a.js} +1 -1
  71. package/storybook-static/assets/{ODataMultiSelect.stories-DA0f6SUG.js → ODataMultiSelect.stories-D4108lSt.js} +1 -1
  72. package/storybook-static/assets/{ODataSelect-aNdHSjo_.js → ODataSelect-BcrPaLAR.js} +1 -1
  73. package/storybook-static/assets/{ODataSelect-D7GAFOcM.js → ODataSelect-BppTAIqx.js} +1 -1
  74. package/storybook-static/assets/{ODataSelect.stories-CjXA9Y9l.js → ODataSelect.stories-DteYVpiQ.js} +1 -1
  75. package/storybook-static/assets/{ODataTreeMultiSelect-DKodulQ8.js → ODataTreeMultiSelect-CVjcPuI1.js} +1 -1
  76. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BjRcb4W0.js → ODataTreeMultiSelect.stories-C6xU81uc.js} +1 -1
  77. package/storybook-static/assets/{ODataTreeSelect-Ck8HCh74.js → ODataTreeSelect-BRHxD-vG.js} +1 -1
  78. package/storybook-static/assets/{ODataTreeSelect.stories-BgDj08mH.js → ODataTreeSelect.stories-CyqwAaqI.js} +1 -1
  79. package/storybook-static/assets/{PeriodSelect-Db7QmUfi.js → PeriodSelect-oi5rAN2N.js} +1 -1
  80. package/storybook-static/assets/{PeriodSelect.stories-BI6yLRCK.js → PeriodSelect.stories-C7UftRku.js} +1 -1
  81. package/storybook-static/assets/{Popover-DR-r8iC5.js → Popover-DFJPXALP.js} +1 -1
  82. package/storybook-static/assets/{Popover.stories-ReRFMWiO.js → Popover.stories-DTNaGax4.js} +1 -1
  83. package/storybook-static/assets/{PresetRangeDateInput-tSpiPAT9.js → PresetRangeDateInput-Cm4EbMNS.js} +1 -1
  84. package/storybook-static/assets/{PresetRangeDateInput.stories-LVQa2_DG.js → PresetRangeDateInput.stories-Y5uojvsz.js} +1 -1
  85. package/storybook-static/assets/{RadioButton-sEzdlL1y.js → RadioButton-B1xWc03x.js} +1 -1
  86. package/storybook-static/assets/{RadioButton.stories-CR0km0zF.js → RadioButton.stories-CFZrSdeX.js} +1 -1
  87. package/storybook-static/assets/{RadioGroup-DR0H6Z0w.js → RadioGroup-CRnLGdRq.js} +1 -1
  88. package/storybook-static/assets/{RadioGroup-BtNCd3Je.js → RadioGroup-dt4vRt66.js} +1 -1
  89. package/storybook-static/assets/{RadioGroup.stories-FEqmkrs7.js → RadioGroup.stories-Cq8jrT3o.js} +1 -1
  90. package/storybook-static/assets/{Select-CUAevk01.js → Select-COzu9R1S.js} +1 -1
  91. package/storybook-static/assets/{Select-DYVS7SCZ.js → Select-CWfg857u.js} +1 -1
  92. package/storybook-static/assets/{Select.stories-Df_c0IfC.js → Select.stories-ajlw6UD7.js} +1 -1
  93. package/storybook-static/assets/{SelectOptionContent-B7W0Mned.js → SelectOptionContent-5fpSAPpp.js} +1 -1
  94. package/storybook-static/assets/{SerializableSelect-D63xBqOT.js → SerializableSelect-CtF_5hDV.js} +1 -1
  95. package/storybook-static/assets/{SerializableSelect-DwCnuBgv.js → SerializableSelect-D7k-0rpL.js} +1 -1
  96. package/storybook-static/assets/{SerializableSelect.stories-BLPXVOtP.js → SerializableSelect.stories-DXink3F3.js} +1 -1
  97. package/storybook-static/assets/{SingleDateTimeInput-xMkDodYz.js → SingleDateTimeInput-CiZs4GCq.js} +1 -1
  98. package/storybook-static/assets/{SingleDateTimeInput.stories-kcuSwx76.js → SingleDateTimeInput.stories-5QJlrw4f.js} +1 -1
  99. package/storybook-static/assets/{Slider-BHZgpCjC.js → Slider-CxK-n_Qh.js} +1 -1
  100. package/storybook-static/assets/{Slider.stories-Bias_Soq.js → Slider.stories-B0tho-fR.js} +1 -1
  101. package/storybook-static/assets/{SliderInput-jzFZcWr7.js → SliderInput-ZN9vpT2S.js} +1 -1
  102. package/storybook-static/assets/{SliderInput.stories-B7w8bp86.js → SliderInput.stories-B9oU6kyp.js} +1 -1
  103. package/storybook-static/assets/{Sortable-DcmDaPBw.js → Sortable-Cyr7iTZO.js} +1 -1
  104. package/storybook-static/assets/{Sortable.stories-CwhHGCih.js → Sortable.stories-BhF3AZgC.js} +1 -1
  105. package/storybook-static/assets/{Splitter-Bn7AJiD_.js → Splitter-peLMiwre.js} +1 -1
  106. package/storybook-static/assets/{Splitter.stories-CSvjKF-O.js → Splitter.stories-nr3eJ5GM.js} +1 -1
  107. package/storybook-static/assets/{StateSelect-MIGiXD10.js → StateSelect-B_fxrXNN.js} +1 -1
  108. package/storybook-static/assets/{StateSelect.stories-BGDCnVqb.js → StateSelect.stories-CDdWdRLe.js} +1 -1
  109. package/storybook-static/assets/{Switch-C5zxOq_O.js → Switch-DM50QWxA.js} +1 -1
  110. package/storybook-static/assets/{Switch.stories-BmCl_Ts5.js → Switch.stories-D5LjDVPS.js} +1 -1
  111. package/storybook-static/assets/{Table-CoySXvs5.js → Table-5aluIGdo.js} +1 -1
  112. package/storybook-static/assets/{Table.stories-CA7ARhwC.js → Table.stories-DGKBAzL2.js} +1 -1
  113. package/storybook-static/assets/{Tabs-CQdzU18E.js → Tabs-CO7DsnUr.js} +1 -1
  114. package/storybook-static/assets/{Tabs.stories-SBWTpiy2.js → Tabs.stories-DTgCMxUb.js} +1 -1
  115. package/storybook-static/assets/{Textarea-Bo-I0cnE.js → Textarea-DSvLZptc.js} +1 -1
  116. package/storybook-static/assets/{Textarea.stories-C1wO9PKR.js → Textarea.stories-kqd0YbmQ.js} +1 -1
  117. package/storybook-static/assets/{TimePanel-0-mzaXky.js → TimePanel-DDaX01do.js} +1 -1
  118. package/storybook-static/assets/{TimePanel.stories-C1VM13qN.js → TimePanel.stories-CerMQLRf.js} +1 -1
  119. package/storybook-static/assets/{Toggle-B9H63WWC.js → Toggle-t1lVxQz6.js} +1 -1
  120. package/storybook-static/assets/{Toggle.stories-CKlGFcZW.js → Toggle.stories-CeJwV-Ek.js} +1 -1
  121. package/storybook-static/assets/{TreeMultiSelect-AXIl2Ge2.js → TreeMultiSelect-Cqt4O9BU.js} +1 -1
  122. package/storybook-static/assets/{TreeMultiSelect-Ci3bUpmv.js → TreeMultiSelect-D6Au72K2.js} +1 -1
  123. package/storybook-static/assets/{TreeMultiSelect.stories-CXGt4Q_u.js → TreeMultiSelect.stories-C_BIcIv6.js} +1 -1
  124. package/storybook-static/assets/{TreePickerBase-Md6Mt9qF.js → TreePickerBase-DLVYUhCD.js} +1 -1
  125. package/storybook-static/assets/{TreeSelect-BWoURakw.js → TreeSelect-CIWXiLSp.js} +1 -1
  126. package/storybook-static/assets/{TreeSelect-bOgRYtQQ.js → TreeSelect-CgDLk4ka.js} +1 -1
  127. package/storybook-static/assets/{TreeSelect.stories-By0h6wRi.js → TreeSelect.stories-DJJQpAG-.js} +1 -1
  128. package/storybook-static/assets/{TreeTable-C52Jh7O_.js → TreeTable-6VwdbiOA.js} +1 -1
  129. package/storybook-static/assets/{TreeTable.stories-BH9Q8NPP.js → TreeTable.stories-CexcAFDG.js} +1 -1
  130. package/storybook-static/assets/{WithTooltip-7X4HQR7L-DQXHhZoH.js → WithTooltip-7X4HQR7L-CceOi7V4.js} +1 -1
  131. package/storybook-static/assets/{base-table-BSkQBgdx.js → base-table-C0Zyxki6.js} +1 -1
  132. package/storybook-static/assets/{blocks-CwEU-ME1.js → blocks-CcO3Y_Rh.js} +6 -6
  133. package/storybook-static/assets/{button-Bl3Hu8CS.js → button-0yIdCp_-.js} +1 -1
  134. package/storybook-static/assets/{check-box-BrnNQnSi.js → check-box-vfk8jzFK.js} +1 -1
  135. package/storybook-static/assets/{chunk-3LY4VQVK-BxHCYS2R.js → chunk-3LY4VQVK-CZm0s4iL.js} +1 -1
  136. package/storybook-static/assets/{chunk-LITCR56V-euffoZAN.js → chunk-LITCR56V-C1XleE0V.js} +1 -1
  137. package/storybook-static/assets/{contextMenu-Do6qEwKB.js → contextMenu-DJTYsh3u.js} +1 -1
  138. package/storybook-static/assets/{error-RVOk7zpw.js → error-7f4bI5b8.js} +1 -1
  139. package/storybook-static/assets/{flex-DuYzsEBQ.js → flex-fN9xAXRx.js} +1 -1
  140. package/storybook-static/assets/{floating-ui.react-BR04wkLx.js → floating-ui.react-C-t718F2.js} +1 -1
  141. package/storybook-static/assets/formatter-L2YTDE3Q-BYPWeXB6.js +1 -0
  142. package/storybook-static/assets/{formatters-yIBztcem.js → formatters-c68ZHiVV.js} +1 -1
  143. package/storybook-static/assets/grid-DnGlfdqF.js +1 -0
  144. package/storybook-static/assets/{hooks-BEB2Gqy0.js → hooks-Cia2yw95.js} +1 -1
  145. package/storybook-static/assets/{iframe-SfMJGCsn.js → iframe-B1ZJmGrq.js} +3 -3
  146. package/storybook-static/assets/{input-Be5K9_B7.js → input-Bfb8MLis.js} +1 -1
  147. package/storybook-static/assets/{lucide-react-CK2oyDtF.js → lucide-react-Cw6QPvVA.js} +1 -1
  148. package/storybook-static/assets/{mdx-react-shim-DnKFgFHy.js → mdx-react-shim-BGEl8pi6.js} +1 -1
  149. package/storybook-static/assets/{media-Djn0SUaN.js → media-DsA0K_ZS.js} +1 -1
  150. package/storybook-static/assets/{misc-CPvLzCFJ.js → misc-zL4hFipW.js} +1 -1
  151. package/storybook-static/assets/{notifications-Zk996KvR.js → notifications-BYXcjAgk.js} +1 -1
  152. package/storybook-static/assets/{odata-C2BNbnc9.js → odata-CZ14RE2x.js} +1 -1
  153. package/storybook-static/assets/odata-service-FtP1kYQx.js +1 -0
  154. package/storybook-static/assets/{odataStoryFixtures-BBfdskiC.js → odataStoryFixtures-Cv8XAuzz.js} +1 -1
  155. package/storybook-static/assets/{picker-De4ZbESe.js → picker-DBhG__oJ.js} +1 -1
  156. package/storybook-static/assets/{popover-DWA5VOMQ.js → popover-CahYWIfo.js} +1 -1
  157. package/storybook-static/assets/{preset-select-DozCGhmu.js → preset-select-C5XCvtZE.js} +1 -1
  158. package/storybook-static/assets/{react-18-CfpYK14y.js → react-18-BpKMg-Cr.js} +1 -1
  159. package/storybook-static/assets/{react-BWN-5oQj.js → react-DzMAKl9o.js} +1 -1
  160. package/storybook-static/assets/{react-dom-CncQzc_h.js → react-dom-BfFG7H_X.js} +1 -1
  161. package/storybook-static/assets/select-C1fXLf5x.js +1 -0
  162. package/storybook-static/assets/{slider-39Mty47U.js → slider-CWiv9HFe.js} +1 -1
  163. package/storybook-static/assets/{sortable-CgCCp3dq.js → sortable-D_PcZ-1o.js} +1 -1
  164. package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-Di6cCrDX.js → syntaxhighlighter-RTCFPKCB-DatthS1s.js} +1 -1
  165. package/storybook-static/assets/{text-BxA8yj6Z.js → text-6oBGbhcX.js} +1 -1
  166. package/storybook-static/assets/{theming-DZauqOKI.js → theming-c9hibVvV.js} +1 -1
  167. package/storybook-static/assets/ui-Cq8WdcMq.js +1 -0
  168. package/storybook-static/assets/{useODataSelectBase-D33B4x2W.js → useODataSelectBase-BP43aYQp.js} +1 -1
  169. package/storybook-static/assets/{useODataTreeData-CDdzN-LC.js → useODataTreeData-D-13yhFk.js} +1 -1
  170. package/storybook-static/assets/{utils-CReRlw17.js → utils-B7W0zPTP.js} +1 -1
  171. package/storybook-static/iframe.html +1 -1
  172. package/storybook-static/project.json +1 -1
  173. package/storybook-static/assets/Modal.stories-cPIHRa9a.js +0 -180
  174. package/storybook-static/assets/formatter-L2YTDE3Q-Cdp-Jp2M.js +0 -1
  175. package/storybook-static/assets/grid-D0WOuGlB.js +0 -1
  176. package/storybook-static/assets/odata-service-8sDCOQ3I.js +0 -1
  177. package/storybook-static/assets/select-BPvMbVDe.js +0 -1
  178. package/storybook-static/assets/ui-CmVy0trY.js +0 -1
@@ -115,34 +115,34 @@ var O = ({ isOpen: e, title: r, size: a = "sm", height: o, onClose: s, children:
115
115
  };
116
116
  //#endregion
117
117
  //#region src/modal/ModalManagerProvider.tsx
118
- function k({ children: e }) {
119
- let [t, n] = f([]), r = d(0), i = o((e) => {
120
- n((t) => [...t, e]);
121
- }, []), a = o((e) => {
122
- n((t) => t.filter((t) => t !== e));
123
- }, []), s = o((e) => t[t.length - 1] === e, [t]);
118
+ function k({ children: e, compensateScrollbar: t = !1 }) {
119
+ let [n, r] = f([]), i = d(0), a = d(0), s = d(""), l = d(!1), u = o((e) => {
120
+ r((t) => [...t, e]);
121
+ }, []), p = o((e) => {
122
+ r((t) => t.filter((t) => t !== e));
123
+ }, []), m = o((e) => n[n.length - 1] === e, [n]);
124
124
  return c(() => {
125
- let e = r.current === 0;
126
- if (e && t.length > 0) {
127
- let e = window.scrollY, n = document.querySelector("#app-root");
128
- document.body.style.position = "fixed", document.body.style.top = `-${e}px`, document.body.style.width = "100%", n?.setAttribute("inert", "true"), r.current = t.length;
125
+ let e = i.current === 0;
126
+ if (e && n.length > 0) {
127
+ let e = window.scrollY, r = document.querySelector("#app-root");
128
+ a.current = Math.max(0, window.innerWidth - document.documentElement.clientWidth), s.current = document.body.style.paddingRight, document.body.style.position = "fixed", document.body.style.top = `-${e}px`, document.body.style.width = "100%", t && (document.body.style.paddingRight = `${a.current}px`, l.current = !0), r?.setAttribute("inert", "true"), i.current = n.length;
129
129
  return;
130
130
  }
131
- if (!e && t.length === 0) {
131
+ if (!e && n.length > 0 && t !== l.current && (document.body.style.paddingRight = t ? `${a.current}px` : s.current, l.current = t), !e && n.length === 0) {
132
132
  let e = document.querySelector("#app-root"), t = parseInt(document.body.style.top || "0") * -1;
133
- document.body.style.position = "", document.body.style.top = "", document.body.style.width = "", e?.removeAttribute("inert"), window.scrollTo({
133
+ document.body.style.position = "", document.body.style.top = "", document.body.style.width = "", l.current &&= (document.body.style.paddingRight = s.current, !1), e?.removeAttribute("inert"), window.scrollTo({
134
134
  top: t,
135
135
  left: 0,
136
136
  behavior: "instant"
137
137
  });
138
138
  }
139
- r.current = t.length;
140
- }, [t.length]), /* @__PURE__ */ g(C.Provider, {
139
+ i.current = n.length;
140
+ }, [t, n.length]), /* @__PURE__ */ g(C.Provider, {
141
141
  value: {
142
- modals: t,
143
- openModal: i,
144
- closeModal: a,
145
- isTopModal: s
142
+ modals: n,
143
+ openModal: u,
144
+ closeModal: p,
145
+ isTopModal: m
146
146
  },
147
147
  children: e
148
148
  });
@@ -150,4 +150,4 @@ function k({ children: e }) {
150
150
  //#endregion
151
151
  export { T as a, D as i, O as n, C as o, E as r, w as s, k as t };
152
152
 
153
- //# sourceMappingURL=modal-C0j0hEIt.js.map
153
+ //# sourceMappingURL=modal-4vYSSbAa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-C0j0hEIt.js","names":[],"sources":["../../src/modal/Modal.module.scss","../../src/modal/useModalManager.ts","../../src/modal/Modal.tsx","../../src/modal/ModalManagerProvider.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.modal {\n\tdisplay: grid;\n\tgrid-auto-rows: auto 1fr;\n\n\tposition: fixed;\n\tinset: 0;\n\tmargin: auto;\n\tz-index: var(--z-modal);\n\twidth: 90%;\n\theight: fit-content;\n\tmax-height: calc(100dvh - var(--space-lg));\n\tborder: var(--border);\n\tborder-radius: var(--radius-md);\n\tbackground-color: var(--surface-1);\n\tbox-shadow: var(--shadow-lg);\n\n\t&:not(:last-child) {\n\t\tpointer-events: none;\n\t\tfilter: grayscale(0.5) opacity(0.75);\n\t\t// opacity: 0.5;\n\t}\n\n\t&.sm {\n\t\tmax-width: min(30em, 93dvw);\n\t}\n\n\t&.md {\n\t\tmax-width: min(50em, 93dvw);\n\t}\n\n\t&.lg {\n\t\tmax-width: min(70em, 93dvw);\n\t}\n\n\t&.xl {\n\t\tmax-width: min(80em, 93dvw);\n\t}\n\n\t&.xxl {\n\t\twidth: 93dvw;\n\t\theight: 90dvh;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\t}\n\n\t&.inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\n\t\t.header,\n\t\t.body {\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbackground-color: var(--surface-2);\n\tborder-top-left-radius: var(--radius-md);\n\tborder-top-right-radius: var(--radius-md);\n}\n\n.headerText {\n\tmargin: 0;\n\tpadding-inline: var(--space-md);\n\tfont-size: var(--font-size-md);\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.headerButton {\n\tmargin-block: var(--space-xs);\n\tmargin-inline: var(--space-sm);\n\tflex: 0;\n}\n\n.body {\n\toverflow: hidden;\n\tborder-bottom-left-radius: var(--radius-md);\n\tborder-bottom-right-radius: var(--radius-md);\n}\n","import { createContext, useContext } from \"react\";\n\nexport const ModalManagerContext = createContext<{\n\tmodals: string[];\n\topenModal: (id: string) => void;\n\tcloseModal: (id: string) => void;\n\tisTopModal: (id: string) => boolean;\n}>({\n\tmodals: [],\n\topenModal: () => {},\n\tcloseModal: () => {},\n\tisTopModal: () => false\n});\n\nexport const useModalManager = () => useContext(ModalManagerContext);\n","import React, { Children, useEffect, useEffectEvent, useId, useState } from \"react\";\n\nimport { getOrCreatePortalRoot, useEscapeDismiss, useFocusTrap } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { X } from \"lucide-react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Button } from \"../button\";\nimport { FlexContainer } from \"../flex\";\nimport { GridContainer } from \"../grid\";\nimport { Scrollable } from \"../misc\";\n\nimport styles from \"./Modal.module.scss\";\nimport { ModalSize } from \"./types\";\nimport { useModalManager } from \"./useModalManager\";\n\n// Подкомпоненты\nexport interface ModalCompositionProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport const ModalToolbar: React.FC<ModalCompositionProps> = ({ children, className }) => {\n\treturn <div className={cn(\"surface2 paddingMd borderBottom\", className)}>{children}</div>;\n};\nModalToolbar.displayName = \"Modal.Toolbar\";\n\nexport const ModalContent: React.FC<ModalCompositionProps & { scrollable?: boolean }> = ({ children, className, scrollable }) => {\n\treturn (\n\t\t<div className={cn(\"paddingMd h100 overflowHidden\", className)}>\n\t\t\t{scrollable ? <Scrollable className=\"h100\">{children}</Scrollable> : children}\n\t\t</div>\n\t);\n};\nModalContent.displayName = \"Modal.Content\";\n\nexport const ModalFooter: React.FC<ModalCompositionProps> = ({ children, className }) => {\n\treturn (\n\t\t<div className={cn(\"surface2 borderTop paddingMd\", className)}>\n\t\t\t<FlexContainer gap=\"sm\" align=\"center\" justify=\"end\">\n\t\t\t\t{children}\n\t\t\t</FlexContainer>\n\t\t</div>\n\t);\n};\nModalFooter.displayName = \"Modal.Footer\";\n\ntype ToolbarElement = React.ReactElement<ModalCompositionProps, typeof ModalToolbar>;\ntype ContentElement = React.ReactElement<ModalCompositionProps, typeof ModalContent>;\ntype FooterElement = React.ReactElement<ModalCompositionProps, typeof ModalFooter>;\n\ntype ModalChildren =\n\t[ToolbarElement, ContentElement, FooterElement] | [ToolbarElement, ContentElement] | [ContentElement, FooterElement] | ContentElement;\n\nexport interface ModalProps {\n\t/** Открыто ли модальное окно */\n\tisOpen?: boolean;\n\t/** Заголовок */\n\ttitle?: string;\n\t/** Размер модального окна */\n\tsize?: keyof typeof ModalSize;\n\theight?: string;\n\t/** Обработчик закрытия */\n\tonClose: () => void;\n\tchildren: ModalChildren;\n}\n\nexport const Modal: React.FC<ModalProps> = ({ isOpen, title, size = \"sm\", height, onClose, children }) => {\n\tconst modalId = useId();\n\tconst titleId = useId();\n\n\tconst { modals, openModal, closeModal, isTopModal } = useModalManager();\n\tconst [isMounted, setIsMounted] = useState(false);\n\tconst mountModal = useEffectEvent(() => setIsMounted(true));\n\tconst unmountModal = useEffectEvent(() => setIsMounted(false));\n\n\t/**\n\t * Если provider менеджера не подключен, считаем одиночную модалку активной,\n\t * иначе логика Escape/focus trap никогда не включится.\n\t */\n\tconst isActive = isOpen && (modals.length === 0 || isTopModal(modalId));\n\n\tconst modalRef = useFocusTrap(isOpen || false);\n\n\tuseEscapeDismiss({\n\t\tactive: isActive || false,\n\t\tonDismiss: onClose,\n\t\tcontainerRef: modalRef\n\t});\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\topenModal(modalId);\n\t\t\tmountModal();\n\t\t}\n\n\t\treturn () => {\n\t\t\tcloseModal(modalId);\n\t\t\tunmountModal();\n\t\t};\n\t}, [closeModal, isOpen, modalId, openModal]);\n\n\tif (!isMounted) return null;\n\n\tconst modalRoot = getOrCreatePortalRoot(\"modal-root\");\n\n\tif (!modalRoot) {\n\t\treturn null;\n\t}\n\n\tlet toolbar: React.ReactNode = null;\n\tlet content: React.ReactNode = null;\n\tlet footer: React.ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarElement | ContentElement | FooterElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ModalToolbar.displayName:\n\t\t\t\tif (toolbar) throw new Error(\"Modal: duplicate <Toolbar> found\");\n\t\t\t\ttoolbar = child; //.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalFooter.displayName:\n\t\t\t\tif (footer) throw new Error(\"Modal: duplicate <Footer> found\");\n\t\t\t\tfooter = child; //props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalContent.displayName:\n\t\t\t\tif (content) throw new Error(\"Modal: duplicate <Content> found\");\n\t\t\t\tcontent = child; //.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={modalRef}\n\t\t\t\tclassName={cn(styles.modal, styles[size])}\n\t\t\t\tstyle={{ height }}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\taria-labelledby={titleId}\n\t\t\t\taria-describedby={`${titleId}-content`}>\n\t\t\t\t<div className={cn(styles.header, toolbar ? \"\" : \"borderBottom\")}>\n\t\t\t\t\t<h3 className={styles.headerText} id={titleId}>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h3>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={<X />}\n\t\t\t\t\t\tclassName={styles.headerButton}\n\t\t\t\t\t\tvariant={\"ghost\"}\n\t\t\t\t\t\tautoFocus={true}\n\t\t\t\t\t\taria-label={\"Закрыть модальное окно\"}\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<GridContainer\n\t\t\t\t\tid={`${titleId}-content`}\n\t\t\t\t\ttemplateRows={`${toolbar ? \"auto\" : \"\"} 1fr ${footer ? \"auto\" : \"\"}`.trim()}\n\t\t\t\t\t// gap=\"md\"\n\t\t\t\t\tclassName={styles.body}>\n\t\t\t\t\t{toolbar}\n\t\t\t\t\t{content}\n\t\t\t\t\t{footer}\n\t\t\t\t</GridContainer>\n\t\t\t</div>\n\t\t</>,\n\t\tmodalRoot\n\t);\n};\n","// ModalManagerContext.tsx\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { ModalManagerContext } from \"./useModalManager\";\n\n/**\n * Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.\n */\nexport function ModalManagerProvider({ children }: { children: React.ReactNode }) {\n\tconst [modals, setModals] = useState<string[]>([]);\n\tconst prevModalsLength = useRef(0);\n\n\tconst openModal = useCallback((id: string) => {\n\t\tsetModals((prev) => [...prev, id]);\n\t}, []);\n\n\tconst closeModal = useCallback((id: string) => {\n\t\tsetModals((prev) => prev.filter((mid) => mid !== id));\n\t}, []);\n\n\tconst isTopModal = useCallback(\n\t\t(id: string) => {\n\t\t\treturn modals[modals.length - 1] === id;\n\t\t},\n\t\t[modals]\n\t);\n\n\tuseEffect(() => {\n\t\tconst wasEmpty = prevModalsLength.current === 0;\n\n\t\tif (wasEmpty && modals.length > 0) {\n\t\t\t// первая модалка открыта — ставим стили\n\t\t\tconst scrollY = window.scrollY;\n\t\t\t// const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\n\t\t\tdocument.body.style.position = \"fixed\";\n\t\t\tdocument.body.style.top = `-${scrollY}px`;\n\t\t\tdocument.body.style.width = \"100%\";\n\t\t\t// document.body.style.paddingRight = `${scrollbarWidth}px`;\n\t\t\tappRoot?.setAttribute(\"inert\", \"true\");\n\n\t\t\tprevModalsLength.current = modals.length;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length === 0) {\n\t\t\t// последняя модалка закрыта — снимаем стили\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tconst scrollY = parseInt(document.body.style.top || \"0\") * -1;\n\n\t\t\tdocument.body.style.position = \"\";\n\t\t\tdocument.body.style.top = \"\";\n\t\t\tdocument.body.style.width = \"\";\n\t\t\t// document.body.style.paddingRight = \"\";\n\n\t\t\tappRoot?.removeAttribute(\"inert\");\n\n\t\t\twindow.scrollTo({ top: scrollY, left: 0, behavior: \"instant\" });\n\t\t}\n\n\t\tprevModalsLength.current = modals.length;\n\t}, [modals.length]);\n\n\treturn <ModalManagerContext.Provider value={{ modals, openModal, closeModal, isTopModal }}>{children}</ModalManagerContext.Provider>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"modal-4vYSSbAa.js","names":[],"sources":["../../src/modal/Modal.module.scss","../../src/modal/useModalManager.ts","../../src/modal/Modal.tsx","../../src/modal/ModalManagerProvider.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.modal {\n\tdisplay: grid;\n\tgrid-auto-rows: auto 1fr;\n\n\tposition: fixed;\n\tinset: 0;\n\tmargin: auto;\n\tz-index: var(--z-modal);\n\twidth: 90%;\n\theight: fit-content;\n\tmax-height: calc(100dvh - var(--space-lg));\n\tborder: var(--border);\n\tborder-radius: var(--radius-md);\n\tbackground-color: var(--surface-1);\n\tbox-shadow: var(--shadow-lg);\n\n\t&:not(:last-child) {\n\t\tpointer-events: none;\n\t\tfilter: grayscale(0.5) opacity(0.75);\n\t\t// opacity: 0.5;\n\t}\n\n\t&.sm {\n\t\tmax-width: min(30em, 93dvw);\n\t}\n\n\t&.md {\n\t\tmax-width: min(50em, 93dvw);\n\t}\n\n\t&.lg {\n\t\tmax-width: min(70em, 93dvw);\n\t}\n\n\t&.xl {\n\t\tmax-width: min(80em, 93dvw);\n\t}\n\n\t&.xxl {\n\t\twidth: 93dvw;\n\t\theight: 90dvh;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\t}\n\n\t&.inside {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-width: none;\n\t\tmax-height: none;\n\n\t\t.header,\n\t\t.body {\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbackground-color: var(--surface-2);\n\tborder-top-left-radius: var(--radius-md);\n\tborder-top-right-radius: var(--radius-md);\n}\n\n.headerText {\n\tmargin: 0;\n\tpadding-inline: var(--space-md);\n\tfont-size: var(--font-size-md);\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.headerButton {\n\tmargin-block: var(--space-xs);\n\tmargin-inline: var(--space-sm);\n\tflex: 0;\n}\n\n.body {\n\toverflow: hidden;\n\tborder-bottom-left-radius: var(--radius-md);\n\tborder-bottom-right-radius: var(--radius-md);\n}\n","import { createContext, useContext } from \"react\";\n\nexport const ModalManagerContext = createContext<{\n\tmodals: string[];\n\topenModal: (id: string) => void;\n\tcloseModal: (id: string) => void;\n\tisTopModal: (id: string) => boolean;\n}>({\n\tmodals: [],\n\topenModal: () => {},\n\tcloseModal: () => {},\n\tisTopModal: () => false\n});\n\nexport const useModalManager = () => useContext(ModalManagerContext);\n","import React, { Children, useEffect, useEffectEvent, useId, useState } from \"react\";\n\nimport { getOrCreatePortalRoot, useEscapeDismiss, useFocusTrap } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { X } from \"lucide-react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Button } from \"../button\";\nimport { FlexContainer } from \"../flex\";\nimport { GridContainer } from \"../grid\";\nimport { Scrollable } from \"../misc\";\n\nimport styles from \"./Modal.module.scss\";\nimport { ModalSize } from \"./types\";\nimport { useModalManager } from \"./useModalManager\";\n\n// Подкомпоненты\nexport interface ModalCompositionProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport const ModalToolbar: React.FC<ModalCompositionProps> = ({ children, className }) => {\n\treturn <div className={cn(\"surface2 paddingMd borderBottom\", className)}>{children}</div>;\n};\nModalToolbar.displayName = \"Modal.Toolbar\";\n\nexport const ModalContent: React.FC<ModalCompositionProps & { scrollable?: boolean }> = ({ children, className, scrollable }) => {\n\treturn (\n\t\t<div className={cn(\"paddingMd h100 overflowHidden\", className)}>\n\t\t\t{scrollable ? <Scrollable className=\"h100\">{children}</Scrollable> : children}\n\t\t</div>\n\t);\n};\nModalContent.displayName = \"Modal.Content\";\n\nexport const ModalFooter: React.FC<ModalCompositionProps> = ({ children, className }) => {\n\treturn (\n\t\t<div className={cn(\"surface2 borderTop paddingMd\", className)}>\n\t\t\t<FlexContainer gap=\"sm\" align=\"center\" justify=\"end\">\n\t\t\t\t{children}\n\t\t\t</FlexContainer>\n\t\t</div>\n\t);\n};\nModalFooter.displayName = \"Modal.Footer\";\n\ntype ToolbarElement = React.ReactElement<ModalCompositionProps, typeof ModalToolbar>;\ntype ContentElement = React.ReactElement<ModalCompositionProps, typeof ModalContent>;\ntype FooterElement = React.ReactElement<ModalCompositionProps, typeof ModalFooter>;\n\ntype ModalChildren =\n\t[ToolbarElement, ContentElement, FooterElement] | [ToolbarElement, ContentElement] | [ContentElement, FooterElement] | ContentElement;\n\nexport interface ModalProps {\n\t/** Открыто ли модальное окно */\n\tisOpen?: boolean;\n\t/** Заголовок */\n\ttitle?: string;\n\t/** Размер модального окна */\n\tsize?: keyof typeof ModalSize;\n\theight?: string;\n\t/** Обработчик закрытия */\n\tonClose: () => void;\n\tchildren: ModalChildren;\n}\n\nexport const Modal: React.FC<ModalProps> = ({ isOpen, title, size = \"sm\", height, onClose, children }) => {\n\tconst modalId = useId();\n\tconst titleId = useId();\n\n\tconst { modals, openModal, closeModal, isTopModal } = useModalManager();\n\tconst [isMounted, setIsMounted] = useState(false);\n\tconst mountModal = useEffectEvent(() => setIsMounted(true));\n\tconst unmountModal = useEffectEvent(() => setIsMounted(false));\n\n\t/**\n\t * Если provider менеджера не подключен, считаем одиночную модалку активной,\n\t * иначе логика Escape/focus trap никогда не включится.\n\t */\n\tconst isActive = isOpen && (modals.length === 0 || isTopModal(modalId));\n\n\tconst modalRef = useFocusTrap(isOpen || false);\n\n\tuseEscapeDismiss({\n\t\tactive: isActive || false,\n\t\tonDismiss: onClose,\n\t\tcontainerRef: modalRef\n\t});\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\topenModal(modalId);\n\t\t\tmountModal();\n\t\t}\n\n\t\treturn () => {\n\t\t\tcloseModal(modalId);\n\t\t\tunmountModal();\n\t\t};\n\t}, [closeModal, isOpen, modalId, openModal]);\n\n\tif (!isMounted) return null;\n\n\tconst modalRoot = getOrCreatePortalRoot(\"modal-root\");\n\n\tif (!modalRoot) {\n\t\treturn null;\n\t}\n\n\tlet toolbar: React.ReactNode = null;\n\tlet content: React.ReactNode = null;\n\tlet footer: React.ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarElement | ContentElement | FooterElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ModalToolbar.displayName:\n\t\t\t\tif (toolbar) throw new Error(\"Modal: duplicate <Toolbar> found\");\n\t\t\t\ttoolbar = child; //.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalFooter.displayName:\n\t\t\t\tif (footer) throw new Error(\"Modal: duplicate <Footer> found\");\n\t\t\t\tfooter = child; //props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalContent.displayName:\n\t\t\t\tif (content) throw new Error(\"Modal: duplicate <Content> found\");\n\t\t\t\tcontent = child; //.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={modalRef}\n\t\t\t\tclassName={cn(styles.modal, styles[size])}\n\t\t\t\tstyle={{ height }}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\taria-labelledby={titleId}\n\t\t\t\taria-describedby={`${titleId}-content`}>\n\t\t\t\t<div className={cn(styles.header, toolbar ? \"\" : \"borderBottom\")}>\n\t\t\t\t\t<h3 className={styles.headerText} id={titleId}>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h3>\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={<X />}\n\t\t\t\t\t\tclassName={styles.headerButton}\n\t\t\t\t\t\tvariant={\"ghost\"}\n\t\t\t\t\t\tautoFocus={true}\n\t\t\t\t\t\taria-label={\"Закрыть модальное окно\"}\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t<GridContainer\n\t\t\t\t\tid={`${titleId}-content`}\n\t\t\t\t\ttemplateRows={`${toolbar ? \"auto\" : \"\"} 1fr ${footer ? \"auto\" : \"\"}`.trim()}\n\t\t\t\t\t// gap=\"md\"\n\t\t\t\t\tclassName={styles.body}>\n\t\t\t\t\t{toolbar}\n\t\t\t\t\t{content}\n\t\t\t\t\t{footer}\n\t\t\t\t</GridContainer>\n\t\t\t</div>\n\t\t</>,\n\t\tmodalRoot\n\t);\n};\n","// ModalManagerContext.tsx\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { ModalManagerContext } from \"./useModalManager\";\n\nexport interface ModalManagerProviderProps {\n\tchildren: React.ReactNode;\n\t/** Компенсирует исчезновение скроллбара правым padding у body. */\n\tcompensateScrollbar?: boolean;\n}\n\n/**\n * Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.\n */\nexport function ModalManagerProvider({ children, compensateScrollbar = false }: ModalManagerProviderProps) {\n\tconst [modals, setModals] = useState<string[]>([]);\n\tconst prevModalsLength = useRef(0);\n\tconst scrollbarWidth = useRef(0);\n\tconst bodyPaddingRight = useRef(\"\");\n\tconst isScrollbarCompensated = useRef(false);\n\n\tconst openModal = useCallback((id: string) => {\n\t\tsetModals((prev) => [...prev, id]);\n\t}, []);\n\n\tconst closeModal = useCallback((id: string) => {\n\t\tsetModals((prev) => prev.filter((mid) => mid !== id));\n\t}, []);\n\n\tconst isTopModal = useCallback(\n\t\t(id: string) => {\n\t\t\treturn modals[modals.length - 1] === id;\n\t\t},\n\t\t[modals]\n\t);\n\n\tuseEffect(() => {\n\t\tconst wasEmpty = prevModalsLength.current === 0;\n\n\t\tif (wasEmpty && modals.length > 0) {\n\t\t\t// первая модалка открыта — ставим стили\n\t\t\tconst scrollY = window.scrollY;\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tscrollbarWidth.current = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n\t\t\tbodyPaddingRight.current = document.body.style.paddingRight;\n\n\t\t\tdocument.body.style.position = \"fixed\";\n\t\t\tdocument.body.style.top = `-${scrollY}px`;\n\t\t\tdocument.body.style.width = \"100%\";\n\n\t\t\tif (compensateScrollbar) {\n\t\t\t\tdocument.body.style.paddingRight = `${scrollbarWidth.current}px`;\n\t\t\t\tisScrollbarCompensated.current = true;\n\t\t\t}\n\n\t\t\tappRoot?.setAttribute(\"inert\", \"true\");\n\n\t\t\tprevModalsLength.current = modals.length;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length > 0 && compensateScrollbar !== isScrollbarCompensated.current) {\n\t\t\tdocument.body.style.paddingRight = compensateScrollbar ? `${scrollbarWidth.current}px` : bodyPaddingRight.current;\n\t\t\tisScrollbarCompensated.current = compensateScrollbar;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length === 0) {\n\t\t\t// последняя модалка закрыта — снимаем стили\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tconst scrollY = parseInt(document.body.style.top || \"0\") * -1;\n\n\t\t\tdocument.body.style.position = \"\";\n\t\t\tdocument.body.style.top = \"\";\n\t\t\tdocument.body.style.width = \"\";\n\n\t\t\tif (isScrollbarCompensated.current) {\n\t\t\t\tdocument.body.style.paddingRight = bodyPaddingRight.current;\n\t\t\t\tisScrollbarCompensated.current = false;\n\t\t\t}\n\n\t\t\tappRoot?.removeAttribute(\"inert\");\n\n\t\t\twindow.scrollTo({ top: scrollY, left: 0, behavior: \"instant\" });\n\t\t}\n\n\t\tprevModalsLength.current = modals.length;\n\t}, [compensateScrollbar, modals.length]);\n\n\treturn <ModalManagerContext.Provider value={{ modals, openModal, closeModal, isTopModal }}>{children}</ModalManagerContext.Provider>;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { n as e } from "../chunks/button-CC0Jdx1j.js";
2
2
  import { r as t } from "../chunks/grid-ByIIytjh.js";
3
3
  import { o as n } from "../chunks/input-CZLUUggm.js";
4
- import { i as r, n as i, r as a } from "../chunks/modal-C0j0hEIt.js";
4
+ import { i as r, n as i, r as a } from "../chunks/modal-4vYSSbAa.js";
5
5
  import { t as o } from "../chunks/input-files-aB8iaqGk.js";
6
6
  import { useCallback as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
7
7
  import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
@@ -1,8 +1,11 @@
1
1
  import React from "react";
2
+ export interface ModalManagerProviderProps {
3
+ children: React.ReactNode;
4
+ /** Компенсирует исчезновение скроллбара правым padding у body. */
5
+ compensateScrollbar?: boolean;
6
+ }
2
7
  /**
3
8
  * Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.
4
9
  */
5
- export declare function ModalManagerProvider({ children }: {
6
- children: React.ReactNode;
7
- }): React.JSX.Element;
10
+ export declare function ModalManagerProvider({ children, compensateScrollbar }: ModalManagerProviderProps): React.JSX.Element;
8
11
  //# sourceMappingURL=ModalManagerProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalManagerProvider.d.ts","sourceRoot":"","sources":["../../src/modal/ModalManagerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAyD/E"}
1
+ {"version":3,"file":"ModalManagerProvider.d.ts","sourceRoot":"","sources":["../../src/modal/ModalManagerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,MAAM,WAAW,yBAAyB;IACzC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,mBAA2B,EAAE,EAAE,yBAAyB,qBA2ExG"}
@@ -1,2 +1,2 @@
1
- import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/modal-C0j0hEIt.js";
1
+ import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/modal-4vYSSbAa.js";
2
2
  export { n as Modal, i as ModalContent, t as ModalFooter, r as ModalManagerContext, o as ModalManagerProvider, e as ModalToolbar, a as useModalManager };
@@ -3,7 +3,7 @@ import { a as t, n, t as r } from "../chunks/types-CxXyru6U.js";
3
3
  import { jsx as i } from "react/jsx-runtime";
4
4
  //#region src/text-editor/TextEditorLexical.tsx
5
5
  function a() {
6
- return import("../chunks/TextEditorLexicalClient-CxOJuwOC.js").then((e) => ({ TextEditorLexicalClient: e.TextEditorLexicalClient }));
6
+ return import("../chunks/TextEditorLexicalClient-jQ7V9jFm.js").then((e) => ({ TextEditorLexicalClient: e.TextEditorLexicalClient }));
7
7
  }
8
8
  function o(t) {
9
9
  return /* @__PURE__ */ i(e, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuzaki13/react-foundation-ui",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "Reusable React foundation UI primitives and Storybook stories.",
5
5
  "license": "MIT",
6
6
  "author": "Ryuzaki13",
@@ -4,8 +4,8 @@ body {
4
4
  @include stepped-font();
5
5
  font-family: var(--font-family-base);
6
6
 
7
- color: var(--content-0);
8
- background-color: var(--surface-1);
7
+ // color: var(--content-0);
8
+ // background-color: var(--surface-1);
9
9
 
10
10
  letter-spacing: var(--letter-spacing);
11
11
  word-spacing: var(--word-spacing);
@@ -13,10 +13,6 @@ body {
13
13
  text-size-adjust: 100%;
14
14
  -webkit-font-smoothing: antialiased;
15
15
  -moz-osx-font-smoothing: auto;
16
-
17
- position: relative;
18
- height: 100%;
19
- overflow: hidden;
20
16
  }
21
17
 
22
18
  /* Для WebKit браузеров (Chrome, Safari, Edge) */
@@ -30,19 +26,6 @@ input:autofill {
30
26
  background: var(--surface-0) !important;
31
27
  }
32
28
 
33
- #root {
34
- display: grid;
35
- grid-template-rows: auto 1fr;
36
- height: 100%;
37
- }
38
-
39
- // TODO: ВРЕМЕННО, не забыть убрать после адаптации шапки
40
- @include mobile {
41
- #root {
42
- grid-template-rows: 1fr;
43
- }
44
- }
45
-
46
29
  #modal-root {
47
30
  &:not(:empty) {
48
31
  position: fixed;
@@ -55,6 +38,17 @@ input:autofill {
55
38
  }
56
39
  }
57
40
 
41
+ #dialog-root {
42
+ &:not(:empty) {
43
+ position: fixed;
44
+ z-index: var(--z-dialog);
45
+ left: 0;
46
+ top: 0;
47
+ right: 0;
48
+ bottom: 0;
49
+ }
50
+ }
51
+
58
52
  h1,
59
53
  .h1 {
60
54
  @include stepped-font(24);
@@ -197,13 +191,6 @@ table {
197
191
  }
198
192
  }
199
193
 
200
- .lucide {
201
- stroke-width: var(--stroke-width);
202
- width: 1.25em;
203
- height: 1.25em;
204
- line-height: var(--line-height);
205
- }
206
-
207
194
  :focus-visible {
208
195
  @include focusVisible;
209
196
  }
@@ -216,26 +203,6 @@ table {
216
203
  @include visuallyHidden;
217
204
  }
218
205
 
219
- .debug {
220
- outline: 1px dashed rgb(255, 124, 216);
221
- outline-offset: -1px;
222
- }
223
- // TODO: unused
224
- .debug1 {
225
- outline: 1px dashed rgb(255, 220, 124);
226
- outline-offset: -1px;
227
- }
228
- // TODO: unused
229
- .debug2 {
230
- outline: 1px dashed rgb(124, 240, 255);
231
- outline-offset: -1px;
232
- }
233
- // TODO: unused
234
- .debug3 {
235
- outline: 1px dashed rgb(124, 255, 172);
236
- outline-offset: -1px;
237
- }
238
-
239
206
  // OPACITY
240
207
 
241
208
  // TODO: unused
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Appearances as p,Basic as m,RemovableList as h,Sizes as g,Tones as _,n as v,t as y}from"./Badge.stories-BEMBzR2f.js";function b(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(a,{of:y,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Appearances as p,Basic as m,RemovableList as h,Sizes as g,Tones as _,n as v,t as y}from"./Badge.stories-IgBcw1Cf.js";function b(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(a,{of:y,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(c,{children:`Badge`}),`
3
3
  `,(0,S.jsx)(i,{children:`Компактная текстовая метка для статусов, категорий, фильтров и коротких служебных пометок`}),`
4
4
  `,(0,S.jsx)(o.p,{children:`Badge подходит для коротких подписей, которые должны быстро читаться и не перегружать интерфейс:`}),`
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CReRlw17.js";import{n as s,t as c}from"./lucide-react-CK2oyDtF.js";import{n as l,t as u}from"./text-BxA8yj6Z.js";import{i as d,n as f,r as p,t as m}from"./uiClasses-CZ_HVS3Y.js";import{o as h}from"./Flex-C_VnI9xY.js";import{t as g}from"./flex-DuYzsEBQ.js";var _,v,y,b,x,S,C,w,T,E,D=n((()=>{_=`qBtmnH`,v=`p-HsHY`,y=`u9tQAE`,b=`FRScRz`,x=`W13uQO`,S=`_3IRcM9`,C=`R3ybI7`,w=`DdWAaC`,T=`_5cXBQF`,E={badge:_,passive:v,sizeXs:y,sizeSm:b,sizeMd:x,sizeLg:S,sizeXl:C,content:w,removeButton:T}}));function O({children:e,size:t=`sm`,tone:n,appearance:r,className:i,onRemove:o}){let c=n??`neutral`,u=d({tone:n,appearance:r,fallbackTone:c,fallbackAppearance:c===`neutral`?`outline`:`solid`});return(0,k.jsxs)(`div`,{className:a(E.badge,A[t],f(u.tone),m(u.appearance),!o&&E.passive,i),children:[(0,k.jsx)(l,{maxChar:25,placement:`top`,block:!0,textWrapProps:{className:E.content},children:String(e)}),o&&(0,k.jsx)(`button`,{type:`button`,onClick:o,className:E.removeButton,"aria-label":`Удалить бейдж`,"data-ui":`badge-remove-button`,"data-action":`remove-badge`,children:(0,k.jsx)(s,{})})]})}var k,A,j=n((()=>{o(),c(),u(),p(),D(),k=i(),A={xs:E.sizeXs,sm:E.sizeSm,md:E.sizeMd,lg:E.sizeLg,xl:E.sizeXl},O.__docgenInfo={description:`Компактный индикатор для статусов, категорий и коротких служебных меток.`,methods:[],displayName:`Badge`,props:{children:{required:!0,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``,defaultValue:{value:`"sm"`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``},appearance:{required:!1,tsType:{name:`union`,raw:`"solid" | "outline" | "ghost" | "transparent"`,elements:[{name:`literal`,value:`"solid"`},{name:`literal`,value:`"outline"`},{name:`literal`,value:`"ghost"`},{name:`literal`,value:`"transparent"`}]},description:``},className:{required:!1,tsType:{name:`string`},description:``},onRemove:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}}));function M({children:e}){return(0,P.jsx)(h,{inline:!0,wrap:!0,gap:`sm`,align:`baseline`,children:N.Children.map(e,(e,t)=>(0,P.jsx)(N.Fragment,{children:e},t))})}var N,P,F=n((()=>{N=t(r(),1),g(),P=i(),M.__docgenInfo={description:"Контейнер для группы `Badge`, который выстраивает элементы в единый список с предсказуемыми отступами. Используется для компактного вывода набора меток или фильтров.",methods:[],displayName:`BadgeList`,props:{children:{required:!0,tsType:{name:`Array`,elements:[{name:`ReactElement`,elements:[{name:`union`,raw:`typeof Badge | null | undefined | false`,elements:[{name:`Badge`},{name:`null`},{name:`undefined`},{name:`literal`,value:`false`}]}],raw:`ReactElement<typeof Badge | null | undefined | false>`}],raw:`ReactElement<typeof Badge | null | undefined | false>[]`},description:``}}}})),I=e({Appearances:()=>H,Basic:()=>B,RemovableList:()=>W,Sizes:()=>U,Tones:()=>V,__namedExportsOrder:()=>G,default:()=>z}),L,R,z,B,V,H,U,W,G,K=n((()=>{L=t(r(),1),j(),F(),R=i(),z={title:`Shared/UI/Badge`,component:O,args:{children:`Новый`,size:`md`,tone:`info`,appearance:`solid`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текст внутри бейджа.`,control:`text`},size:{description:`Размер бейджа.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},tone:{description:`Семантический тон бейджа.`,control:`inline-radio`,options:[`neutral`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1},className:{description:`Дополнительный CSS-класс контейнера.`,control:`text`}}},B={},V={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,R.jsx)(O,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,R.jsx)(O,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,R.jsx)(O,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,R.jsx)(O,{tone:`info`,appearance:`solid`,children:`Информация`})]})},H={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,R.jsx)(O,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,R.jsx)(O,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,R.jsx)(O,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},U={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{size:`xs`,children:`Extra Small`}),(0,R.jsx)(O,{size:`sm`,children:`Small`}),(0,R.jsx)(O,{size:`md`,children:`Medium`}),(0,R.jsx)(O,{size:`lg`,children:`Large`}),(0,R.jsx)(O,{size:`xl`,children:`Extra Large`})]})},W={render:()=>{let[e,t]=(0,L.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,R.jsx)(M,{children:e.map(e=>(0,R.jsx)(O,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{}`,...B.parameters?.docs?.source}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-B7W0zPTP.js";import{n as s,t as c}from"./lucide-react-Cw6QPvVA.js";import{n as l,t as u}from"./text-6oBGbhcX.js";import{i as d,n as f,r as p,t as m}from"./uiClasses-CZ_HVS3Y.js";import{o as h}from"./Flex-CML6WrKV.js";import{t as g}from"./flex-fN9xAXRx.js";var _,v,y,b,x,S,C,w,T,E,D=n((()=>{_=`qBtmnH`,v=`p-HsHY`,y=`u9tQAE`,b=`FRScRz`,x=`W13uQO`,S=`_3IRcM9`,C=`R3ybI7`,w=`DdWAaC`,T=`_5cXBQF`,E={badge:_,passive:v,sizeXs:y,sizeSm:b,sizeMd:x,sizeLg:S,sizeXl:C,content:w,removeButton:T}}));function O({children:e,size:t=`sm`,tone:n,appearance:r,className:i,onRemove:o}){let c=n??`neutral`,u=d({tone:n,appearance:r,fallbackTone:c,fallbackAppearance:c===`neutral`?`outline`:`solid`});return(0,k.jsxs)(`div`,{className:a(E.badge,A[t],f(u.tone),m(u.appearance),!o&&E.passive,i),children:[(0,k.jsx)(l,{maxChar:25,placement:`top`,block:!0,textWrapProps:{className:E.content},children:String(e)}),o&&(0,k.jsx)(`button`,{type:`button`,onClick:o,className:E.removeButton,"aria-label":`Удалить бейдж`,"data-ui":`badge-remove-button`,"data-action":`remove-badge`,children:(0,k.jsx)(s,{})})]})}var k,A,j=n((()=>{o(),c(),u(),p(),D(),k=i(),A={xs:E.sizeXs,sm:E.sizeSm,md:E.sizeMd,lg:E.sizeLg,xl:E.sizeXl},O.__docgenInfo={description:`Компактный индикатор для статусов, категорий и коротких служебных меток.`,methods:[],displayName:`Badge`,props:{children:{required:!0,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``,defaultValue:{value:`"sm"`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``},appearance:{required:!1,tsType:{name:`union`,raw:`"solid" | "outline" | "ghost" | "transparent"`,elements:[{name:`literal`,value:`"solid"`},{name:`literal`,value:`"outline"`},{name:`literal`,value:`"ghost"`},{name:`literal`,value:`"transparent"`}]},description:``},className:{required:!1,tsType:{name:`string`},description:``},onRemove:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}}));function M({children:e}){return(0,P.jsx)(h,{inline:!0,wrap:!0,gap:`sm`,align:`baseline`,children:N.Children.map(e,(e,t)=>(0,P.jsx)(N.Fragment,{children:e},t))})}var N,P,F=n((()=>{N=t(r(),1),g(),P=i(),M.__docgenInfo={description:"Контейнер для группы `Badge`, который выстраивает элементы в единый список с предсказуемыми отступами. Используется для компактного вывода набора меток или фильтров.",methods:[],displayName:`BadgeList`,props:{children:{required:!0,tsType:{name:`Array`,elements:[{name:`ReactElement`,elements:[{name:`union`,raw:`typeof Badge | null | undefined | false`,elements:[{name:`Badge`},{name:`null`},{name:`undefined`},{name:`literal`,value:`false`}]}],raw:`ReactElement<typeof Badge | null | undefined | false>`}],raw:`ReactElement<typeof Badge | null | undefined | false>[]`},description:``}}}})),I=e({Appearances:()=>H,Basic:()=>B,RemovableList:()=>W,Sizes:()=>U,Tones:()=>V,__namedExportsOrder:()=>G,default:()=>z}),L,R,z,B,V,H,U,W,G,K=n((()=>{L=t(r(),1),j(),F(),R=i(),z={title:`Shared/UI/Badge`,component:O,args:{children:`Новый`,size:`md`,tone:`info`,appearance:`solid`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текст внутри бейджа.`,control:`text`},size:{description:`Размер бейджа.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},tone:{description:`Семантический тон бейджа.`,control:`inline-radio`,options:[`neutral`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1},className:{description:`Дополнительный CSS-класс контейнера.`,control:`text`}}},B={},V={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,R.jsx)(O,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,R.jsx)(O,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,R.jsx)(O,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,R.jsx)(O,{tone:`info`,appearance:`solid`,children:`Информация`})]})},H={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,R.jsx)(O,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,R.jsx)(O,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,R.jsx)(O,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},U={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{size:`xs`,children:`Extra Small`}),(0,R.jsx)(O,{size:`sm`,children:`Small`}),(0,R.jsx)(O,{size:`md`,children:`Medium`}),(0,R.jsx)(O,{size:`lg`,children:`Large`}),(0,R.jsx)(O,{size:`xl`,children:`Extra Large`})]})},W={render:()=>{let[e,t]=(0,L.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,R.jsx)(M,{children:e.map(e=>(0,R.jsx)(O,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{}`,...B.parameters?.docs?.source}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
2
2
  render: () => <BadgeList>
3
3
  <Badge tone="neutral" appearance="outline">
4
4
  Neutral
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Basic as p,ComposableScheme as m,Variants as h,WithIcons as g,n as _,t as v}from"./Button.stories-BoNLZb6w.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Basic as p,ComposableScheme as m,Variants as h,WithIcons as g,n as _,t as v}from"./Button.stories-Di4OQvY8.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(c,{children:`Button`}),`
3
3
  `,(0,x.jsx)(i,{children:`Базовая action-кнопка дизайн-системы для пользовательских действий, подтверждений и быстрых операций`}),`
4
4
  `,(0,x.jsxs)(o.p,{children:[(0,x.jsx)(o.code,{children:`Button`}),` используется как универсальная кнопка интерфейса: в формах, тулбарах, модальных окнах, карточках, таблицах и компактных icon-only сценариях.`]}),`
@@ -1,4 +1,4 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-CReRlw17.js";import{n as o,t as s}from"./popover-DWA5VOMQ.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{i as u,n as d,r as f,t as p}from"./uiClasses-CZ_HVS3Y.js";var m,h,g,_,v,y=t((()=>{m=`wLOHwj`,h=`lFsM-Y`,g=`LPob63`,_=`tsaGtv`,v={button:m,iconOnly:h,buttonInner:g,buttonIcon:_}})),b,x,S,C=t((()=>{b=e(n(),1),a(),s(),l(),f(),y(),x=r(),S=(0,b.forwardRef)(function({children:e,disabled:t,className:n,icon:r,iconEnd:a,title:s,variant:l,tone:f,appearance:m,type:h=`button`,"aria-label":g,..._},y){let S=b.Children.count(e)>0,C=!!r&&!S,w=u({variant:l,tone:f,appearance:m,fallbackAppearance:f&&f!==`neutral`?`solid`:`outline`}),T=C?g??s:g,E=(0,x.jsx)(`button`,{..._,ref:y,type:h,disabled:t,"aria-label":T,className:i(c.uiElement,c.uiInputControl,v.button,d(w.tone),p(w.appearance),C?v.iconOnly:``,`textNoWrap`,n??``),children:(0,x.jsxs)(`span`,{className:v.buttonInner,children:[r&&!a&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:v.buttonIcon,children:r}),S&&(0,x.jsx)(`span`,{className:`flexEllipsis`,children:e}),r&&a&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:v.buttonIcon,children:r})]})});return s?(0,x.jsx)(o,{placement:`bottom`,tooltip:!0,content:(0,x.jsx)(x.Fragment,{children:s}),children:E}):E}),S.__docgenInfo={description:'Базовая кнопка дизайн-системы для пользовательских действий.\nПоддерживает состояния, tone + appearance, иконки и безопасный `type="button"` по умолчанию.',methods:[],displayName:`Button`,props:{variant:{required:!1,tsType:{name:`union`,raw:`| "transparent"
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-B7W0zPTP.js";import{n as o,t as s}from"./popover-CahYWIfo.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{i as u,n as d,r as f,t as p}from"./uiClasses-CZ_HVS3Y.js";var m,h,g,_,v,y=t((()=>{m=`wLOHwj`,h=`lFsM-Y`,g=`LPob63`,_=`tsaGtv`,v={button:m,iconOnly:h,buttonInner:g,buttonIcon:_}})),b,x,S,C=t((()=>{b=e(n(),1),a(),s(),l(),f(),y(),x=r(),S=(0,b.forwardRef)(function({children:e,disabled:t,className:n,icon:r,iconEnd:a,title:s,variant:l,tone:f,appearance:m,type:h=`button`,"aria-label":g,..._},y){let S=b.Children.count(e)>0,C=!!r&&!S,w=u({variant:l,tone:f,appearance:m,fallbackAppearance:f&&f!==`neutral`?`solid`:`outline`}),T=C?g??s:g,E=(0,x.jsx)(`button`,{..._,ref:y,type:h,disabled:t,"aria-label":T,className:i(c.uiElement,c.uiInputControl,v.button,d(w.tone),p(w.appearance),C?v.iconOnly:``,`textNoWrap`,n??``),children:(0,x.jsxs)(`span`,{className:v.buttonInner,children:[r&&!a&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:v.buttonIcon,children:r}),S&&(0,x.jsx)(`span`,{className:`flexEllipsis`,children:e}),r&&a&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:v.buttonIcon,children:r})]})});return s?(0,x.jsx)(o,{placement:`bottom`,tooltip:!0,content:(0,x.jsx)(x.Fragment,{children:s}),children:E}):E}),S.__docgenInfo={description:'Базовая кнопка дизайн-системы для пользовательских действий.\nПоддерживает состояния, tone + appearance, иконки и безопасный `type="button"` по умолчанию.',methods:[],displayName:`Button`,props:{variant:{required:!1,tsType:{name:`union`,raw:`| "transparent"
2
2
  | "ghost"
3
3
  | "neutral"
4
4
  | "error"
@@ -1,4 +1,4 @@
1
- import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{t as n}from"./jsx-runtime-BBQGix-2.js";import{P as r,b as i,mt as a,t as o,ut as s}from"./lucide-react-CK2oyDtF.js";import{n as c,t as l}from"./Button-BUkCW8Zg.js";var u=e({Basic:()=>m,ComposableScheme:()=>g,Variants:()=>h,WithIcons:()=>_,__namedExportsOrder:()=>v,default:()=>p}),d,f,p,m,h,g,_,v,y=t((()=>{o(),c(),d=n(),{fn:f}=__STORYBOOK_MODULE_TEST__,p={title:`Shared/UI/Button`,component:l,args:{children:`Действие`,variant:`neutralOutline`,disabled:!1,iconEnd:!1,onClick:f()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текстовое содержимое кнопки.`,control:`text`},variant:{description:"Готовая схема для обратной совместимости. Если заданы `tone` или `appearance`, они имеют приоритет.",control:`select`,options:[`neutral`,`neutralOutline`,`ghost`,`error`,`warning`,`success`,`info`,`errorOutline`,`warningOutline`,`successOutline`,`infoOutline`,`transparent`]},tone:{description:`Семантический тон кнопки.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]},appearance:{description:`Визуальная форма кнопки.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},icon:{description:`Иконка слева или справа от текста.`,control:!1},iconEnd:{description:`Перемещает иконку в конец кнопки.`,control:`boolean`},title:{description:"Текст тултипа и `aria-label` для кнопки.",control:`text`},disabled:{description:`Блокирует нажатие.`,control:`boolean`},onClick:{description:`Вызывается при нажатии на кнопку.`,control:!1},className:{description:`Дополнительный CSS-класс.`,control:`text`}}},m={},h={render:()=>(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,d.jsx)(l,{variant:`neutral`,children:`Neutral Solid`}),(0,d.jsx)(l,{variant:`neutralOutline`,children:`Neutral Outline`}),(0,d.jsx)(l,{variant:`ghost`,children:`Ghost`}),(0,d.jsx)(l,{variant:`info`,children:`Info Solid`}),(0,d.jsx)(l,{variant:`success`,children:`Success Solid`}),(0,d.jsx)(l,{variant:`warning`,children:`Warning Solid`}),(0,d.jsx)(l,{variant:`error`,children:`Error Solid`}),(0,d.jsx)(l,{variant:`infoOutline`,children:`Info Outline`}),(0,d.jsx)(l,{variant:`successOutline`,children:`Success Outline`}),(0,d.jsx)(l,{variant:`warningOutline`,children:`Warning Outline`}),(0,d.jsx)(l,{variant:`errorOutline`,children:`Error Outline`}),(0,d.jsx)(l,{variant:`transparent`,children:`Transparent`})]}),args:{children:`Действие`}},g={render:()=>(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,d.jsx)(l,{tone:`neutral`,appearance:`solid`,children:`Neutral Solid`}),(0,d.jsx)(l,{tone:`neutral`,appearance:`outline`,children:`Neutral Outline`}),(0,d.jsx)(l,{tone:`neutral`,appearance:`ghost`,children:`Neutral Ghost`}),(0,d.jsx)(l,{tone:`info`,appearance:`outline`,children:`Info Outline`}),(0,d.jsx)(l,{tone:`success`,appearance:`solid`,children:`Success Solid`}),(0,d.jsx)(l,{tone:`error`,appearance:`transparent`,children:`Error Transparent`})]})},_={render:()=>(0,d.jsxs)(`div`,{style:{display:`flex`,gap:12,flexWrap:`wrap`},children:[(0,d.jsx)(l,{icon:(0,d.jsx)(r,{}),children:`Скачать`}),(0,d.jsx)(l,{icon:(0,d.jsx)(i,{}),tone:`info`,appearance:`solid`,children:`Создать`}),(0,d.jsx)(l,{icon:(0,d.jsx)(s,{}),iconEnd:!0,tone:`success`,appearance:`solid`,children:`Подтвердить`}),(0,d.jsx)(l,{icon:(0,d.jsx)(a,{}),title:`Уведомления`})]}),args:{children:`Действие`}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{t as n}from"./jsx-runtime-BBQGix-2.js";import{P as r,b as i,mt as a,t as o,ut as s}from"./lucide-react-Cw6QPvVA.js";import{n as c,t as l}from"./Button-DRBTSyRM.js";var u=e({Basic:()=>m,ComposableScheme:()=>g,Variants:()=>h,WithIcons:()=>_,__namedExportsOrder:()=>v,default:()=>p}),d,f,p,m,h,g,_,v,y=t((()=>{o(),c(),d=n(),{fn:f}=__STORYBOOK_MODULE_TEST__,p={title:`Shared/UI/Button`,component:l,args:{children:`Действие`,variant:`neutralOutline`,disabled:!1,iconEnd:!1,onClick:f()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текстовое содержимое кнопки.`,control:`text`},variant:{description:"Готовая схема для обратной совместимости. Если заданы `tone` или `appearance`, они имеют приоритет.",control:`select`,options:[`neutral`,`neutralOutline`,`ghost`,`error`,`warning`,`success`,`info`,`errorOutline`,`warningOutline`,`successOutline`,`infoOutline`,`transparent`]},tone:{description:`Семантический тон кнопки.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]},appearance:{description:`Визуальная форма кнопки.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},icon:{description:`Иконка слева или справа от текста.`,control:!1},iconEnd:{description:`Перемещает иконку в конец кнопки.`,control:`boolean`},title:{description:"Текст тултипа и `aria-label` для кнопки.",control:`text`},disabled:{description:`Блокирует нажатие.`,control:`boolean`},onClick:{description:`Вызывается при нажатии на кнопку.`,control:!1},className:{description:`Дополнительный CSS-класс.`,control:`text`}}},m={},h={render:()=>(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,d.jsx)(l,{variant:`neutral`,children:`Neutral Solid`}),(0,d.jsx)(l,{variant:`neutralOutline`,children:`Neutral Outline`}),(0,d.jsx)(l,{variant:`ghost`,children:`Ghost`}),(0,d.jsx)(l,{variant:`info`,children:`Info Solid`}),(0,d.jsx)(l,{variant:`success`,children:`Success Solid`}),(0,d.jsx)(l,{variant:`warning`,children:`Warning Solid`}),(0,d.jsx)(l,{variant:`error`,children:`Error Solid`}),(0,d.jsx)(l,{variant:`infoOutline`,children:`Info Outline`}),(0,d.jsx)(l,{variant:`successOutline`,children:`Success Outline`}),(0,d.jsx)(l,{variant:`warningOutline`,children:`Warning Outline`}),(0,d.jsx)(l,{variant:`errorOutline`,children:`Error Outline`}),(0,d.jsx)(l,{variant:`transparent`,children:`Transparent`})]}),args:{children:`Действие`}},g={render:()=>(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,d.jsx)(l,{tone:`neutral`,appearance:`solid`,children:`Neutral Solid`}),(0,d.jsx)(l,{tone:`neutral`,appearance:`outline`,children:`Neutral Outline`}),(0,d.jsx)(l,{tone:`neutral`,appearance:`ghost`,children:`Neutral Ghost`}),(0,d.jsx)(l,{tone:`info`,appearance:`outline`,children:`Info Outline`}),(0,d.jsx)(l,{tone:`success`,appearance:`solid`,children:`Success Solid`}),(0,d.jsx)(l,{tone:`error`,appearance:`transparent`,children:`Error Transparent`})]})},_={render:()=>(0,d.jsxs)(`div`,{style:{display:`flex`,gap:12,flexWrap:`wrap`},children:[(0,d.jsx)(l,{icon:(0,d.jsx)(r,{}),children:`Скачать`}),(0,d.jsx)(l,{icon:(0,d.jsx)(i,{}),tone:`info`,appearance:`solid`,children:`Создать`}),(0,d.jsx)(l,{icon:(0,d.jsx)(s,{}),iconEnd:!0,tone:`success`,appearance:`solid`,children:`Подтвердить`}),(0,d.jsx)(l,{icon:(0,d.jsx)(a,{}),title:`Уведомления`})]}),args:{children:`Действие`}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
2
2
  // play: async function ({ args, canvas, userEvent }) {
3
3
  // const button = canvas.getByRole("button", { name: /button/i });
4
4
  // // 👇 Simulate behavior
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CwEU-ME1.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-DnKFgFHy.js";import{Controlled as p,Disabled as m,Sizes as h,Tones as g,n as _,t as v}from"./CheckBox.stories-Bo53TxC7.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-CcO3Y_Rh.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-BGEl8pi6.js";import{Controlled as p,Disabled as m,Sizes as h,Tones as g,n as _,t as v}from"./CheckBox.stories-BItLovUs.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,x.jsx)(c,{children:`CheckBox`}),`
3
3
  `,(0,x.jsx)(i,{children:`Флажок для булевых полей с общими UI-схемами tone и appearance`}),`
4
4
  `,(0,x.jsx)(o.p,{children:`CheckBox уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -1,2 +1,2 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-SfMJGCsn.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-CReRlw17.js";import{f as o,t as s}from"./lucide-react-CK2oyDtF.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,r as d}from"./uiClasses-CZ_HVS3Y.js";import{n as f,t as p}from"./CheckBox.module-Hr3mvdAC.js";function m({label:e,description:t,placeholder:n,disabled:r,size:a,className:s,onChange:l,value:d,noWrap:f,id:m,tone:_=`neutral`,...v}){let y=(0,h.useId)(),b=m??y,x=t?`${b}-description`:void 0,S=e??n,C=d??!1;return(0,g.jsxs)(`div`,{className:i(c.uiElement,a&&c.uiSizable,a&&c[a],r&&c.disabled,s),"aria-disabled":r||void 0,children:[(0,g.jsxs)(`div`,{className:p.row,children:[(0,g.jsxs)(`div`,{className:i(p.wrapper,u(_)),children:[(0,g.jsx)(`input`,{...v,id:b,type:`checkbox`,checked:C,disabled:r,"aria-checked":C,"aria-describedby":x,className:i(c.uiSelectionControl,p.input),onChange:()=>l?.(!C)}),(0,g.jsx)(`div`,{className:i(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,g.jsx)(o,{})})]}),S&&(0,g.jsx)(`label`,{htmlFor:b,className:i(c.uiLabelBase,f&&`textNoWrap`),children:S})]}),t&&(0,g.jsx)(`p`,{id:x,className:c.uiDescription,children:t})]})}var h,g,_=t((()=>{h=e(n(),1),a(),s(),l(),d(),f(),g=r(),m.__docgenInfo={description:`Компонент флажка для выбора булевого значения в формах и списках.
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-B1ZJmGrq.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-B7W0zPTP.js";import{f as o,t as s}from"./lucide-react-Cw6QPvVA.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,r as d}from"./uiClasses-CZ_HVS3Y.js";import{n as f,t as p}from"./CheckBox.module-Hr3mvdAC.js";function m({label:e,description:t,placeholder:n,disabled:r,size:a,className:s,onChange:l,value:d,noWrap:f,id:m,tone:_=`neutral`,...v}){let y=(0,h.useId)(),b=m??y,x=t?`${b}-description`:void 0,S=e??n,C=d??!1;return(0,g.jsxs)(`div`,{className:i(c.uiElement,a&&c.uiSizable,a&&c[a],r&&c.disabled,s),"aria-disabled":r||void 0,children:[(0,g.jsxs)(`div`,{className:p.row,children:[(0,g.jsxs)(`div`,{className:i(p.wrapper,u(_)),children:[(0,g.jsx)(`input`,{...v,id:b,type:`checkbox`,checked:C,disabled:r,"aria-checked":C,"aria-describedby":x,className:i(c.uiSelectionControl,p.input),onChange:()=>l?.(!C)}),(0,g.jsx)(`div`,{className:i(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,g.jsx)(o,{})})]}),S&&(0,g.jsx)(`label`,{htmlFor:b,className:i(c.uiLabelBase,f&&`textNoWrap`),children:S})]}),t&&(0,g.jsx)(`p`,{id:x,className:c.uiDescription,children:t})]})}var h,g,_=t((()=>{h=e(n(),1),a(),s(),l(),d(),f(),g=r(),m.__docgenInfo={description:`Компонент флажка для выбора булевого значения в формах и списках.
2
2
  Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`CheckBox`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}},noWrap:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}}));export{_ as n,m as t};
@@ -1,4 +1,4 @@
1
- import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-SfMJGCsn.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./CheckBox-DTSi8Yok.js";var s=e({Controlled:()=>d,Disabled:()=>m,Sizes:()=>p,Tones:()=>f,__namedExportsOrder:()=>h,default:()=>u}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u={title:`Shared/UI/CheckBox`,component:o,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст основной подписи чекбокса.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Текст подписи, если `label` не задан.",control:`text`},value:{description:`Текущее состояние чекбокса.`,control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},disabled:{description:`Блокирует взаимодействие с элементом.`,control:`boolean`},size:{description:`Размер визуального контрола и текста.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Семантический тон чекбокса.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]}}},d={render:e=>{let[t,n]=(0,c.useState)(e.value??!1);return(0,l.jsx)(o,{...e,value:t,onChange:n})},args:{label:`Принимать условия`,description:`Подтверждение условий использования сервиса.`,value:!1,size:`md`,disabled:!1,tone:`neutral`}},f={render:()=>{let[e,t]=(0,c.useState)({neutral:!0,info:!0,success:!0,warning:!0,error:!0});return(0,l.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`neutral`,`info`,`success`,`warning`,`error`].map(n=>(0,l.jsx)(o,{tone:n,label:`Тон ${n}`,value:e[n],onChange:e=>t(t=>({...t,[n]:e}))},n))})}},p={render:()=>{let[e,t]=(0,c.useState)({xs:!1,sm:!0,md:!1,lg:!0,xl:!1});return(0,l.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`xs`,`sm`,`md`,`lg`,`xl`].map(n=>(0,l.jsx)(o,{size:n,label:`Размер ${n}`,value:e[n],onChange:e=>t(t=>({...t,[n]:e}))},n))})}},m={args:{label:`Недоступный чекбокс`,description:`Изменение недоступно из-за прав доступа.`,value:!0,disabled:!0,tone:`neutral`}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
1
+ import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./CheckBox-WHmt7FbU.js";var s=e({Controlled:()=>d,Disabled:()=>m,Sizes:()=>p,Tones:()=>f,__namedExportsOrder:()=>h,default:()=>u}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u={title:`Shared/UI/CheckBox`,component:o,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст основной подписи чекбокса.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Текст подписи, если `label` не задан.",control:`text`},value:{description:`Текущее состояние чекбокса.`,control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},disabled:{description:`Блокирует взаимодействие с элементом.`,control:`boolean`},size:{description:`Размер визуального контрола и текста.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Семантический тон чекбокса.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]}}},d={render:e=>{let[t,n]=(0,c.useState)(e.value??!1);return(0,l.jsx)(o,{...e,value:t,onChange:n})},args:{label:`Принимать условия`,description:`Подтверждение условий использования сервиса.`,value:!1,size:`md`,disabled:!1,tone:`neutral`}},f={render:()=>{let[e,t]=(0,c.useState)({neutral:!0,info:!0,success:!0,warning:!0,error:!0});return(0,l.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`neutral`,`info`,`success`,`warning`,`error`].map(n=>(0,l.jsx)(o,{tone:n,label:`Тон ${n}`,value:e[n],onChange:e=>t(t=>({...t,[n]:e}))},n))})}},p={render:()=>{let[e,t]=(0,c.useState)({xs:!1,sm:!0,md:!1,lg:!0,xl:!1});return(0,l.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`xs`,`sm`,`md`,`lg`,`xl`].map(n=>(0,l.jsx)(o,{size:n,label:`Размер ${n}`,value:e[n],onChange:e=>t(t=>({...t,[n]:e}))},n))})}},m={args:{label:`Недоступный чекбокс`,description:`Изменение недоступно из-за прав доступа.`,value:!0,disabled:!0,tone:`neutral`}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
2
2
  render: args => {
3
3
  const [value, setValue] = useState(args.value ?? false);
4
4
  return <CheckBox {...args} value={value} onChange={setValue} />;
@@ -1 +1 @@
1
- import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n,n as r,r as i,t as a}from"./iframe-SfMJGCsn.js";import{S as o,_ as s,b as c,g as l,h as u,v as d,x as f,y as p}from"./blocks-CwEU-ME1.js";import{a as m,l as h}from"./theming-DZauqOKI.js";function ee(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function g(e,...t){return _(e,ae,...t)}function _(e,t,...n){let r=function(...r){let i=0,a=n.slice().map(e=>e===t?r[i++]:e),o=r.slice(i);return e.apply(this,a.concat(o))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function te(e,...t){return v(e,E,...t)}function v(e,t,...n){let r=function(...r){let i=n.filter(e=>e===t).length,a=Math.max(r.length-i,0),o=r.slice(0,a),s=a,c=n.slice().map(e=>e===t?r[s++]:e);return e.apply(this,o.concat(c))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function b(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function x(e){var t=(0,w.useRef)(e),n=(0,w.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}function S(e,t,n){var r=x(n),i=(0,w.useState)(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=(0,w.useRef)({color:t,hsva:a});return(0,w.useEffect)(function(){if(!e.equal(t,s.current.color)){var n=e.toHsva(t);s.current={hsva:n,color:t},o(n)}},[t,e]),(0,w.useEffect)(function(){var t;W(a,s.current.hsva)||e.equal(t=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:t},r(t))},[a,e,r]),[a,(0,w.useCallback)(function(e){o(function(t){return Object.assign({},t,e)})},[])]}var C,w,ne,re,ie,T,ae,E,D,O,k,A,oe,j,M,N,P,se,ce,F,le,ue,de,fe,I,L,R,z,pe,B,me,V,H,U,W,G,he,ge,_e,ve,K,q,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,J,Le,Re,ze,Y,Be,Ve,X,He,Ue,We,Ge,Z,Ke,qe,Q,Je,$,Ye;t((()=>{o(),i(),C=e(n(),1),d(),c(),w=e(n(),1),m(),ne=a({"../../../node_modules/color-name/index.js"(e,t){t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),re=a({"../../../node_modules/color-convert/conversions.js"(e,t){var n=ne(),r={};for(let e of Object.keys(n))r[n[e]]=e;var i={rgb:{channels:3,labels:`rgb`},hsl:{channels:3,labels:`hsl`},hsv:{channels:3,labels:`hsv`},hwb:{channels:3,labels:`hwb`},cmyk:{channels:4,labels:`cmyk`},xyz:{channels:3,labels:`xyz`},lab:{channels:3,labels:`lab`},lch:{channels:3,labels:`lch`},hex:{channels:1,labels:[`hex`]},keyword:{channels:1,labels:[`keyword`]},ansi16:{channels:1,labels:[`ansi16`]},ansi256:{channels:1,labels:[`ansi256`]},hcg:{channels:3,labels:[`h`,`c`,`g`]},apple:{channels:3,labels:[`r16`,`g16`,`b16`]},gray:{channels:1,labels:[`gray`]}};t.exports=i;for(let e of Object.keys(i)){if(!(`channels`in i[e]))throw Error(`missing channels property: `+e);if(!(`labels`in i[e]))throw Error(`missing channel labels property: `+e);if(i[e].labels.length!==i[e].channels)throw Error(`channel and label counts mismatch: `+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s,c;a===i?s=0:t===a?s=(n-r)/o:n===a?s=2+(r-t)/o:r===a&&(s=4+(t-n)/o),s=Math.min(s*60,360),s<0&&(s+=360);let l=(i+a)/2;return c=a===i?0:l<=.5?o/(a+i):o/(2-a-i),[s,c*100,l*100]},i.rgb.hsv=function(e){let t,n,r,i,a,o=e[0]/255,s=e[1]/255,c=e[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),d=function(e){return(l-e)/6/u+1/2};return u===0?(i=0,a=0):(a=u/l,t=d(o),n=d(s),r=d(c),o===l?i=r-n:s===l?i=1/3+t-r:c===l&&(i=2/3+n-t),i<0?i+=1:i>1&&--i),[i*360,a*100,l*100]},i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],a=i.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[a,o*100,r*100]},i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[a*100,o*100,s*100,i*100]};function a(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=r[e];if(t)return t;let i=1/0,o;for(let t of Object.keys(n)){let r=n[t],s=a(e,r);s<i&&(i=s,o=t)}return o},i.keyword.rgb=function(e){return n[e]},i.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=t*.4124+n*.3576+r*.1805,a=t*.2126+n*.7152+r*.0722,o=t*.0193+n*.1192+r*.9505;return[i*100,a*100,o*100]},i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return n/=95.047,r/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,[116*r-16,500*(n-r),200*(r-a)]},i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i,a,o;if(n===0)return o=r*255,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;let s=2*r-i,c=[0,0,0];for(let e=0;e<3;e++)a=t+1/3*-(e-1),a<0&&a++,a>1&&a--,o=6*a<1?s+(i-s)*6*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,c[e]=o*255;return c},i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;let o=(r+n)/2;return[t,(r===0?2*i/(a+i):2*n/(r+n))*100,o*100]},i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),c=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,c,o];case 1:return[s,r,o];case 2:return[o,r,c];case 3:return[o,s,r];case 4:return[c,o,r];case 5:return[r,o,s]}},i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01),a,o;o=(2-n)*r;let s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a||=0,o/=2,[t,a*100,o*100]},i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i=n+r,a;i>1&&(n/=i,r/=i);let o=Math.floor(6*t),s=1-r;a=6*t-o,o&1&&(a=1-a);let c=n+a*(s-n),l,u,d;switch(o){default:case 6:case 0:l=s,u=c,d=n;break;case 1:l=c,u=s,d=n;break;case 2:l=n,u=s,d=c;break;case 3:l=n,u=c,d=s;break;case 4:l=c,u=n,d=s;break;case 5:l=s,u=n,d=c;break}return[l*255,u*255,d*255]},i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[a*255,o*255,s*255]},i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i,a,o;return i=t*3.2406+n*-1.5372+r*-.4986,a=t*-.9689+n*1.8758+r*.0415,o=t*.0557+n*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[i*255,a*255,o*255]},i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];return t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,[116*n-16,500*(t-n),200*(n-r)]},i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;let s=a**3,c=i**3,l=o**3;return a=s>.008856?s:(a-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],i;return i=Math.atan2(r,n)*360/2/Math.PI,i<0&&(i+=360),[t,Math.sqrt(n*n+r*r),i]},i.lch.lab=function(e){let t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},i.rgb.ansi16=function(e,t=null){let[n,r,a]=e,o=t===null?i.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return o===2&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5;return[(t&1)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){let t=(e-232)*10+8;return[t,t,t]}e-=16;let t;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return`000000`.substring(t.length)+t},i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a,s,c;return s=o<1?a/(1-o):0,c=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,c/=6,c%=1,[c*360,o*100,s*100]},i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],r*100,i*100]},i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let i=[0,0,0],a=t%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-n)*r,[(n*i[0]+c)*255,(n*i[1]+c)*255,(n*i[2]+c)*255]},i.hcg.hsv=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],r*100,n*100]},i.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],r*100,n*100]},i.hcg.hwb=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],(n-t)*100,(1-n)*100]},i.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return`000000`.substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),ie=a({"../../../node_modules/color-convert/route.js"(e,t){var n=re();function r(){let e={},t=Object.keys(n);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function i(e){let t=r(),i=[e];for(t[e].distance=0;i.length;){let e=i.pop(),r=Object.keys(n[e]);for(let n=r.length,a=0;a<n;a++){let n=r[a],o=t[n];o.distance===-1&&(o.distance=t[e].distance+1,o.parent=e,i.unshift(n))}}return t}function a(e,t){return function(n){return t(e(n))}}function o(e,t){let r=[t[e].parent,e],i=n[t[e].parent][e],o=t[e].parent;for(;t[o].parent;)r.unshift(t[o].parent),i=a(n[t[o].parent][o],i),o=t[o].parent;return i.conversion=r,i}t.exports=function(e){let t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){let e=r[i];t[e].parent!==null&&(n[e]=o(e,t))}return n}}}),T=r(a({"../../../node_modules/color-convert/index.js"(e,t){var n=re(),r=ie(),i={},a=Object.keys(n);function o(e){let t=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),e(t))};return`conversion`in e&&(t.conversion=e.conversion),t}function s(e){let t=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let r=e(t);if(typeof r==`object`)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return`conversion`in e&&(t.conversion=e.conversion),t}a.forEach(e=>{i[e]={},Object.defineProperty(i[e],"channels",{value:n[e].channels}),Object.defineProperty(i[e],"labels",{value:n[e].labels});let t=r(e);Object.keys(t).forEach(n=>{let r=t[n];i[e][n]=s(r),i[e][n].raw=o(r)})}),t.exports=i}})(),1),ae=Symbol(`partial.placeholder`),g.placeholder=ae,E=Symbol(`partialRight.placeholder`),te.placeholder=E,D=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},O=function(e){return`touches`in e},k=function(e){return e&&e.ownerDocument.defaultView||self},A=function(e,t,n){var r=e.getBoundingClientRect(),i=O(t)?(function(e,t){for(var n=0;n<e.length;n++)if(e[n].identifier===t)return e[n];return e[0]})(t.touches,n):t;return{left:D((i.pageX-(r.left+k(e).pageXOffset))/r.width),top:D((i.pageY-(r.top+k(e).pageYOffset))/r.height)}},oe=function(e){!O(e)&&e.preventDefault()},j=w.memo(function(e){var t=e.onMove,n=e.onKey,r=b(e,[`onMove`,`onKey`]),i=(0,w.useRef)(null),a=x(t),o=x(n),s=(0,w.useRef)(null),c=(0,w.useRef)(!1),l=(0,w.useMemo)(function(){var e=function(e){oe(e),(O(e)?e.touches.length>0:e.buttons>0)&&i.current?a(A(i.current,e,s.current)):n(!1)},t=function(){return n(!1)};function n(n){var r=c.current,a=k(i.current),o=n?a.addEventListener:a.removeEventListener;o(r?`touchmove`:`mousemove`,e),o(r?`touchend`:`mouseup`,t)}return[function(e){var t=e.nativeEvent,r=i.current;if(r&&(oe(t),!(function(e,t){return t&&!O(e)})(t,c.current)&&r)){if(O(t)){c.current=!0;var o=t.changedTouches||[];o.length&&(s.current=o[0].identifier)}r.focus(),a(A(r,t,s.current)),n(!0)}},function(e){var t=e.which||e.keyCode;t<37||t>40||(e.preventDefault(),o({left:t===39?.05:t===37?-.05:0,top:t===40?.05:t===38?-.05:0}))},n]},[o,a]),u=l[0],d=l[1],f=l[2];return(0,w.useEffect)(function(){return f},[f]),w.createElement(`div`,y({},r,{onTouchStart:u,onMouseDown:u,className:`react-colorful__interactive`,ref:i,onKeyDown:d,tabIndex:0,role:`slider`}))}),M=function(e){return e.filter(Boolean).join(` `)},N=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=M([`react-colorful__pointer`,e.className]);return w.createElement(`div`,{className:a,style:{top:100*i+`%`,left:100*n+`%`}},w.createElement(`div`,{className:`react-colorful__pointer-fill`,style:{backgroundColor:t}}))},P=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n},se={grad:.9,turn:360,rad:360/(2*Math.PI)},ce=function(e){return V(F(e))},F=function(e){return e[0]===`#`&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?P(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?P(parseInt(e.substring(6,8),16)/255,2):1}},le=function(e,t){return t===void 0&&(t=`deg`),Number(e)*(se[t]||1)},ue=function(e){var t=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?de({h:le(t[1],t[2]),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)}):{h:0,s:0,v:0,a:1}},de=function(e){var t=e.s,n=e.l;return{h:e.h,s:(t*=(n<50?n:100-n)/100)>0?2*t/(n+t)*100:0,v:n+t,a:e.a}},fe=function(e){return me(z(e))},I=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:P(e.h),s:P(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:P(i/2),a:P(r,2)}},L=function(e){var t=I(e);return`hsl(`+t.h+`, `+t.s+`%, `+t.l+`%)`},R=function(e){var t=I(e);return`hsla(`+t.h+`, `+t.s+`%, `+t.l+`%, `+t.a+`)`},z=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:P(255*[r,s,o,o,c,r][l]),g:P(255*[c,r,r,s,o,o][l]),b:P(255*[o,o,c,r,r,s][l]),a:P(i,2)}},pe=function(e){var t=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?V({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},me=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?B(P(255*i)):``;return`#`+B(t)+B(n)+B(r)+a},V=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:P(60*(s<0?s+6:s)),s:P(a?o/a*100:0),v:P(a/255*100),a:i}},H=w.memo(function(e){var t=e.hue,n=e.onChange,r=M([`react-colorful__hue`,e.className]);return w.createElement(`div`,{className:r},w.createElement(j,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:D(t+360*e.left,0,360)})},"aria-label":`Hue`,"aria-valuenow":P(t),"aria-valuemax":`360`,"aria-valuemin":`0`},w.createElement(N,{className:`react-colorful__hue-pointer`,left:t/360,color:L({h:t,s:100,v:100,a:1})})))}),U=w.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:L({h:t.h,s:100,v:100,a:1})};return w.createElement(`div`,{className:`react-colorful__saturation`,style:r},w.createElement(j,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:D(t.s+100*e.left,0,100),v:D(t.v-100*e.top,0,100)})},"aria-label":`Color`,"aria-valuetext":`Saturation `+P(t.s)+`%, Brightness `+P(t.v)+`%`},w.createElement(N,{className:`react-colorful__saturation-pointer`,top:1-t.v/100,left:t.s/100,color:L(t)})))}),W=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},G=function(e,t){return e.replace(/\s/g,``)===t.replace(/\s/g,``)},he=function(e,t){return e.toLowerCase()===t.toLowerCase()||W(F(e),F(t))},_e=typeof window<`u`?w.useLayoutEffect:w.useEffect,ve=function(){return ge||(typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0)},K=new Map,q=function(e){_e(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!K.has(t)){var n=t.createElement(`style`);n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,K.set(t,n);var r=ve();r&&n.setAttribute(`nonce`,r),t.head.appendChild(n)}},[])},ye=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u,className:`react-colorful__last-control`}))},be={defaultColor:`000`,toHsva:ce,fromHsva:function(e){return fe({h:e.h,s:e.s,v:e.v,a:1})},equal:he},xe=function(e){return w.createElement(ye,y({},e,{colorModel:be}))},Se=function(e){var t=e.className,n=e.hsva,r=e.onChange,i={backgroundImage:`linear-gradient(90deg, `+R(Object.assign({},n,{a:0}))+`, `+R(Object.assign({},n,{a:1}))+`)`},a=M([`react-colorful__alpha`,t]),o=P(100*n.a);return w.createElement(`div`,{className:a},w.createElement(`div`,{className:`react-colorful__alpha-gradient`,style:i}),w.createElement(j,{onMove:function(e){r({a:e.left})},onKey:function(e){r({a:D(n.a+e.left)})},"aria-label":`Alpha`,"aria-valuetext":o+`%`,"aria-valuenow":o,"aria-valuemin":`0`,"aria-valuemax":`100`},w.createElement(N,{className:`react-colorful__alpha-pointer`,left:n.a,color:R(n)})))},Ce=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u}),w.createElement(Se,{hsva:l,onChange:u,className:`react-colorful__last-control`}))},we={defaultColor:`hsla(0, 0%, 0%, 1)`,toHsva:ue,fromHsva:R,equal:G},Te=function(e){return w.createElement(Ce,y({},e,{colorModel:we}))},Ee={defaultColor:`rgba(0, 0, 0, 1)`,toHsva:pe,fromHsva:function(e){var t=z(e);return`rgba(`+t.r+`, `+t.g+`, `+t.b+`, `+t.a+`)`},equal:G},De=function(e){return w.createElement(Ce,y({},e,{colorModel:Ee}))},Oe=h.div({position:`relative`,maxWidth:250}),ke=h.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:`4px 4px 0 0`},".react-colorful__hue":{boxShadow:`inset 0 0 0 1px rgb(0 0 0 / 5%)`},".react-colorful__last-control":{borderRadius:`0 0 4px 4px`}}),Ae=h.div({display:`grid`,gridTemplateColumns:`repeat(9, 16px)`,gap:6,padding:3,marginTop:5,width:200}),je=e=>`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity="0.05" fill="${e?`white`:`black`}"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,Me=h(u)(({value:e,selected:t,theme:n})=>({width:16,height:16,boxShadow:t?`${n.appBorderColor} 0 0 0 1px inset, ${n.textMutedColor}50 0 0 0 4px`:`${n.appBorderColor} 0 0 0 1px inset`,border:`none`,borderRadius:n.appBorderRadius,"&, &:hover":{background:`unset`,backgroundColor:`unset`,backgroundImage:`linear-gradient(${e}, ${e}), ${je(n.base===`dark`)}`}})),Ne=h(l.Input)(({theme:e})=>({width:`100%`,paddingLeft:30,paddingRight:30,boxSizing:`border-box`,fontFamily:e.typography.fonts.base,'[aria-readonly="true"] > &':{background:e.base===`light`?e.color.lighter:`transparent`}})),Pe=h(Me)(({disabled:e})=>({position:`absolute`,top:4,left:4,zIndex:1,cursor:e?`not-allowed`:`pointer`})),Fe=h(u)(({theme:e})=>({position:`absolute`,zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:`border-box`,cursor:`pointer`,color:e.input.color})),Ie=(e=>(e.RGB=`rgb`,e.HSL=`hsl`,e.HEX=`hex`,e))(Ie||{}),J=Object.values(Ie),Le=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Re=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,ze=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,Y=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Be=/^\s*#?([0-9a-f]{3})\s*$/i,Ve={hex:xe,rgb:De,hsl:Te},X={hex:`transparent`,rgb:`rgba(0, 0, 0, 0)`,hsl:`hsla(0, 0%, 0%, 0)`},He=e=>{let t=e?.match(Le);if(!t)return[0,0,0,1];let[,n,r,i,a=1]=t;return[n,r,i,a].map(Number)},Ue=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.rgb.hsl([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.rgb.keyword([t,n,r]),colorSpace:`rgb`,rgb:e,hsl:`hsla(${a}, ${o}%, ${s}%, ${i})`,hex:`#${T.default.rgb.hex([t,n,r]).toLowerCase()}`}},We=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.hsl.rgb([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.hsl.keyword([t,n,r]),colorSpace:`hsl`,rgb:`rgba(${a}, ${o}, ${s}, ${i})`,hsl:e,hex:`#${T.default.hsl.hex([t,n,r]).toLowerCase()}`}},Ge=e=>{let t=e.replace(`#`,``),n=T.default.keyword.rgb(t)||T.default.hex.rgb(t),r=T.default.rgb.hsl(n),i=e;/[^#a-f0-9]/i.test(e)?i=t:Y.test(e)&&(i=`#${t}`);let a=!0;if(i.startsWith(`#`))a=Y.test(i);else try{T.default.keyword.hex(i)}catch{a=!1}return{valid:a,value:i,keyword:T.default.rgb.keyword(n),colorSpace:`hex`,rgb:`rgba(${n[0]}, ${n[1]}, ${n[2]}, 1)`,hsl:`hsla(${r[0]}, ${r[1]}%, ${r[2]}%, 1)`,hex:i}},Z=e=>{if(e)return Re.test(e)?Ue(e):ze.test(e)?We(e):Ge(e)},Ke=(e,t,n)=>{if(!e||!t?.valid)return X[n];if(n!==`hex`)return t?.[n]||X[n];if(!t.hex.startsWith(`#`))try{return`#${T.default.keyword.hex(t.hex)}`}catch{return X.hex}let r=t.hex.match(Be);if(!r)return Y.test(t.hex)?t.hex:X.hex;let[i,a,o]=r[1].split(``);return`#${i}${i}${a}${a}${o}${o}`},qe=(e,t)=>{let[n,r]=(0,C.useState)(e||``),[i,a]=(0,C.useState)(()=>Z(n)),[o,s]=(0,C.useState)(i?.colorSpace||`hex`);return(0,C.useEffect)(()=>{let t=e||``,n=Z(t);r(t),a(n),s(n?.colorSpace||`hex`)},[e]),{value:n,realValue:(0,C.useMemo)(()=>Ke(n,i,o).toLowerCase(),[n,i,o]),updateValue:(0,C.useCallback)(e=>{let n=Z(e),i=n?.value||e||``;r(i),i===``&&(a(void 0),t(void 0)),n&&(a(n),s(n.colorSpace),t(n.value))},[t]),color:i,colorSpace:o,cycleColorSpace:(0,C.useCallback)(()=>{let e=J[(J.indexOf(o)+1)%J.length];s(e);let n=i?.[e]||``;r(n),t(n)},[i,o,t])}},Q=e=>e.replace(/\s*/,``).toLowerCase(),Je=(e,t,n,r=27)=>{let[i,a]=(0,C.useState)(t?.valid?[t]:[]);(0,C.useEffect)(()=>{t===void 0&&a([])},[t]);let o=(0,C.useMemo)(()=>{let t=(e||[]).map(e=>typeof e==`string`?Z(e):e.title?{...Z(e.color),keyword:e.title}:Z(e.color)).concat(i).filter(Boolean);if(r===0||r===1/0)return t;let n=Number.isInteger(r)&&r>0?r:27;return t.slice(-n)},[e,i,r]);return{presets:o,addPreset:(0,C.useCallback)(e=>{e?.valid&&(o.some(t=>t&&t[n]&&Q(t[n]||``)===Q(e[n]||``))||a(t=>t.concat(e)))},[n,o])}},$=({name:e,storyId:t,value:n,onChange:r,onFocus:i,onBlur:a,presetColors:o,maxPresetColors:c,startOpen:l=!1,argType:u})=>{let{value:d,realValue:m,updateValue:h,color:g,colorSpace:_,cycleColorSpace:te}=qe(n,(0,C.useCallback)(ee(r,200),[r])),{presets:v,addPreset:y}=Je(o??[],g,_,c),b=Ve[_],x=!!u?.table?.readonly,S=f(e,t);return C.createElement(Oe,null,C.createElement(`label`,{htmlFor:S,className:`sb-sr-only`},e),C.createElement(Ne,{id:S,value:d,onChange:e=>h(e.target.value),onFocus:e=>e.target.select(),readOnly:x,placeholder:`Choose color...`}),C.createElement(s,{ariaLabel:`Color picker`,defaultVisible:l,visible:x?!1:void 0,onVisibleChange:()=>g&&y(g),popover:C.createElement(ke,null,C.createElement(b,{color:m===`transparent`?`#000000`:m,onChange:h,onFocus:i,onBlur:a}),v.length>0&&C.createElement(Ae,null,v.map((e,t)=>C.createElement(Me,{key:`${e?.value||t}-${t}`,variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Pick this color`,tooltip:e?.keyword||e?.value||``,value:e?.value||``,selected:!!(g&&e&&e[_]&&Q(e[_]||``)===Q(g[_])),onClick:()=>e&&h(e.value||``)}))))},C.createElement(Pe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Open color picker`,value:m,style:{margin:4},disabled:x})),d?C.createElement(Fe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Cycle through color spaces`,disabled:x,onClick:x?void 0:te},C.createElement(p,null)):null)},Ye=$}))();export{$ as ColorControl,Ye as default};
1
+ import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n,n as r,r as i,t as a}from"./iframe-B1ZJmGrq.js";import{S as o,_ as s,b as c,g as l,h as u,v as d,x as f,y as p}from"./blocks-CcO3Y_Rh.js";import{a as m,l as h}from"./theming-c9hibVvV.js";function ee(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function g(e,...t){return _(e,ae,...t)}function _(e,t,...n){let r=function(...r){let i=0,a=n.slice().map(e=>e===t?r[i++]:e),o=r.slice(i);return e.apply(this,a.concat(o))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function te(e,...t){return v(e,E,...t)}function v(e,t,...n){let r=function(...r){let i=n.filter(e=>e===t).length,a=Math.max(r.length-i,0),o=r.slice(0,a),s=a,c=n.slice().map(e=>e===t?r[s++]:e);return e.apply(this,o.concat(c))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function b(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function x(e){var t=(0,w.useRef)(e),n=(0,w.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}function S(e,t,n){var r=x(n),i=(0,w.useState)(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=(0,w.useRef)({color:t,hsva:a});return(0,w.useEffect)(function(){if(!e.equal(t,s.current.color)){var n=e.toHsva(t);s.current={hsva:n,color:t},o(n)}},[t,e]),(0,w.useEffect)(function(){var t;W(a,s.current.hsva)||e.equal(t=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:t},r(t))},[a,e,r]),[a,(0,w.useCallback)(function(e){o(function(t){return Object.assign({},t,e)})},[])]}var C,w,ne,re,ie,T,ae,E,D,O,k,A,oe,j,M,N,P,se,ce,F,le,ue,de,fe,I,L,R,z,pe,B,me,V,H,U,W,G,he,ge,_e,ve,K,q,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,J,Le,Re,ze,Y,Be,Ve,X,He,Ue,We,Ge,Z,Ke,qe,Q,Je,$,Ye;t((()=>{o(),i(),C=e(n(),1),d(),c(),w=e(n(),1),m(),ne=a({"../../../node_modules/color-name/index.js"(e,t){t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),re=a({"../../../node_modules/color-convert/conversions.js"(e,t){var n=ne(),r={};for(let e of Object.keys(n))r[n[e]]=e;var i={rgb:{channels:3,labels:`rgb`},hsl:{channels:3,labels:`hsl`},hsv:{channels:3,labels:`hsv`},hwb:{channels:3,labels:`hwb`},cmyk:{channels:4,labels:`cmyk`},xyz:{channels:3,labels:`xyz`},lab:{channels:3,labels:`lab`},lch:{channels:3,labels:`lch`},hex:{channels:1,labels:[`hex`]},keyword:{channels:1,labels:[`keyword`]},ansi16:{channels:1,labels:[`ansi16`]},ansi256:{channels:1,labels:[`ansi256`]},hcg:{channels:3,labels:[`h`,`c`,`g`]},apple:{channels:3,labels:[`r16`,`g16`,`b16`]},gray:{channels:1,labels:[`gray`]}};t.exports=i;for(let e of Object.keys(i)){if(!(`channels`in i[e]))throw Error(`missing channels property: `+e);if(!(`labels`in i[e]))throw Error(`missing channel labels property: `+e);if(i[e].labels.length!==i[e].channels)throw Error(`channel and label counts mismatch: `+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s,c;a===i?s=0:t===a?s=(n-r)/o:n===a?s=2+(r-t)/o:r===a&&(s=4+(t-n)/o),s=Math.min(s*60,360),s<0&&(s+=360);let l=(i+a)/2;return c=a===i?0:l<=.5?o/(a+i):o/(2-a-i),[s,c*100,l*100]},i.rgb.hsv=function(e){let t,n,r,i,a,o=e[0]/255,s=e[1]/255,c=e[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),d=function(e){return(l-e)/6/u+1/2};return u===0?(i=0,a=0):(a=u/l,t=d(o),n=d(s),r=d(c),o===l?i=r-n:s===l?i=1/3+t-r:c===l&&(i=2/3+n-t),i<0?i+=1:i>1&&--i),[i*360,a*100,l*100]},i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],a=i.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[a,o*100,r*100]},i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[a*100,o*100,s*100,i*100]};function a(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=r[e];if(t)return t;let i=1/0,o;for(let t of Object.keys(n)){let r=n[t],s=a(e,r);s<i&&(i=s,o=t)}return o},i.keyword.rgb=function(e){return n[e]},i.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=t*.4124+n*.3576+r*.1805,a=t*.2126+n*.7152+r*.0722,o=t*.0193+n*.1192+r*.9505;return[i*100,a*100,o*100]},i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return n/=95.047,r/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,[116*r-16,500*(n-r),200*(r-a)]},i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i,a,o;if(n===0)return o=r*255,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;let s=2*r-i,c=[0,0,0];for(let e=0;e<3;e++)a=t+1/3*-(e-1),a<0&&a++,a>1&&a--,o=6*a<1?s+(i-s)*6*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,c[e]=o*255;return c},i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;let o=(r+n)/2;return[t,(r===0?2*i/(a+i):2*n/(r+n))*100,o*100]},i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),c=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,c,o];case 1:return[s,r,o];case 2:return[o,r,c];case 3:return[o,s,r];case 4:return[c,o,r];case 5:return[r,o,s]}},i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01),a,o;o=(2-n)*r;let s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a||=0,o/=2,[t,a*100,o*100]},i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i=n+r,a;i>1&&(n/=i,r/=i);let o=Math.floor(6*t),s=1-r;a=6*t-o,o&1&&(a=1-a);let c=n+a*(s-n),l,u,d;switch(o){default:case 6:case 0:l=s,u=c,d=n;break;case 1:l=c,u=s,d=n;break;case 2:l=n,u=s,d=c;break;case 3:l=n,u=c,d=s;break;case 4:l=c,u=n,d=s;break;case 5:l=s,u=n,d=c;break}return[l*255,u*255,d*255]},i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[a*255,o*255,s*255]},i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i,a,o;return i=t*3.2406+n*-1.5372+r*-.4986,a=t*-.9689+n*1.8758+r*.0415,o=t*.0557+n*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[i*255,a*255,o*255]},i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];return t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,[116*n-16,500*(t-n),200*(n-r)]},i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;let s=a**3,c=i**3,l=o**3;return a=s>.008856?s:(a-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],i;return i=Math.atan2(r,n)*360/2/Math.PI,i<0&&(i+=360),[t,Math.sqrt(n*n+r*r),i]},i.lch.lab=function(e){let t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},i.rgb.ansi16=function(e,t=null){let[n,r,a]=e,o=t===null?i.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return o===2&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5;return[(t&1)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){let t=(e-232)*10+8;return[t,t,t]}e-=16;let t;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return`000000`.substring(t.length)+t},i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a,s,c;return s=o<1?a/(1-o):0,c=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,c/=6,c%=1,[c*360,o*100,s*100]},i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],r*100,i*100]},i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let i=[0,0,0],a=t%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-n)*r,[(n*i[0]+c)*255,(n*i[1]+c)*255,(n*i[2]+c)*255]},i.hcg.hsv=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],r*100,n*100]},i.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],r*100,n*100]},i.hcg.hwb=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],(n-t)*100,(1-n)*100]},i.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return`000000`.substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),ie=a({"../../../node_modules/color-convert/route.js"(e,t){var n=re();function r(){let e={},t=Object.keys(n);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function i(e){let t=r(),i=[e];for(t[e].distance=0;i.length;){let e=i.pop(),r=Object.keys(n[e]);for(let n=r.length,a=0;a<n;a++){let n=r[a],o=t[n];o.distance===-1&&(o.distance=t[e].distance+1,o.parent=e,i.unshift(n))}}return t}function a(e,t){return function(n){return t(e(n))}}function o(e,t){let r=[t[e].parent,e],i=n[t[e].parent][e],o=t[e].parent;for(;t[o].parent;)r.unshift(t[o].parent),i=a(n[t[o].parent][o],i),o=t[o].parent;return i.conversion=r,i}t.exports=function(e){let t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){let e=r[i];t[e].parent!==null&&(n[e]=o(e,t))}return n}}}),T=r(a({"../../../node_modules/color-convert/index.js"(e,t){var n=re(),r=ie(),i={},a=Object.keys(n);function o(e){let t=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),e(t))};return`conversion`in e&&(t.conversion=e.conversion),t}function s(e){let t=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let r=e(t);if(typeof r==`object`)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return`conversion`in e&&(t.conversion=e.conversion),t}a.forEach(e=>{i[e]={},Object.defineProperty(i[e],"channels",{value:n[e].channels}),Object.defineProperty(i[e],"labels",{value:n[e].labels});let t=r(e);Object.keys(t).forEach(n=>{let r=t[n];i[e][n]=s(r),i[e][n].raw=o(r)})}),t.exports=i}})(),1),ae=Symbol(`partial.placeholder`),g.placeholder=ae,E=Symbol(`partialRight.placeholder`),te.placeholder=E,D=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},O=function(e){return`touches`in e},k=function(e){return e&&e.ownerDocument.defaultView||self},A=function(e,t,n){var r=e.getBoundingClientRect(),i=O(t)?(function(e,t){for(var n=0;n<e.length;n++)if(e[n].identifier===t)return e[n];return e[0]})(t.touches,n):t;return{left:D((i.pageX-(r.left+k(e).pageXOffset))/r.width),top:D((i.pageY-(r.top+k(e).pageYOffset))/r.height)}},oe=function(e){!O(e)&&e.preventDefault()},j=w.memo(function(e){var t=e.onMove,n=e.onKey,r=b(e,[`onMove`,`onKey`]),i=(0,w.useRef)(null),a=x(t),o=x(n),s=(0,w.useRef)(null),c=(0,w.useRef)(!1),l=(0,w.useMemo)(function(){var e=function(e){oe(e),(O(e)?e.touches.length>0:e.buttons>0)&&i.current?a(A(i.current,e,s.current)):n(!1)},t=function(){return n(!1)};function n(n){var r=c.current,a=k(i.current),o=n?a.addEventListener:a.removeEventListener;o(r?`touchmove`:`mousemove`,e),o(r?`touchend`:`mouseup`,t)}return[function(e){var t=e.nativeEvent,r=i.current;if(r&&(oe(t),!(function(e,t){return t&&!O(e)})(t,c.current)&&r)){if(O(t)){c.current=!0;var o=t.changedTouches||[];o.length&&(s.current=o[0].identifier)}r.focus(),a(A(r,t,s.current)),n(!0)}},function(e){var t=e.which||e.keyCode;t<37||t>40||(e.preventDefault(),o({left:t===39?.05:t===37?-.05:0,top:t===40?.05:t===38?-.05:0}))},n]},[o,a]),u=l[0],d=l[1],f=l[2];return(0,w.useEffect)(function(){return f},[f]),w.createElement(`div`,y({},r,{onTouchStart:u,onMouseDown:u,className:`react-colorful__interactive`,ref:i,onKeyDown:d,tabIndex:0,role:`slider`}))}),M=function(e){return e.filter(Boolean).join(` `)},N=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=M([`react-colorful__pointer`,e.className]);return w.createElement(`div`,{className:a,style:{top:100*i+`%`,left:100*n+`%`}},w.createElement(`div`,{className:`react-colorful__pointer-fill`,style:{backgroundColor:t}}))},P=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n},se={grad:.9,turn:360,rad:360/(2*Math.PI)},ce=function(e){return V(F(e))},F=function(e){return e[0]===`#`&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?P(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?P(parseInt(e.substring(6,8),16)/255,2):1}},le=function(e,t){return t===void 0&&(t=`deg`),Number(e)*(se[t]||1)},ue=function(e){var t=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?de({h:le(t[1],t[2]),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)}):{h:0,s:0,v:0,a:1}},de=function(e){var t=e.s,n=e.l;return{h:e.h,s:(t*=(n<50?n:100-n)/100)>0?2*t/(n+t)*100:0,v:n+t,a:e.a}},fe=function(e){return me(z(e))},I=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:P(e.h),s:P(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:P(i/2),a:P(r,2)}},L=function(e){var t=I(e);return`hsl(`+t.h+`, `+t.s+`%, `+t.l+`%)`},R=function(e){var t=I(e);return`hsla(`+t.h+`, `+t.s+`%, `+t.l+`%, `+t.a+`)`},z=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:P(255*[r,s,o,o,c,r][l]),g:P(255*[c,r,r,s,o,o][l]),b:P(255*[o,o,c,r,r,s][l]),a:P(i,2)}},pe=function(e){var t=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?V({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},me=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?B(P(255*i)):``;return`#`+B(t)+B(n)+B(r)+a},V=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:P(60*(s<0?s+6:s)),s:P(a?o/a*100:0),v:P(a/255*100),a:i}},H=w.memo(function(e){var t=e.hue,n=e.onChange,r=M([`react-colorful__hue`,e.className]);return w.createElement(`div`,{className:r},w.createElement(j,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:D(t+360*e.left,0,360)})},"aria-label":`Hue`,"aria-valuenow":P(t),"aria-valuemax":`360`,"aria-valuemin":`0`},w.createElement(N,{className:`react-colorful__hue-pointer`,left:t/360,color:L({h:t,s:100,v:100,a:1})})))}),U=w.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:L({h:t.h,s:100,v:100,a:1})};return w.createElement(`div`,{className:`react-colorful__saturation`,style:r},w.createElement(j,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:D(t.s+100*e.left,0,100),v:D(t.v-100*e.top,0,100)})},"aria-label":`Color`,"aria-valuetext":`Saturation `+P(t.s)+`%, Brightness `+P(t.v)+`%`},w.createElement(N,{className:`react-colorful__saturation-pointer`,top:1-t.v/100,left:t.s/100,color:L(t)})))}),W=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},G=function(e,t){return e.replace(/\s/g,``)===t.replace(/\s/g,``)},he=function(e,t){return e.toLowerCase()===t.toLowerCase()||W(F(e),F(t))},_e=typeof window<`u`?w.useLayoutEffect:w.useEffect,ve=function(){return ge||(typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0)},K=new Map,q=function(e){_e(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!K.has(t)){var n=t.createElement(`style`);n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,K.set(t,n);var r=ve();r&&n.setAttribute(`nonce`,r),t.head.appendChild(n)}},[])},ye=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u,className:`react-colorful__last-control`}))},be={defaultColor:`000`,toHsva:ce,fromHsva:function(e){return fe({h:e.h,s:e.s,v:e.v,a:1})},equal:he},xe=function(e){return w.createElement(ye,y({},e,{colorModel:be}))},Se=function(e){var t=e.className,n=e.hsva,r=e.onChange,i={backgroundImage:`linear-gradient(90deg, `+R(Object.assign({},n,{a:0}))+`, `+R(Object.assign({},n,{a:1}))+`)`},a=M([`react-colorful__alpha`,t]),o=P(100*n.a);return w.createElement(`div`,{className:a},w.createElement(`div`,{className:`react-colorful__alpha-gradient`,style:i}),w.createElement(j,{onMove:function(e){r({a:e.left})},onKey:function(e){r({a:D(n.a+e.left)})},"aria-label":`Alpha`,"aria-valuetext":o+`%`,"aria-valuenow":o,"aria-valuemin":`0`,"aria-valuemax":`100`},w.createElement(N,{className:`react-colorful__alpha-pointer`,left:n.a,color:R(n)})))},Ce=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u}),w.createElement(Se,{hsva:l,onChange:u,className:`react-colorful__last-control`}))},we={defaultColor:`hsla(0, 0%, 0%, 1)`,toHsva:ue,fromHsva:R,equal:G},Te=function(e){return w.createElement(Ce,y({},e,{colorModel:we}))},Ee={defaultColor:`rgba(0, 0, 0, 1)`,toHsva:pe,fromHsva:function(e){var t=z(e);return`rgba(`+t.r+`, `+t.g+`, `+t.b+`, `+t.a+`)`},equal:G},De=function(e){return w.createElement(Ce,y({},e,{colorModel:Ee}))},Oe=h.div({position:`relative`,maxWidth:250}),ke=h.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:`4px 4px 0 0`},".react-colorful__hue":{boxShadow:`inset 0 0 0 1px rgb(0 0 0 / 5%)`},".react-colorful__last-control":{borderRadius:`0 0 4px 4px`}}),Ae=h.div({display:`grid`,gridTemplateColumns:`repeat(9, 16px)`,gap:6,padding:3,marginTop:5,width:200}),je=e=>`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity="0.05" fill="${e?`white`:`black`}"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,Me=h(u)(({value:e,selected:t,theme:n})=>({width:16,height:16,boxShadow:t?`${n.appBorderColor} 0 0 0 1px inset, ${n.textMutedColor}50 0 0 0 4px`:`${n.appBorderColor} 0 0 0 1px inset`,border:`none`,borderRadius:n.appBorderRadius,"&, &:hover":{background:`unset`,backgroundColor:`unset`,backgroundImage:`linear-gradient(${e}, ${e}), ${je(n.base===`dark`)}`}})),Ne=h(l.Input)(({theme:e})=>({width:`100%`,paddingLeft:30,paddingRight:30,boxSizing:`border-box`,fontFamily:e.typography.fonts.base,'[aria-readonly="true"] > &':{background:e.base===`light`?e.color.lighter:`transparent`}})),Pe=h(Me)(({disabled:e})=>({position:`absolute`,top:4,left:4,zIndex:1,cursor:e?`not-allowed`:`pointer`})),Fe=h(u)(({theme:e})=>({position:`absolute`,zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:`border-box`,cursor:`pointer`,color:e.input.color})),Ie=(e=>(e.RGB=`rgb`,e.HSL=`hsl`,e.HEX=`hex`,e))(Ie||{}),J=Object.values(Ie),Le=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Re=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,ze=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,Y=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Be=/^\s*#?([0-9a-f]{3})\s*$/i,Ve={hex:xe,rgb:De,hsl:Te},X={hex:`transparent`,rgb:`rgba(0, 0, 0, 0)`,hsl:`hsla(0, 0%, 0%, 0)`},He=e=>{let t=e?.match(Le);if(!t)return[0,0,0,1];let[,n,r,i,a=1]=t;return[n,r,i,a].map(Number)},Ue=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.rgb.hsl([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.rgb.keyword([t,n,r]),colorSpace:`rgb`,rgb:e,hsl:`hsla(${a}, ${o}%, ${s}%, ${i})`,hex:`#${T.default.rgb.hex([t,n,r]).toLowerCase()}`}},We=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.hsl.rgb([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.hsl.keyword([t,n,r]),colorSpace:`hsl`,rgb:`rgba(${a}, ${o}, ${s}, ${i})`,hsl:e,hex:`#${T.default.hsl.hex([t,n,r]).toLowerCase()}`}},Ge=e=>{let t=e.replace(`#`,``),n=T.default.keyword.rgb(t)||T.default.hex.rgb(t),r=T.default.rgb.hsl(n),i=e;/[^#a-f0-9]/i.test(e)?i=t:Y.test(e)&&(i=`#${t}`);let a=!0;if(i.startsWith(`#`))a=Y.test(i);else try{T.default.keyword.hex(i)}catch{a=!1}return{valid:a,value:i,keyword:T.default.rgb.keyword(n),colorSpace:`hex`,rgb:`rgba(${n[0]}, ${n[1]}, ${n[2]}, 1)`,hsl:`hsla(${r[0]}, ${r[1]}%, ${r[2]}%, 1)`,hex:i}},Z=e=>{if(e)return Re.test(e)?Ue(e):ze.test(e)?We(e):Ge(e)},Ke=(e,t,n)=>{if(!e||!t?.valid)return X[n];if(n!==`hex`)return t?.[n]||X[n];if(!t.hex.startsWith(`#`))try{return`#${T.default.keyword.hex(t.hex)}`}catch{return X.hex}let r=t.hex.match(Be);if(!r)return Y.test(t.hex)?t.hex:X.hex;let[i,a,o]=r[1].split(``);return`#${i}${i}${a}${a}${o}${o}`},qe=(e,t)=>{let[n,r]=(0,C.useState)(e||``),[i,a]=(0,C.useState)(()=>Z(n)),[o,s]=(0,C.useState)(i?.colorSpace||`hex`);return(0,C.useEffect)(()=>{let t=e||``,n=Z(t);r(t),a(n),s(n?.colorSpace||`hex`)},[e]),{value:n,realValue:(0,C.useMemo)(()=>Ke(n,i,o).toLowerCase(),[n,i,o]),updateValue:(0,C.useCallback)(e=>{let n=Z(e),i=n?.value||e||``;r(i),i===``&&(a(void 0),t(void 0)),n&&(a(n),s(n.colorSpace),t(n.value))},[t]),color:i,colorSpace:o,cycleColorSpace:(0,C.useCallback)(()=>{let e=J[(J.indexOf(o)+1)%J.length];s(e);let n=i?.[e]||``;r(n),t(n)},[i,o,t])}},Q=e=>e.replace(/\s*/,``).toLowerCase(),Je=(e,t,n,r=27)=>{let[i,a]=(0,C.useState)(t?.valid?[t]:[]);(0,C.useEffect)(()=>{t===void 0&&a([])},[t]);let o=(0,C.useMemo)(()=>{let t=(e||[]).map(e=>typeof e==`string`?Z(e):e.title?{...Z(e.color),keyword:e.title}:Z(e.color)).concat(i).filter(Boolean);if(r===0||r===1/0)return t;let n=Number.isInteger(r)&&r>0?r:27;return t.slice(-n)},[e,i,r]);return{presets:o,addPreset:(0,C.useCallback)(e=>{e?.valid&&(o.some(t=>t&&t[n]&&Q(t[n]||``)===Q(e[n]||``))||a(t=>t.concat(e)))},[n,o])}},$=({name:e,storyId:t,value:n,onChange:r,onFocus:i,onBlur:a,presetColors:o,maxPresetColors:c,startOpen:l=!1,argType:u})=>{let{value:d,realValue:m,updateValue:h,color:g,colorSpace:_,cycleColorSpace:te}=qe(n,(0,C.useCallback)(ee(r,200),[r])),{presets:v,addPreset:y}=Je(o??[],g,_,c),b=Ve[_],x=!!u?.table?.readonly,S=f(e,t);return C.createElement(Oe,null,C.createElement(`label`,{htmlFor:S,className:`sb-sr-only`},e),C.createElement(Ne,{id:S,value:d,onChange:e=>h(e.target.value),onFocus:e=>e.target.select(),readOnly:x,placeholder:`Choose color...`}),C.createElement(s,{ariaLabel:`Color picker`,defaultVisible:l,visible:x?!1:void 0,onVisibleChange:()=>g&&y(g),popover:C.createElement(ke,null,C.createElement(b,{color:m===`transparent`?`#000000`:m,onChange:h,onFocus:i,onBlur:a}),v.length>0&&C.createElement(Ae,null,v.map((e,t)=>C.createElement(Me,{key:`${e?.value||t}-${t}`,variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Pick this color`,tooltip:e?.keyword||e?.value||``,value:e?.value||``,selected:!!(g&&e&&e[_]&&Q(e[_]||``)===Q(g[_])),onClick:()=>e&&h(e.value||``)}))))},C.createElement(Pe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Open color picker`,value:m,style:{margin:4},disabled:x})),d?C.createElement(Fe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Cycle through color spaces`,disabled:x,onClick:x?void 0:te},C.createElement(p,null)):null)},Ye=$}))();export{$ as ColorControl,Ye as default};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,p as s,r as c,u as l}from"./blocks-CwEU-ME1.js";import{t as u}from"./jsx-runtime-BBQGix-2.js";import{t as d}from"./mdx-react-shim-DnKFgFHy.js";import{ContextMenuBasic as f,ControlledDropdown as p,DropdownMenuBasic as m,n as h,t as g}from"./ContextMenu.stories-BJr53bsq.js";function _(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,p as s,r as c,u as l}from"./blocks-CcO3Y_Rh.js";import{t as u}from"./jsx-runtime-BBQGix-2.js";import{t as d}from"./mdx-react-shim-BGEl8pi6.js";import{ContextMenuBasic as f,ControlledDropdown as p,DropdownMenuBasic as m,n as h,t as g}from"./ContextMenu.stories-D-Xnld63.js";function _(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,y.jsx)(s,{children:`ContextMenu`}),`
3
3
  `,(0,y.jsx)(i,{children:`Контекстные и dropdown-меню для локальных действий в списках, карточках и рабочих областях`}),`
4
4
  `,(0,y.jsx)(o.p,{children:`ContextMenu уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.