@ryuzaki13/react-foundation-ui 2.0.0 → 2.0.1

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 (260) hide show
  1. package/dist/listbox/Listbox.d.ts +3 -1
  2. package/dist/listbox/Listbox.d.ts.map +1 -1
  3. package/dist/listbox/index.js +69 -60
  4. package/dist/listbox/index.js.map +1 -1
  5. package/package.json +1 -1
  6. package/storybook-static/assets/{Badge-DTLs_n8R.js → Badge-DTV2OL5k.js} +1 -1
  7. package/storybook-static/assets/{Badge.stories-CovEhEDD.js → Badge.stories-D4zH_nK5.js} +1 -1
  8. package/storybook-static/assets/{BadgeList-DjTg_9cc.js → BadgeList-CnmQ4zmg.js} +1 -1
  9. package/storybook-static/assets/{BarcodeScannerDialog.stories-C5rK3W2F.js → BarcodeScannerDialog.stories-Cm7ouwg8.js} +1 -1
  10. package/storybook-static/assets/{Button-xWt087rv.js → Button-6JuiM3Sj.js} +1 -1
  11. package/storybook-static/assets/{Button-DMPKoI7-.js → Button-HheQm8vu.js} +1 -1
  12. package/storybook-static/assets/{Button.stories-ClLOimQw.js → Button.stories-B3Q5B_2w.js} +1 -1
  13. package/storybook-static/assets/{CalendarView-C8D421Nm.js → CalendarView-CEfB4HLd.js} +1 -1
  14. package/storybook-static/assets/{CheckBox-CHNYWbr9.js → CheckBox-CWGCGHUS.js} +1 -1
  15. package/storybook-static/assets/{CheckBox-ByaB_AWI.js → CheckBox-CzvA4ttT.js} +1 -1
  16. package/storybook-static/assets/{CheckBox.stories-DMFiXHJV.js → CheckBox.stories-D2lA5F8B.js} +1 -1
  17. package/storybook-static/assets/{Color-6AOWCN3U-CP9Nd4vj.js → Color-6AOWCN3U-RvvVvZ9f.js} +1 -1
  18. package/storybook-static/assets/{ContextMenu-DSg2_txz.js → ContextMenu-BJnj7lO4.js} +1 -1
  19. package/storybook-static/assets/{ContextMenu-68QC2EAu.js → ContextMenu-DCpglNe4.js} +1 -1
  20. package/storybook-static/assets/{ContextMenu.stories-C8CldSPG.js → ContextMenu.stories-CZabvzR6.js} +1 -1
  21. package/storybook-static/assets/{CustomOptionButton-xAusSjnU.js → CustomOptionButton-B9bzr3ba.js} +1 -1
  22. package/storybook-static/assets/{DateInput-DOuoBC8j.js → DateInput-Cud2arem.js} +1 -1
  23. package/storybook-static/assets/{DateInput-2ESK1wDg.js → DateInput-DoMGeEvO.js} +1 -1
  24. package/storybook-static/assets/{DateInput.stories-D5t5QnTV.js → DateInput.stories-DFd5wyMy.js} +1 -1
  25. package/storybook-static/assets/{DateRangePresetSelect-CD2n8zWv.js → DateRangePresetSelect-C8jA3mur.js} +1 -1
  26. package/storybook-static/assets/{DateRangePresetSelect-C8k5BN7p.js → DateRangePresetSelect-DfGcFHV8.js} +1 -1
  27. package/storybook-static/assets/{DateRangePresetSelect.stories-COktncMK.js → DateRangePresetSelect.stories-DtR83uwx.js} +1 -1
  28. package/storybook-static/assets/{Detail-oc_R1sEu.js → Detail-CMcVxOrr.js} +1 -1
  29. package/storybook-static/assets/{Detail.stories-1XrWL_s3.js → Detail.stories-DGT8An8z.js} +1 -1
  30. package/storybook-static/assets/{Dialog-CLTQa6Kw.js → Dialog-BPzpu7Iw.js} +1 -1
  31. package/storybook-static/assets/{Dialog-CfnOq258.js → Dialog-DBh-yDZW.js} +1 -1
  32. package/storybook-static/assets/{Dialog.stories-D5PPDse-.js → Dialog.stories-DU3SgOkL.js} +1 -1
  33. package/storybook-static/assets/{Disclosure-ByNKoHvP.js → Disclosure-BGsPaAxH.js} +1 -1
  34. package/storybook-static/assets/{Disclosure.stories-CBdZfYjY.js → Disclosure.stories-DpwyYh7T.js} +1 -1
  35. package/storybook-static/assets/{DisclosureGroup-D3XWBJXQ.js → DisclosureGroup-CJI8B2x_.js} +1 -1
  36. package/storybook-static/assets/{DocsRenderer-JROSPFPF-gxuFq2Pd.js → DocsRenderer-JROSPFPF-Cf85Uxwt.js} +1 -1
  37. package/storybook-static/assets/{DropZone-C6xiwfG-.js → DropZone-C7qTrvkq.js} +1 -1
  38. package/storybook-static/assets/{DropZone-BxLXKfqY.js → DropZone-cYl1w3wQ.js} +1 -1
  39. package/storybook-static/assets/{DropZone.stories-BpRrpoAa.js → DropZone.stories-o02bE6DI.js} +1 -1
  40. package/storybook-static/assets/{DropdownMenu-CmzYr9oI.js → DropdownMenu-DqqPU9RU.js} +1 -1
  41. package/storybook-static/assets/{ExpandableActionPanel-YeKyHEkM.js → ExpandableActionPanel-B_pjHQ5m.js} +1 -1
  42. package/storybook-static/assets/{ExpandableActionPanel.stories-D2Kz4YaV.js → ExpandableActionPanel.stories-C7dJ5dht.js} +1 -1
  43. package/storybook-static/assets/{Flex-QTek1QSS.js → Flex-CIHkkwFK.js} +1 -1
  44. package/storybook-static/assets/{Flex.stories-DbQJjxyG.js → Flex.stories-DteEPY0y.js} +1 -1
  45. package/storybook-static/assets/{FloatingPopover-Z_pT8RTr.js → FloatingPopover-yB9tTk9G.js} +1 -1
  46. package/storybook-static/assets/{FormattedTableCell-sTTQO4a-.js → FormattedTableCell-QVYQepjk.js} +1 -1
  47. package/storybook-static/assets/{Grid-BplOAlTQ.js → Grid-BUVtGaZY.js} +1 -1
  48. package/storybook-static/assets/{Grid.stories-3z3Ey-d3.js → Grid.stories-CWGqCVB2.js} +1 -1
  49. package/storybook-static/assets/{ImageCropper.stories-CRS_mYqv.js → ImageCropper.stories-D8l7iHQA.js} +1 -1
  50. package/storybook-static/assets/{ImageRenderer-B-6CUiXT.js → ImageRenderer-BcPmp9P9.js} +1 -1
  51. package/storybook-static/assets/{ImageRenderer.stories-r1qsDpQo.js → ImageRenderer.stories-CcLUz8Ml.js} +1 -1
  52. package/storybook-static/assets/{ImageView.stories-JTwPOvTV.js → ImageView.stories-BwvjVmuF.js} +1 -1
  53. package/storybook-static/assets/{ImageViewer.stories-EXX-1Tq3.js → ImageViewer.stories-BjT782dr.js} +2 -2
  54. package/storybook-static/assets/{ImageViewerRuntime-D9mEsiiW.js → ImageViewerRuntime-DnQ-rQ_M.js} +1 -1
  55. package/storybook-static/assets/{Input-t9m3sVNs.js → Input-CmEkIaR0.js} +1 -1
  56. package/storybook-static/assets/{Input-o_oY36pr.js → Input-DebpyMJg.js} +1 -1
  57. package/storybook-static/assets/{Input.stories-BWFSZL_N.js → Input.stories-y2LCVkT2.js} +1 -1
  58. package/storybook-static/assets/{InputDateTime-lu3pzt-n.js → InputDateTime-B5oKuCea.js} +1 -1
  59. package/storybook-static/assets/{InputDateTime.stories-DhWcuSxT.js → InputDateTime.stories-Cwi0acf9.js} +1 -1
  60. package/storybook-static/assets/{InputFile-B5JzTYSK.js → InputFile-B2dVbDrE.js} +1 -1
  61. package/storybook-static/assets/{InputFile-DR6qGFRh.js → InputFile-DbRU7crz.js} +1 -1
  62. package/storybook-static/assets/{InputFile.stories-BDkbSn8C.js → InputFile.stories-DrXG5hWA.js} +1 -1
  63. package/storybook-static/assets/{InputFiles-CQU1IgFq.js → InputFiles-CsgKJXOD.js} +1 -1
  64. package/storybook-static/assets/{InputFiles-D1flVl2f.js → InputFiles-DEBKMzlt.js} +1 -1
  65. package/storybook-static/assets/{InputFiles.stories-DyNBsbIL.js → InputFiles.stories-EZDcefG0.js} +1 -1
  66. package/storybook-static/assets/{InputFilesList-DcnsEkjI.js → InputFilesList-GjMJ14Ln.js} +1 -1
  67. package/storybook-static/assets/{InputImage-DyS8prBK.js → InputImage-CFFK9MbG.js} +1 -1
  68. package/storybook-static/assets/{InputImage-trdfpmT-.js → InputImage-qjJ7xrKX.js} +1 -1
  69. package/storybook-static/assets/{InputImage.stories-DEk-50bc.js → InputImage.stories-B32AtBda.js} +1 -1
  70. package/storybook-static/assets/{InteractiveComponents-CJQb2Kqe.js → InteractiveComponents-DustBT4l.js} +1 -1
  71. package/storybook-static/assets/{InteractiveComponents.stories-A25AcgXi.js → InteractiveComponents.stories-J-7t7y-v.js} +1 -1
  72. package/storybook-static/assets/{LayoutPicker-Cyr59f6W.js → LayoutPicker-DlzXd6kS.js} +1 -1
  73. package/storybook-static/assets/LayoutPicker-DwNtjoeb.js +376 -0
  74. package/storybook-static/assets/{LayoutPicker.stories-BN6ES2FK.js → LayoutPicker.stories-2bG0TvXm.js} +1 -1
  75. package/storybook-static/assets/{Listbox-CpOkTSus.js → Listbox-BAhrUu_I.js} +16 -4
  76. package/storybook-static/assets/Listbox-C9qCMY31.js +1 -0
  77. package/storybook-static/assets/{Listbox.stories-CuJAPNNF.js → Listbox.stories-BfakOrPT.js} +1 -1
  78. package/storybook-static/assets/{Modal-0h4g26vg.js → Modal-D5znEvBs.js} +1 -1
  79. package/storybook-static/assets/{Modal-BDbbUiVP.js → Modal-wGyoEzau.js} +1 -1
  80. package/storybook-static/assets/{Modal.stories-BJTQMX6r.js → Modal.stories-DotZ88Ut.js} +1 -1
  81. package/storybook-static/assets/{ModalManagerProvider-CKUlkLye.js → ModalManagerProvider-DXPaYU4j.js} +1 -1
  82. package/storybook-static/assets/MultiSelect-BxKmL7sF.js +2 -0
  83. package/storybook-static/assets/{MultiSelect-jTomHycE.js → MultiSelect-DN1NhXH9.js} +1 -1
  84. package/storybook-static/assets/{MultiSelect.stories-KUrIgYcH.js → MultiSelect.stories-Cdrx9hhT.js} +1 -1
  85. package/storybook-static/assets/{NoData-Cg-72gvD.js → NoData-mAjM6Vuy.js} +1 -1
  86. package/storybook-static/assets/{NotificationsHost-BGUy6Nwm.js → NotificationsHost-gBWuk9v-.js} +1 -1
  87. package/storybook-static/assets/{NotificationsHost.stories-UqcdAxbV.js → NotificationsHost.stories-DONKtSKb.js} +1 -1
  88. package/storybook-static/assets/{ODataMultiSelect-ogSmpbiq.js → ODataMultiSelect-Daq3ksSA.js} +1 -1
  89. package/storybook-static/assets/{ODataMultiSelect.stories-CFSWPA1t.js → ODataMultiSelect.stories-De0WwTKp.js} +1 -1
  90. package/storybook-static/assets/{ODataSelect-XrSMzI_c.js → ODataSelect-BUO-vyqK.js} +1 -1
  91. package/storybook-static/assets/{ODataSelect.stories-DzQ8kx1B.js → ODataSelect.stories-CJ2RCZGP.js} +1 -1
  92. package/storybook-static/assets/{ODataTreeMultiSelect-Bd6N1nUD.js → ODataTreeMultiSelect-Ctyo-uib.js} +1 -1
  93. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BL3LegRZ.js → ODataTreeMultiSelect.stories-BX4wjGkG.js} +1 -1
  94. package/storybook-static/assets/{ODataTreeSelect-LP9MrILe.js → ODataTreeSelect-BZzwG_Ve.js} +1 -1
  95. package/storybook-static/assets/{ODataTreeSelect.stories-B1xaZzaX.js → ODataTreeSelect.stories-B0jQNyMj.js} +1 -1
  96. package/storybook-static/assets/{OneStepScroller-Ccn3TcUI.js → OneStepScroller-BL3gxJh1.js} +1 -1
  97. package/storybook-static/assets/{Option-CdzPub1C.js → Option-JgQ-duDq.js} +1 -1
  98. package/storybook-static/assets/{OptionButton-BmRyJTuO.js → OptionButton-CATaxLh0.js} +1 -1
  99. package/storybook-static/assets/{PeriodSelect-BngzAU_C.js → PeriodSelect-4LpRQDP5.js} +1 -1
  100. package/storybook-static/assets/{PeriodSelect-kQAjEWSH.js → PeriodSelect-BIsC_Ew6.js} +1 -1
  101. package/storybook-static/assets/{PeriodSelect.stories-BRvyn_JH.js → PeriodSelect.stories-D5fKpF2P.js} +1 -1
  102. package/storybook-static/assets/PickerField-BkqWIWZw.js +1 -0
  103. package/storybook-static/assets/{PickerTriggerActions-C0nuR9kw.js → PickerTriggerActions-BVrXKKJ9.js} +1 -1
  104. package/storybook-static/assets/{Popover-CsDztf-o.js → Popover-BTrxASXR.js} +1 -1
  105. package/storybook-static/assets/{Popover-GYtSL_1f.js → Popover-DZlEnjse.js} +1 -1
  106. package/storybook-static/assets/{Popover.stories-Bqt_2L3Y.js → Popover.stories-BdyB4Q7K.js} +1 -1
  107. package/storybook-static/assets/{PresetRangeDateInput-C9G9Gebd.js → PresetRangeDateInput-Cp66aUGT.js} +1 -1
  108. package/storybook-static/assets/{PresetRangeDateInput-BSssho5H.js → PresetRangeDateInput-DUES355B.js} +1 -1
  109. package/storybook-static/assets/{PresetRangeDateInput.stories-CwdMXBFw.js → PresetRangeDateInput.stories-D4jLrF6o.js} +1 -1
  110. package/storybook-static/assets/{PresetSelect-BPsCLuct.js → PresetSelect-CmRrk7FZ.js} +1 -1
  111. package/storybook-static/assets/{README-e8EWTIws.js → README--fYBobJK.js} +1 -1
  112. package/storybook-static/assets/{README-vDg-39Yq.js → README-4AGJG--w.js} +1 -1
  113. package/storybook-static/assets/{README-Dz8_KWoz.js → README-52AHLz83.js} +1 -1
  114. package/storybook-static/assets/{README-D-fVNtRb.js → README-55mkSTZb.js} +1 -1
  115. package/storybook-static/assets/{README-Bq38hDzk.js → README-B00ewV67.js} +1 -1
  116. package/storybook-static/assets/{README-BpmlhmtG.js → README-B20cH-BV.js} +1 -1
  117. package/storybook-static/assets/{README-DXRNhATk.js → README-B4CJVRtX.js} +1 -1
  118. package/storybook-static/assets/{README-BRpdVUr9.js → README-B7BK3gkk.js} +1 -1
  119. package/storybook-static/assets/{README-C7j7n7jq.js → README-B9foBRQ-.js} +1 -1
  120. package/storybook-static/assets/{README-pexCW3yI.js → README-BCNsNQNj.js} +1 -1
  121. package/storybook-static/assets/{README-C53FAkdN.js → README-BGA2Ek3H.js} +1 -1
  122. package/storybook-static/assets/{README-DoPWzeQH.js → README-BUknkyU6.js} +1 -1
  123. package/storybook-static/assets/{README-ZguU3X5y.js → README-BfGp1q9n.js} +1 -1
  124. package/storybook-static/assets/{README-CXq89IOI.js → README-BhRGrTHx.js} +1 -1
  125. package/storybook-static/assets/{README-BOBlSnDn.js → README-Bh_zrJ_j.js} +1 -1
  126. package/storybook-static/assets/{README-XW0y0mGh.js → README-BlWMNqE5.js} +1 -1
  127. package/storybook-static/assets/{README-HY5c2Bbn.js → README-BmKEL3jy.js} +1 -1
  128. package/storybook-static/assets/{README-BLXGXOo5.js → README-BoGNjKgW.js} +1 -1
  129. package/storybook-static/assets/{README-D67Ndgh9.js → README-Bq8FLza7.js} +1 -1
  130. package/storybook-static/assets/{README-9XRn3-ED.js → README-BrJaVHU_.js} +1 -1
  131. package/storybook-static/assets/{README-DtQcSyrT.js → README-BsUvf6lk.js} +1 -1
  132. package/storybook-static/assets/{README-Y1Smckdh.js → README-C28SDMRx.js} +1 -1
  133. package/storybook-static/assets/{README-Tw0ZHHwr.js → README-C8Xo5jEX.js} +1 -1
  134. package/storybook-static/assets/{README-BhoxLtlr.js → README-CHw6-PVx.js} +1 -1
  135. package/storybook-static/assets/{README-Ckp4sw5f.js → README-CPYFZwZE.js} +1 -1
  136. package/storybook-static/assets/{README-GLir3V8b.js → README-CU_f1CMq.js} +1 -1
  137. package/storybook-static/assets/{README-DFCutGv3.js → README-C_SQjJtW.js} +1 -1
  138. package/storybook-static/assets/{README-BmzSVH7U.js → README-C_WyDQDz.js} +1 -1
  139. package/storybook-static/assets/{README-BIqQ7jYg.js → README-CmK6hELS.js} +1 -1
  140. package/storybook-static/assets/{README-Do7nnQ_n.js → README-CnRKlFuJ.js} +1 -1
  141. package/storybook-static/assets/{README-CJtOh4Sd.js → README-CoD7FHU_.js} +1 -1
  142. package/storybook-static/assets/{README-PcQNwv17.js → README-Cs-dnvtW.js} +1 -1
  143. package/storybook-static/assets/{README-D_a06RNK.js → README-CzKPWsNs.js} +1 -1
  144. package/storybook-static/assets/{README-CV61J_JK.js → README-D-TgbUSA.js} +1 -1
  145. package/storybook-static/assets/{README-n1zI-vYE.js → README-D6pLFtqL.js} +1 -1
  146. package/storybook-static/assets/{README-5RP00KZZ.js → README-D7jyja4l.js} +1 -1
  147. package/storybook-static/assets/{README-DS_nuTod.js → README-D8YPmvQw.js} +1 -1
  148. package/storybook-static/assets/{README-D43Puppu.js → README-DG5knhc9.js} +1 -1
  149. package/storybook-static/assets/{README-Del1wUfr.js → README-DK-Bw1l1.js} +1 -1
  150. package/storybook-static/assets/{README-DcWifa4y.js → README-DK-US_zR.js} +1 -1
  151. package/storybook-static/assets/{README-Bc8lHbXV.js → README-DNUrBjgg.js} +1 -1
  152. package/storybook-static/assets/{README-oKCgmTdw.js → README-DPuLgYuK.js} +1 -1
  153. package/storybook-static/assets/{README-wKqwiHb4.js → README-DgudM-2t.js} +1 -1
  154. package/storybook-static/assets/{README-DXBpQ2ho.js → README-Ds6OSOC0.js} +1 -1
  155. package/storybook-static/assets/{README-DQysVKmM.js → README-DsfBjN9N.js} +1 -1
  156. package/storybook-static/assets/{README-DqbwD6RO.js → README-Duppk6f6.js} +1 -1
  157. package/storybook-static/assets/{README-CVql_W36.js → README-DvZ8ZhlH.js} +1 -1
  158. package/storybook-static/assets/{README-BYHSzLwv.js → README-DyLt9P77.js} +1 -1
  159. package/storybook-static/assets/{README-Ba0tB6ZN.js → README-DzVNZdfo.js} +1 -1
  160. package/storybook-static/assets/{README-BXb7J1i8.js → README-E5QziGK8.js} +1 -1
  161. package/storybook-static/assets/{README-CxDM046q.js → README-EIhMMZ0t.js} +1 -1
  162. package/storybook-static/assets/{README-V9DD9H9z.js → README-LqD1V5ru.js} +1 -1
  163. package/storybook-static/assets/{README-C07t0NIU.js → README-lgRhlVsq.js} +1 -1
  164. package/storybook-static/assets/{RadioButton-DvDDf9wn.js → RadioButton-BLHXpf6L.js} +1 -1
  165. package/storybook-static/assets/{RadioButton-DGT616TU.js → RadioButton-CmcExRQs.js} +1 -1
  166. package/storybook-static/assets/{RadioButton.stories-BSA2eNrW.js → RadioButton.stories-P1SEMdJ1.js} +1 -1
  167. package/storybook-static/assets/{RadioGroup-Cj-zQisA.js → RadioGroup-BBv2Na1n.js} +1 -1
  168. package/storybook-static/assets/{RadioGroup-C_ZapH6C.js → RadioGroup-DkCSA8me.js} +1 -1
  169. package/storybook-static/assets/{RadioGroup.stories-B6HK1X-8.js → RadioGroup.stories-5-uFHs1b.js} +1 -1
  170. package/storybook-static/assets/{Scrollable-DCvN6Jjw.js → Scrollable-XhGz9dwJ.js} +1 -1
  171. package/storybook-static/assets/Select-BEMtNq5M.js +12 -0
  172. package/storybook-static/assets/{Select-DY9-upm8.js → Select-CyA-PHrU.js} +1 -1
  173. package/storybook-static/assets/{Select.stories-CZ_QR5HG.js → Select.stories-B_GbDG58.js} +1 -1
  174. package/storybook-static/assets/{SerializableSelect-11vTkd0H.js → SerializableSelect-CJ74e_Vc.js} +1 -1
  175. package/storybook-static/assets/{SerializableSelect.stories-BguIknSO.js → SerializableSelect.stories-PUXPFPFx.js} +1 -1
  176. package/storybook-static/assets/{SingleDateTimeInput-DCsz6UCV.js → SingleDateTimeInput-BlpQ8t9f.js} +1 -1
  177. package/storybook-static/assets/{SingleDateTimeInput-BoGhy8Ht.js → SingleDateTimeInput-wqb75Yrz.js} +1 -1
  178. package/storybook-static/assets/{SingleDateTimeInput.stories-DxuSYUFA.js → SingleDateTimeInput.stories-CdogRh5M.js} +1 -1
  179. package/storybook-static/assets/{Slider-CysM6SsH.js → Slider-CZa1f0vP.js} +1 -1
  180. package/storybook-static/assets/{Slider-OjWEFAVX.js → Slider-r8Be9wJ4.js} +1 -1
  181. package/storybook-static/assets/{Slider.stories-D9yfMGAr.js → Slider.stories-BUwg0h15.js} +1 -1
  182. package/storybook-static/assets/{SliderInput-CI_NLQ0q.js → SliderInput-BWFbcA5R.js} +1 -1
  183. package/storybook-static/assets/{SliderInput-DBTFSE4e.js → SliderInput-BaZBNhhF.js} +1 -1
  184. package/storybook-static/assets/{SliderInput.stories-D0oX3RFL.js → SliderInput.stories-Cbxo0ku_.js} +1 -1
  185. package/storybook-static/assets/{Sortable-wMgs80Np.js → Sortable-JfLmQUdm.js} +1 -1
  186. package/storybook-static/assets/{Sortable.stories-CzLFp8Yi.js → Sortable.stories-Cz9xM3Tw.js} +1 -1
  187. package/storybook-static/assets/{Splitter-BKw_fa4-.js → Splitter-BkQcPRYJ.js} +1 -1
  188. package/storybook-static/assets/{Splitter.stories-BESoJ6o1.js → Splitter.stories-zQf1fK4D.js} +1 -1
  189. package/storybook-static/assets/{StateSelect-BwNBFERr.js → StateSelect-DxH1oWnK.js} +1 -1
  190. package/storybook-static/assets/{StateSelect-BO-jFCLn.js → StateSelect-TLRMUmko.js} +1 -1
  191. package/storybook-static/assets/{StateSelect.stories-BK7SyuXQ.js → StateSelect.stories-CReLNG_6.js} +1 -1
  192. package/storybook-static/assets/{StringToggle.stories-A6pkEO-O.js → StringToggle.stories-BYqTdRbD.js} +1 -1
  193. package/storybook-static/assets/{Switch-Ca3gnf5f.js → Switch-ChsLVAse.js} +1 -1
  194. package/storybook-static/assets/{Switch-8JotpfFf.js → Switch-DE9rqHmp.js} +1 -1
  195. package/storybook-static/assets/{Switch.stories-o3vvp8L8.js → Switch.stories-BaVgLi3_.js} +1 -1
  196. package/storybook-static/assets/{Table-C_IPJbR2.js → Table-qoMvYV1q.js} +1 -1
  197. package/storybook-static/assets/{Table.stories-DOFEu7Ua.js → Table.stories-BdLScKfS.js} +1 -1
  198. package/storybook-static/assets/{Tabs-BLBo4OAv.js → Tabs-CuALrdgt.js} +1 -1
  199. package/storybook-static/assets/{Tabs.stories-RBnCQrM-.js → Tabs.stories-BrLtxZ_a.js} +1 -1
  200. package/storybook-static/assets/{TabsBox-apqD4XLH.js → TabsBox-DzfWhIHb.js} +1 -1
  201. package/storybook-static/assets/{TagInput-CSYOG896.js → TagInput-Tyn5Jgus.js} +1 -1
  202. package/storybook-static/assets/{TagInput.stories-BnGuMi6T.js → TagInput.stories-Bbs3olyB.js} +1 -1
  203. package/storybook-static/assets/{Text-mRhkARXu.js → Text-B4GUKigV.js} +1 -1
  204. package/storybook-static/assets/{Textarea-DS1hM5rM.js → Textarea-CNu-scX8.js} +1 -1
  205. package/storybook-static/assets/{Textarea-Covk__BL.js → Textarea-D3iwzB-S.js} +1 -1
  206. package/storybook-static/assets/{Textarea.stories-BdpsMxDY.js → Textarea.stories-CE2gt74x.js} +1 -1
  207. package/storybook-static/assets/{TimePanel-PDYyBCbF.js → TimePanel-BESMLCVl.js} +1 -1
  208. package/storybook-static/assets/{TimePanel.stories-BFS31y6L.js → TimePanel.stories-BYhTpaoS.js} +1 -1
  209. package/storybook-static/assets/{Toggle-zWHGLyKm.js → Toggle-0-SlfDXC.js} +1 -1
  210. package/storybook-static/assets/{Toggle-DTX4Q7y6.js → Toggle-BexBc-UO.js} +1 -1
  211. package/storybook-static/assets/{Toggle.stories-fZ7WRE_7.js → Toggle.stories-CG4rBYOZ.js} +1 -1
  212. package/storybook-static/assets/{TreeMultiSelect-BSZO9xe1.js → TreeMultiSelect-Cne9qXjN.js} +1 -1
  213. package/storybook-static/assets/{TreeMultiSelect-C4y6p4PX.js → TreeMultiSelect-QId1DJUn.js} +1 -1
  214. package/storybook-static/assets/{TreeMultiSelect.stories-DXKBBf5r.js → TreeMultiSelect.stories-D6ElJY8Y.js} +1 -1
  215. package/storybook-static/assets/{TreePickerBase-CMHFqHVa.js → TreePickerBase-Dq3HMrua.js} +2 -2
  216. package/storybook-static/assets/{TreeSelect-DGXveWx3.js → TreeSelect-BJKtAh4x.js} +1 -1
  217. package/storybook-static/assets/{TreeSelect-Dh5uT4_T.js → TreeSelect-q4gdFfBH.js} +1 -1
  218. package/storybook-static/assets/{TreeSelect.stories-Byy-mMTP.js → TreeSelect.stories-DfCxZuVy.js} +1 -1
  219. package/storybook-static/assets/{TreeTable-BN7J72I8.js → TreeTable-5fAWCnhQ.js} +1 -1
  220. package/storybook-static/assets/{TreeTable.stories-FYHTdBr3.js → TreeTable.stories-B1fSfYHg.js} +1 -1
  221. package/storybook-static/assets/{blocks-o5-z1BZu.js → blocks-B_u8Yt1Z.js} +3 -3
  222. package/storybook-static/assets/{check-C4AaNZYo.js → check-r01NGn4c.js} +1 -1
  223. package/storybook-static/assets/{chevron-down-DvNqUDlQ.js → chevron-down-DxMviYn3.js} +1 -1
  224. package/storybook-static/assets/{chevron-left-DjMG1A8Y.js → chevron-left-mKnQH53V.js} +1 -1
  225. package/storybook-static/assets/{chevron-right-Mitq9JQN.js → chevron-right-CeJNqWTb.js} +1 -1
  226. package/storybook-static/assets/{chunk-W22LQPXL-DNwhYDee.js → chunk-W22LQPXL-DorleiwX.js} +1 -1
  227. package/storybook-static/assets/{circle-alert-RsaUYk8p.js → circle-alert-H7OZyDmF.js} +1 -1
  228. package/storybook-static/assets/{circle-check-Bf5GP89g.js → circle-check-my8Ev6ar.js} +1 -1
  229. package/storybook-static/assets/{components-B4tZ3-vQ.js → components-CDMhSXUo.js} +3 -3
  230. package/storybook-static/assets/{contextMenu-Ftv13fjh.js → contextMenu-fMt3iyZv.js} +1 -1
  231. package/storybook-static/assets/{download-BmjzCCZo.js → download-BCwj5k1S.js} +1 -1
  232. package/storybook-static/assets/{floating-ui.react-BY7cYh9B.js → floating-ui.react-Cy32mouo.js} +1 -1
  233. package/storybook-static/assets/{foundationApi-C7zGaHuR.js → foundationApi-BtZYXGDY.js} +1 -1
  234. package/storybook-static/assets/{foundationLib-CQpPkJlc.js → foundationLib-CHOUG7NK.js} +1 -1
  235. package/storybook-static/assets/{hooks-DQXnNniA.js → hooks-CEvNG7IN.js} +1 -1
  236. package/storybook-static/assets/iframe-CDVsimPQ.js +1 -0
  237. package/storybook-static/assets/{iframe-Cb11iJVP.js → iframe-DWvPB8Sk.js} +4 -4
  238. package/storybook-static/assets/{info-BmiY6Ur5.js → info-CA6M6l6h.js} +1 -1
  239. package/storybook-static/assets/{odata-D-cQAIdp.js → odata-CHl7sWAn.js} +1 -1
  240. package/storybook-static/assets/{odataStoryFixtures-BddSr1SB.js → odataStoryFixtures-BvjpoqqT.js} +1 -1
  241. package/storybook-static/assets/{react-wmXnhrTV.js → react-B37E__uI.js} +1 -1
  242. package/storybook-static/assets/{refresh-cw-BoUt7cjC.js → refresh-cw-Bt4yd-lG.js} +1 -1
  243. package/storybook-static/assets/{settings-2-BnEmfu4n.js → settings-2-B7Uyk4j8.js} +1 -1
  244. package/storybook-static/assets/{sortable-BG6M9j0E.js → sortable-B8UMQCaH.js} +1 -1
  245. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-DTU-Nj55.js → syntaxhighlighter-QEQV7K2Y-QGUDFNNj.js} +1 -1
  246. package/storybook-static/assets/{trash-2-CEuSrdHe.js → trash-2-Bhjh1o0B.js} +1 -1
  247. package/storybook-static/assets/{triangle-alert-BB6HrHL-.js → triangle-alert-D1c-iB00.js} +1 -1
  248. package/storybook-static/assets/{useODataSelectBase-DiMVVy-k.js → useODataSelectBase-CYnvX8wM.js} +1 -1
  249. package/storybook-static/assets/{useODataTreeData-DiV_gN4z.js → useODataTreeData-C2risfo7.js} +1 -1
  250. package/storybook-static/assets/{usePickerQuery-Dc3Jdhg0.js → usePickerQuery-CjSFlUmn.js} +1 -1
  251. package/storybook-static/assets/usePickerTriggerController-Bqo5fhOa.js +6 -0
  252. package/storybook-static/assets/{x-CcdATVNL.js → x-B3GmOByS.js} +1 -1
  253. package/storybook-static/iframe.html +2 -2
  254. package/storybook-static/project.json +1 -1
  255. package/storybook-static/assets/LayoutPicker-DmMkNRCR.js +0 -376
  256. package/storybook-static/assets/Listbox-BL6exIiK.js +0 -1
  257. package/storybook-static/assets/MultiSelect-DOFS5VMw.js +0 -2
  258. package/storybook-static/assets/Select-DPdZSw3l.js +0 -12
  259. package/storybook-static/assets/iframe-B-sjM2X5.js +0 -1
  260. package/storybook-static/assets/usePickerTriggerController-BjY_AiUm.js +0 -6
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes, JSX, ReactNode } from "react";
1
+ import { type HTMLAttributes, type JSX, type ReactNode } from "react";
2
2
  type ListboxOption<T> = {
3
3
  value: T;
4
4
  label?: string;
@@ -6,6 +6,8 @@ type ListboxOption<T> = {
6
6
  };
7
7
  interface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue" | "value"> {
8
8
  options: ListboxOption<T>[];
9
+ label?: ReactNode;
10
+ description?: string;
9
11
  disabled?: boolean;
10
12
  focusOnMount?: boolean;
11
13
  renderItem?: (option: ListboxOption<T>, selected: boolean, active: boolean) => ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../src/listbox/Listbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEN,cAAc,EACd,GAAG,EAEH,SAAS,EAOT,MAAM,OAAO,CAAC;AAaf,KAAK,aAAa,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,UAAU,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC;IAChH,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC;IACzF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7D;AAGD,UAAU,kBAAkB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACxD;AAGD,UAAU,iBAAiB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IACzD,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC1D;AA4BD;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;AACtE,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../src/listbox/Listbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,GAAG,EAGR,KAAK,SAAS,EAMd,MAAM,OAAO,CAAC;AAaf,KAAK,aAAa,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,UAAU,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC;IAChH,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC;IACzF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7D;AAGD,UAAU,kBAAkB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACxD;AAGD,UAAU,iBAAiB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IACzD,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC1D;AA4BD;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;AACtE,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { CustomOptionButton as e, Option as t, OptionButton as n } from "../option/index.js";
2
- import { h as r } from "../chunks/picker-DZ4-1BvK.js";
3
- import { useEffect as i, useId as a, useLayoutEffect as o, useMemo as s, useRef as c, useState as l } from "react";
2
+ import { h as r, v as i } from "../chunks/picker-DZ4-1BvK.js";
3
+ import { useEffect as a, useLayoutEffect as o, useMemo as s, useRef as c, useState as l } from "react";
4
4
  import { findFirstEnabledIndex as u, findLastEnabledIndex as d, findNextEnabledIndex as f, handleKeyboardActivation as p } from "@ryuzaki13/react-foundation-lib/utils";
5
5
  import { jsx as m } from "react/jsx-runtime";
6
6
  import { CheckIcon as h } from "lucide-react";
@@ -21,74 +21,83 @@ function _(e, t, n) {
21
21
  return u(e, g);
22
22
  }
23
23
  function v(v) {
24
- let { value: y, defaultValue: b, multiple: x, disabled: S, focusOnMount: C, renderItem: w, getKey: T, options: E, onChange: D, id: O, ...k } = v, A = y !== void 0, j = a(), M = O ?? `${j}-listbox`, [N, P] = l(b), F = c(null), [I, L] = l(() => _(E, y ?? b, x)), R = c(!1), z = s(() => (A ? y : N) ?? (x ? [] : null), [
24
+ let { value: y, defaultValue: b, multiple: x, label: S, description: C, disabled: w, focusOnMount: T, renderItem: E, getKey: D, options: O, onChange: k, id: A, ...j } = v, M = y !== void 0, [N, P] = l(b), F = c(null), [I, L] = l(() => _(O, y ?? b, x)), R = c(!1), z = s(() => (M ? y : N) ?? (x ? [] : null), [
25
25
  N,
26
- A,
26
+ M,
27
27
  x,
28
28
  y
29
29
  ]), B = I, V = (e) => {
30
- if (S || e.disabled) return;
31
- let t;
32
- if (v.multiple) {
33
- let n = Array.isArray(z) ? z : [];
34
- t = n.includes(e.value) ? n.filter((t) => t !== e.value) : [...n, e.value], v.onChange?.(t, e);
35
- } else t = e.value, v.onChange?.(t, e);
36
- A || P(t);
30
+ if (!(w || e.disabled)) {
31
+ if (x) {
32
+ let t = Array.isArray(z) ? z : [], n = t.includes(e.value) ? t.filter((t) => t !== e.value) : [...t, e.value];
33
+ k?.(n, e), M || P(n);
34
+ return;
35
+ }
36
+ k?.(e.value, e), M || P(e.value);
37
+ }
38
+ }, H = (e) => {
39
+ if (!w) {
40
+ if (e.key === "ArrowDown") e.preventDefault(), R.current = !0, L((e) => f(O, e, 1, g));
41
+ else if (e.key === "ArrowUp") e.preventDefault(), R.current = !0, L((e) => f(O, e, -1, g));
42
+ else if (e.key === "Home") e.preventDefault(), R.current = !0, L(u(O, g));
43
+ else if (e.key === "End") e.preventDefault(), R.current = !0, L(d(O, g));
44
+ else if (p(e, () => {
45
+ let e = O[B];
46
+ e && V(e);
47
+ })) return;
48
+ }
37
49
  };
38
- return i(() => {
50
+ return a(() => {
39
51
  if (!R.current) return;
40
52
  R.current = !1;
41
53
  let e = F.current?.querySelectorAll("[role=\"option\"]")[B];
42
54
  e && e.scrollIntoView({ block: "nearest" });
43
55
  }, [B]), o(() => {
44
- C && F.current?.focus();
45
- }, [C]), /* @__PURE__ */ m(r, {
46
- rootRef: F,
47
- id: M,
48
- role: "listbox",
49
- "aria-multiselectable": x || void 0,
50
- "aria-activedescendant": B >= 0 ? `${M}-option-${B}` : void 0,
51
- onKeyDown: (e) => {
52
- if (!S) {
53
- if (e.key === "ArrowDown") e.preventDefault(), R.current = !0, L((e) => f(E, e, 1, g));
54
- else if (e.key === "ArrowUp") e.preventDefault(), R.current = !0, L((e) => f(E, e, -1, g));
55
- else if (e.key === "Home") e.preventDefault(), R.current = !0, L(u(E, g));
56
- else if (e.key === "End") e.preventDefault(), R.current = !0, L(d(E, g));
57
- else if (p(e, () => {
58
- let e = E[B];
59
- e && V(e);
60
- })) return;
61
- }
62
- },
63
- ...k,
64
- "aria-disabled": S || void 0,
65
- tabIndex: S ? -1 : 0,
66
- className: k.className,
67
- children: E.map((r, i) => {
68
- let a = x ? Array.isArray(z) && z.includes(r.value) : z === r.value, o = i === B, s = S || r.disabled || void 0, c = (e) => {
69
- e.preventDefault(), !s && (L(i), V(r));
70
- };
71
- return /* @__PURE__ */ m(t, {
72
- id: `${M}-option-${i}`,
73
- role: "option",
74
- "aria-selected": a,
75
- "aria-disabled": s,
76
- disabled: s,
77
- active: o,
78
- selected: a,
79
- children: w ? /* @__PURE__ */ m(e, {
80
- tabIndex: -1,
81
- disabled: s,
82
- onMouseDown: c,
83
- children: w(r, a, o)
84
- }) : /* @__PURE__ */ m(n, {
85
- tabIndex: -1,
86
- disabled: s,
87
- onMouseDown: c,
88
- icon: m(a ? h : "span", {}),
89
- text: r.label ?? String(r.value)
90
- })
91
- }, T ? T(r, i) : i);
56
+ T && F.current?.focus();
57
+ }, [T]), /* @__PURE__ */ m(i, {
58
+ id: A,
59
+ label: S,
60
+ description: C,
61
+ disabled: w,
62
+ children: ({ controlId: i, labelId: a, describedBy: o }) => /* @__PURE__ */ m(r, {
63
+ rootRef: F,
64
+ id: i,
65
+ role: "listbox",
66
+ "aria-multiselectable": x || void 0,
67
+ "aria-activedescendant": B >= 0 ? `${i}-option-${B}` : void 0,
68
+ onKeyDown: H,
69
+ ...j,
70
+ "aria-labelledby": a ?? j["aria-labelledby"],
71
+ "aria-describedby": o ?? j["aria-describedby"],
72
+ "aria-disabled": w || void 0,
73
+ tabIndex: w ? -1 : 0,
74
+ className: j.className,
75
+ children: O.map((r, a) => {
76
+ let o = x ? Array.isArray(z) && z.includes(r.value) : z === r.value, s = a === B, c = w || r.disabled || void 0, l = (e) => {
77
+ e.preventDefault(), !c && (L(a), V(r));
78
+ };
79
+ return /* @__PURE__ */ m(t, {
80
+ id: `${i}-option-${a}`,
81
+ role: "option",
82
+ "aria-selected": o,
83
+ "aria-disabled": c,
84
+ disabled: c,
85
+ active: s,
86
+ selected: o,
87
+ children: E ? /* @__PURE__ */ m(e, {
88
+ tabIndex: -1,
89
+ disabled: c,
90
+ onMouseDown: l,
91
+ children: E(r, o, s)
92
+ }) : /* @__PURE__ */ m(n, {
93
+ tabIndex: -1,
94
+ disabled: c,
95
+ onMouseDown: l,
96
+ icon: m(o ? h : "span", {}),
97
+ text: r.label ?? String(r.value)
98
+ })
99
+ }, D ? D(r, a) : a);
100
+ })
92
101
  })
93
102
  });
94
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/listbox/Listbox.tsx"],"sourcesContent":["import {\n\ttype MouseEvent,\n\tHTMLAttributes,\n\tJSX,\n\tKeyboardEvent,\n\tReactNode,\n\tuseEffect,\n\tuseId,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState\n} from \"react\";\n\nimport {\n\tfindFirstEnabledIndex,\n\tfindLastEnabledIndex,\n\tfindNextEnabledIndex,\n\thandleKeyboardActivation\n} from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { CustomOptionButton, Option, OptionButton } from \"../option\";\nimport { PickerOptions } from \"../picker\";\n\ntype ListboxOption<T> = {\n\tvalue: T;\n\tlabel?: string;\n\tdisabled?: boolean;\n};\n\ninterface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\" | \"value\"> {\n\toptions: ListboxOption<T>[];\n\tdisabled?: boolean;\n\tfocusOnMount?: boolean;\n\trenderItem?: (option: ListboxOption<T>, selected: boolean, active: boolean) => ReactNode;\n\tgetKey?: (option: ListboxOption<T>, index: number) => string;\n}\n\n// Вариант для single-select\ninterface ListboxSingleProps<T> extends ListboxBaseProps<T> {\n\tmultiple?: false;\n\tvalue?: T;\n\tdefaultValue?: T;\n\tonChange?: (value: T, option: ListboxOption<T>) => void;\n}\n\n// Вариант для multi-select\ninterface ListboxMultiProps<T> extends ListboxBaseProps<T> {\n\tmultiple: true;\n\tvalue?: T[];\n\tdefaultValue?: T[];\n\tonChange?: (value: T[], option: ListboxOption<T>) => void;\n}\n\ntype ListboxProps<T> = ListboxSingleProps<T> | ListboxMultiProps<T>;\n\nconst isOptionDisabled = <T,>(option: ListboxOption<T>) => option.disabled === true;\n\nfunction getInitialFocusIndex<T>(options: ListboxOption<T>[], value: T | T[] | undefined, multiple: boolean | undefined) {\n\tif (multiple) {\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\tconst selectedIndex = options.findIndex((option) => value.includes(option.value) && !option.disabled);\n\t\t\tif (selectedIndex >= 0) {\n\t\t\t\treturn selectedIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn findFirstEnabledIndex(options, isOptionDisabled);\n\t}\n\n\tif (value !== undefined) {\n\t\tconst selectedIndex = options.findIndex((option) => option.value === value && !option.disabled);\n\t\tif (selectedIndex >= 0) {\n\t\t\treturn selectedIndex;\n\t\t}\n\t}\n\n\treturn findFirstEnabledIndex(options, isOptionDisabled);\n}\n\n/**\n * Компонент выбора одного или нескольких элементов из списка. Поддерживает controlled API, поиск по данным и рендер кастомных опций.\n */\nexport function Listbox<T>(props: ListboxSingleProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxMultiProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxProps<T>): JSX.Element {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { value, defaultValue, multiple, disabled, focusOnMount, renderItem, getKey, options, onChange, id: externalId, ...rest } = props;\n\n\tconst isControlled = value !== undefined;\n\tconst autoId = useId();\n\tconst listId = externalId ?? `${autoId}-listbox`;\n\tconst [internalValue, setInternalValue] = useState<T | T[] | undefined>(defaultValue);\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState(() => getInitialFocusIndex(options, value ?? defaultValue, multiple));\n\t/**\n\t * Прокрутка нужна только после клавиатурной навигации. Это не даёт монтированию и Fast Refresh\n\t * вызывать scrollIntoView, который иначе прокручивает внешнюю страницу до Listbox.\n\t */\n\tconst shouldScrollActiveOptionRef = useRef(false);\n\n\tconst selectedValues = useMemo(\n\t\t() => (isControlled ? value : internalValue) ?? (multiple ? [] : null),\n\t\t[internalValue, isControlled, multiple, value]\n\t);\n\tconst activeIndex = focusedIndex;\n\n\tconst handleSelect = (option: ListboxOption<T>) => {\n\t\tif (disabled || option.disabled) return;\n\n\t\tlet newValue: T | T[];\n\t\tif (props.multiple) {\n\t\t\tconst arr = Array.isArray(selectedValues) ? selectedValues : [];\n\t\t\tnewValue = arr.includes(option.value) ? arr.filter((v) => v !== option.value) : [...arr, option.value];\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t} else {\n\t\t\tnewValue = option.value;\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t}\n\n\t\tif (!isControlled) setInternalValue(newValue);\n\t};\n\n\tconst handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n\t\tif (disabled) return;\n\n\t\tif (e.key === \"ArrowDown\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, 1, isOptionDisabled));\n\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, -1, isOptionDisabled));\n\t\t} else if (e.key === \"Home\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findFirstEnabledIndex(options, isOptionDisabled));\n\t\t} else if (e.key === \"End\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findLastEnabledIndex(options, isOptionDisabled));\n\t\t} else if (\n\t\t\thandleKeyboardActivation(e, () => {\n\t\t\t\tconst activeOption = options[activeIndex];\n\t\t\t\tif (activeOption) {\n\t\t\t\t\thandleSelect(activeOption);\n\t\t\t\t}\n\t\t\t})\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!shouldScrollActiveOptionRef.current) return;\n\n\t\tshouldScrollActiveOptionRef.current = false;\n\t\tconst el = listRef.current?.querySelectorAll<HTMLElement>('[role=\"option\"]')[activeIndex];\n\t\tif (el) el.scrollIntoView({ block: \"nearest\" });\n\t}, [activeIndex]);\n\n\tuseLayoutEffect(() => {\n\t\tif (focusOnMount) {\n\t\t\tlistRef.current?.focus();\n\t\t}\n\t}, [focusOnMount]);\n\n\treturn (\n\t\t<PickerOptions\n\t\t\trootRef={listRef}\n\t\t\tid={listId}\n\t\t\trole=\"listbox\"\n\t\t\t// aria-label={}\n\t\t\taria-multiselectable={multiple || undefined}\n\t\t\taria-activedescendant={activeIndex >= 0 ? `${listId}-option-${activeIndex}` : undefined}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\t{...rest}\n\t\t\taria-disabled={disabled || undefined}\n\t\t\ttabIndex={disabled ? -1 : 0}\n\t\t\tclassName={rest.className}>\n\t\t\t{options.map((option, index) => {\n\t\t\t\tconst selected = multiple\n\t\t\t\t\t? Array.isArray(selectedValues) && selectedValues.includes(option.value)\n\t\t\t\t\t: selectedValues === option.value;\n\t\t\t\tconst active = index === activeIndex;\n\t\t\t\tconst optionDisabled = disabled || option.disabled || undefined;\n\n\t\t\t\tconst handleMouseDown = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t\t\te.preventDefault(); // чтобы не сбрасывался фокус listbox\n\t\t\t\t\tif (optionDisabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetFocusedIndex(index);\n\t\t\t\t\thandleSelect(option);\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tkey={getKey ? getKey(option, index) : index}\n\t\t\t\t\t\tid={`${listId}-option-${index}`}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\taria-disabled={optionDisabled}\n\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\tselected={selected}>\n\t\t\t\t\t\t{renderItem ? (\n\t\t\t\t\t\t\t<CustomOptionButton tabIndex={-1} disabled={optionDisabled} onMouseDown={handleMouseDown}>\n\t\t\t\t\t\t\t\t{renderItem(option, selected, active)}\n\t\t\t\t\t\t\t</CustomOptionButton>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<OptionButton\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\t\t\t\ticon={selected ? <CheckIcon /> : <span />}\n\t\t\t\t\t\t\t\ttext={option.label ?? String(option.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Option>\n\t\t\t\t);\n\t\t\t})}\n\t\t</PickerOptions>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/listbox/Listbox.tsx"],"sourcesContent":["import {\n\ttype HTMLAttributes,\n\ttype JSX,\n\ttype KeyboardEvent,\n\ttype MouseEvent,\n\ttype ReactNode,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState\n} from \"react\";\n\nimport {\n\tfindFirstEnabledIndex,\n\tfindLastEnabledIndex,\n\tfindNextEnabledIndex,\n\thandleKeyboardActivation\n} from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { CustomOptionButton, Option, OptionButton } from \"../option\";\nimport { PickerField, PickerOptions } from \"../picker\";\n\ntype ListboxOption<T> = {\n\tvalue: T;\n\tlabel?: string;\n\tdisabled?: boolean;\n};\n\ninterface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\" | \"value\"> {\n\toptions: ListboxOption<T>[];\n\tlabel?: ReactNode;\n\tdescription?: string;\n\tdisabled?: boolean;\n\tfocusOnMount?: boolean;\n\trenderItem?: (option: ListboxOption<T>, selected: boolean, active: boolean) => ReactNode;\n\tgetKey?: (option: ListboxOption<T>, index: number) => string;\n}\n\n// Вариант для single-select\ninterface ListboxSingleProps<T> extends ListboxBaseProps<T> {\n\tmultiple?: false;\n\tvalue?: T;\n\tdefaultValue?: T;\n\tonChange?: (value: T, option: ListboxOption<T>) => void;\n}\n\n// Вариант для multi-select\ninterface ListboxMultiProps<T> extends ListboxBaseProps<T> {\n\tmultiple: true;\n\tvalue?: T[];\n\tdefaultValue?: T[];\n\tonChange?: (value: T[], option: ListboxOption<T>) => void;\n}\n\ntype ListboxProps<T> = ListboxSingleProps<T> | ListboxMultiProps<T>;\n\nconst isOptionDisabled = <T,>(option: ListboxOption<T>) => option.disabled === true;\n\nfunction getInitialFocusIndex<T>(options: ListboxOption<T>[], value: T | T[] | undefined, multiple: boolean | undefined) {\n\tif (multiple) {\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\tconst selectedIndex = options.findIndex((option) => value.includes(option.value) && !option.disabled);\n\t\t\tif (selectedIndex >= 0) {\n\t\t\t\treturn selectedIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn findFirstEnabledIndex(options, isOptionDisabled);\n\t}\n\n\tif (value !== undefined) {\n\t\tconst selectedIndex = options.findIndex((option) => option.value === value && !option.disabled);\n\t\tif (selectedIndex >= 0) {\n\t\t\treturn selectedIndex;\n\t\t}\n\t}\n\n\treturn findFirstEnabledIndex(options, isOptionDisabled);\n}\n\n/**\n * Компонент выбора одного или нескольких элементов из списка. Поддерживает controlled API, поиск по данным и рендер кастомных опций.\n */\nexport function Listbox<T>(props: ListboxSingleProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxMultiProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxProps<T>): JSX.Element {\n\tconst {\n\t\tvalue,\n\t\tdefaultValue,\n\t\tmultiple,\n\t\tlabel,\n\t\tdescription,\n\t\tdisabled,\n\t\tfocusOnMount,\n\t\trenderItem,\n\t\tgetKey,\n\t\toptions,\n\t\tonChange,\n\t\tid: externalId,\n\t\t...rest\n\t} = props;\n\n\tconst isControlled = value !== undefined;\n\tconst [internalValue, setInternalValue] = useState<T | T[] | undefined>(defaultValue);\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState(() => getInitialFocusIndex(options, value ?? defaultValue, multiple));\n\t/**\n\t * Прокрутка нужна только после клавиатурной навигации. Это не даёт монтированию и Fast Refresh\n\t * вызывать scrollIntoView, который иначе прокручивает внешнюю страницу до Listbox.\n\t */\n\tconst shouldScrollActiveOptionRef = useRef(false);\n\n\tconst selectedValues = useMemo(\n\t\t() => (isControlled ? value : internalValue) ?? (multiple ? [] : null),\n\t\t[internalValue, isControlled, multiple, value]\n\t);\n\tconst activeIndex = focusedIndex;\n\n\tconst handleSelect = (option: ListboxOption<T>) => {\n\t\tif (disabled || option.disabled) return;\n\n\t\tif (multiple) {\n\t\t\tconst arr = Array.isArray(selectedValues) ? selectedValues : [];\n\t\t\tconst newValue = arr.includes(option.value) ? arr.filter((v) => v !== option.value) : [...arr, option.value];\n\n\t\t\tonChange?.(newValue, option);\n\t\t\tif (!isControlled) setInternalValue(newValue);\n\t\t\treturn;\n\t\t}\n\n\t\tonChange?.(option.value, option);\n\n\t\tif (!isControlled) setInternalValue(option.value);\n\t};\n\n\tconst handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n\t\tif (disabled) return;\n\n\t\tif (e.key === \"ArrowDown\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, 1, isOptionDisabled));\n\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, -1, isOptionDisabled));\n\t\t} else if (e.key === \"Home\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findFirstEnabledIndex(options, isOptionDisabled));\n\t\t} else if (e.key === \"End\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findLastEnabledIndex(options, isOptionDisabled));\n\t\t} else if (\n\t\t\thandleKeyboardActivation(e, () => {\n\t\t\t\tconst activeOption = options[activeIndex];\n\t\t\t\tif (activeOption) {\n\t\t\t\t\thandleSelect(activeOption);\n\t\t\t\t}\n\t\t\t})\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!shouldScrollActiveOptionRef.current) return;\n\n\t\tshouldScrollActiveOptionRef.current = false;\n\t\tconst el = listRef.current?.querySelectorAll<HTMLElement>('[role=\"option\"]')[activeIndex];\n\t\tif (el) el.scrollIntoView({ block: \"nearest\" });\n\t}, [activeIndex]);\n\n\tuseLayoutEffect(() => {\n\t\tif (focusOnMount) {\n\t\t\tlistRef.current?.focus();\n\t\t}\n\t}, [focusOnMount]);\n\n\treturn (\n\t\t<PickerField id={externalId} label={label} description={description} disabled={disabled}>\n\t\t\t{({ controlId: listId, labelId, describedBy }) => (\n\t\t\t\t<PickerOptions\n\t\t\t\t\trootRef={listRef}\n\t\t\t\t\tid={listId}\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable={multiple || undefined}\n\t\t\t\t\taria-activedescendant={activeIndex >= 0 ? `${listId}-option-${activeIndex}` : undefined}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\t{...rest}\n\t\t\t\t\taria-labelledby={labelId ?? rest[\"aria-labelledby\"]}\n\t\t\t\t\taria-describedby={describedBy ?? rest[\"aria-describedby\"]}\n\t\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\t\ttabIndex={disabled ? -1 : 0}\n\t\t\t\t\tclassName={rest.className}>\n\t\t\t\t\t{options.map((option, index) => {\n\t\t\t\t\t\tconst selected = multiple\n\t\t\t\t\t\t\t? Array.isArray(selectedValues) && selectedValues.includes(option.value)\n\t\t\t\t\t\t\t: selectedValues === option.value;\n\t\t\t\t\t\tconst active = index === activeIndex;\n\t\t\t\t\t\tconst optionDisabled = disabled || option.disabled || undefined;\n\n\t\t\t\t\t\tconst handleMouseDown = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t\t\t\t\te.preventDefault(); // чтобы не сбрасывался фокус listbox\n\t\t\t\t\t\t\tif (optionDisabled) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetFocusedIndex(index);\n\t\t\t\t\t\t\thandleSelect(option);\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Option\n\t\t\t\t\t\t\t\tkey={getKey ? getKey(option, index) : index}\n\t\t\t\t\t\t\t\tid={`${listId}-option-${index}`}\n\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\t\t\taria-disabled={optionDisabled}\n\t\t\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\t\t\tselected={selected}>\n\t\t\t\t\t\t\t\t{renderItem ? (\n\t\t\t\t\t\t\t\t\t<CustomOptionButton tabIndex={-1} disabled={optionDisabled} onMouseDown={handleMouseDown}>\n\t\t\t\t\t\t\t\t\t\t{renderItem(option, selected, active)}\n\t\t\t\t\t\t\t\t\t</CustomOptionButton>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<OptionButton\n\t\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\t\t\t\t\t\ticon={selected ? <CheckIcon /> : <span />}\n\t\t\t\t\t\t\t\t\t\ttext={option.label ?? String(option.value)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Option>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</PickerOptions>\n\t\t\t)}\n\t\t</PickerField>\n\t);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuzaki13/react-foundation-ui",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Reusable React foundation UI primitives and Storybook stories.",
5
5
  "license": "MIT",
6
6
  "author": "Ryuzaki13",
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-Cb11iJVP.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-o5-z1BZu.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Badge.stories-CovEhEDD.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:h,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DWvPB8Sk.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-B_u8Yt1Z.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Badge.stories-D4zH_nK5.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:h,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
2
2
  `,(0,S.jsx)(u,{children:`Badge`}),`
3
3
  `,(0,S.jsx)(o,{children:`Компактная текстовая метка для статусов, категорий, фильтров и коротких служебных пометок`}),`
4
4
  `,(0,S.jsx)(t.p,{children:`Badge подходит для коротких подписей, которые должны быстро читаться и не перегружать интерфейс:`}),`
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-Cb11iJVP.js";import{i,n as a,r as o,t as s}from"./BadgeList-DjTg_9cc.js";var c=t({Appearances:()=>h,Basic:()=>p,RemovableList:()=>_,Sizes:()=>g,Tones:()=>m,__namedExportsOrder:()=>v,default:()=>f}),l,u,d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{l=n(),i(),a(),u=r(),{useArgs:d}=__STORYBOOK_MODULE_PREVIEW_API__,f={title:`UI/Badge`,component:o,args:{children:`Новый`,size:`md`,tone:`info`,appearance:`solid`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текст внутри бейджа.`,control:`text`},size:{description:`Размер бейджа.`,control:`inline-radio`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон бейджа.`,control:`inline-radio`,options:[`neutral`,`brand`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1}}},p={render:function(){let[e]=d();return(0,u.jsx)(o,{...e})}},m={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,u.jsx)(o,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,u.jsx)(o,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,u.jsx)(o,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,u.jsx)(o,{tone:`info`,appearance:`solid`,children:`Информация`})]})},h={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,u.jsx)(o,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,u.jsx)(o,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},g={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{size:`xs`,children:`Extra Small`}),(0,u.jsx)(o,{size:`sm`,children:`Small`}),(0,u.jsx)(o,{size:`md`,children:`Medium`}),(0,u.jsx)(o,{size:`lg`,children:`Large`}),(0,u.jsx)(o,{size:`xl`,children:`Extra Large`})]})},_={render:()=>{let[e,t]=(0,l.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,u.jsx)(s,{children:e.map(e=>(0,u.jsx)(o,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DWvPB8Sk.js";import{i,n as a,r as o,t as s}from"./BadgeList-CnmQ4zmg.js";var c=t({Appearances:()=>h,Basic:()=>p,RemovableList:()=>_,Sizes:()=>g,Tones:()=>m,__namedExportsOrder:()=>v,default:()=>f}),l,u,d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{l=n(),i(),a(),u=r(),{useArgs:d}=__STORYBOOK_MODULE_PREVIEW_API__,f={title:`UI/Badge`,component:o,args:{children:`Новый`,size:`md`,tone:`info`,appearance:`solid`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текст внутри бейджа.`,control:`text`},size:{description:`Размер бейджа.`,control:`inline-radio`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон бейджа.`,control:`inline-radio`,options:[`neutral`,`brand`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1}}},p={render:function(){let[e]=d();return(0,u.jsx)(o,{...e})}},m={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,u.jsx)(o,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,u.jsx)(o,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,u.jsx)(o,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,u.jsx)(o,{tone:`info`,appearance:`solid`,children:`Информация`})]})},h={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,u.jsx)(o,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,u.jsx)(o,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},g={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{size:`xs`,children:`Extra Small`}),(0,u.jsx)(o,{size:`sm`,children:`Small`}),(0,u.jsx)(o,{size:`md`,children:`Medium`}),(0,u.jsx)(o,{size:`lg`,children:`Large`}),(0,u.jsx)(o,{size:`xl`,children:`Extra Large`})]})},_={render:()=>{let[e,t]=(0,l.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,u.jsx)(s,{children:e.map(e=>(0,u.jsx)(o,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
2
2
  render: function Render() {
3
3
  const [args] = useArgs<BadgeStoryArgs>();
4
4
  return <Badge {...args} />;
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-CcdATVNL.js";import{n as i}from"./iframe-Cb11iJVP.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{c as s,i as c}from"./array-D-_yMMUK-DYqn1Ozn.js";import{n as l,t as u}from"./FloatingPopover-Z_pT8RTr.js";import{a as d,i as f,r as p,t as m}from"./uiClasses-Bz6cvlDQ.js";import{n as h,t as g}from"./FlexContainer-BWyPlTMB.js";function _({maxChar:e,placement:t=`left`,closeDelay:n=0,maxWidth:r,children:i,block:a,state:o,textWrap:c,textWrapProps:l}){let d=s(i);if(!d.length||e&&d.length<e)return(0,v.jsx)(`span`,{children:d});let f=c??`div`,p={style:{display:a?`block`:`inline-block`,width:e?`${e-3}ch`:`auto`},className:`textOverflow`},m={...l,...p,style:{...l?.style,...p.style},className:[l?.className,p.className].filter(Boolean).join(` `)};return(0,v.jsx)(u,{state:o,placement:t,openOnHover:!0,content:d,closeDelay:n,maxWidth:r,children:(0,v.jsx)(f,{...m,children:d})})}var v;function y(){return(y=e((()=>{c(),l(),v=i(),_.__docgenInfo={description:``,methods:[],displayName:`TextOverflow`,props:{children:{required:!0,tsType:{name:`string`},description:``},maxChar:{required:!1,tsType:{name:`number`},description:``},maxWidth:{required:!1,tsType:{name:`number`},description:`Максимальная ширина тултипа в em.`},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"left"`,computed:!1}},closeDelay:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},block:{required:!1,tsType:{name:`literal`,value:`true`},description:`Для работы text-overflow элемент обязан быть блочным или inline-block.
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-B3GmOByS.js";import{n as i}from"./iframe-DWvPB8Sk.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{c as s,i as c}from"./array-D-_yMMUK-DYqn1Ozn.js";import{n as l,t as u}from"./FloatingPopover-yB9tTk9G.js";import{a as d,i as f,r as p,t as m}from"./uiClasses-Bz6cvlDQ.js";import{n as h,t as g}from"./FlexContainer-BWyPlTMB.js";function _({maxChar:e,placement:t=`left`,closeDelay:n=0,maxWidth:r,children:i,block:a,state:o,textWrap:c,textWrapProps:l}){let d=s(i);if(!d.length||e&&d.length<e)return(0,v.jsx)(`span`,{children:d});let f=c??`div`,p={style:{display:a?`block`:`inline-block`,width:e?`${e-3}ch`:`auto`},className:`textOverflow`},m={...l,...p,style:{...l?.style,...p.style},className:[l?.className,p.className].filter(Boolean).join(` `)};return(0,v.jsx)(u,{state:o,placement:t,openOnHover:!0,content:d,closeDelay:n,maxWidth:r,children:(0,v.jsx)(f,{...m,children:d})})}var v;function y(){return(y=e((()=>{c(),l(),v=i(),_.__docgenInfo={description:``,methods:[],displayName:`TextOverflow`,props:{children:{required:!0,tsType:{name:`string`},description:``},maxChar:{required:!1,tsType:{name:`number`},description:``},maxWidth:{required:!1,tsType:{name:`number`},description:`Максимальная ширина тултипа в em.`},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"left"`,computed:!1}},closeDelay:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},block:{required:!1,tsType:{name:`literal`,value:`true`},description:`Для работы text-overflow элемент обязан быть блочным или inline-block.
2
2
  Если в качестве обёртки передается инлайновый компонент, то он будет
3
3
  перезаписан через стили на display: block или inline-block в зависимости
4
4
  от установки данного пропса.`},state:{required:!1,tsType:{name:`union`,raw:`"information" | "error" | "warning" | "success" | "negative"`,elements:[{name:`literal`,value:`"information"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"negative"`}]},description:``},textWrap:{required:!1,tsType:{name:`T`},description:``},textWrapProps:{required:!1,tsType:{name:`Omit`,elements:[{name:`ComponentProps`,elements:[{name:`T`}],raw:`ComponentProps<T>`},{name:`literal`,value:`"children"`}],raw:`Omit<ComponentProps<T>, "children">`},description:``}}}})))()}var b,x,S,C,w,T,E,D,O,k;function A(){return(A=e((()=>{b=`qBtmnH`,x=`p-HsHY`,S=`u9tQAE`,C=`FRScRz`,w=`W13uQO`,T=`_3IRcM9`,E=`R3ybI7`,D=`DdWAaC`,O=`_5cXBQF`,k={badge:b,passive:x,sizeXs:S,sizeSm:C,sizeMd:w,sizeLg:T,sizeXl:E,content:D,removeButton:O}})))()}function j({children:e,size:t=`sm`,tone:n,appearance:i,className:o,onRemove:s}){let c=n??`neutral`,l=d({tone:n,appearance:i,fallbackTone:c,fallbackAppearance:c===`neutral`?`outline`:`solid`});return(0,M.jsxs)(`div`,{className:a(k.badge,N[t],p(l.tone),m(l.appearance),!s&&k.passive,o),children:[(0,M.jsx)(_,{maxChar:25,placement:`top`,block:!0,textWrapProps:{className:k.content},children:String(e)}),s&&(0,M.jsx)(`button`,{type:`button`,onClick:s,className:k.removeButton,"aria-label":`Удалить бейдж`,"data-ui":`badge-remove-button`,"data-action":`remove-badge`,children:(0,M.jsx)(r,{})})]})}var M,N;function P(){return(P=e((()=>{o(),n(),y(),f(),A(),M=i(),N={xs:k.sizeXs,sm:k.sizeSm,md:k.sizeMd,lg:k.sizeLg,xl:k.sizeXl},j.__docgenInfo={description:`Компактный индикатор для статусов, категорий и коротких служебных меток.`,methods:[],displayName:`Badge`,props:{children:{required:!0,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``,defaultValue:{value:`"sm"`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``},appearance:{required:!1,tsType:{name:`union`,raw:`"solid" | "outline" | "ghost" | "transparent"`,elements:[{name:`literal`,value:`"solid"`},{name:`literal`,value:`"outline"`},{name:`literal`,value:`"ghost"`},{name:`literal`,value:`"transparent"`}]},description:``},className:{required:!1,tsType:{name:`string`},description:``},onRemove:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}})))()}function F({children:e}){return(0,L.jsx)(g,{inline:!0,wrap:!0,gap:`sm`,align:`baseline`,children:I.Children.map(e,(e,t)=>(0,L.jsx)(I.Fragment,{children:e},t))})}var I,L;function R(){return(R=e((()=>{I=t(),h(),L=i(),F.__docgenInfo={description:"Контейнер для группы `Badge`, который выстраивает элементы в единый список с предсказуемыми отступами. Используется для компактного вывода набора меток или фильтров.",methods:[],displayName:`BadgeList`,props:{children:{required:!0,tsType:{name:`Array`,elements:[{name:`ReactElement`,elements:[{name:`union`,raw:`typeof Badge | null | undefined | false`,elements:[{name:`Badge`},{name:`null`},{name:`undefined`},{name:`literal`,value:`false`}]}],raw:`ReactElement<typeof Badge | null | undefined | false>`}],raw:`ReactElement<typeof Badge | null | undefined | false>[]`},description:``}}}})))()}export{P as i,R as n,j as r,F as t};