@ryuzaki13/react-foundation-ui 1.0.8 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/README.md +457 -10
  2. package/dist/advanced-search/index.js +11 -11
  3. package/dist/badge/index.js +1 -1
  4. package/dist/base-table/index.js +1 -1
  5. package/dist/button/index.js +2 -23
  6. package/dist/check-box/index.js +1 -1
  7. package/dist/chunks/{CalendarView-DjeTJkTT.js → CalendarView-DCQjO2ho.js} +2 -2
  8. package/dist/chunks/{CalendarView-DjeTJkTT.js.map → CalendarView-DCQjO2ho.js.map} +1 -1
  9. package/dist/chunks/{odata-DSW7z3nh.js → SelectOptionContent-lfEtHXfO.js} +404 -381
  10. package/dist/chunks/SelectOptionContent-lfEtHXfO.js.map +1 -0
  11. package/dist/chunks/{TextEditorLexicalClient-16S18Yir.js → TextEditorLexicalClient-Bca3FOUs.js} +8 -8
  12. package/dist/chunks/{TextEditorLexicalClient-16S18Yir.js.map → TextEditorLexicalClient-Bca3FOUs.js.map} +1 -1
  13. package/dist/chunks/{BadgeList-DYgun2rf.js → badge-BfbLPk0z.js} +2 -2
  14. package/dist/chunks/badge-BfbLPk0z.js.map +1 -0
  15. package/dist/chunks/{base-table-CoQlKABk.js → base-table-CiYSRI_J.js} +4 -4
  16. package/dist/chunks/{base-table-CoQlKABk.js.map → base-table-CiYSRI_J.js.map} +1 -1
  17. package/dist/chunks/button-CC0Jdx1j.js +72 -0
  18. package/dist/chunks/button-CC0Jdx1j.js.map +1 -0
  19. package/dist/chunks/{CheckBox-BowNqqd3.js → check-box-BowNqqd3.js} +1 -1
  20. package/dist/chunks/check-box-BowNqqd3.js.map +1 -0
  21. package/dist/chunks/{DropdownMenu-DQeR3y7M.js → context-menu-DQeR3y7M.js} +1 -1
  22. package/dist/chunks/context-menu-DQeR3y7M.js.map +1 -0
  23. package/dist/chunks/{DateInput-BTJ-QTUx.js → date-input-DjAQ75n9.js} +5 -5
  24. package/dist/chunks/date-input-DjAQ75n9.js.map +1 -0
  25. package/dist/chunks/{DateRangePresetSelect-UgsfaOeM.js → date-range-preset-select-UgsfaOeM.js} +1 -1
  26. package/dist/chunks/date-range-preset-select-UgsfaOeM.js.map +1 -0
  27. package/dist/chunks/{Flex-DUYSL5TE.js → flex-CPO6xlPR.js} +38 -33
  28. package/dist/chunks/{Flex-DUYSL5TE.js.map → flex-CPO6xlPR.js.map} +1 -1
  29. package/dist/chunks/{Grid-ByIIytjh.js → grid-ByIIytjh.js} +1 -1
  30. package/dist/chunks/{Grid-ByIIytjh.js.map → grid-ByIIytjh.js.map} +1 -1
  31. package/dist/chunks/{Input-anSjiM9b.js → input-CZLUUggm.js} +10 -2
  32. package/dist/chunks/input-CZLUUggm.js.map +1 -0
  33. package/dist/chunks/{InputFiles-XBQxkHdB.js → input-files-aB8iaqGk.js} +5 -5
  34. package/dist/chunks/input-files-aB8iaqGk.js.map +1 -0
  35. package/dist/chunks/{input-search-B_njjJuV.js → input-search-eMvnvgV0.js} +2 -2
  36. package/dist/chunks/{input-search-B_njjJuV.js.map → input-search-eMvnvgV0.js.map} +1 -1
  37. package/dist/chunks/{misc-DoqZBMof.js → misc-1PxS8OWD.js} +2 -2
  38. package/dist/chunks/{misc-DoqZBMof.js.map → misc-1PxS8OWD.js.map} +1 -1
  39. package/dist/chunks/{modal-ByNRME3b.js → modal-C0j0hEIt.js} +5 -5
  40. package/dist/chunks/{modal-ByNRME3b.js.map → modal-C0j0hEIt.js.map} +1 -1
  41. package/dist/chunks/multi-select-r0ekR6Bh.js +541 -0
  42. package/dist/chunks/multi-select-r0ekR6Bh.js.map +1 -0
  43. package/dist/chunks/{picker-Du7Y4-el.js → picker-beNX-cW9.js} +11 -11
  44. package/dist/chunks/{picker-Du7Y4-el.js.map → picker-beNX-cW9.js.map} +1 -1
  45. package/dist/chunks/{RadioGroup-B9XjkcOy.js → radio-group-B9XjkcOy.js} +1 -1
  46. package/dist/chunks/radio-group-B9XjkcOy.js.map +1 -0
  47. package/dist/chunks/select-CFbZS7fx.js +284 -0
  48. package/dist/chunks/select-CFbZS7fx.js.map +1 -0
  49. package/dist/chunks/{table-Dc3AqMzP.js → table-BR2VqeEg.js} +2 -2
  50. package/dist/chunks/{table-Dc3AqMzP.js.map → table-BR2VqeEg.js.map} +1 -1
  51. package/dist/chunks/{toolbar-BCZNdRXM.js → toolbar-XCDeS2Li.js} +2 -2
  52. package/dist/chunks/{toolbar-BCZNdRXM.js.map → toolbar-XCDeS2Li.js.map} +1 -1
  53. package/dist/chunks/{useODataSelectBase-BbeKdq6x.js → useODataSelectBase-BxAvhDww.js} +2 -2
  54. package/dist/chunks/{useODataSelectBase-BbeKdq6x.js.map → useODataSelectBase-BxAvhDww.js.map} +1 -1
  55. package/dist/context-menu/index.js +1 -1
  56. package/dist/date-input/index.js +2 -2
  57. package/dist/date-range-preset-select/index.js +1 -1
  58. package/dist/date-time-input/index.js +458 -2
  59. package/dist/date-time-input/index.js.map +1 -0
  60. package/dist/detail/index.js +80 -2
  61. package/dist/detail/index.js.map +1 -0
  62. package/dist/dialog/index.js +50 -2
  63. package/dist/dialog/index.js.map +1 -0
  64. package/dist/disclosure/index.js +49 -2
  65. package/dist/disclosure/index.js.map +1 -0
  66. package/dist/drop-zone/index.js +98 -2
  67. package/dist/drop-zone/index.js.map +1 -0
  68. package/dist/errors/index.js +1 -1
  69. package/dist/expandable-action-panel/index.js +82 -2
  70. package/dist/expandable-action-panel/index.js.map +1 -0
  71. package/dist/flex/index.js +2 -14
  72. package/dist/grid/index.js +1 -1
  73. package/dist/image/index.js +5 -5
  74. package/dist/input/index.js +2 -14
  75. package/dist/input-date-time/index.js +258 -2
  76. package/dist/input-date-time/index.js.map +1 -0
  77. package/dist/input-file/index.js +105 -2
  78. package/dist/input-file/index.js.map +1 -0
  79. package/dist/input-files/index.js +1 -1
  80. package/dist/input-image/index.js +100 -2
  81. package/dist/input-image/index.js.map +1 -0
  82. package/dist/input-search/index.js +1 -1
  83. package/dist/layout-picker/index.js +1171 -2
  84. package/dist/layout-picker/index.js.map +1 -0
  85. package/dist/list/index.js +2 -2
  86. package/dist/listbox/index.js +81 -2
  87. package/dist/listbox/index.js.map +1 -0
  88. package/dist/misc/index.js +1 -1
  89. package/dist/modal/index.js +1 -1
  90. package/dist/multi-select/index.js +2 -3
  91. package/dist/notifications/index.js +151 -3
  92. package/dist/notifications/index.js.map +1 -0
  93. package/dist/picker/index.js +1 -1
  94. package/dist/preset-range-date-input/index.js +52 -3
  95. package/dist/preset-range-date-input/index.js.map +1 -1
  96. package/dist/preset-select/index.js +1 -1
  97. package/dist/radio-button/index.js +48 -2
  98. package/dist/radio-button/index.js.map +1 -0
  99. package/dist/radio-group/index.js +1 -1
  100. package/dist/select/index.js +2 -4
  101. package/dist/simple-table/index.js +1 -1
  102. package/dist/slider/index.js +695 -2
  103. package/dist/slider/index.js.map +1 -0
  104. package/dist/splitter/index.js +168 -2
  105. package/dist/splitter/index.js.map +1 -0
  106. package/dist/state-select/index.js +78 -2
  107. package/dist/state-select/index.js.map +1 -0
  108. package/dist/styles.css +1 -1
  109. package/dist/switch/index.js +81 -2
  110. package/dist/switch/index.js.map +1 -0
  111. package/dist/table/index.js +1 -1
  112. package/dist/table-sorting/index.js +1 -1
  113. package/dist/tabs/index.js +384 -2
  114. package/dist/tabs/index.js.map +1 -0
  115. package/dist/text-editor/index.js +3 -3
  116. package/dist/text-editor/toolbar/index.js +1 -1
  117. package/dist/textarea/index.js +44 -2
  118. package/dist/textarea/index.js.map +1 -0
  119. package/dist/toggle/index.js +73 -2
  120. package/dist/toggle/index.js.map +1 -0
  121. package/dist/toolbar/index.js +2 -3
  122. package/dist/toolbar/index.js.map +1 -1
  123. package/dist/tree-select/index.js +569 -89
  124. package/dist/tree-select/index.js.map +1 -1
  125. package/dist/tree-table/index.js +1 -1
  126. package/package.json +5 -304
  127. package/src/styles/_base.scss +11 -3
  128. package/src/styles/config/_index.scss +97 -113
  129. package/src/styles/mixins/_mixin.scss +4 -4
  130. package/src/styles/themes/dark/_default.scss +0 -17
  131. package/storybook-static/assets/Badge-Cr7bAbxa.css +1 -0
  132. package/storybook-static/assets/Badge-Q8iX86Mn.js +139 -0
  133. package/storybook-static/assets/Badge.stories-BEMBzR2f.js +51 -0
  134. package/storybook-static/assets/Button-BN8Cuwsy.css +1 -0
  135. package/storybook-static/assets/Button-BUkCW8Zg.js +12 -0
  136. package/storybook-static/assets/Button-CfX05aoR.js +124 -0
  137. package/storybook-static/assets/Button.stories-BoNLZb6w.js +75 -0
  138. package/storybook-static/assets/CheckBox-B1xm2kwz.css +1 -0
  139. package/storybook-static/assets/CheckBox-CcXGzkSE.js +42 -0
  140. package/storybook-static/assets/CheckBox-DTSi8Yok.js +2 -0
  141. package/storybook-static/assets/CheckBox.module-Hr3mvdAC.js +1 -0
  142. package/storybook-static/assets/CheckBox.stories-Bo53TxC7.js +60 -0
  143. package/storybook-static/assets/Color-KMSTOMOX-Mbprgrbi.js +1 -0
  144. package/storybook-static/assets/ContextMenu-DYlSojIE.js +40 -0
  145. package/storybook-static/assets/ContextMenu.stories-BJr53bsq.js +90 -0
  146. package/storybook-static/assets/DateInput-Bc-MiPp1.css +1 -0
  147. package/storybook-static/assets/DateInput-BrmilavO.js +40 -0
  148. package/storybook-static/assets/DateInput-C72jV86j.js +1 -0
  149. package/storybook-static/assets/DateInput.stories-0hU_T1iZ.js +115 -0
  150. package/storybook-static/assets/DateRangePresetSelect-BklzgpCR.js +3 -0
  151. package/storybook-static/assets/DateRangePresetSelect-C7gJVkMB.js +30 -0
  152. package/storybook-static/assets/DateRangePresetSelect.stories-DQKDcAdP.js +11 -0
  153. package/storybook-static/assets/Detail-BKSBSfTO.css +1 -0
  154. package/storybook-static/assets/Detail-BMu0MY4h.js +40 -0
  155. package/storybook-static/assets/Detail.stories-CgBJjWQd.js +44 -0
  156. package/storybook-static/assets/Dialog-M7Uy3LiO.js +40 -0
  157. package/storybook-static/assets/Dialog.stories-BZ0opvaJ.js +31 -0
  158. package/storybook-static/assets/Disclosure-BXnfHC6v.js +29 -0
  159. package/storybook-static/assets/Disclosure-zNgXNDkm.css +1 -0
  160. package/storybook-static/assets/Disclosure.stories-C7wh6KJU.js +35 -0
  161. package/storybook-static/assets/DocsRenderer-JROSPFPF-BjXFJaat.js +2 -0
  162. package/storybook-static/assets/DropZone-C7HIN5ml.css +1 -0
  163. package/storybook-static/assets/DropZone-cd1aCNT1.js +36 -0
  164. package/storybook-static/assets/DropZone.stories-CVu731Lk.js +44 -0
  165. package/storybook-static/assets/DropdownMenu-B97Ad5Dg.js +1 -0
  166. package/storybook-static/assets/DropdownMenu-BgzIzwzM.css +1 -0
  167. package/storybook-static/assets/ExpandableActionPanel-D7q9two4.css +1 -0
  168. package/storybook-static/assets/ExpandableActionPanel.stories-k-eTxMyV.js +20 -0
  169. package/storybook-static/assets/Flex-BQkqAqL5.js +61 -0
  170. package/storybook-static/assets/Flex-C_VnI9xY.js +3 -0
  171. package/storybook-static/assets/Flex-IXK2se1Y.css +1 -0
  172. package/storybook-static/assets/Flex.stories-C1VO9Ct3.js +300 -0
  173. package/storybook-static/assets/Grid-Dr3BuEgd.js +61 -0
  174. package/storybook-static/assets/Grid-K9R_IHaw.css +1 -0
  175. package/storybook-static/assets/Grid-y8wKyEwc.js +163 -0
  176. package/storybook-static/assets/Grid.stories-6WUp6Tof.js +495 -0
  177. package/storybook-static/assets/Input-B7DWcGCL.js +3 -0
  178. package/storybook-static/assets/Input-BioMOZju.css +1 -0
  179. package/storybook-static/assets/Input-yly8wxYE.js +39 -0
  180. package/storybook-static/assets/Input.stories-CkVqvY-C.js +38 -0
  181. package/storybook-static/assets/InputDateTime-Cv8gmBe0.css +1 -0
  182. package/storybook-static/assets/InputDateTime-DHirw8rp.js +39 -0
  183. package/storybook-static/assets/InputDateTime.stories-Dci_81MA.js +35 -0
  184. package/storybook-static/assets/InputFile-DBFfWIkJ.js +37 -0
  185. package/storybook-static/assets/InputFile-hNjZ_wlG.css +1 -0
  186. package/storybook-static/assets/InputFile.stories-Bar27dP5.js +36 -0
  187. package/storybook-static/assets/InputFiles-ByK52qUe.css +1 -0
  188. package/storybook-static/assets/InputFiles-DPz7PiOC.js +1 -0
  189. package/storybook-static/assets/InputFiles-tULKp1KR.js +37 -0
  190. package/storybook-static/assets/InputFiles.stories-CkZ8et32.js +33 -0
  191. package/storybook-static/assets/InputImage-C-pnIXhT.css +1 -0
  192. package/storybook-static/assets/InputImage-D8VckxKl.js +37 -0
  193. package/storybook-static/assets/InputImage.stories-Dq8ORce3.js +51 -0
  194. package/storybook-static/assets/LayoutPicker-9tLTatHF.css +1 -0
  195. package/storybook-static/assets/LayoutPicker-l3XFAkqv.js +65 -0
  196. package/storybook-static/assets/LayoutPicker.stories-BjUmm2cg.js +449 -0
  197. package/storybook-static/assets/Listbox-B_6QVPAJ.js +38 -0
  198. package/storybook-static/assets/Listbox.stories-Cf_ApbmT.js +47 -0
  199. package/storybook-static/assets/Modal-BL_cTIW7.css +1 -0
  200. package/storybook-static/assets/Modal-BzienAaa.js +54 -0
  201. package/storybook-static/assets/Modal.stories-cPIHRa9a.js +180 -0
  202. package/storybook-static/assets/MultiSelect-CK2D25RA.js +56 -0
  203. package/storybook-static/assets/MultiSelect-CUQV67Ev.css +1 -0
  204. package/storybook-static/assets/MultiSelect-CjGBd2pC.js +2 -0
  205. package/storybook-static/assets/MultiSelect.stories--f_FoBzR.js +29 -0
  206. package/storybook-static/assets/NotificationsHost-D5Pvn4eu.css +1 -0
  207. package/storybook-static/assets/NotificationsHost-DKmlmqh0.js +44 -0
  208. package/storybook-static/assets/NotificationsHost.stories-1bPUJXfm.js +25 -0
  209. package/storybook-static/assets/ODataMultiSelect-BWUXuzlr.js +53 -0
  210. package/storybook-static/assets/ODataMultiSelect.stories-DA0f6SUG.js +73 -0
  211. package/storybook-static/assets/ODataSelect-D7GAFOcM.js +1 -0
  212. package/storybook-static/assets/ODataSelect-aNdHSjo_.js +52 -0
  213. package/storybook-static/assets/ODataSelect.stories-CjXA9Y9l.js +73 -0
  214. package/storybook-static/assets/ODataTreeMultiSelect-DKodulQ8.js +17 -0
  215. package/storybook-static/assets/ODataTreeMultiSelect.stories-BjRcb4W0.js +24 -0
  216. package/storybook-static/assets/ODataTreeSelect-Ck8HCh74.js +16 -0
  217. package/storybook-static/assets/ODataTreeSelect.stories-BgDj08mH.js +21 -0
  218. package/storybook-static/assets/PeriodSelect-Db7QmUfi.js +35 -0
  219. package/storybook-static/assets/PeriodSelect.stories-BI6yLRCK.js +23 -0
  220. package/storybook-static/assets/Popover-DR-r8iC5.js +45 -0
  221. package/storybook-static/assets/Popover.stories-ReRFMWiO.js +69 -0
  222. package/storybook-static/assets/PresetRangeDateInput-tSpiPAT9.js +31 -0
  223. package/storybook-static/assets/PresetRangeDateInput.stories-LVQa2_DG.js +15 -0
  224. package/storybook-static/assets/RadioButton-C-RjN-wY.css +1 -0
  225. package/storybook-static/assets/RadioButton-sEzdlL1y.js +38 -0
  226. package/storybook-static/assets/RadioButton.stories-CR0km0zF.js +36 -0
  227. package/storybook-static/assets/RadioGroup-BtNCd3Je.js +1 -0
  228. package/storybook-static/assets/RadioGroup-D-J7t20C.css +1 -0
  229. package/storybook-static/assets/RadioGroup-DR0H6Z0w.js +42 -0
  230. package/storybook-static/assets/RadioGroup.stories-FEqmkrs7.js +42 -0
  231. package/storybook-static/assets/Select-CO4ZHP9h.css +1 -0
  232. package/storybook-static/assets/Select-CUAevk01.js +57 -0
  233. package/storybook-static/assets/Select-DYVS7SCZ.js +9 -0
  234. package/storybook-static/assets/Select.stories-Df_c0IfC.js +37 -0
  235. package/storybook-static/assets/SelectOptionContent-B7W0Mned.js +1 -0
  236. package/storybook-static/assets/SerializableSelect-D63xBqOT.js +48 -0
  237. package/storybook-static/assets/SerializableSelect-DwCnuBgv.js +4 -0
  238. package/storybook-static/assets/SerializableSelect.stories-BLPXVOtP.js +43 -0
  239. package/storybook-static/assets/SingleDateTimeInput-mOllNfg2.css +1 -0
  240. package/storybook-static/assets/SingleDateTimeInput-xMkDodYz.js +53 -0
  241. package/storybook-static/assets/SingleDateTimeInput.stories-kcuSwx76.js +78 -0
  242. package/storybook-static/assets/Slider-BHZgpCjC.js +63 -0
  243. package/storybook-static/assets/Slider.stories-Bias_Soq.js +77 -0
  244. package/storybook-static/assets/SliderInput-jzFZcWr7.js +58 -0
  245. package/storybook-static/assets/SliderInput.stories-B7w8bp86.js +67 -0
  246. package/storybook-static/assets/Sortable-DcmDaPBw.js +72 -0
  247. package/storybook-static/assets/Sortable.stories-CwhHGCih.js +141 -0
  248. package/storybook-static/assets/Splitter-Bn7AJiD_.js +83 -0
  249. package/storybook-static/assets/Splitter-D-LmmQad.css +1 -0
  250. package/storybook-static/assets/Splitter.stories-CSvjKF-O.js +22 -0
  251. package/storybook-static/assets/StateSelect-MIGiXD10.js +36 -0
  252. package/storybook-static/assets/StateSelect-pIMkhj9A.css +1 -0
  253. package/storybook-static/assets/StateSelect.stories-BGDCnVqb.js +47 -0
  254. package/storybook-static/assets/Switch-C5zxOq_O.js +36 -0
  255. package/storybook-static/assets/Switch-DGYGWtPw.css +1 -0
  256. package/storybook-static/assets/Switch.stories-BmCl_Ts5.js +26 -0
  257. package/storybook-static/assets/Table-BGvRn9y0.css +1 -0
  258. package/storybook-static/assets/Table-CoySXvs5.js +197 -0
  259. package/storybook-static/assets/Table.stories-CA7ARhwC.js +122 -0
  260. package/storybook-static/assets/Tabs-BLkTB6pp.css +1 -0
  261. package/storybook-static/assets/Tabs-CQdzU18E.js +72 -0
  262. package/storybook-static/assets/Tabs.stories-SBWTpiy2.js +58 -0
  263. package/storybook-static/assets/Textarea-Bo-I0cnE.js +37 -0
  264. package/storybook-static/assets/Textarea-CPNMR88I.css +1 -0
  265. package/storybook-static/assets/Textarea.stories-C1wO9PKR.js +27 -0
  266. package/storybook-static/assets/TimePanel-0-mzaXky.js +1 -0
  267. package/storybook-static/assets/TimePanel-Bh98qsCo.css +1 -0
  268. package/storybook-static/assets/TimePanel.stories-C1VM13qN.js +25 -0
  269. package/storybook-static/assets/Toggle-B9H63WWC.js +37 -0
  270. package/storybook-static/assets/Toggle-DHulCX3T.css +1 -0
  271. package/storybook-static/assets/Toggle.stories-CKlGFcZW.js +30 -0
  272. package/storybook-static/assets/TreeMultiSelect-AXIl2Ge2.js +15 -0
  273. package/storybook-static/assets/TreeMultiSelect-Ci3bUpmv.js +1 -0
  274. package/storybook-static/assets/TreeMultiSelect.stories-CXGt4Q_u.js +14 -0
  275. package/storybook-static/assets/TreePickerBase-Md6Mt9qF.js +19 -0
  276. package/storybook-static/assets/TreePickerBase-qreyVjhY.css +1 -0
  277. package/storybook-static/assets/TreeSelect-BWoURakw.js +15 -0
  278. package/storybook-static/assets/TreeSelect-bOgRYtQQ.js +1 -0
  279. package/storybook-static/assets/TreeSelect.stories-By0h6wRi.js +16 -0
  280. package/storybook-static/assets/TreeTable--ZoksUiw.css +1 -0
  281. package/storybook-static/assets/TreeTable-C52Jh7O_.js +175 -0
  282. package/storybook-static/assets/TreeTable.stories-BH9Q8NPP.js +83 -0
  283. package/storybook-static/assets/WithTooltip-7X4HQR7L-DQXHhZoH.js +9 -0
  284. package/storybook-static/assets/axe-GLfyhAYL.js +20 -0
  285. package/storybook-static/assets/base-table-BNO0lnTL.css +1 -0
  286. package/storybook-static/assets/base-table-BSkQBgdx.js +18 -0
  287. package/storybook-static/assets/blocks-CwEU-ME1.js +285 -0
  288. package/storybook-static/assets/button-Bl3Hu8CS.js +1 -0
  289. package/storybook-static/assets/check-box-BrnNQnSi.js +1 -0
  290. package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +1 -0
  291. package/storybook-static/assets/chunk-3LY4VQVK-BxHCYS2R.js +6 -0
  292. package/storybook-static/assets/chunk-LITCR56V-euffoZAN.js +18 -0
  293. package/storybook-static/assets/contextMenu-Do6qEwKB.js +2 -0
  294. package/storybook-static/assets/date-segments-CzU9k5bl.js +1 -0
  295. package/storybook-static/assets/error-RVOk7zpw.js +1 -0
  296. package/storybook-static/assets/file-hArYcyES.js +1 -0
  297. package/storybook-static/assets/flex-DuYzsEBQ.js +1 -0
  298. package/storybook-static/assets/floating-ui.react-BR04wkLx.js +1 -0
  299. package/storybook-static/assets/formatter-L2YTDE3Q-Cdp-Jp2M.js +1 -0
  300. package/storybook-static/assets/formatters-yIBztcem.js +3 -0
  301. package/storybook-static/assets/grid-D0WOuGlB.js +1 -0
  302. package/storybook-static/assets/hooks-BEB2Gqy0.js +5 -0
  303. package/storybook-static/assets/iframe-SfMJGCsn.js +1117 -0
  304. package/storybook-static/assets/input-Be5K9_B7.js +1 -0
  305. package/storybook-static/assets/jsx-runtime-BBQGix-2.js +1 -0
  306. package/storybook-static/assets/lucide-react-CK2oyDtF.js +1 -0
  307. package/storybook-static/assets/matchers-JIUQ3HVY-BPS-eazD.js +28 -0
  308. package/storybook-static/assets/mdx-react-shim-DnKFgFHy.js +1 -0
  309. package/storybook-static/assets/media-Djn0SUaN.js +1 -0
  310. package/storybook-static/assets/misc-CPvLzCFJ.js +5 -0
  311. package/storybook-static/assets/misc-CerLA5Xh.css +1 -0
  312. package/storybook-static/assets/notifications-Zk996KvR.js +1 -0
  313. package/storybook-static/assets/odata-C2BNbnc9.js +1 -0
  314. package/storybook-static/assets/odata-service-8sDCOQ3I.js +1 -0
  315. package/storybook-static/assets/odataStoryFixtures-BBfdskiC.js +25 -0
  316. package/storybook-static/assets/picker-BmTTr59E.css +1 -0
  317. package/storybook-static/assets/picker-De4ZbESe.js +1 -0
  318. package/storybook-static/assets/popover-BiQHI7Wi.css +1 -0
  319. package/storybook-static/assets/popover-DWA5VOMQ.js +2 -0
  320. package/storybook-static/assets/preload-helper-B45gAKPr.js +1 -0
  321. package/storybook-static/assets/preset-select-DozCGhmu.js +5 -0
  322. package/storybook-static/assets/react-18-CfpYK14y.js +9 -0
  323. package/storybook-static/assets/react-BWN-5oQj.js +9 -0
  324. package/storybook-static/assets/react-dom-CncQzc_h.js +1 -0
  325. package/storybook-static/assets/select-BPvMbVDe.js +1 -0
  326. package/storybook-static/assets/slider-39Mty47U.js +2 -0
  327. package/storybook-static/assets/slider-DMDFRH6B.css +1 -0
  328. package/storybook-static/assets/sortable-CgCCp3dq.js +1 -0
  329. package/storybook-static/assets/sortable-DiBavgm0.css +1 -0
  330. package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-Di6cCrDX.js +6 -0
  331. package/storybook-static/assets/text-BxA8yj6Z.js +4 -0
  332. package/storybook-static/assets/theming-DZauqOKI.js +39 -0
  333. package/storybook-static/assets/treeStoryFixtures-Cd984L7t.js +1 -0
  334. package/storybook-static/assets/ui-CmVy0trY.js +1 -0
  335. package/storybook-static/assets/ui-ZWM9zG1I.css +1 -0
  336. package/storybook-static/assets/ui.module-DS2qtZts.js +1 -0
  337. package/storybook-static/assets/uiClasses-CZ_HVS3Y.js +1 -0
  338. package/storybook-static/assets/useODataSelectBase-D33B4x2W.js +1 -0
  339. package/storybook-static/assets/useODataTreeData-CDdzN-LC.js +1 -0
  340. package/storybook-static/assets/utils-CReRlw17.js +1 -0
  341. package/storybook-static/favicon-wrapper.svg +46 -0
  342. package/storybook-static/favicon.svg +1 -0
  343. package/storybook-static/iframe.html +709 -0
  344. package/storybook-static/index.html +146 -0
  345. package/storybook-static/index.json +1 -0
  346. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  347. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  348. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  349. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  350. package/storybook-static/project.json +1 -0
  351. package/storybook-static/sb-addons/a11y-2/manager-bundle.js +57 -0
  352. package/storybook-static/sb-addons/docs-1/manager-bundle.js +3 -0
  353. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +630 -0
  354. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  355. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  356. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  357. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  358. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  359. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  360. package/storybook-static/sb-manager/globals-runtime.js +76714 -0
  361. package/storybook-static/sb-manager/globals.js +24 -0
  362. package/storybook-static/sb-manager/manager-stores.js +23 -0
  363. package/storybook-static/sb-manager/runtime.js +27451 -0
  364. package/storybook-static/vite-inject-mocker-entry.js +2 -0
  365. package/dist/badge/stories/Badge.stories.d.ts +0 -54
  366. package/dist/badge/stories/Badge.stories.d.ts.map +0 -1
  367. package/dist/badge/stories/Badge.stories.js +0 -147
  368. package/dist/badge/stories/Badge.stories.js.map +0 -1
  369. package/dist/button/index.js.map +0 -1
  370. package/dist/button/stories/Button.stories.d.ts +0 -69
  371. package/dist/button/stories/Button.stories.d.ts.map +0 -1
  372. package/dist/button/stories/Button.stories.js +0 -223
  373. package/dist/button/stories/Button.stories.js.map +0 -1
  374. package/dist/check-box/stories/CheckBox.stories.d.ts +0 -58
  375. package/dist/check-box/stories/CheckBox.stories.d.ts.map +0 -1
  376. package/dist/check-box/stories/CheckBox.stories.js +0 -150
  377. package/dist/check-box/stories/CheckBox.stories.js.map +0 -1
  378. package/dist/chunks/BadgeList-DYgun2rf.js.map +0 -1
  379. package/dist/chunks/Button-CCWuggdA.js +0 -55
  380. package/dist/chunks/Button-CCWuggdA.js.map +0 -1
  381. package/dist/chunks/CheckBox-BowNqqd3.js.map +0 -1
  382. package/dist/chunks/DateInput-BTJ-QTUx.js.map +0 -1
  383. package/dist/chunks/DateRangePresetSelect-UgsfaOeM.js.map +0 -1
  384. package/dist/chunks/Detail-DHDMsg8q.js +0 -80
  385. package/dist/chunks/Detail-DHDMsg8q.js.map +0 -1
  386. package/dist/chunks/Dialog-CFIvGxER.js +0 -50
  387. package/dist/chunks/Dialog-CFIvGxER.js.map +0 -1
  388. package/dist/chunks/DisclosureGroup-CfRTkl6Z.js +0 -49
  389. package/dist/chunks/DisclosureGroup-CfRTkl6Z.js.map +0 -1
  390. package/dist/chunks/DropZone-DgDMu4Iw.js +0 -98
  391. package/dist/chunks/DropZone-DgDMu4Iw.js.map +0 -1
  392. package/dist/chunks/DropdownMenu-DQeR3y7M.js.map +0 -1
  393. package/dist/chunks/Input-anSjiM9b.js.map +0 -1
  394. package/dist/chunks/InputDateTime-BGLJ_pbV.js +0 -258
  395. package/dist/chunks/InputDateTime-BGLJ_pbV.js.map +0 -1
  396. package/dist/chunks/InputFile-B5E0prk_.js +0 -105
  397. package/dist/chunks/InputFile-B5E0prk_.js.map +0 -1
  398. package/dist/chunks/InputFiles-XBQxkHdB.js.map +0 -1
  399. package/dist/chunks/InputImage-Bs6cFQIo.js +0 -100
  400. package/dist/chunks/InputImage-Bs6cFQIo.js.map +0 -1
  401. package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js +0 -82
  402. package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js.map +0 -1
  403. package/dist/chunks/Listbox-BZlp5qHz.js +0 -81
  404. package/dist/chunks/Listbox-BZlp5qHz.js.map +0 -1
  405. package/dist/chunks/MultiSelect-DblDAklj.js +0 -422
  406. package/dist/chunks/MultiSelect-DblDAklj.js.map +0 -1
  407. package/dist/chunks/NotificationsHost-_icJx4xR.js +0 -151
  408. package/dist/chunks/NotificationsHost-_icJx4xR.js.map +0 -1
  409. package/dist/chunks/PresetRangeDateInput-Bytk5sAs.js +0 -53
  410. package/dist/chunks/PresetRangeDateInput-Bytk5sAs.js.map +0 -1
  411. package/dist/chunks/RadioButton-D0uA0rX_.js +0 -48
  412. package/dist/chunks/RadioButton-D0uA0rX_.js.map +0 -1
  413. package/dist/chunks/RadioGroup-B9XjkcOy.js.map +0 -1
  414. package/dist/chunks/Select-ClBs-16a.js +0 -182
  415. package/dist/chunks/Select-ClBs-16a.js.map +0 -1
  416. package/dist/chunks/SelectOptionContent-CI7wq9Oi.js +0 -27
  417. package/dist/chunks/SelectOptionContent-CI7wq9Oi.js.map +0 -1
  418. package/dist/chunks/SerializableSelect-Ds8wp2_p.js +0 -33
  419. package/dist/chunks/SerializableSelect-Ds8wp2_p.js.map +0 -1
  420. package/dist/chunks/SingleDateTimeInput-kXrkLAAI.js +0 -331
  421. package/dist/chunks/SingleDateTimeInput-kXrkLAAI.js.map +0 -1
  422. package/dist/chunks/Splitter-BFkVGVRb.js +0 -168
  423. package/dist/chunks/Splitter-BFkVGVRb.js.map +0 -1
  424. package/dist/chunks/StateSelect-BzUsurDe.js +0 -78
  425. package/dist/chunks/StateSelect-BzUsurDe.js.map +0 -1
  426. package/dist/chunks/Switch-B57Qmy1z.js +0 -81
  427. package/dist/chunks/Switch-B57Qmy1z.js.map +0 -1
  428. package/dist/chunks/Textarea-CLyGS1h9.js +0 -44
  429. package/dist/chunks/Textarea-CLyGS1h9.js.map +0 -1
  430. package/dist/chunks/TimePanel-b4saqoUY.js +0 -135
  431. package/dist/chunks/TimePanel-b4saqoUY.js.map +0 -1
  432. package/dist/chunks/Toggle-DVqOQXmt.js +0 -73
  433. package/dist/chunks/Toggle-DVqOQXmt.js.map +0 -1
  434. package/dist/chunks/TreeMultiSelect-mIG8VKx8.js +0 -40
  435. package/dist/chunks/TreeMultiSelect-mIG8VKx8.js.map +0 -1
  436. package/dist/chunks/TreePickerBase-C9HEABt5.js +0 -423
  437. package/dist/chunks/TreePickerBase-C9HEABt5.js.map +0 -1
  438. package/dist/chunks/TreeSelect-B9rb_fbI.js +0 -37
  439. package/dist/chunks/TreeSelect-B9rb_fbI.js.map +0 -1
  440. package/dist/chunks/layout-picker-CSLuIUVZ.js +0 -1171
  441. package/dist/chunks/layout-picker-CSLuIUVZ.js.map +0 -1
  442. package/dist/chunks/multi-select-ei7LHBCv.js +0 -126
  443. package/dist/chunks/multi-select-ei7LHBCv.js.map +0 -1
  444. package/dist/chunks/odata-DSW7z3nh.js.map +0 -1
  445. package/dist/chunks/select-Ds7_EAGN.js +0 -81
  446. package/dist/chunks/select-Ds7_EAGN.js.map +0 -1
  447. package/dist/chunks/slider-uU26AeGu.js +0 -695
  448. package/dist/chunks/slider-uU26AeGu.js.map +0 -1
  449. package/dist/chunks/tabs-DlnVVMJl.js +0 -384
  450. package/dist/chunks/tabs-DlnVVMJl.js.map +0 -1
  451. package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js +0 -113
  452. package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js.map +0 -1
  453. package/dist/context-menu/stories/ContextMenu.stories.d.ts +0 -16
  454. package/dist/context-menu/stories/ContextMenu.stories.d.ts.map +0 -1
  455. package/dist/context-menu/stories/ContextMenu.stories.js +0 -136
  456. package/dist/context-menu/stories/ContextMenu.stories.js.map +0 -1
  457. package/dist/date-input/stories/DateInput.stories.d.ts +0 -132
  458. package/dist/date-input/stories/DateInput.stories.d.ts.map +0 -1
  459. package/dist/date-input/stories/DateInput.stories.js +0 -247
  460. package/dist/date-input/stories/DateInput.stories.js.map +0 -1
  461. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts +0 -22
  462. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts.map +0 -1
  463. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js +0 -41
  464. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js.map +0 -1
  465. package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts +0 -95
  466. package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts.map +0 -1
  467. package/dist/date-time-input/stories/SingleDateTimeInput.stories.js +0 -195
  468. package/dist/date-time-input/stories/SingleDateTimeInput.stories.js.map +0 -1
  469. package/dist/date-time-input/stories/TimePanel.stories.d.ts +0 -26
  470. package/dist/date-time-input/stories/TimePanel.stories.d.ts.map +0 -1
  471. package/dist/date-time-input/stories/TimePanel.stories.js +0 -53
  472. package/dist/date-time-input/stories/TimePanel.stories.js.map +0 -1
  473. package/dist/detail/stories/Detail.stories.d.ts +0 -67
  474. package/dist/detail/stories/Detail.stories.d.ts.map +0 -1
  475. package/dist/detail/stories/Detail.stories.js +0 -170
  476. package/dist/detail/stories/Detail.stories.js.map +0 -1
  477. package/dist/dialog/stories/Dialog.stories.d.ts +0 -50
  478. package/dist/dialog/stories/Dialog.stories.d.ts.map +0 -1
  479. package/dist/dialog/stories/Dialog.stories.js +0 -89
  480. package/dist/dialog/stories/Dialog.stories.js.map +0 -1
  481. package/dist/disclosure/stories/Disclosure.stories.d.ts +0 -35
  482. package/dist/disclosure/stories/Disclosure.stories.d.ts.map +0 -1
  483. package/dist/disclosure/stories/Disclosure.stories.js +0 -70
  484. package/dist/disclosure/stories/Disclosure.stories.js.map +0 -1
  485. package/dist/drop-zone/stories/DropZone.stories.d.ts +0 -63
  486. package/dist/drop-zone/stories/DropZone.stories.d.ts.map +0 -1
  487. package/dist/drop-zone/stories/DropZone.stories.js +0 -97
  488. package/dist/drop-zone/stories/DropZone.stories.js.map +0 -1
  489. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts +0 -44
  490. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts.map +0 -1
  491. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js +0 -117
  492. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js.map +0 -1
  493. package/dist/flex/index.js.map +0 -1
  494. package/dist/flex/stories/Flex.stories.d.ts +0 -24
  495. package/dist/flex/stories/Flex.stories.d.ts.map +0 -1
  496. package/dist/flex/stories/Flex.stories.js +0 -607
  497. package/dist/flex/stories/Flex.stories.js.map +0 -1
  498. package/dist/grid/stories/Grid.stories.d.ts +0 -24
  499. package/dist/grid/stories/Grid.stories.d.ts.map +0 -1
  500. package/dist/grid/stories/Grid.stories.js +0 -840
  501. package/dist/grid/stories/Grid.stories.js.map +0 -1
  502. package/dist/input/index.js.map +0 -1
  503. package/dist/input/stories/Input.stories.d.ts +0 -69
  504. package/dist/input/stories/Input.stories.d.ts.map +0 -1
  505. package/dist/input/stories/Input.stories.js +0 -132
  506. package/dist/input/stories/Input.stories.js.map +0 -1
  507. package/dist/input-date-time/stories/InputDateTime.stories.d.ts +0 -69
  508. package/dist/input-date-time/stories/InputDateTime.stories.d.ts.map +0 -1
  509. package/dist/input-date-time/stories/InputDateTime.stories.js +0 -125
  510. package/dist/input-date-time/stories/InputDateTime.stories.js.map +0 -1
  511. package/dist/input-file/stories/InputFile.stories.d.ts +0 -85
  512. package/dist/input-file/stories/InputFile.stories.d.ts.map +0 -1
  513. package/dist/input-file/stories/InputFile.stories.js +0 -158
  514. package/dist/input-file/stories/InputFile.stories.js.map +0 -1
  515. package/dist/input-files/stories/InputFiles.stories.d.ts +0 -86
  516. package/dist/input-files/stories/InputFiles.stories.d.ts.map +0 -1
  517. package/dist/input-files/stories/InputFiles.stories.js +0 -158
  518. package/dist/input-files/stories/InputFiles.stories.js.map +0 -1
  519. package/dist/input-image/stories/InputImage.stories.d.ts +0 -81
  520. package/dist/input-image/stories/InputImage.stories.d.ts.map +0 -1
  521. package/dist/input-image/stories/InputImage.stories.js +0 -174
  522. package/dist/input-image/stories/InputImage.stories.js.map +0 -1
  523. package/dist/layout-picker/stories/LayoutPicker.stories.d.ts +0 -873
  524. package/dist/layout-picker/stories/LayoutPicker.stories.d.ts.map +0 -1
  525. package/dist/layout-picker/stories/LayoutPicker.stories.js +0 -422
  526. package/dist/layout-picker/stories/LayoutPicker.stories.js.map +0 -1
  527. package/dist/listbox/stories/Listbox.stories.d.ts +0 -76
  528. package/dist/listbox/stories/Listbox.stories.d.ts.map +0 -1
  529. package/dist/listbox/stories/Listbox.stories.js +0 -140
  530. package/dist/listbox/stories/Listbox.stories.js.map +0 -1
  531. package/dist/modal/stories/Modal.stories.d.ts +0 -74
  532. package/dist/modal/stories/Modal.stories.d.ts.map +0 -1
  533. package/dist/modal/stories/Modal.stories.js +0 -320
  534. package/dist/modal/stories/Modal.stories.js.map +0 -1
  535. package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts +0 -67
  536. package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts.map +0 -1
  537. package/dist/multi-select/ui/stories/MultiSelect.stories.js +0 -114
  538. package/dist/multi-select/ui/stories/MultiSelect.stories.js.map +0 -1
  539. package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts +0 -44
  540. package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts.map +0 -1
  541. package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts +0 -21
  542. package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts.map +0 -1
  543. package/dist/notifications/ui/stories/NotificationsHost.stories.js +0 -326
  544. package/dist/notifications/ui/stories/NotificationsHost.stories.js.map +0 -1
  545. package/dist/period-select/stories/PeriodSelect.stories.d.ts +0 -96
  546. package/dist/period-select/stories/PeriodSelect.stories.d.ts.map +0 -1
  547. package/dist/period-select/stories/PeriodSelect.stories.js +0 -166
  548. package/dist/period-select/stories/PeriodSelect.stories.js.map +0 -1
  549. package/dist/popover/stories/Popover.stories.d.ts +0 -10
  550. package/dist/popover/stories/Popover.stories.d.ts.map +0 -1
  551. package/dist/popover/stories/Popover.stories.js +0 -75
  552. package/dist/popover/stories/Popover.stories.js.map +0 -1
  553. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts +0 -22
  554. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts.map +0 -1
  555. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js +0 -45
  556. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js.map +0 -1
  557. package/dist/radio-button/stories/RadioButton.stories.d.ts +0 -60
  558. package/dist/radio-button/stories/RadioButton.stories.d.ts.map +0 -1
  559. package/dist/radio-button/stories/RadioButton.stories.js +0 -121
  560. package/dist/radio-button/stories/RadioButton.stories.js.map +0 -1
  561. package/dist/radio-group/stories/RadioGroup.stories.d.ts +0 -74
  562. package/dist/radio-group/stories/RadioGroup.stories.d.ts.map +0 -1
  563. package/dist/radio-group/stories/RadioGroup.stories.js +0 -146
  564. package/dist/radio-group/stories/RadioGroup.stories.js.map +0 -1
  565. package/dist/select/stories/ODataSelect.stories.d.ts +0 -46
  566. package/dist/select/stories/ODataSelect.stories.d.ts.map +0 -1
  567. package/dist/select/stories/Select.stories.d.ts +0 -127
  568. package/dist/select/stories/Select.stories.d.ts.map +0 -1
  569. package/dist/select/stories/Select.stories.js +0 -214
  570. package/dist/select/stories/Select.stories.js.map +0 -1
  571. package/dist/select/stories/SerializableSelect.stories.d.ts +0 -91
  572. package/dist/select/stories/SerializableSelect.stories.d.ts.map +0 -1
  573. package/dist/select/stories/SerializableSelect.stories.js +0 -165
  574. package/dist/select/stories/SerializableSelect.stories.js.map +0 -1
  575. package/dist/select/stories/odataStoryCollection.d.ts +0 -2
  576. package/dist/select/stories/odataStoryCollection.d.ts.map +0 -1
  577. package/dist/select/stories/odataStoryFixtures.d.ts +0 -35
  578. package/dist/select/stories/odataStoryFixtures.d.ts.map +0 -1
  579. package/dist/slider/stories/Slider.stories.d.ts +0 -29
  580. package/dist/slider/stories/Slider.stories.d.ts.map +0 -1
  581. package/dist/slider/stories/Slider.stories.js +0 -310
  582. package/dist/slider/stories/Slider.stories.js.map +0 -1
  583. package/dist/slider/stories/SliderInput.stories.d.ts +0 -30
  584. package/dist/slider/stories/SliderInput.stories.d.ts.map +0 -1
  585. package/dist/slider/stories/SliderInput.stories.js +0 -282
  586. package/dist/slider/stories/SliderInput.stories.js.map +0 -1
  587. package/dist/sortable/stories/Sortable.stories.d.ts +0 -58
  588. package/dist/sortable/stories/Sortable.stories.d.ts.map +0 -1
  589. package/dist/sortable/stories/Sortable.stories.js +0 -255
  590. package/dist/sortable/stories/Sortable.stories.js.map +0 -1
  591. package/dist/splitter/stories/Splitter.stories.d.ts +0 -66
  592. package/dist/splitter/stories/Splitter.stories.d.ts.map +0 -1
  593. package/dist/splitter/stories/Splitter.stories.js +0 -223
  594. package/dist/splitter/stories/Splitter.stories.js.map +0 -1
  595. package/dist/state-select/stories/StateSelect.stories.d.ts +0 -70
  596. package/dist/state-select/stories/StateSelect.stories.d.ts.map +0 -1
  597. package/dist/state-select/stories/StateSelect.stories.js +0 -145
  598. package/dist/state-select/stories/StateSelect.stories.js.map +0 -1
  599. package/dist/switch/stories/Switch.stories.d.ts +0 -59
  600. package/dist/switch/stories/Switch.stories.d.ts.map +0 -1
  601. package/dist/switch/stories/Switch.stories.js +0 -90
  602. package/dist/switch/stories/Switch.stories.js.map +0 -1
  603. package/dist/table/stories/Table.stories.d.ts +0 -155
  604. package/dist/table/stories/Table.stories.d.ts.map +0 -1
  605. package/dist/tabs/stories/Tabs.stories.d.ts +0 -94
  606. package/dist/tabs/stories/Tabs.stories.d.ts.map +0 -1
  607. package/dist/tabs/stories/Tabs.stories.js +0 -283
  608. package/dist/tabs/stories/Tabs.stories.js.map +0 -1
  609. package/dist/textarea/stories/Textarea.stories.d.ts +0 -64
  610. package/dist/textarea/stories/Textarea.stories.d.ts.map +0 -1
  611. package/dist/textarea/stories/Textarea.stories.js +0 -98
  612. package/dist/textarea/stories/Textarea.stories.js.map +0 -1
  613. package/dist/toggle/stories/Toggle.stories.d.ts +0 -61
  614. package/dist/toggle/stories/Toggle.stories.d.ts.map +0 -1
  615. package/dist/toggle/stories/Toggle.stories.js +0 -102
  616. package/dist/toggle/stories/Toggle.stories.js.map +0 -1
  617. package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts +0 -55
  618. package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts.map +0 -1
  619. package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts +0 -54
  620. package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts.map +0 -1
  621. package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts +0 -35
  622. package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts.map +0 -1
  623. package/dist/tree-select/stories/TreeMultiSelect.stories.js +0 -64
  624. package/dist/tree-select/stories/TreeMultiSelect.stories.js.map +0 -1
  625. package/dist/tree-select/stories/TreeSelect.stories.d.ts +0 -35
  626. package/dist/tree-select/stories/TreeSelect.stories.d.ts.map +0 -1
  627. package/dist/tree-select/stories/TreeSelect.stories.js +0 -66
  628. package/dist/tree-select/stories/TreeSelect.stories.js.map +0 -1
  629. package/dist/tree-select/stories/treeStoryFixtures.d.ts +0 -3
  630. package/dist/tree-select/stories/treeStoryFixtures.d.ts.map +0 -1
  631. package/dist/tree-table/stories/TreeTable.stories.d.ts +0 -158
  632. package/dist/tree-table/stories/TreeTable.stories.d.ts.map +0 -1
  633. package/src/styles/fonts.scss +0 -47
@@ -0,0 +1,39 @@
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{CustomMask as p,DateAndTime as m,DateOnly as h,TimeOnly as g,n as _,t as v}from"./InputDateTime.stories-Dci_81MA.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
+ `,(0,x.jsx)(c,{children:`InputDateTime`}),`
3
+ `,(0,x.jsx)(i,{children:`Маскированный ввод даты, времени и объединенного значения дата-время`}),`
4
+ `,(0,x.jsx)(o.p,{children:`InputDateTime уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
+ Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента.`}),`
6
+ `,(0,x.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,x.jsx)(u,{}),`
8
+ `,(0,x.jsx)(n,{of:h}),`
9
+ `,(0,x.jsx)(o.pre,{children:(0,x.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
10
+
11
+ import { InputDateTime } from "@/shared/ui";
12
+
13
+ export function Example() {
14
+ const [value, setValue] = useState("");
15
+
16
+ return <InputDateTime label="Дата и время" value={value} onChange={setValue} />;
17
+ }
18
+ `})}),`
19
+ `,(0,x.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
+ `,(0,x.jsxs)(o.ul,{children:[`
21
+ `,(0,x.jsx)(o.li,{children:`Начните с базового сценария ниже, а затем проверьте в stories те состояния, которые реально используются в вашем экране.`}),`
22
+ `]}),`
23
+ `,(0,x.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
24
+ `,(0,x.jsx)(o.h3,{id:`ввод-только-даты`,children:`Ввод только даты`}),`
25
+ `,(0,x.jsx)(o.p,{children:`Ввод только даты.`}),`
26
+ `,(0,x.jsx)(l,{of:h}),`
27
+ `,(0,x.jsx)(o.h3,{id:`ввод-только-времени`,children:`Ввод только времени`}),`
28
+ `,(0,x.jsx)(o.p,{children:`Ввод только времени.`}),`
29
+ `,(0,x.jsx)(l,{of:g}),`
30
+ `,(0,x.jsx)(o.h3,{id:`совмещенный-ввод-даты-и-времени`,children:`Совмещенный ввод даты и времени`}),`
31
+ `,(0,x.jsx)(o.p,{children:`Совмещенный ввод даты и времени.`}),`
32
+ `,(0,x.jsx)(l,{of:m}),`
33
+ `,(0,x.jsx)(o.h3,{id:`использование-собственной-маски-ввода`,children:`Использование собственной маски ввода`}),`
34
+ `,(0,x.jsx)(o.p,{children:`Использование собственной маски ввода.`}),`
35
+ `,(0,x.jsx)(l,{of:p}),`
36
+ `,(0,x.jsx)(o.h2,{id:`api`,children:`API`}),`
37
+ `,(0,x.jsx)(s,{of:v}),`
38
+ `,(0,x.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
39
+ `,(0,x.jsx)(r,{includePrimary:!1})]})}function b(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,x.jsx)(n,{...e,children:(0,x.jsx)(y,{...e})}):y(e)}var x;e((()=>{x=d(),f(),o(),_()}))();export{b as default};
@@ -0,0 +1,35 @@
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"./ui.module-DS2qtZts.js";import{n as l,o as u,r as d,u as f}from"./Input-B7DWcGCL.js";import{t as p}from"./input-Be5K9_B7.js";import{a as m,i as h,n as g,r as _}from"./date-segments-CzU9k5bl.js";var v,y,b,x=n((()=>{v=`t1iysX`,y=`_-4oX-p`,b={segmentInput:v,separator:y}}));function S(e){return h(e).map(e=>e.kind===`editable`?{...e,type:e.id}:e)}function C(e,t){let n=g(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(e.type,n.get(t)??``)}),r}function w(e,t){let n=new Map;return e.forEach((e,r)=>{e.kind===`editable`&&n.set(r,t.get(e.type)??``)}),m(e,n)}var T=n((()=>{_()}));function E(e,t){let n=C(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(t,n.get(e.type)??``)}),r}function D(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function O({mask:e,value:t,onChange:n,onClearError:r,disabled:i}){let a=(0,k.useMemo)(()=>S(e),[e]),o=(0,k.useMemo)(()=>D(a),[a]),s=(0,k.useMemo)(()=>E(t,a),[t,a]),[c,l]=(0,k.useState)(null),[u,d]=(0,k.useState)(()=>t?.getTime()),f=t?.getTime();f!==u&&(d(f),l(null));let p=c??s,m=(0,k.useRef)(new Map),h=(0,k.useRef)(0),[g,_]=(0,k.useState)(!1),v=(0,k.useCallback)(e=>{let t=new Map;a.forEach((n,r)=>{n.kind===`editable`&&t.set(n.type,e.get(r)??``)});let r=w(a,t);r!==null&&n(r)},[a,n]),y=(0,k.useCallback)((e,t=!0)=>{let n=m.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t<o.length-1?o[t+1]:null},[o]),x=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t>0?o[t-1]:null},[o]),C=(0,k.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:a,segmentValues:p,isFocused:g,registerRef:(0,k.useCallback)(e=>t=>{t?m.current.set(e,t):m.current.delete(e)},[]),handleInput:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],o=t.target.value.replace(/\D/g,``).slice(0,n.length),s=new Map(p);if(s.set(e,o),l(s),r?.(),o.length===n.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(s)},[i,a,p,r,b,y,v]),handleKeyDown:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],r=p.get(e)??``,o=t.currentTarget;switch(t.key){case`ArrowRight`:if(o.selectionStart===r.length||r===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(o.selectionStart===0||r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`ArrowUp`:{t.preventDefault();let i=r===``?n.min:parseInt(r,10)+1;i>n.max&&(i=n.min);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`ArrowDown`:{t.preventDefault();let i=r===``?n.max:parseInt(r,10)-1;i<n.min&&(i=n.max);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`Backspace`:if(r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(p);n.set(e,``),l(n),v(n);break}}},[i,a,p,b,x,y,C,v]),handleFocus:(0,k.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,k.useCallback)(()=>{clearTimeout(h.current),_(!0)},[]),handleContainerBlur:(0,k.useCallback)(()=>{h.current=window.setTimeout(()=>{_(!1),l(null)},0)},[]),focusFirstEmpty:(0,k.useCallback)(()=>{let e=o.find(e=>!(p.get(e)??``))??o[o.length-1];e!==void 0&&y(e)},[o,p,y])}}var k,A=n((()=>{k=t(r(),1),T()}));function j({mask:e,value:t,onChange:n,label:r,description:i,disabled:o,size:c,className:p,error:m,onClearError:h,onClear:g,"aria-label":_}){let{segments:v,segmentValues:y,registerRef:x,handleInput:S,handleKeyDown:C,handleFocus:w,handleContainerFocus:T,handleContainerBlur:E,focusFirstEmpty:D}=O({mask:e,value:t,onChange:n,onClearError:h,disabled:o}),{controlId:k,labelId:A,descriptionId:j,errorId:M,describedBy:N}=f({hasLabel:r!=null,hasDescription:!!i,hasError:!!m});return(0,F.jsx)(u,{label:r,description:i,disabled:o,className:p,size:c,error:m,labelId:A,descriptionId:j,errorId:M,children:(0,F.jsx)(d,{endAdornment:g?(0,F.jsx)(l,{onClick:g,disabled:o}):void 0,endAdornmentWidth:g?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,F.jsx)(`div`,{id:k,className:a(s.uiInputControlFake,e),"data-invalid":m?``:void 0,"data-disabled":o||void 0,role:`group`,"aria-invalid":!!m||void 0,"aria-label":_||(typeof r==`string`?r:void 0),"aria-labelledby":_?void 0:A,"aria-describedby":N,onFocus:T,onBlur:E,onClick:e=>{e.target===e.currentTarget&&D()},children:v.map((e,t)=>e.kind===`literal`?(0,F.jsx)(`span`,{className:b.separator,"data-disabled":o||void 0,children:e.text},t):(0,F.jsx)(`input`,{ref:x(t),type:`text`,inputMode:`numeric`,className:b.segmentInput,style:{width:`${e.length+.5}ch`},value:y.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:o,"aria-label":e.type,autoComplete:`off`,onChange:S(t),onKeyDown:C(t),onFocus:w()},t))})})})}function M({mask:e=`YYYY.MM.DD`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function N({mask:e=`hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function P({mask:e=`YYYY.MM.DD hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}var F,I=n((()=>{o(),p(),c(),x(),A(),F=i(),M.__docgenInfo={description:``,methods:[],displayName:`InputDate`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD"`,computed:!1}}}},N.__docgenInfo={description:``,methods:[],displayName:`InputTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"hh:mm"`,computed:!1}}}},P.__docgenInfo={description:``,methods:[],displayName:`InputDateTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD hh:mm"`,computed:!1}}}}})),L=e({CustomMask:()=>W,DateAndTime:()=>U,DateOnly:()=>V,TimeOnly:()=>H,__namedExportsOrder:()=>G,default:()=>B}),R,z,B,V,H,U,W,G,K=n((()=>{R=t(r(),1),I(),z=i(),B={title:`Shared/UI/InputDateTime`,component:M,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение в виде `Date`.",control:!1},onChange:{description:`Вызывается при формировании валидной даты/времени.`,control:!1},mask:{description:"Маска сегментов (`YYYY`, `MM`, `DD`, `hh`, `mm`, `ss`).",control:`text`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},onClear:{description:`Очищает значение и активирует кнопку очистки.`,control:!1},disabled:{description:`Блокирует редактирование сегментов.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},"aria-label":{description:`ARIA-метка для контейнера сегментного ввода.`,control:`text`}}},V={render:e=>{let[t,n]=(0,R.useState)(e.value);return(0,z.jsx)(M,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Дата`,description:`Формат по умолчанию: YYYY.MM.DD`,value:new Date(2026,2,5)}},H={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,14,30,0));return(0,z.jsx)(N,{label:`Время`,description:`Формат по умолчанию: hh:mm`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},U={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,0));return(0,z.jsx)(P,{label:`Дата и время`,description:`Комбинированный ввод даты и времени.`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},W={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,42));return(0,z.jsx)(P,{label:`Кастомная маска`,description:`Добавлены секунды: YYYY.MM.DD hh:mm:ss`,mask:`YYYY.MM.DD hh:mm:ss`,value:e,onChange:t})},args:{value:void 0}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
2
+ render: args => {
3
+ const [value, setValue] = useState<Date | undefined>(args.value);
4
+ return <InputDate {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
5
+ },
6
+ args: {
7
+ label: "Дата",
8
+ description: "Формат по умолчанию: YYYY.MM.DD",
9
+ value: new Date(2026, 2, 5)
10
+ }
11
+ }`,...V.parameters?.docs?.source}}},H.parameters={...H.parameters,docs:{...H.parameters?.docs,source:{originalSource:`{
12
+ render: () => {
13
+ const [value, setValue] = useState<Date | undefined>(new Date(2026, 2, 5, 14, 30, 0));
14
+ return <InputTime label="Время" description="Формат по умолчанию: hh:mm" value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
15
+ },
16
+ args: {
17
+ value: undefined
18
+ }
19
+ }`,...H.parameters?.docs?.source}}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
20
+ render: () => {
21
+ const [value, setValue] = useState<Date | undefined>(new Date(2026, 2, 5, 9, 15, 0));
22
+ return <InputDateTime label="Дата и время" description="Комбинированный ввод даты и времени." value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
23
+ },
24
+ args: {
25
+ value: undefined
26
+ }
27
+ }`,...U.parameters?.docs?.source}}},W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
28
+ render: () => {
29
+ const [value, setValue] = useState<Date | undefined>(new Date(2026, 2, 5, 9, 15, 42));
30
+ return <InputDateTime label="Кастомная маска" description="Добавлены секунды: YYYY.MM.DD hh:mm:ss" mask="YYYY.MM.DD hh:mm:ss" value={value} onChange={setValue} />;
31
+ },
32
+ args: {
33
+ value: undefined
34
+ }
35
+ }`,...W.parameters?.docs?.source}}},G=[`DateOnly`,`TimeOnly`,`DateAndTime`,`CustomMask`]}));K();export{W as CustomMask,U as DateAndTime,V as DateOnly,H as TimeOnly,G as __namedExportsOrder,B as default,K as n,L as t};
@@ -0,0 +1,37 @@
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{ArrayBufferMode as p,Controlled as m,WithInitialValue as h,n as g,t as _}from"./InputFile.stories-Bar27dP5.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,b.jsx)(c,{children:`InputFile`}),`
3
+ `,(0,b.jsx)(i,{children:`Контрол для выбора одного файла с поддержкой предварительного значения и бинарного режима`}),`
4
+ `,(0,b.jsx)(o.p,{children:`InputFile уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
+ Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента. Отдельно разобраны контролируемые сценарии.`}),`
6
+ `,(0,b.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,b.jsx)(u,{}),`
8
+ `,(0,b.jsx)(n,{of:m}),`
9
+ `,(0,b.jsx)(o.pre,{children:(0,b.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
10
+
11
+ import { InputFile } from "@/shared/ui";
12
+
13
+ export function Example() {
14
+ const [value, setValue] = useState(null);
15
+
16
+ return <InputFile label="Файл" value={value} onChange={setValue} />;
17
+ }
18
+ `})}),`
19
+ `,(0,b.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
+ `,(0,b.jsxs)(o.ul,{children:[`
21
+ `,(0,b.jsx)(o.li,{children:`Если состояние должно жить во внешней форме или модели, ориентируйтесь на контролируемый режим из документации.`}),`
22
+ `,(0,b.jsx)(o.li,{children:`При редактировании сущностей проверьте сценарий инициализации компонента уже существующими данными.`}),`
23
+ `]}),`
24
+ `,(0,b.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
25
+ `,(0,b.jsx)(o.h3,{id:`компонент-работает-в-контролируемом-режиме-когда-состояние-хранится-во-внешнем-компоненте`,children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте`}),`
26
+ `,(0,b.jsx)(o.p,{children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте.`}),`
27
+ `,(0,b.jsx)(l,{of:m}),`
28
+ `,(0,b.jsx)(o.h3,{id:`инициализация-предварительно-выбранным-значением`,children:`Инициализация предварительно выбранным значением`}),`
29
+ `,(0,b.jsx)(o.p,{children:`Инициализация предварительно выбранным значением.`}),`
30
+ `,(0,b.jsx)(l,{of:h}),`
31
+ `,(0,b.jsx)(o.h3,{id:`сценарий-работы-с-бинарными-данными`,children:`Сценарий работы с бинарными данными`}),`
32
+ `,(0,b.jsx)(o.p,{children:`Сценарий работы с бинарными данными.`}),`
33
+ `,(0,b.jsx)(l,{of:p}),`
34
+ `,(0,b.jsx)(o.h2,{id:`api`,children:`API`}),`
35
+ `,(0,b.jsx)(s,{of:_}),`
36
+ `,(0,b.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
37
+ `,(0,b.jsx)(r,{includePrimary:!1})]})}function y(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,b.jsx)(n,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=d(),f(),o(),g()}))();export{y as default};
@@ -0,0 +1 @@
1
+ .Ggxyuj{height:var(--control-height);width:100%;padding:0 var(--space-sm);font-size:var(--font-size-md);cursor:pointer;align-items:center;display:flex}.fthcmO{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wyY60X{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}
@@ -0,0 +1,36 @@
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,n as s}from"./utils-CReRlw17.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-B7DWcGCL.js";import{t as m}from"./input-Be5K9_B7.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w=n((()=>{b=`Ggxyuj`,x=`fthcmO`,S=`wyY60X`,C={control:b,fileName:x,hiddenInput:S}}));function T(e){let{value:t,onClear:n,onReadError:r,accept:i,allowedMime:o,maxBytes:l,label:m,description:g,placeholder:b=`Выберите файл`,disabled:x,size:S,error:w,onClearError:T,className:O}=e;h(o),_(i);let k=(0,E.useRef)(null),{controlId:A,labelId:j,descriptionId:M,errorId:N,describedBy:P}=p({hasLabel:m!=null,hasDescription:!!g,hasError:!!w}),F=(0,E.useCallback)(async t=>{let n=t.target.files?.[0];if(n){t.target.value=``,w&&T&&T();try{if(e.readMode===`array-buffer`){let t=await y(n,{allowedMime:o,maxBytes:l,mode:`array-buffer`});e.onChange(t);return}let t=await y(n,{allowedMime:o,maxBytes:l});e.onChange(t)}catch(e){e instanceof v&&r&&r(e)}}},[e,o,l,r,w,T]),I=(0,E.useCallback)(()=>{k.current?.click()},[]);return(0,D.jsxs)(d,{label:m,description:g,disabled:x,className:O,size:S,error:w,controlId:A,labelId:j,descriptionId:M,errorId:N,children:[(0,D.jsx)(`input`,{ref:k,id:A,type:`file`,accept:(i??o)?.join(`,`),disabled:x,className:C.hiddenInput,onChange:F,tabIndex:-1}),(0,D.jsx)(f,{endAdornment:n?(0,D.jsx)(u,{onClick:n,disabled:x}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,D.jsx)(`div`,{role:`button`,tabIndex:x?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:x}),className:a(c.uiInputControl,C.control,e,!!w&&c.invalid),"data-disabled":x||void 0,"aria-invalid":!!w||void 0,"aria-disabled":x,"aria-labelledby":j,"aria-describedby":P,children:t?(0,D.jsx)(`span`,{className:C.fileName,children:t.meta.name}):(0,D.jsx)(`span`,{className:c.uiPlaceholder,children:b})})})]})}var E,D,O=n((()=>{E=t(r(),1),g(),o(),m(),l(),w(),D=i(),T.__docgenInfo={description:'InputFile — компонент выбора одного файла.\n\nВизуально идентичен InputText: поле с label, description, placeholder,\nкнопкой очистки (крестик) и блоком ошибки.\n\nПри клике открывается нативный диалог выбора файла.\nПосле выбора файл читается через readFile, результат передаётся в onChange.\n\nInputFile позволяет выбрать один файл и передаёт наружу типизированный результат чтения.\nЕсли `readMode` не задан или равен `"data-url"`, в `onChange` приходит объект с `dataUrl`.\nЕсли `readMode` равен `"array-buffer"`, в `onChange` приходит объект с `buffer`.',methods:[],displayName:`InputFile`}})),k=e({ArrayBufferMode:()=>I,Controlled:()=>P,WithInitialValue:()=>F,__namedExportsOrder:()=>L,default:()=>N}),A,j,M,N,P,F,I,L,R=n((()=>{A=t(r(),1),O(),j=i(),M=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},N={title:`Shared/UI/InputFile`,component:T,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока файл не выбран.`,control:`text`},value:{description:`Текущий результат чтения выбранного файла.`,control:!1},onChange:{description:`Вызывается после успешного чтения файла.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения или валидации файла.`,control:!1},onClear:{description:`Очищает выбранный файл и показывает кнопку очистки.`,control:!1},accept:{description:"HTML `accept` для нативного диалога выбора файла.",control:`text`},allowedMime:{description:`Белый список MIME-типов для readFile-валидации.`,control:!1},maxBytes:{description:`Максимальный размер файла в байтах.`,control:`number`},readMode:{description:`Режим чтения файла: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Callback сброса ошибки при повторном выборе файла.`,control:!1},disabled:{description:`Блокирует выбор файла.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},P={render:e=>{let[t,n]=(0,A.useState)(e.value),[r,i]=(0,A.useState)(e.error??``);return(0,j.jsx)(T,{...e,value:t,error:r||void 0,onChange:n,onClear:()=>n(void 0),onClearError:()=>i(``)})},args:{label:`Документ`,description:`Загрузите один файл.`,placeholder:`Выберите файл`,accept:[`.pdf`,`.docx`],readMode:`data-url`,value:void 0}},F={render:e=>{let[t,n]=(0,A.useState)(M(`report.pdf`));return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Файл с предзаполнением`,description:`Демонстрация состояния после успешной загрузки.`}},I={render:e=>{let[t,n]=(0,A.useState)(void 0);return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Двоичное чтение`,description:"Режим `array-buffer` для дальнейшей бинарной обработки.",readMode:`array-buffer`,accept:[`.zip`,`.pdf`],value:void 0}},P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
2
+ render: args => {
3
+ const [value, setValue] = useState<ReadFileResult | undefined>(args.value);
4
+ const [error, setError] = useState(args.error ?? "");
5
+ return <InputFile {...args} value={value} error={error || undefined} onChange={setValue} onClear={() => setValue(undefined)} onClearError={() => setError("")} />;
6
+ },
7
+ args: {
8
+ label: "Документ",
9
+ description: "Загрузите один файл.",
10
+ placeholder: "Выберите файл",
11
+ accept: [".pdf", ".docx"],
12
+ readMode: "data-url",
13
+ value: undefined
14
+ }
15
+ }`,...P.parameters?.docs?.source}}},F.parameters={...F.parameters,docs:{...F.parameters?.docs,source:{originalSource:`{
16
+ render: args => {
17
+ const [value, setValue] = useState<ReadFileResult | undefined>(createMockReadFileResult("report.pdf"));
18
+ return <InputFile {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
19
+ },
20
+ args: {
21
+ label: "Файл с предзаполнением",
22
+ description: "Демонстрация состояния после успешной загрузки."
23
+ }
24
+ }`,...F.parameters?.docs?.source}}},I.parameters={...I.parameters,docs:{...I.parameters?.docs,source:{originalSource:`{
25
+ render: args => {
26
+ const [value, setValue] = useState<ReadFileResult | undefined>(undefined);
27
+ return <InputFile {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
28
+ },
29
+ args: {
30
+ label: "Двоичное чтение",
31
+ description: "Режим \`array-buffer\` для дальнейшей бинарной обработки.",
32
+ readMode: "array-buffer",
33
+ accept: [".zip", ".pdf"],
34
+ value: undefined
35
+ }
36
+ }`,...I.parameters?.docs?.source}}},L=[`Controlled`,`WithInitialValue`,`ArrayBufferMode`]}));R();export{I as ArrayBufferMode,P as Controlled,F as WithInitialValue,L as __namedExportsOrder,N as default,R as n,k as t};
@@ -0,0 +1 @@
1
+ .h9SMea{height:var(--control-height);width:100%;padding:0 var(--space-sm);font-size:var(--font-size-md);cursor:pointer;align-items:center;display:flex}.rUyh0y{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.Q0CY1r{gap:var(--space-xs);margin-top:var(--space-xs);flex-direction:column;display:flex}.AJuYXd{align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background-color:var(--surface-2);border-radius:var(--radius-sm);display:flex}.CKKkOD{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.UgxhS1{width:1.25em;height:1.25em;color:var(--content-2);flex-shrink:0}.UgxhS1:hover{color:var(--content-accent)}
@@ -0,0 +1 @@
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,n 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"./ui.module-DS2qtZts.js";import{o as d,r as f,u as p}from"./Input-B7DWcGCL.js";import{t as m}from"./input-Be5K9_B7.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w,T,E,D=t((()=>{b=`h9SMea`,x=`rUyh0y`,S=`Q0CY1r`,C=`AJuYXd`,w=`CKKkOD`,T=`UgxhS1`,E={control:b,hiddenInput:x,fileList:S,fileItem:C,fileItemName:w,removeButton:T}}));function O({files:e,onChange:t}){let n=(0,k.useCallback)(n=>{t(e.filter((e,t)=>t!==n))},[e,t]);return!e||!e.length?null:(0,A.jsx)(`ul`,{className:E.fileList,children:e.map((e,t)=>(0,A.jsxs)(`li`,{className:E.fileItem,children:[(0,A.jsx)(`span`,{className:E.fileItemName,children:e.meta.name}),(0,A.jsx)(`button`,{type:`button`,className:i(E.removeButton,`flexCenter`),onClick:()=>n(t),"aria-label":`Удалить ${e.meta.name}`,children:(0,A.jsx)(s,{})})]},`${e.meta.name}-${e.meta.lastModified}`))})}var k,A,j=t((()=>{k=e(n(),1),a(),c(),D(),A=r(),O.__docgenInfo={description:``,methods:[],displayName:`InputFilesList`,props:{files:{required:!0,tsType:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(files: TFile[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},name:`files`}],return:{name:`void`}}},description:``}}}}));function M(e){let{value:t,onReadError:n,accept:r,allowedMime:a,maxBytes:s,maxFiles:c,label:u,description:m,placeholder:g=`Выберите файлы`,disabled:b,size:x,error:S,onClearError:C,className:w}=e;h(a),_(r);let T=(0,N.useRef)(null),{controlId:D,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:u!=null,hasDescription:!!m,hasError:!!S}),F=typeof c==`number`&&t.length>=c,I=(0,N.useCallback)(async r=>{let i=r.target.files;if(!i||i.length===0)return;let o=Array.from(i);r.target.value=``,S&&C&&C();let l=typeof c==`number`?c-t.length:o.length,u=o.slice(0,l);if(e.readMode===`array-buffer`){let t=[];for(let e of u)try{let n=await y(e,{allowedMime:a,maxBytes:s,mode:`array-buffer`});t.push(n)}catch(e){e instanceof v&&n&&n(e)}t.length>0&&e.onChange([...e.value,...t]);return}let d=[];for(let e of u)try{let t=await y(e,{allowedMime:a,maxBytes:s});d.push(t)}catch(e){e instanceof v&&n&&n(e)}d.length>0&&e.onChange([...e.value,...d])},[e,c,t.length,a,s,n,S,C]),L=(0,N.useCallback)(()=>{T.current?.click()},[]),R=(e.readMode,(0,P.jsx)(O,{files:e.value,onChange:e.onChange}));return(0,P.jsxs)(d,{label:u,description:m,disabled:b,className:w,size:x,error:S,controlId:D,labelId:k,descriptionId:A,errorId:j,children:[(0,P.jsx)(`input`,{ref:T,id:D,type:`file`,accept:(r??a)?.join(`,`),multiple:!0,disabled:b||F,className:E.hiddenInput,onChange:I,tabIndex:-1}),(0,P.jsx)(f,{children:()=>(0,P.jsx)(`div`,{role:`button`,tabIndex:b||F?-1:0,onClick:L,onKeyDown:e=>o(e,L,{disabled:b||F}),className:i(l.uiInputControl,E.control,!!S&&`invalid`),"data-disabled":b||void 0,"aria-invalid":!!S||void 0,"aria-disabled":b||F,"aria-labelledby":k,"aria-describedby":M,children:(0,P.jsx)(`span`,{className:l.uiPlaceholder,children:F?`Максимум ${c} файлов`:g})})}),R]})}var N,P,F=t((()=>{N=e(n(),1),g(),a(),m(),u(),D(),j(),P=r(),M.__docgenInfo={description:'InputFiles — компонент выбора нескольких файлов.\n\nПоле стилизовано как InputText. При клике открывается нативный\nдиалог с multiple. Каждый выбранный файл читается через readFile\nи добавляется в массив value.\n\nСписок выбранных файлов отображается под полем.\nКаждый файл можно удалить кнопкой «крестик».\n\nInputFiles типизирует массив по `readMode`.\nЕсли `readMode` не задан или равен `"data-url"`, в `value` и `onChange`\nиспользуется массив объектов с `dataUrl`. Если `readMode` равен\n`"array-buffer"`, используется массив объектов с `buffer`.',methods:[],displayName:`InputFiles`}}));export{j as i,F as n,O as r,M as t};
@@ -0,0 +1,37 @@
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,LimitReached as m,WithInitialFiles as h,n as g,t as _}from"./InputFiles.stories-CkZ8et32.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,b.jsx)(c,{children:`InputFiles`}),`
3
+ `,(0,b.jsx)(i,{children:`Выбор и хранение нескольких файлов в контролируемом режиме`}),`
4
+ `,(0,b.jsx)(o.p,{children:`InputFiles уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
+ Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента. Отдельно разобраны контролируемые сценарии.`}),`
6
+ `,(0,b.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,b.jsx)(u,{}),`
8
+ `,(0,b.jsx)(n,{of:p}),`
9
+ `,(0,b.jsx)(o.pre,{children:(0,b.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
10
+
11
+ import { InputFiles } from "@/shared/ui";
12
+
13
+ export function Example() {
14
+ const [value, setValue] = useState([]);
15
+
16
+ return <InputFiles label="Вложения" value={value} onChange={setValue} />;
17
+ }
18
+ `})}),`
19
+ `,(0,b.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
+ `,(0,b.jsxs)(o.ul,{children:[`
21
+ `,(0,b.jsx)(o.li,{children:`Если состояние должно жить во внешней форме или модели, ориентируйтесь на контролируемый режим из документации.`}),`
22
+ `,(0,b.jsx)(o.li,{children:`При редактировании сущностей проверьте сценарий инициализации компонента уже существующими данными.`}),`
23
+ `]}),`
24
+ `,(0,b.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
25
+ `,(0,b.jsx)(o.h3,{id:`компонент-работает-в-контролируемом-режиме-когда-состояние-хранится-во-внешнем-компоненте`,children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте`}),`
26
+ `,(0,b.jsx)(o.p,{children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте.`}),`
27
+ `,(0,b.jsx)(l,{of:p}),`
28
+ `,(0,b.jsx)(o.h3,{id:`инициализация-заранее-выбранными-файлами`,children:`Инициализация заранее выбранными файлами`}),`
29
+ `,(0,b.jsx)(o.p,{children:`Инициализация заранее выбранными файлами.`}),`
30
+ `,(0,b.jsx)(l,{of:h}),`
31
+ `,(0,b.jsx)(o.h3,{id:`limit-reached`,children:`Limit Reached`}),`
32
+ `,(0,b.jsxs)(o.p,{children:[`Сценарий демонстрирует вариант `,(0,b.jsx)(o.code,{children:`LimitReached`}),` и помогает быстро сравнить его с остальными режимами компонента.`]}),`
33
+ `,(0,b.jsx)(l,{of:m}),`
34
+ `,(0,b.jsx)(o.h2,{id:`api`,children:`API`}),`
35
+ `,(0,b.jsx)(s,{of:_}),`
36
+ `,(0,b.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
37
+ `,(0,b.jsx)(r,{includePrimary:!1})]})}function y(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,b.jsx)(n,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=d(),f(),o(),g()}))();export{y as default};
@@ -0,0 +1,33 @@
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"./InputFiles-DPz7PiOC.js";var s=e({Controlled:()=>f,LimitReached:()=>m,WithInitialFiles:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},d={title:`Shared/UI/InputFiles`,component:o,args:{value:[],onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля множественной загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока список файлов пуст.`,control:`text`},value:{description:`Массив результатов чтения выбранных файлов.`,control:!1},onChange:{description:`Вызывается с новым массивом файлов после добавления/удаления.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения отдельного файла.`,control:!1},accept:{description:"HTML `accept` для диалога выбора файлов.",control:`text`},allowedMime:{description:`Список допустимых MIME-типов при валидации.`,control:!1},maxBytes:{description:`Максимальный размер одного файла в байтах.`,control:`number`},readMode:{description:`Режим чтения: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},maxFiles:{description:`Лимит количества файлов в списке.`,control:`number`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при выборе новых файлов для сброса ошибки.`,control:!1},disabled:{description:`Полностью блокирует выбор файлов.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},f={render:e=>{let[t,n]=(0,c.useState)([]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Вложения`,description:`Можно выбрать несколько файлов.`,placeholder:`Выберите файлы`,accept:[`.pdf`,`.png`,`.jpg`],maxFiles:5,value:[]}},p={render:e=>{let[t,n]=(0,c.useState)([u(`contract.pdf`),u(`diagram.png`,`image/png`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Предзаполненный список`,description:`Иллюстрация удаления файлов из уже заполненного значения.`}},m={render:e=>{let[t,n]=(0,c.useState)([u(`first.pdf`),u(`second.pdf`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Лимит файлов`,description:`После достижения лимита поле выбора блокируется.`,maxFiles:2}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
2
+ render: args => {
3
+ const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([]);
4
+ return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
5
+ },
6
+ args: {
7
+ label: "Вложения",
8
+ description: "Можно выбрать несколько файлов.",
9
+ placeholder: "Выберите файлы",
10
+ accept: [".pdf", ".png", ".jpg"],
11
+ maxFiles: 5,
12
+ value: []
13
+ }
14
+ }`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
15
+ render: args => {
16
+ const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([createMockReadFileResult("contract.pdf"), createMockReadFileResult("diagram.png", "image/png")]);
17
+ return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
18
+ },
19
+ args: {
20
+ label: "Предзаполненный список",
21
+ description: "Иллюстрация удаления файлов из уже заполненного значения."
22
+ }
23
+ }`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
24
+ render: args => {
25
+ const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([createMockReadFileResult("first.pdf"), createMockReadFileResult("second.pdf")]);
26
+ return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
27
+ },
28
+ args: {
29
+ label: "Лимит файлов",
30
+ description: "После достижения лимита поле выбора блокируется.",
31
+ maxFiles: 2
32
+ }
33
+ }`,...m.parameters?.docs?.source}}},h=[`Controlled`,`WithInitialFiles`,`LimitReached`]}));g();export{f as Controlled,m as LimitReached,p as WithInitialFiles,h as __namedExportsOrder,d as default,g as n,s as t};
@@ -0,0 +1 @@
1
+ .EV-Vji{height:var(--control-height);width:100%;padding:0 var(--space-sm);font-size:var(--font-size-md);cursor:pointer;align-items:center;display:flex}.A5-T93{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.V1Rhiv{opacity:0;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}
@@ -0,0 +1,37 @@
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{ArrayBufferMode as p,Controlled as m,WithInitialImage as h,n as g,t as _}from"./InputImage.stories-Dq8ORce3.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,b.jsx)(c,{children:`InputImage`}),`
3
+ `,(0,b.jsx)(i,{children:`Контрол загрузки и предварительного просмотра изображения в формах и карточках`}),`
4
+ `,(0,b.jsx)(o.p,{children:`InputImage уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
5
+ Ниже можно быстро проверить базовый сценарий, а затем перейти к отдельным режимам использования и состояниям компонента. Отдельно разобраны контролируемые сценарии.`}),`
6
+ `,(0,b.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,b.jsx)(u,{}),`
8
+ `,(0,b.jsx)(n,{of:m}),`
9
+ `,(0,b.jsx)(o.pre,{children:(0,b.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
10
+
11
+ import { InputImage } from "@/shared/ui";
12
+
13
+ export function Example() {
14
+ const [value, setValue] = useState(null);
15
+
16
+ return <InputImage label="Изображение" value={value} onChange={setValue} />;
17
+ }
18
+ `})}),`
19
+ `,(0,b.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
20
+ `,(0,b.jsxs)(o.ul,{children:[`
21
+ `,(0,b.jsx)(o.li,{children:`Если состояние должно жить во внешней форме или модели, ориентируйтесь на контролируемый режим из документации.`}),`
22
+ `,(0,b.jsx)(o.li,{children:`При редактировании сущностей проверьте сценарий инициализации компонента уже существующими данными.`}),`
23
+ `]}),`
24
+ `,(0,b.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
25
+ `,(0,b.jsx)(o.h3,{id:`компонент-работает-в-контролируемом-режиме-когда-состояние-хранится-во-внешнем-компоненте`,children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте`}),`
26
+ `,(0,b.jsx)(o.p,{children:`Компонент работает в контролируемом режиме, когда состояние хранится во внешнем компоненте.`}),`
27
+ `,(0,b.jsx)(l,{of:m}),`
28
+ `,(0,b.jsx)(o.h3,{id:`инициализация-заранее-загруженным-изображением`,children:`Инициализация заранее загруженным изображением`}),`
29
+ `,(0,b.jsx)(o.p,{children:`Инициализация заранее загруженным изображением.`}),`
30
+ `,(0,b.jsx)(l,{of:h}),`
31
+ `,(0,b.jsx)(o.h3,{id:`сценарий-работы-с-бинарными-данными`,children:`Сценарий работы с бинарными данными`}),`
32
+ `,(0,b.jsx)(o.p,{children:`Сценарий работы с бинарными данными.`}),`
33
+ `,(0,b.jsx)(l,{of:p}),`
34
+ `,(0,b.jsx)(o.h2,{id:`api`,children:`API`}),`
35
+ `,(0,b.jsx)(s,{of:_}),`
36
+ `,(0,b.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
37
+ `,(0,b.jsx)(r,{includePrimary:!1})]})}function y(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,b.jsx)(n,{...e,children:(0,b.jsx)(v,{...e})}):v(e)}var b;e((()=>{b=d(),f(),o(),g()}))();export{y as default};
@@ -0,0 +1,51 @@
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,n as s}from"./utils-CReRlw17.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-B7DWcGCL.js";import{t as m}from"./input-Be5K9_B7.js";import{i as h,n as g,t as _}from"./file-hArYcyES.js";var v,y,b,x,S=n((()=>{v=`EV-Vji`,y=`A5-T93`,b=`V1Rhiv`,x={control:v,fileName:y,hiddenInput:b}}));function C({value:e,onChange:t,onClear:n,onReadError:r,allowedMime:i,maxBytes:o,readMode:l,label:m,description:h,placeholder:v=`Выберите изображение`,disabled:y,size:b,error:S,onClearError:C,className:E}){let D=(0,w.useRef)(null),{controlId:O,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:m!=null,hasDescription:!!h,hasError:!!S}),N=(0,w.useCallback)(e=>l===`array-buffer`?_(e,{allowedMime:i,maxBytes:o,mode:`array-buffer`}):_(e,{allowedMime:i,maxBytes:o}),[i,o,l]),P=(0,w.useMemo)(()=>i&&i.length>0?i.join(`,`):`image/*`,[i]),F=(0,w.useCallback)(async e=>{let n=e.target.files?.[0];if(n){e.target.value=``,S&&C&&C();try{t(await N(n))}catch(e){e instanceof g&&r&&r(e)}}},[N,t,r,S,C]),I=(0,w.useCallback)(()=>{D.current?.click()},[]);return(0,T.jsxs)(d,{label:m,description:h,disabled:y,className:E,size:b,error:S,controlId:O,labelId:k,descriptionId:A,errorId:j,children:[(0,T.jsx)(`input`,{ref:D,id:O,type:`file`,accept:P,disabled:y,className:x.hiddenInput,onChange:F,tabIndex:-1}),(0,T.jsx)(f,{endAdornment:n?(0,T.jsx)(u,{onClick:n,disabled:y}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:t})=>(0,T.jsx)(`div`,{role:`button`,tabIndex:y?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:y}),className:a(c.uiInputControl,x.control,t,!!S&&`invalid`),"data-disabled":y||void 0,"aria-invalid":!!S||void 0,"aria-disabled":y,"aria-labelledby":k,"aria-describedby":M,children:e?(0,T.jsx)(`span`,{className:x.fileName,children:e.meta.name}):(0,T.jsx)(`span`,{className:c.uiPlaceholder,children:v})})})]})}var w,T,E=n((()=>{w=t(r(),1),h(),o(),m(),l(),S(),T=i(),C.__docgenInfo={description:`InputImage — компонент выбора одного изображения.
2
+
3
+ Визуально идентичен InputText. Под капотом использует readImageFile,
4
+ который валидирует что файл — изображение и извлекает его размеры.
5
+
6
+ HTML-атрибут accept формируется автоматически из allowedMime
7
+ или по умолчанию равен "image/*".`,methods:[],displayName:`InputImage`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите изображение"`,computed:!1}},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:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Callback очистки выбранного изображения. Если передан — отображается кнопка «крестик»`},onReadError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(error: ReadImageError) => void`,signature:{arguments:[{type:{name:`ReadImageError`},name:`error`}],return:{name:`void`}}},description:`Callback ошибки чтения (невалидный формат, не изображение, превышение размера и т.д.)`},allowedMime:{required:!1,tsType:{name:`unknown`},description:`Допустимые MIME-типы изображений — передаётся в readImageFile`},maxBytes:{required:!1,tsType:{name:`number`},description:`Максимальный размер файла в байтах — передаётся в readImageFile`},readMode:{required:!1,tsType:{name:`ReadMode`},description:`Режим чтения: "data-url" (по умолчанию, с извлечением dimensions) или "array-buffer"`},error:{required:!1,tsType:{name:`string`},description:`Текст ошибки под полем`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Callback сброса ошибки (вызывается при повторном выборе изображения)`},className:{required:!1,tsType:{name:`string`},description:`CSS-класс обёртки`}}}})),D=e({ArrayBufferMode:()=>P,Controlled:()=>M,WithInitialImage:()=>N,__namedExportsOrder:()=>F,default:()=>j}),O,k,A,j,M,N,P,F,I=n((()=>{O=t(r(),1),E(),k=i(),A=(e=`avatar.png`)=>{let t=new File([`image-demo`],e,{type:`image/png`,lastModified:17040672e5});return{mode:`data-url`,meta:{name:t.name,mime:t.type,size:t.size,lastModified:t.lastModified},dataUrl:`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAusB9YxM9a0AAAAASUVORK5CYII=`,file:t,dimensions:{width:1,height:1}}},j={title:`Shared/UI/InputImage`,component:C,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля выбора изображения.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст до выбора изображения.`,control:`text`},value:{description:`Результат чтения выбранного изображения.`,control:!1},onChange:{description:`Вызывается после успешного чтения изображения.`,control:!1},onReadError:{description:`Вызывается при ошибке валидации или чтения изображения.`,control:!1},onClear:{description:`Очищает выбранное изображение.`,control:!1},allowedMime:{description:`Разрешенные MIME-типы изображений.`,control:!1},maxBytes:{description:`Максимальный размер изображения в байтах.`,control:`number`},readMode:{description:`Режим чтения: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс ошибки при повторном выборе изображения.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},M={render:e=>{let[t,n]=(0,O.useState)(e.value);return(0,k.jsx)(C,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Аватар`,description:`Выберите одно изображение профиля.`,placeholder:`Выберите изображение`,readMode:`data-url`,allowedMime:[`image/png`,`image/jpeg`,`image/webp`],value:void 0}},N={render:e=>{let[t,n]=(0,O.useState)(A());return(0,k.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,k.jsx)(C,{...e,value:t,onChange:n,onClear:()=>n(void 0)}),t?.mode===`data-url`&&(0,k.jsx)(`img`,{src:t.dataUrl,alt:`Предпросмотр`,style:{width:96,height:96,objectFit:`cover`,border:`1px solid var(--border-0)`}})]})},args:{label:`Изображение с предпросмотром`,description:`Сторис показывает, что значение можно использовать для preview.`}},P={render:e=>{let[t,n]=(0,O.useState)(void 0);return(0,k.jsx)(C,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Двоичный режим`,description:`Используется, когда изображение нужно обработать как бинарные данные.`,readMode:`array-buffer`,value:void 0}},M.parameters={...M.parameters,docs:{...M.parameters?.docs,source:{originalSource:`{
8
+ render: args => {
9
+ const [value, setValue] = useState<ReadImageResult | undefined>(args.value);
10
+ return <InputImage {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
11
+ },
12
+ args: {
13
+ label: "Аватар",
14
+ description: "Выберите одно изображение профиля.",
15
+ placeholder: "Выберите изображение",
16
+ readMode: "data-url",
17
+ allowedMime: ["image/png", "image/jpeg", "image/webp"],
18
+ value: undefined
19
+ }
20
+ }`,...M.parameters?.docs?.source}}},N.parameters={...N.parameters,docs:{...N.parameters?.docs,source:{originalSource:`{
21
+ render: args => {
22
+ const [value, setValue] = useState<ReadImageResult | undefined>(createMockReadImageResult());
23
+ return <div style={{
24
+ display: "grid",
25
+ gap: 12
26
+ }}>
27
+ <InputImage {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />
28
+ {value?.mode === "data-url" && <img src={value.dataUrl} alt="Предпросмотр" style={{
29
+ width: 96,
30
+ height: 96,
31
+ objectFit: "cover",
32
+ border: "1px solid var(--border-0)"
33
+ }} />}
34
+ </div>;
35
+ },
36
+ args: {
37
+ label: "Изображение с предпросмотром",
38
+ description: "Сторис показывает, что значение можно использовать для preview."
39
+ }
40
+ }`,...N.parameters?.docs?.source}}},P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
41
+ render: args => {
42
+ const [value, setValue] = useState<ReadImageResult | undefined>(undefined);
43
+ return <InputImage {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
44
+ },
45
+ args: {
46
+ label: "Двоичный режим",
47
+ description: "Используется, когда изображение нужно обработать как бинарные данные.",
48
+ readMode: "array-buffer",
49
+ value: undefined
50
+ }
51
+ }`,...P.parameters?.docs?.source}}},F=[`Controlled`,`WithInitialImage`,`ArrayBufferMode`]}));I();export{P as ArrayBufferMode,M as Controlled,N as WithInitialImage,F as __namedExportsOrder,j as default,I as n,D as t};
@@ -0,0 +1 @@
1
+ ._959ulH{inset:0 calc(var(--control-height) + var(--space-xs)) 0 var(--space-sm);align-items:center;gap:var(--space-sm);pointer-events:none;min-width:0;display:flex;position:absolute;overflow:hidden}.Ch-SZL{--ui-color:transparent;--ui-color-hover:transparent;--ui-color-active:transparent;color:#0000;caret-color:#0000}.SmdPit{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.giOtGs{width:min(100vw - var(--space-lg) * 2, 44em);max-height:min(75vh,34em)}._57Tr0T{max-height:inherit}.Tkhulr{padding:var(--space-xs);overflow:auto}.VQlniu{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,12em),1fr));display:grid}.wb39Kf{align-items:center;gap:var(--space-sm);min-height:3.5em;padding:var(--space-sm);border:var(--border);border-radius:var(--radius-sm);background-color:var(--surface-0);color:var(--content-0);text-align:left;cursor:pointer;transition:background-color var(--transition-fast) ease, border-color var(--transition-fast) ease, color var(--transition-fast) ease;grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:relative}.wb39Kf:focus-visible{background-color:var(--surface-1);border-color:var(--border-1)}@media (any-hover:hover){.wb39Kf:hover{background-color:var(--surface-1);border-color:var(--border-1)}}@media (any-hover:none){.wb39Kf:active{background-color:var(--surface-1);border-color:var(--border-1)}}.wb39Kf:disabled{cursor:default;opacity:var(--disabled-opacity)}.HGvQdT{background-color:var(--surface-1);border-color:var(--border-1)}.rZuYyb{color:var(--content-accent)}.vNV6Q2{justify-content:center;align-items:center;min-width:3.5rem;display:inline-flex}._3ytPPa{width:1em;height:1em;color:var(--content-accent);justify-content:center;align-items:center;display:inline-flex}._3ytPPa svg{width:1em;height:1em}.koxYU-,.k8xLa2{--layout-picker-preview-size:3.5em;width:var(--layout-picker-preview-size);height:calc(var(--layout-picker-preview-size) * .72);flex:none}.koxYU-{gap:calc(var(--border-width) * 2);display:grid}._5pd3Bb,.k8xLa2{--layout-picker-preview-size:1.5rem}.VrHnjN{border-radius:calc(var(--radius-xs) / 2);background-color:var(--surface-accent);border:var(--border-width) solid var(--border-accent);min-width:0;min-height:0}.buT8ds{gap:var(--space-md);width:min(100%,48em);display:grid}.vDpJVR{align-items:end;gap:var(--space-sm);flex-wrap:wrap;display:flex}.-GMI1h{gap:var(--space-sm);padding:var(--space-sm);border:var(--border);border-radius:var(--radius-sm);background-color:var(--surface-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,9em),1fr));display:grid}.Xgkzn9{gap:calc(var(--space-xs) / 2);min-width:0;display:grid}.X--lo-{color:var(--content-1);font-variation-settings:"wght" 300;text-overflow:ellipsis;white-space:nowrap;font-weight:300;overflow:hidden}.W5rEjx{color:var(--content-2);font-size:var(--font-size-sm)}.BgilL7{gap:var(--space-sm);display:grid}.ALGrVl{gap:var(--space-xs);min-height:6em;padding:var(--space-sm);border:var(--border);border-radius:var(--radius-sm);background-color:var(--surface-1);align-content:start;display:grid}.IrqK1d{color:var(--content-0);font-variation-settings:"wght" 600;font-weight:600}
@@ -0,0 +1,65 @@
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,CustomPresets as m,Disabled as h,DisabledPresets as g,InToolbar as _,Placeholder as v,n as y,t as b}from"./LayoutPicker.stories-BjUmm2cg.js";function x(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a,{of:b,parameters:{docs:{toc:!0}}}),`
2
+ `,(0,C.jsx)(c,{children:`LayoutPicker`}),`
3
+ `,(0,C.jsx)(i,{children:`Контролируемый выбор layout-пресета со схематичным превью`}),`
4
+ `,(0,C.jsxs)(o.p,{children:[(0,C.jsx)(o.code,{children:`LayoutPicker`}),` нужен для выбора схемы размещения независимых областей: графиков, панелей, секций дашборда или другого UI, где сама раскладка хранится во внешней модели.
5
+ Компонент не знает, что будет внутри ячеек: он показывает только превью, принимает текущий `,(0,C.jsx)(o.code,{children:`value`}),` как ID пресета и возвращает выбранный ID через `,(0,C.jsx)(o.code,{children:`onChange`}),`.`]}),`
6
+ `,(0,C.jsx)(o.h2,{id:`основной-сценарий`,children:`Основной сценарий`}),`
7
+ `,(0,C.jsx)(u,{}),`
8
+ `,(0,C.jsx)(n,{of:p}),`
9
+ `,(0,C.jsx)(o.pre,{children:(0,C.jsx)(o.code,{className:`language-tsx`,children:`import { useState } from "react";
10
+
11
+ import { LayoutPicker } from "@/shared/ui";
12
+
13
+ export function Example() {
14
+ const [layoutId, setLayoutId] = useState("two-columns");
15
+
16
+ return <LayoutPicker label="Layout панели" value={layoutId} onChange={setLayoutId} />;
17
+ }
18
+ `})}),`
19
+ `,(0,C.jsx)(o.h2,{id:`контракт-пресета`,children:`Контракт пресета`}),`
20
+ `,(0,C.jsxs)(o.p,{children:[`Пресет описывает размер сетки и расположение ячеек внутри CSS Grid. `,(0,C.jsx)(o.code,{children:`LayoutPicker`}),` использует эти данные только для превью и не применяет раскладку к пользовательскому контенту. Публичный `,(0,C.jsx)(o.code,{children:`onChange`}),` остаётся совместимым с `,(0,C.jsx)(o.code,{children:`UiBaseProps<string>`}),` и отдаёт только `,(0,C.jsx)(o.code,{children:`preset.id`}),`.`]}),`
21
+ `,(0,C.jsx)(o.pre,{children:(0,C.jsx)(o.code,{className:`language-tsx`,children:`import { type LayoutPickerPreset } from "@/shared/ui";
22
+
23
+ const dashboardPreset: LayoutPickerPreset = {
24
+ id: "dashboard-main-aside",
25
+ label: "Основной блок + сайдбар",
26
+ description: "Большая рабочая область слева и вертикальная колонка справа.",
27
+ columns: 3,
28
+ rows: 2,
29
+ cells: [
30
+ { id: "main", column: 1, columnSpan: 2, row: 1, rowSpan: 2 },
31
+ { id: "aside-top", column: 3, columnSpan: 1, row: 1, rowSpan: 1 },
32
+ { id: "aside-bottom", column: 3, columnSpan: 1, row: 2, rowSpan: 1 }
33
+ ]
34
+ };
35
+ `})}),`
36
+ `,(0,C.jsx)(o.h2,{id:`практические-рекомендации`,children:`Практические рекомендации`}),`
37
+ `,(0,C.jsxs)(o.ul,{children:[`
38
+ `,(0,C.jsxs)(o.li,{children:[`Храните во внешней модели только `,(0,C.jsx)(o.code,{children:`preset.id`}),`, а полный пресет берите из стабильного списка `,(0,C.jsx)(o.code,{children:`presets`}),`.`]}),`
39
+ `,(0,C.jsxs)(o.li,{children:[`Передавайте `,(0,C.jsx)(o.code,{children:`ariaLabel`}),`, когда рядом нет видимой подписи поля.`]}),`
40
+ `,(0,C.jsxs)(o.li,{children:[`Используйте `,(0,C.jsx)(o.code,{children:`getPresetDisabled`}),`, если отдельные схемы временно недоступны из-за лимитов, прав или текущего режима.`]}),`
41
+ `,(0,C.jsxs)(o.li,{children:[`Не помещайте бизнес-данные ячеек в `,(0,C.jsx)(o.code,{children:`shared/ui`}),`: назначение содержимого должно оставаться в вызывающем слое.`]}),`
42
+ `]}),`
43
+ `,(0,C.jsx)(o.h2,{id:`сценарии-использования`,children:`Сценарии использования`}),`
44
+ `,(0,C.jsxs)(o.h3,{id:`контролируемый-выбор-синхронизирует-value-с-storybook-args`,children:[`Контролируемый выбор синхронизирует `,(0,C.jsx)(o.code,{children:`value`}),` с Storybook args`]}),`
45
+ `,(0,C.jsxs)(o.p,{children:[`Главный story обновляет `,(0,C.jsx)(o.code,{children:`value`}),` через `,(0,C.jsx)(o.code,{children:`useArgs`}),`, поэтому Controls отражают выбранный layout.`]}),`
46
+ `,(0,C.jsx)(l,{of:p}),`
47
+ `,(0,C.jsx)(o.h3,{id:`состояние-без-выбранного-значения`,children:`Состояние без выбранного значения`}),`
48
+ `,(0,C.jsxs)(o.p,{children:[`Если `,(0,C.jsx)(o.code,{children:`value`}),` не найден среди `,(0,C.jsx)(o.code,{children:`presets`}),`, trigger показывает `,(0,C.jsx)(o.code,{children:`placeholder`}),`, а после выбора начинает отображать выбранный пресет.`]}),`
49
+ `,(0,C.jsx)(l,{of:v}),`
50
+ `,(0,C.jsx)(o.h3,{id:`кастомный-набор-пресетов`,children:`Кастомный набор пресетов`}),`
51
+ `,(0,C.jsxs)(o.p,{children:[`Компонент принимает произвольный список `,(0,C.jsx)(o.code,{children:`LayoutPickerPreset`}),`, пока каждая ячейка описана координатами grid.`]}),`
52
+ `,(0,C.jsx)(l,{of:m}),`
53
+ `,(0,C.jsx)(o.h3,{id:`заблокированные-пресеты`,children:`Заблокированные пресеты`}),`
54
+ `,(0,C.jsxs)(o.p,{children:[(0,C.jsx)(o.code,{children:`getPresetDisabled`}),` блокирует отдельные варианты, не отключая весь контрол.`]}),`
55
+ `,(0,C.jsx)(l,{of:g}),`
56
+ `,(0,C.jsx)(o.h3,{id:`пример-в-панели-настройки`,children:`Пример в панели настройки`}),`
57
+ `,(0,C.jsx)(o.p,{children:`Сценарий показывает типичную связку: выбор layout, сводку текущего пресета и превью областей, которые уже рендерит вызывающий слой.`}),`
58
+ `,(0,C.jsx)(l,{of:_}),`
59
+ `,(0,C.jsx)(o.h3,{id:`заблокированный-контрол`,children:`Заблокированный контрол`}),`
60
+ `,(0,C.jsxs)(o.p,{children:[`Полное `,(0,C.jsx)(o.code,{children:`disabled`}),`-состояние блокирует trigger и открытие popup.`]}),`
61
+ `,(0,C.jsx)(l,{of:h}),`
62
+ `,(0,C.jsx)(o.h2,{id:`api`,children:`API`}),`
63
+ `,(0,C.jsx)(s,{of:b}),`
64
+ `,(0,C.jsx)(o.h2,{id:`все-сторисы`,children:`Все сторисы`}),`
65
+ `,(0,C.jsx)(r,{includePrimary:!1})]})}function S(e={}){let{wrapper:n}={...t(),...e.components};return n?(0,C.jsx)(n,{...e,children:(0,C.jsx)(x,{...e})}):x(e)}var C;e((()=>{C=d(),f(),o(),y()}))();export{S as default};