@ryuzaki13/react-foundation-ui 3.4.2 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/dist/badge/index.js +65 -2
  2. package/dist/badge/index.js.map +1 -0
  3. package/dist/barcode-scanner/index.js +18 -18
  4. package/dist/base-table/index.js +2 -2
  5. package/dist/button/index.js +1 -1
  6. package/dist/check-box/index.js +1 -1
  7. package/dist/chunks/{CalendarView-Dm55k0bN.js → CalendarView-CwbPJG2Y.js} +86 -86
  8. package/dist/chunks/{CalendarView-Dm55k0bN.js.map → CalendarView-CwbPJG2Y.js.map} +1 -1
  9. package/dist/chunks/{ImageViewerRuntime-HGBWp9NM.js → ImageViewerRuntime-DZpgxzF1.js} +25 -25
  10. package/dist/chunks/{ImageViewerRuntime-HGBWp9NM.js.map → ImageViewerRuntime-DZpgxzF1.js.map} +1 -1
  11. package/dist/chunks/{TextEditorLexicalClient-C8nSoz85.js → TextEditorLexicalClient-BRp8jHId.js} +354 -354
  12. package/dist/chunks/{TextEditorLexicalClient-C8nSoz85.js.map → TextEditorLexicalClient-BRp8jHId.js.map} +1 -1
  13. package/dist/chunks/{base-table-BWvKfI2W.js → base-table-BHmboNzl.js} +138 -138
  14. package/dist/chunks/{base-table-BWvKfI2W.js.map → base-table-BHmboNzl.js.map} +1 -1
  15. package/dist/chunks/{button-DF21yxVp.js → button-D7GAU2Wa.js} +20 -20
  16. package/dist/chunks/{button-DF21yxVp.js.map → button-D7GAU2Wa.js.map} +1 -1
  17. package/dist/chunks/{check-box-CZyhzmR0.js → check-box-D_Y6iIWv.js} +19 -19
  18. package/dist/chunks/{check-box-CZyhzmR0.js.map → check-box-D_Y6iIWv.js.map} +1 -1
  19. package/dist/chunks/{context-menu-DgvXGCuI.js → context-menu-BQePxRpu.js} +159 -159
  20. package/dist/chunks/{context-menu-DgvXGCuI.js.map → context-menu-BQePxRpu.js.map} +1 -1
  21. package/dist/chunks/{date-input-D7aBsPJc.js → date-input-Crijdmmq.js} +67 -67
  22. package/dist/chunks/{date-input-D7aBsPJc.js.map → date-input-Crijdmmq.js.map} +1 -1
  23. package/dist/chunks/{date-range-preset-select-BLnY47cv.js → date-range-preset-select-CyzGMvVp.js} +6 -6
  24. package/dist/chunks/{date-range-preset-select-BLnY47cv.js.map → date-range-preset-select-CyzGMvVp.js.map} +1 -1
  25. package/dist/chunks/{dialog-1Z1zCNCe.js → dialog-BcQGVNbu.js} +13 -13
  26. package/dist/chunks/{dialog-1Z1zCNCe.js.map → dialog-BcQGVNbu.js.map} +1 -1
  27. package/dist/chunks/{flex-C7njxZ74.js → flex-DtXK7OM4.js} +29 -29
  28. package/dist/chunks/{flex-C7njxZ74.js.map → flex-DtXK7OM4.js.map} +1 -1
  29. package/dist/chunks/{floating-arrow-DPKwJfww.js → floating-arrow-DKUKx2ZQ.js} +7 -7
  30. package/dist/chunks/{floating-arrow-DPKwJfww.js.map → floating-arrow-DKUKx2ZQ.js.map} +1 -1
  31. package/dist/chunks/{input-DSPKgiCK.js → input-CuRK9Vbz.js} +78 -78
  32. package/dist/chunks/{input-DSPKgiCK.js.map → input-CuRK9Vbz.js.map} +1 -1
  33. package/dist/chunks/{input-files-tIS17-zX.js → input-files-B8j6Pb_M.js} +31 -31
  34. package/dist/chunks/{input-files-tIS17-zX.js.map → input-files-B8j6Pb_M.js.map} +1 -1
  35. package/dist/chunks/{misc-DeGboAt-.js → misc-CGQOXXCy.js} +110 -110
  36. package/dist/chunks/{misc-DeGboAt-.js.map → misc-CGQOXXCy.js.map} +1 -1
  37. package/dist/chunks/{modal-dplfAaER.js → modal-febBsMyR.js} +58 -58
  38. package/dist/chunks/{modal-dplfAaER.js.map → modal-febBsMyR.js.map} +1 -1
  39. package/dist/chunks/{picker-lvm82d0A.js → picker-BA6okKnz.js} +91 -91
  40. package/dist/chunks/{picker-lvm82d0A.js.map → picker-BA6okKnz.js.map} +1 -1
  41. package/dist/chunks/popover-yl5DVe06.js +245 -0
  42. package/dist/chunks/{popover-Bne-Ljbs.js.map → popover-yl5DVe06.js.map} +1 -1
  43. package/dist/chunks/radio-group-CW-K1n9c.js +125 -0
  44. package/dist/chunks/{radio-group-sSnlYjAX.js.map → radio-group-CW-K1n9c.js.map} +1 -1
  45. package/dist/chunks/select-DblNSc5H.js +363 -0
  46. package/dist/chunks/{select-aTGupQan.js.map → select-DblNSc5H.js.map} +1 -1
  47. package/dist/chunks/{separator-B72Aq-6a.js → separator-CIqnk2z9.js} +2 -2
  48. package/dist/chunks/{separator-B72Aq-6a.js.map → separator-CIqnk2z9.js.map} +1 -1
  49. package/dist/chunks/{sortable-BKIwlqhI.js → sortable-CQmMHAF8.js} +38 -38
  50. package/dist/chunks/{sortable-BKIwlqhI.js.map → sortable-CQmMHAF8.js.map} +1 -1
  51. package/dist/chunks/{table-DxoSOvQK.js → table-BnvjPaE1.js} +18 -18
  52. package/dist/chunks/{table-DxoSOvQK.js.map → table-BnvjPaE1.js.map} +1 -1
  53. package/dist/chunks/{table-column-interactions-DzEvVuXe.js → table-column-interactions-Do8LFtiv.js} +20 -20
  54. package/dist/chunks/{table-column-interactions-DzEvVuXe.js.map → table-column-interactions-Do8LFtiv.js.map} +1 -1
  55. package/dist/chunks/{types-D9Wj9wrg.js → types-CxXyru6U.js} +21 -21
  56. package/dist/chunks/{types-D9Wj9wrg.js.map → types-CxXyru6U.js.map} +1 -1
  57. package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -1
  58. package/dist/chunks/{useODataSelectBase-DR4PrY1j.js → useODataSelectBase-DwR4Lfv-.js} +5 -5
  59. package/dist/chunks/{useODataSelectBase-DR4PrY1j.js.map → useODataSelectBase-DwR4Lfv-.js.map} +1 -1
  60. package/dist/chunks/{wheel-picker-FS58cRsQ.js → wheel-picker-DUHGy7wE.js} +23 -23
  61. package/dist/chunks/{wheel-picker-FS58cRsQ.js.map → wheel-picker-DUHGy7wE.js.map} +1 -1
  62. package/dist/context-menu/index.js +1 -1
  63. package/dist/date-input/index.js +2 -2
  64. package/dist/date-range-preset-select/index.js +1 -1
  65. package/dist/date-time-input/index.js +122 -122
  66. package/dist/date-time-input/index.js.map +1 -1
  67. package/dist/detail/index.js +22 -22
  68. package/dist/dialog/index.js +1 -1
  69. package/dist/disclosure/index.js +9 -9
  70. package/dist/drop-zone/index.js +21 -21
  71. package/dist/errors/index.js +50 -50
  72. package/dist/expandable-action-panel/index.js +24 -24
  73. package/dist/flex/index.js +1 -1
  74. package/dist/flex/useFlexClasses.d.ts +1 -1
  75. package/dist/floating-arrow/index.js +1 -1
  76. package/dist/fullscreen-portal/index.js +8 -8
  77. package/dist/image/index.js +119 -119
  78. package/dist/input/index.js +1 -1
  79. package/dist/input-date-time/index.js +55 -55
  80. package/dist/input-file/index.js +16 -16
  81. package/dist/input-files/index.js +1 -1
  82. package/dist/input-image/index.js +17 -17
  83. package/dist/input-search/index.js +30 -2
  84. package/dist/input-search/index.js.map +1 -0
  85. package/dist/layout-picker/index.js +93 -93
  86. package/dist/layout-picker/index.js.map +1 -1
  87. package/dist/list/index.js +39 -39
  88. package/dist/listbox/index.js +33 -33
  89. package/dist/misc/index.js +1 -1
  90. package/dist/modal/index.js +1 -1
  91. package/dist/multi-select/index.js +466 -2
  92. package/dist/multi-select/index.js.map +1 -0
  93. package/dist/notifications/index.js +45 -45
  94. package/dist/option/index.js +30 -30
  95. package/dist/period-select/index.js +7 -7
  96. package/dist/picker/index.js +1 -1
  97. package/dist/popover/index.js +1 -1
  98. package/dist/preset-range-date-input/index.js +10 -10
  99. package/dist/preset-select/index.js +1 -1
  100. package/dist/radio-button/index.js +9 -9
  101. package/dist/radio-group/index.js +1 -1
  102. package/dist/select/index.js +1 -1
  103. package/dist/separator/index.js +1 -1
  104. package/dist/simple-table/index.js +5 -5
  105. package/dist/slider/index.js +82 -82
  106. package/dist/slider/index.js.map +1 -1
  107. package/dist/sortable/index.js +1 -1
  108. package/dist/splitter/index.js +55 -55
  109. package/dist/state-select/index.js +17 -17
  110. package/dist/styles.css +1 -1
  111. package/dist/switch/index.js +18 -18
  112. package/dist/table/index.js +1 -1
  113. package/dist/table-column-interactions/index.js +1 -1
  114. package/dist/table-editor/index.js +99 -99
  115. package/dist/table-sorting/index.js +13 -13
  116. package/dist/tabs/index.js +83 -83
  117. package/dist/tag-input/index.js +58 -58
  118. package/dist/tag-input/index.js.map +1 -1
  119. package/dist/text/index.js +18 -18
  120. package/dist/text-editor/index.js +3 -3
  121. package/dist/textarea/index.js +1 -1
  122. package/dist/three-scene/index.js +7 -7
  123. package/dist/toggle/index.js +20 -20
  124. package/dist/toolbar/index.js +16 -16
  125. package/dist/tree/index.js +24 -24
  126. package/dist/tree-select/index.js +189 -189
  127. package/dist/tree-select/index.js.map +1 -1
  128. package/dist/tree-table/index.js +33 -33
  129. package/dist/tree-table/index.js.map +1 -1
  130. package/dist/wheel-picker/index.js +1 -1
  131. package/package.json +1 -5
  132. package/storybook-static/assets/{Badge-2sTQGGbc.js → Badge-BKRvorSi.js} +1 -1
  133. package/storybook-static/assets/{Badge.stories-kpmROzju.js → Badge.stories-19yFfupy.js} +1 -1
  134. package/storybook-static/assets/{BadgeList-C-3k3Saj.js → BadgeList-DMkfxply.js} +1 -1
  135. package/storybook-static/assets/{BarcodeScannerDialog.stories-Cs6XF24f.js → BarcodeScannerDialog.stories-DdnHxu5x.js} +1 -1
  136. package/storybook-static/assets/{Button-DeUhy_Ud.js → Button-CoOZeR_z.js} +1 -1
  137. package/storybook-static/assets/{Button-BeqDnS0L.js → Button-Di-0Ionw.js} +1 -1
  138. package/storybook-static/assets/{Button.stories-gaR8Dnpw.js → Button.stories-Bd1To5BN.js} +1 -1
  139. package/storybook-static/assets/{CalendarView-D6uB72Yq.js → CalendarView-Dz8cY1fo.js} +1 -1
  140. package/storybook-static/assets/{CheckBox-BfXcsEql.js → CheckBox-DSmGYEML.js} +1 -1
  141. package/storybook-static/assets/{CheckBox-CziPDk08.js → CheckBox-DfRTTXg1.js} +1 -1
  142. package/storybook-static/assets/{CheckBox.stories-DUpx14ny.js → CheckBox.stories-DaldWgEI.js} +1 -1
  143. package/storybook-static/assets/{Color-6AOWCN3U-BKoQthNE.js → Color-6AOWCN3U-DIhia6KS.js} +1 -1
  144. package/storybook-static/assets/{ContextMenu-CIOw6SnW.js → ContextMenu-BGMQHT9V.js} +1 -1
  145. package/storybook-static/assets/{ContextMenu-DsCDOqZ-.js → ContextMenu-XS7B8QUC.js} +1 -1
  146. package/storybook-static/assets/{ContextMenu.stories-Dh1xs1Uu.js → ContextMenu.stories-Dp2t2BZa.js} +1 -1
  147. package/storybook-static/assets/{CustomOptionButton-DrXFP09z.js → CustomOptionButton-DNd0GDWp.js} +1 -1
  148. package/storybook-static/assets/{DateInput-ComvHbyD.js → DateInput-DUl5Bb0j.js} +1 -1
  149. package/storybook-static/assets/{DateInput-DUTiYxVQ.js → DateInput-MgdMtvtr.js} +1 -1
  150. package/storybook-static/assets/{DateInput.stories-B35ApFC6.js → DateInput.stories-B6Ol0Ak3.js} +1 -1
  151. package/storybook-static/assets/{DateRangePresetSelect-BgIwqItz.js → DateRangePresetSelect-C4MVqjXa.js} +1 -1
  152. package/storybook-static/assets/{DateRangePresetSelect-bRn8U3vm.js → DateRangePresetSelect-CPj0pSGc.js} +1 -1
  153. package/storybook-static/assets/{DateRangePresetSelect.stories-BUMybnsm.js → DateRangePresetSelect.stories-tPaMURtH.js} +1 -1
  154. package/storybook-static/assets/{Detail-dI6_xrHh.js → Detail-DnHTVRb5.js} +1 -1
  155. package/storybook-static/assets/{Detail.stories-CNX6haXT.js → Detail.stories-CXg_w4qM.js} +1 -1
  156. package/storybook-static/assets/{Dialog-1bEZtlvY.js → Dialog-COpvqcXi.js} +1 -1
  157. package/storybook-static/assets/{Dialog-D6RFj5rJ.js → Dialog-LMnrvBpx.js} +1 -1
  158. package/storybook-static/assets/{Dialog.stories-C9a315UR.js → Dialog.stories-BE2I5ny2.js} +1 -1
  159. package/storybook-static/assets/{Disclosure-B4-Kmeyu.js → Disclosure-BZ3jd5nu.js} +1 -1
  160. package/storybook-static/assets/{Disclosure.stories-vjoHG9v4.js → Disclosure.stories-cMcF8a8I.js} +1 -1
  161. package/storybook-static/assets/{DisclosureGroup-CkDCnUlh.js → DisclosureGroup-JNnTj18G.js} +1 -1
  162. package/storybook-static/assets/{DocsRenderer-JROSPFPF-Bnqn8fXJ.js → DocsRenderer-JROSPFPF-CurHdzu8.js} +1 -1
  163. package/storybook-static/assets/{DropZone-BPeiPXgD.js → DropZone-DGMAbY1z.js} +1 -1
  164. package/storybook-static/assets/{DropZone-X9NvE8DO.js → DropZone-VEmgdfs6.js} +1 -1
  165. package/storybook-static/assets/{DropZone.stories-DLzZAaZu.js → DropZone.stories-B8N17-bV.js} +1 -1
  166. package/storybook-static/assets/{DropdownMenu-Dzukm6bJ.js → DropdownMenu-xjOtBneA.js} +1 -1
  167. package/storybook-static/assets/{ExpandableActionPanel-Cc2iKoo0.js → ExpandableActionPanel-C7CFQZLD.js} +1 -1
  168. package/storybook-static/assets/{ExpandableActionPanel.stories-0y46sYe3.js → ExpandableActionPanel.stories-CnBr0s9R.js} +1 -1
  169. package/storybook-static/assets/{Flex-CWEDnPLk.js → Flex-RpqsC-gQ.js} +1 -1
  170. package/storybook-static/assets/{Flex.stories-D2efArng.js → Flex.stories-CCVNsX23.js} +1 -1
  171. package/storybook-static/assets/{FloatingPopover-CPA1unHt.js → FloatingPopover-D6tO24aO.js} +1 -1
  172. package/storybook-static/assets/{FormattedTableCell-BB70nIi8.js → FormattedTableCell-CDaDfaXy.js} +1 -1
  173. package/storybook-static/assets/{Grid-K6-e83uN.js → Grid-BRnqEtg1.js} +1 -1
  174. package/storybook-static/assets/{Grid.stories-CsGVZuyW.js → Grid.stories-DXY7Cvfu.js} +1 -1
  175. package/storybook-static/assets/{ImageCropper.stories-ByjBQGyU.js → ImageCropper.stories-ZnvbFN71.js} +1 -1
  176. package/storybook-static/assets/{ImageRenderer-B5bMUohk.js → ImageRenderer-DUOhCfac.js} +1 -1
  177. package/storybook-static/assets/{ImageRenderer.stories-DZIJ2Cax.js → ImageRenderer.stories-Dj6NQm2k.js} +1 -1
  178. package/storybook-static/assets/{ImageView.stories-B4NSVfMj.js → ImageView.stories-QTzOsByD.js} +1 -1
  179. package/storybook-static/assets/{ImageViewer.stories-BnnWhgad.js → ImageViewer.stories-CpnUEgZW.js} +2 -2
  180. package/storybook-static/assets/{ImageViewerRuntime-DJk8-mMV.js → ImageViewerRuntime-B1PicLUw.js} +1 -1
  181. package/storybook-static/assets/{Input-C7hd8bju.js → Input-B8eGQXlp.js} +1 -1
  182. package/storybook-static/assets/{Input-C9NNdePo.js → Input-DnFc_Pwx.js} +1 -1
  183. package/storybook-static/assets/{Input.stories-8U_h1Dir.js → Input.stories-C6CbYvZP.js} +1 -1
  184. package/storybook-static/assets/{InputDateTime-BBU37OK4.js → InputDateTime-DoMduRde.js} +1 -1
  185. package/storybook-static/assets/{InputDateTime.stories-DuRCkCMJ.js → InputDateTime.stories--LHpvJjY.js} +1 -1
  186. package/storybook-static/assets/{InputFile-BxgxV2cg.js → InputFile-CunQ8F4s.js} +1 -1
  187. package/storybook-static/assets/{InputFile-iIrq-Xfc.js → InputFile-DFv3WAWa.js} +1 -1
  188. package/storybook-static/assets/{InputFile.stories-BhiqSiFS.js → InputFile.stories-B0WZhic1.js} +1 -1
  189. package/storybook-static/assets/{InputFiles-BfEQYQ2w.js → InputFiles-CKDPmjWY.js} +1 -1
  190. package/storybook-static/assets/{InputFiles-BHVGf3f-.js → InputFiles-DyiPQ_tH.js} +1 -1
  191. package/storybook-static/assets/{InputFiles.stories-esWVcU98.js → InputFiles.stories-BbP_bEnL.js} +1 -1
  192. package/storybook-static/assets/{InputFilesList-DjS5rnuM.js → InputFilesList-BAIGwV7V.js} +1 -1
  193. package/storybook-static/assets/{InputImage-Dbz_y38S.js → InputImage-2G1pRNbw.js} +1 -1
  194. package/storybook-static/assets/{InputImage-BuvjQZxI.js → InputImage-ZvEB_TIT.js} +1 -1
  195. package/storybook-static/assets/{InputImage.stories-D1scam1d.js → InputImage.stories-BiShLRcw.js} +1 -1
  196. package/storybook-static/assets/{InteractiveComponents-CkTp18t3.js → InteractiveComponents-CT99QfHX.js} +1 -1
  197. package/storybook-static/assets/{InteractiveComponents.stories-CucQ0BGN.js → InteractiveComponents.stories-BPTICQZz.js} +1 -1
  198. package/storybook-static/assets/{LayoutPicker-CjvnwTcm.js → LayoutPicker-BDpc8LBa.js} +1 -1
  199. package/storybook-static/assets/{LayoutPicker-CWquZGFb.js → LayoutPicker-Cg_AM-pj.js} +1 -1
  200. package/storybook-static/assets/{LayoutPicker.stories-DJgcqY8p.js → LayoutPicker.stories-Ca9WZdPW.js} +1 -1
  201. package/storybook-static/assets/{Listbox-uFeGwaCi.js → Listbox-3Npc4PI_.js} +1 -1
  202. package/storybook-static/assets/{Listbox-uEULtHhW.js → Listbox-LbbFtte9.js} +1 -1
  203. package/storybook-static/assets/{Listbox.stories-DBvqBHs-.js → Listbox.stories-xDpbFNZk.js} +1 -1
  204. package/storybook-static/assets/{Modal-sVegTd2h.js → Modal-CXd2j0up.js} +1 -1
  205. package/storybook-static/assets/{Modal-Drfce80H.js → Modal-Ddmc8-2-.js} +1 -1
  206. package/storybook-static/assets/{Modal.stories-BZRJ4cqm.js → Modal.stories-cNLvFjmT.js} +1 -1
  207. package/storybook-static/assets/{ModalManagerProvider-78nTQBfn.js → ModalManagerProvider-ClXvSB9a.js} +1 -1
  208. package/storybook-static/assets/{MultiSelect-Bwz9J1Zg.js → MultiSelect-BkLCM22R.js} +1 -1
  209. package/storybook-static/assets/{MultiSelect-BxfSm5Qy.js → MultiSelect-Na2VdNy3.js} +1 -1
  210. package/storybook-static/assets/{MultiSelect.stories-C3yG8A_7.js → MultiSelect.stories-4nFshdtz.js} +1 -1
  211. package/storybook-static/assets/{NoData-BvXwWyJ0.js → NoData-bUonNuRR.js} +1 -1
  212. package/storybook-static/assets/{NotificationsHost-D1UzFm2s.js → NotificationsHost-CrLL4WK9.js} +1 -1
  213. package/storybook-static/assets/{NotificationsHost.stories-DOiJGppm.js → NotificationsHost.stories-Ci2q0W9-.js} +1 -1
  214. package/storybook-static/assets/{ODataMultiSelect-9EzhKm-o.js → ODataMultiSelect-Cc09uTB8.js} +1 -1
  215. package/storybook-static/assets/{ODataMultiSelect.stories-CeJ-N9Nd.js → ODataMultiSelect.stories-CzGzREa9.js} +1 -1
  216. package/storybook-static/assets/{ODataSelect-Dxd_7Sr4.js → ODataSelect-DqoRg5pz.js} +1 -1
  217. package/storybook-static/assets/{ODataSelect.stories-SQFZqYLx.js → ODataSelect.stories-BCcxERn3.js} +1 -1
  218. package/storybook-static/assets/{ODataTreeMultiSelect-MA-QJUsB.js → ODataTreeMultiSelect-qZEcSE5O.js} +1 -1
  219. package/storybook-static/assets/{ODataTreeMultiSelect.stories-YvpwnP4d.js → ODataTreeMultiSelect.stories-Bfees7Qr.js} +1 -1
  220. package/storybook-static/assets/{ODataTreeSelect-BCiiS3IK.js → ODataTreeSelect-IOVS6uQc.js} +1 -1
  221. package/storybook-static/assets/{ODataTreeSelect.stories-Dq1OhGC3.js → ODataTreeSelect.stories-CO7DClzd.js} +1 -1
  222. package/storybook-static/assets/{OneStepScroller-im1C5gSg.js → OneStepScroller-B_IRz2Rw.js} +1 -1
  223. package/storybook-static/assets/{Option-Djau4Ddm.js → Option-fRoOLqLF.js} +1 -1
  224. package/storybook-static/assets/{OptionButton-B3XT6D5q.js → OptionButton--hnpJ-88.js} +1 -1
  225. package/storybook-static/assets/{PeriodSelect-Dr9dmlXS.js → PeriodSelect-BAVDztkI.js} +1 -1
  226. package/storybook-static/assets/{PeriodSelect-pOKCy0SB.js → PeriodSelect-D-jXJf5C.js} +1 -1
  227. package/storybook-static/assets/{PeriodSelect.stories-BTXlGHGk.js → PeriodSelect.stories-CscsENT9.js} +1 -1
  228. package/storybook-static/assets/{PickerField-Bu0d3-ft.js → PickerField-CRtltoce.js} +1 -1
  229. package/storybook-static/assets/{PickerTriggerActions-5-bZTrbi.js → PickerTriggerActions-BDGEQPvP.js} +1 -1
  230. package/storybook-static/assets/{Popover-CbYmPjQB.js → Popover-BYO0DlBg.js} +1 -1
  231. package/storybook-static/assets/{Popover-C0MAHY8E.js → Popover-Byy9_Twt.js} +1 -1
  232. package/storybook-static/assets/{Popover.stories-CNGXHwxk.js → Popover.stories-8RhemIQg.js} +1 -1
  233. package/storybook-static/assets/{PresetRangeDateInput-IyUkzhsJ.js → PresetRangeDateInput-CVPMYlEV.js} +1 -1
  234. package/storybook-static/assets/{PresetRangeDateInput-Do940cTR.js → PresetRangeDateInput-VZnM8RNV.js} +1 -1
  235. package/storybook-static/assets/{PresetRangeDateInput.stories-DAIMF_Y5.js → PresetRangeDateInput.stories-DdBWlSV-.js} +1 -1
  236. package/storybook-static/assets/{PresetSelect-D65v9bUa.js → PresetSelect-C7YYBjlL.js} +1 -1
  237. package/storybook-static/assets/{README-CNeFWQp-.js → README-2NTkucdH.js} +1 -1
  238. package/storybook-static/assets/{README-BRRzrAiY.js → README-6XPUoxFl.js} +1 -1
  239. package/storybook-static/assets/{README-D9nuOSas.js → README-8L1vpZcz.js} +1 -1
  240. package/storybook-static/assets/{README-C81BgOtz.js → README-B0FbTpix.js} +1 -1
  241. package/storybook-static/assets/{README-CGIV17gX.js → README-B0Nb0jf2.js} +1 -1
  242. package/storybook-static/assets/{README-DB__g4Hv.js → README-BD-WSEvQ.js} +1 -1
  243. package/storybook-static/assets/{README-dz31ogQc.js → README-BGBxEe4u.js} +1 -1
  244. package/storybook-static/assets/{README-CmxyJW5E.js → README-BGmO6U9j.js} +1 -1
  245. package/storybook-static/assets/{README-C67zTaqC.js → README-BL8ZNGNi.js} +1 -1
  246. package/storybook-static/assets/{README-DnHSfSZk.js → README-BZlnzGAh.js} +1 -1
  247. package/storybook-static/assets/{README-CnZGcW7V.js → README-BdsFByUw.js} +1 -1
  248. package/storybook-static/assets/{README-D7cjSdE3.js → README-Bk1oSDWQ.js} +1 -1
  249. package/storybook-static/assets/{README-BC_Nb6Pt.js → README-Brn9Tjjc.js} +1 -1
  250. package/storybook-static/assets/{README-DilodlZ3.js → README-Bvo0Qxde.js} +1 -1
  251. package/storybook-static/assets/{README-Bx2ruIF7.js → README-C-IUw1gX.js} +1 -1
  252. package/storybook-static/assets/{README-BbD3YcYe.js → README-C7N5_6-c.js} +1 -1
  253. package/storybook-static/assets/{README-DIMFSBIs.js → README-CB5BpIBF.js} +1 -1
  254. package/storybook-static/assets/{README-zpjWO9SA.js → README-CTF9mVZL.js} +1 -1
  255. package/storybook-static/assets/{README-DENJbcin.js → README-CTwfFqJG.js} +1 -1
  256. package/storybook-static/assets/{README-CuV27eXd.js → README-C_lKreF9.js} +1 -1
  257. package/storybook-static/assets/{README-bnDO0VvU.js → README-CeNQeTK-.js} +1 -1
  258. package/storybook-static/assets/{README-DzYVtS48.js → README-CqiNQGIJ.js} +1 -1
  259. package/storybook-static/assets/{README-BdXitC-v.js → README-CvaizZr1.js} +1 -1
  260. package/storybook-static/assets/{README-0DfYx1x8.js → README-D2AT2-yD.js} +1 -1
  261. package/storybook-static/assets/{README-BRfiEuJl.js → README-DADnaXLy.js} +1 -1
  262. package/storybook-static/assets/{README-Bqi9zL_3.js → README-DC0vNdOD.js} +1 -1
  263. package/storybook-static/assets/{README-CTHg-0Gf.js → README-DIWsYBR7.js} +1 -1
  264. package/storybook-static/assets/{README-CMDYHiZ0.js → README-DMwF_O1R.js} +1 -1
  265. package/storybook-static/assets/{README-kmbY5Eb6.js → README-DOBIWrus.js} +1 -1
  266. package/storybook-static/assets/{README-BJH7K07w.js → README-DOi6rx7n.js} +1 -1
  267. package/storybook-static/assets/{README-B1OZSJPW.js → README-DWzfTSuq.js} +1 -1
  268. package/storybook-static/assets/{README-DF7917zn.js → README-DgXAMdBY.js} +1 -1
  269. package/storybook-static/assets/{README-0zD_mpK7.js → README-DkBG5Azm.js} +1 -1
  270. package/storybook-static/assets/{README-D9F11ksa.js → README-DlfWWC7n.js} +1 -1
  271. package/storybook-static/assets/{README-BOuI52h7.js → README-Dm7CwuVP.js} +1 -1
  272. package/storybook-static/assets/{README-DGEDdKV9.js → README-Dmu5lsNT.js} +1 -1
  273. package/storybook-static/assets/{README-B0Ei6BRU.js → README-DoxVtmRh.js} +1 -1
  274. package/storybook-static/assets/{README-D-EI5fho.js → README-Dr8TxFTe.js} +1 -1
  275. package/storybook-static/assets/{README-QT9W28h_.js → README-DrTR5pSr.js} +1 -1
  276. package/storybook-static/assets/{README-CPkK5x0m.js → README-DyWhmOFY.js} +1 -1
  277. package/storybook-static/assets/{README-Cw9Zfftr.js → README-GChrAHFQ.js} +1 -1
  278. package/storybook-static/assets/{README-BRLYOV1b.js → README-HWuoKwKL.js} +1 -1
  279. package/storybook-static/assets/{README-CkuXmfz0.js → README-UcyyK9jn.js} +1 -1
  280. package/storybook-static/assets/{README-UGL0ffZV.js → README-Wli4AXG5.js} +1 -1
  281. package/storybook-static/assets/{README-BlU-_6sl.js → README-ZxRwqfIH.js} +1 -1
  282. package/storybook-static/assets/{README-Dst0aWPQ.js → README-_KzyG4dS.js} +1 -1
  283. package/storybook-static/assets/{README-B_UsoB-1.js → README-b3wA6wFr.js} +1 -1
  284. package/storybook-static/assets/{README-CHuQw2Qi.js → README-g1VWHzAJ.js} +1 -1
  285. package/storybook-static/assets/{README-D8XXY0zG.js → README-jQcGKqqm.js} +1 -1
  286. package/storybook-static/assets/{README-CTQstqqQ.js → README-jvtwVY_n.js} +1 -1
  287. package/storybook-static/assets/{README-CI191Srw.js → README-na5mQX4V.js} +1 -1
  288. package/storybook-static/assets/{README-BZVyxsw_.js → README-oKLTQYfV.js} +1 -1
  289. package/storybook-static/assets/{README-gvzAURNC.js → README-w9FMhq0X.js} +1 -1
  290. package/storybook-static/assets/{RadioButton-CGoc9W4C.js → RadioButton-DMn-soQD.js} +1 -1
  291. package/storybook-static/assets/{RadioButton-oNRpIXOV.js → RadioButton-Dgkz1EWU.js} +1 -1
  292. package/storybook-static/assets/{RadioButton.stories-Jp8MuGg3.js → RadioButton.stories-DO14jTfm.js} +1 -1
  293. package/storybook-static/assets/{RadioGroup-Bd_jzY95.js → RadioGroup-BSiqjVai.js} +1 -1
  294. package/storybook-static/assets/{RadioGroup-D5LTKyRY.js → RadioGroup-Db0AhiKo.js} +1 -1
  295. package/storybook-static/assets/{RadioGroup.stories-BVu05x_P.js → RadioGroup.stories-C0D6n83q.js} +1 -1
  296. package/storybook-static/assets/{Scrollable-B_XGYKTj.js → Scrollable-BI3OE8gc.js} +1 -1
  297. package/storybook-static/assets/{Select-YeZ4L1bU.js → Select-1MNiFkxm.js} +1 -1
  298. package/storybook-static/assets/{Select-rjczNFii.js → Select-D8X-SkP2.js} +1 -1
  299. package/storybook-static/assets/{Select.stories-Bmu1mJu_.js → Select.stories-8_zvonmc.js} +1 -1
  300. package/storybook-static/assets/{SerializableSelect-ByLziMgM.js → SerializableSelect-ii6T140l.js} +1 -1
  301. package/storybook-static/assets/{SerializableSelect.stories-JlopYf0t.js → SerializableSelect.stories-Ba3ABMGt.js} +1 -1
  302. package/storybook-static/assets/{ShimmerText-CRfaFnl1.js → ShimmerText-C6vkZwUV.js} +1 -1
  303. package/storybook-static/assets/{ShimmerText.stories-BAxJ2D6b.js → ShimmerText.stories-CVpSxXHJ.js} +1 -1
  304. package/storybook-static/assets/{SingleDateTimeInput-Cl4NshG1.js → SingleDateTimeInput-96-mrjq8.js} +1 -1
  305. package/storybook-static/assets/{SingleDateTimeInput-Dr1LEvZ1.js → SingleDateTimeInput-DpETPR89.js} +1 -1
  306. package/storybook-static/assets/{SingleDateTimeInput.stories-_hmTygtJ.js → SingleDateTimeInput.stories-JhviurJO.js} +1 -1
  307. package/storybook-static/assets/{Slider-Du-vgdLs.js → Slider-B27TdvRV.js} +1 -1
  308. package/storybook-static/assets/{Slider-Bb19a7Lr.js → Slider-DbiDvmoV.js} +1 -1
  309. package/storybook-static/assets/{Slider.stories-w_4Lm5ja.js → Slider.stories-d1YeKe5r.js} +1 -1
  310. package/storybook-static/assets/{SliderInput-Lz8YGmmc.js → SliderInput-CzYn9gor.js} +1 -1
  311. package/storybook-static/assets/{SliderInput-sQbNVUtf.js → SliderInput-D2d23mEI.js} +1 -1
  312. package/storybook-static/assets/{SliderInput.stories-Bg7Uzt-r.js → SliderInput.stories-CwqT79oE.js} +1 -1
  313. package/storybook-static/assets/{Sortable-l-Qm6fkT.js → Sortable-DiJuiI6V.js} +1 -1
  314. package/storybook-static/assets/{Sortable.stories-Cf85BSwF.js → Sortable.stories-DFCzTok0.js} +1 -1
  315. package/storybook-static/assets/{Splitter-D9n2NIVi.js → Splitter-QwdfWNbm.js} +1 -1
  316. package/storybook-static/assets/{Splitter.stories-BOPn876G.js → Splitter.stories-C2iDPz8c.js} +1 -1
  317. package/storybook-static/assets/{StateSelect-B2mel1Gs.js → StateSelect-Bw9H1Cus.js} +1 -1
  318. package/storybook-static/assets/{StateSelect-DHXDlB2j.js → StateSelect-D1ZDM6bC.js} +1 -1
  319. package/storybook-static/assets/{StateSelect.stories-DDvGGDOC.js → StateSelect.stories-DEFvQ15O.js} +1 -1
  320. package/storybook-static/assets/{StatusIndicator-B5Gaj4GM.js → StatusIndicator-D6Pbdz37.js} +1 -1
  321. package/storybook-static/assets/{StatusIndicator.stories-BhtR4Hq-.js → StatusIndicator.stories-COgpy5cK.js} +1 -1
  322. package/storybook-static/assets/{StringToggle.stories-uP0F4aSw.js → StringToggle.stories-BFwMh0Yd.js} +1 -1
  323. package/storybook-static/assets/{Switch-CAXoT6wR.js → Switch-Bmj2AItH.js} +1 -1
  324. package/storybook-static/assets/{Switch-HQRPpBm8.js → Switch-DyDk152g.js} +1 -1
  325. package/storybook-static/assets/{Switch.stories-BFiVpNyQ.js → Switch.stories-C10NxPL4.js} +1 -1
  326. package/storybook-static/assets/{Table-6SgVFSck.js → Table-YcEwF4aO.js} +1 -1
  327. package/storybook-static/assets/{Table.stories-CPqSL_ou.js → Table.stories-DgxFS9Sa.js} +1 -1
  328. package/storybook-static/assets/{TableEditor.stories-DTRZRRwP.js → TableEditor.stories-CSMoxO4O.js} +1 -1
  329. package/storybook-static/assets/{Tabs-Dax2siiY.js → Tabs-DOsPN2X1.js} +1 -1
  330. package/storybook-static/assets/{Tabs.stories-DfBmhXDe.js → Tabs.stories-BdZilcp2.js} +1 -1
  331. package/storybook-static/assets/{TabsBox-qxjvoJVK.js → TabsBox-Ovukgo9G.js} +1 -1
  332. package/storybook-static/assets/{TagInput-CsxMyCrG.js → TagInput-BQBOGr9G.js} +1 -1
  333. package/storybook-static/assets/{TagInput.stories-DqbzT-v0.js → TagInput.stories-DAAyJlgm.js} +1 -1
  334. package/storybook-static/assets/{Text-BsN-PQCV.js → Text-fdwuak_J.js} +1 -1
  335. package/storybook-static/assets/{Textarea-BjuUbYsT.js → Textarea-A22Efyk-.js} +1 -1
  336. package/storybook-static/assets/{Textarea-CpmzCUxv.js → Textarea-D80ZPpEy.js} +1 -1
  337. package/storybook-static/assets/{Textarea.stories-CuD6DgcU.js → Textarea.stories-DfaOYMoN.js} +1 -1
  338. package/storybook-static/assets/{TimePanel-CSSXwKRa.js → TimePanel-Bd5T_SfL.js} +1 -1
  339. package/storybook-static/assets/{TimePanel.stories-BMCRRMRa.js → TimePanel.stories-D6TIpKp4.js} +1 -1
  340. package/storybook-static/assets/{Toggle-8kcwuNdV.js → Toggle-BvHMq6f_.js} +1 -1
  341. package/storybook-static/assets/{Toggle-rgYYwuhK.js → Toggle-DUyCRH0o.js} +1 -1
  342. package/storybook-static/assets/{Toggle.stories-DwfF0YoD.js → Toggle.stories-ZPgC-EWw.js} +1 -1
  343. package/storybook-static/assets/{TreeMultiSelect-By8L-bm6.js → TreeMultiSelect-DTMybWfP.js} +1 -1
  344. package/storybook-static/assets/{TreeMultiSelect-BoERAVM0.js → TreeMultiSelect-DTmB9s8s.js} +1 -1
  345. package/storybook-static/assets/{TreeMultiSelect.stories-C3jtxDZI.js → TreeMultiSelect.stories-1_HB74Gf.js} +1 -1
  346. package/storybook-static/assets/{TreePickerBase-DBrjX-bi.js → TreePickerBase-Cu2mneBS.js} +1 -1
  347. package/storybook-static/assets/{TreeSelect-CaNARWLc.js → TreeSelect-CTN6cRRr.js} +1 -1
  348. package/storybook-static/assets/{TreeSelect-vsrnMOeK.js → TreeSelect-UsZGYhUO.js} +1 -1
  349. package/storybook-static/assets/{TreeSelect.stories-BOK-ieA_.js → TreeSelect.stories-B01pZcR9.js} +1 -1
  350. package/storybook-static/assets/{TreeTable-Zvy1Vc8r.js → TreeTable-dr3jK3Ih.js} +1 -1
  351. package/storybook-static/assets/{TreeTable.stories-CKGMANAc.js → TreeTable.stories-B1DPasDc.js} +1 -1
  352. package/storybook-static/assets/{blocks-XON_dw_i.js → blocks-Cw5Dm88b.js} +3 -3
  353. package/storybook-static/assets/{check-R50Hqsjh.js → check-028VTQ8f.js} +1 -1
  354. package/storybook-static/assets/{chevron-down-D2lWkc4k.js → chevron-down-CjXVIhzi.js} +1 -1
  355. package/storybook-static/assets/{chevron-left-DFO06R_I.js → chevron-left-CktI1oFP.js} +1 -1
  356. package/storybook-static/assets/{chevron-right-DYpO1E4w.js → chevron-right-CF10QSRI.js} +1 -1
  357. package/storybook-static/assets/{chunk-W22LQPXL-DgsU6Ho0.js → chunk-W22LQPXL-C0ehDnCq.js} +1 -1
  358. package/storybook-static/assets/{circle-alert-C99j_qdy.js → circle-alert-s0HpHvQO.js} +1 -1
  359. package/storybook-static/assets/{circle-check-BVoaTMGo.js → circle-check-C7Lv1fv9.js} +1 -1
  360. package/storybook-static/assets/{components-D2acFX9a.js → components-ClxgOUq5.js} +3 -3
  361. package/storybook-static/assets/{contextMenu-Rc4xafWY.js → contextMenu-CWGju9qn.js} +1 -1
  362. package/storybook-static/assets/{download-FS-653X-.js → download-B1U5w3LU.js} +1 -1
  363. package/storybook-static/assets/{floating-ui.react-9uiNDESW.js → floating-ui.react-CyNWkXBV.js} +1 -1
  364. package/storybook-static/assets/{foundationApi-hwTxo_aQ.js → foundationApi-CY0sxk8w.js} +1 -1
  365. package/storybook-static/assets/{foundationLib-CdF_K0ss.js → foundationLib-BCpSUA25.js} +1 -1
  366. package/storybook-static/assets/{hooks-BktG1SJq.js → hooks-DjR-EyBl.js} +1 -1
  367. package/storybook-static/assets/iframe-Dyd6jnSv.js +1 -0
  368. package/storybook-static/assets/{iframe-CmDE2WzV.js → iframe-woVbsQH3.js} +3 -3
  369. package/storybook-static/assets/{info-aj3qk4-6.js → info-DKbXBIbQ.js} +1 -1
  370. package/storybook-static/assets/{odata-tQdKpZ8d.js → odata-CMCuN2Rx.js} +1 -1
  371. package/storybook-static/assets/{odataStoryFixtures-Bpcqh4OD.js → odataStoryFixtures-a4Q2PLas.js} +1 -1
  372. package/storybook-static/assets/{react-Ci0XWusa.js → react-D3CyilRt.js} +1 -1
  373. package/storybook-static/assets/{refresh-cw-TDE_PN6T.js → refresh-cw-DXEJelAO.js} +1 -1
  374. package/storybook-static/assets/{settings-2-AgUmNDAs.js → settings-2-CKbiQBX8.js} +1 -1
  375. package/storybook-static/assets/{sortable-ULpdqocx.js → sortable-CXLU2ip-.js} +1 -1
  376. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-Cu4u_nrx.js → syntaxhighlighter-QEQV7K2Y-CLptde2b.js} +1 -1
  377. package/storybook-static/assets/{trash-2-CRAL6xvg.js → trash-2-CPWRIQlJ.js} +1 -1
  378. package/storybook-static/assets/{triangle-alert-D_BUPWKQ.js → triangle-alert-XjzWCHp5.js} +1 -1
  379. package/storybook-static/assets/{ui-Dn5es0s1.css → ui-FA-1R8mO.css} +1 -1
  380. package/storybook-static/assets/{uiClasses-BxxhVVa_.js → uiClasses-DNnVkKPr.js} +1 -1
  381. package/storybook-static/assets/{useODataSelectBase-2vllyrJj.js → useODataSelectBase-ZGFa3pdT.js} +1 -1
  382. package/storybook-static/assets/{useODataTreeData-BZegXh8a.js → useODataTreeData-DAdLowou.js} +1 -1
  383. package/storybook-static/assets/{usePickerQuery-DWBa3-2z.js → usePickerQuery-CaO8hXyH.js} +1 -1
  384. package/storybook-static/assets/{usePickerTriggerController-Co3rQjwS.js → usePickerTriggerController-DWjrt_q_.js} +1 -1
  385. package/storybook-static/assets/{x-DHae85Ss.js → x-D2Q9PGsq.js} +1 -1
  386. package/storybook-static/iframe.html +2 -2
  387. package/storybook-static/project.json +1 -1
  388. package/dist/advanced-search/index.d.ts +0 -3
  389. package/dist/advanced-search/index.d.ts.map +0 -1
  390. package/dist/advanced-search/index.js +0 -399
  391. package/dist/advanced-search/index.js.map +0 -1
  392. package/dist/advanced-search/lib/index.d.ts +0 -2
  393. package/dist/advanced-search/lib/index.d.ts.map +0 -1
  394. package/dist/advanced-search/lib/searchParts.d.ts +0 -3
  395. package/dist/advanced-search/lib/searchParts.d.ts.map +0 -1
  396. package/dist/advanced-search/model/index.d.ts +0 -5
  397. package/dist/advanced-search/model/index.d.ts.map +0 -1
  398. package/dist/advanced-search/model/types.d.ts +0 -55
  399. package/dist/advanced-search/model/types.d.ts.map +0 -1
  400. package/dist/advanced-search/model/useAdvancedSearch.d.ts +0 -11
  401. package/dist/advanced-search/model/useAdvancedSearch.d.ts.map +0 -1
  402. package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts +0 -6
  403. package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts.map +0 -1
  404. package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts +0 -13
  405. package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts.map +0 -1
  406. package/dist/advanced-search/ui/AdvancedSearchModal.d.ts +0 -23
  407. package/dist/advanced-search/ui/AdvancedSearchModal.d.ts.map +0 -1
  408. package/dist/advanced-search/ui/AdvancedSearchModalSession.d.ts +0 -16
  409. package/dist/advanced-search/ui/AdvancedSearchModalSession.d.ts.map +0 -1
  410. package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts +0 -9
  411. package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts.map +0 -1
  412. package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts +0 -9
  413. package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts.map +0 -1
  414. package/dist/advanced-search/ui/index.d.ts +0 -2
  415. package/dist/advanced-search/ui/index.d.ts.map +0 -1
  416. package/dist/chunks/badge-6mXO9BWP.js +0 -65
  417. package/dist/chunks/badge-6mXO9BWP.js.map +0 -1
  418. package/dist/chunks/input-search-Cat4c7SM.js +0 -30
  419. package/dist/chunks/input-search-Cat4c7SM.js.map +0 -1
  420. package/dist/chunks/multi-select-BZ9N6Dal.js +0 -466
  421. package/dist/chunks/multi-select-BZ9N6Dal.js.map +0 -1
  422. package/dist/chunks/popover-Bne-Ljbs.js +0 -245
  423. package/dist/chunks/radio-group-sSnlYjAX.js +0 -125
  424. package/dist/chunks/select-aTGupQan.js +0 -363
  425. package/storybook-static/assets/iframe-B54uejyY.js +0 -1
  426. /package/storybook-static/assets/{ui.module-BpXamlVr.js → ui.module-CyEEibCu.js} +0 -0
@@ -1,5 +1,5 @@
1
- import { forwardRef as e } from "react";
2
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as t } from "react";
3
3
  //#region src/floating-arrow/getArrowStyle.ts
4
4
  function n(e, t) {
5
5
  if (!t?.arrow) return {};
@@ -28,10 +28,10 @@ function n(e, t) {
28
28
  }
29
29
  //#endregion
30
30
  //#region src/floating-arrow/FloatingArrow.tsx
31
- var r = e(({ placement: e, middlewareData: r }, i) => /* @__PURE__ */ t("div", {
31
+ var r = t(({ placement: t, middlewareData: r }, i) => /* @__PURE__ */ e("div", {
32
32
  ref: i,
33
- style: n(e, r),
34
- children: /* @__PURE__ */ t("svg", {
33
+ style: n(t, r),
34
+ children: /* @__PURE__ */ e("svg", {
35
35
  width: "16",
36
36
  height: "16",
37
37
  viewBox: "0 0 16 16",
@@ -39,10 +39,10 @@ var r = e(({ placement: e, middlewareData: r }, i) => /* @__PURE__ */ t("div", {
39
39
  stroke: "var(--border-2)",
40
40
  strokeWidth: "var(--border-width)",
41
41
  style: { display: "block" },
42
- children: /* @__PURE__ */ t("polygon", { points: "8,8 16,16 0,16" })
42
+ children: /* @__PURE__ */ e("polygon", { points: "8,8 16,16 0,16" })
43
43
  })
44
44
  }));
45
45
  //#endregion
46
46
  export { r as t };
47
47
 
48
- //# sourceMappingURL=floating-arrow-DPKwJfww.js.map
48
+ //# sourceMappingURL=floating-arrow-DKUKx2ZQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"floating-arrow-DPKwJfww.js","names":[],"sources":["../../src/floating-arrow/getArrowStyle.ts","../../src/floating-arrow/FloatingArrow.tsx"],"sourcesContent":["import { MiddlewareData } from \"@floating-ui/react\";\n\nexport function getArrowStyle(placement: string, middlewareData?: MiddlewareData): React.CSSProperties {\n\tif (!middlewareData?.arrow) return {};\n\n\tconst { x, y } = middlewareData.arrow;\n\tconst place = placement.split(\"-\")[0];\n\n\tconst staticSide = {\n\t\ttop: \"bottom\",\n\t\tright: \"left\",\n\t\tbottom: \"top\",\n\t\tleft: \"right\"\n\t}[place] as keyof React.CSSProperties;\n\n\tconst rotate = {\n\t\ttop: \"rotate(180deg)\",\n\t\tright: \"rotate(-90deg)\",\n\t\tbottom: \"rotate(0deg)\",\n\t\tleft: \"rotate(90deg)\"\n\t}[place] as keyof React.CSSProperties;\n\n\treturn {\n\t\tpointerEvents: \"none\",\n\t\tposition: \"absolute\",\n\t\tzIndex: -5,\n\t\twidth: \"16px\",\n\t\theight: \"16px\",\n\t\tleft: x != null ? `${x}px` : \"\",\n\t\ttop: y != null ? `${y}px` : \"\",\n\t\ttransform: rotate,\n\t\t[staticSide]: \"-16px\" // позиция стрелки в зависимости от стороны\n\t};\n}\n","import { forwardRef } from \"react\";\n\nimport { MiddlewareData, Placement } from \"@floating-ui/react\";\n\nimport { getArrowStyle } from \"./getArrowStyle\";\n\ninterface TooltipArrowProps {\n\tplacement: Placement;\n\tmiddlewareData: MiddlewareData;\n}\n\nexport const FloatingArrow = forwardRef<HTMLDivElement, TooltipArrowProps>(({ placement, middlewareData }, ref) => {\n\treturn (\n\t\t<div ref={ref} style={getArrowStyle(placement, middlewareData)}>\n\t\t\t<svg\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\tfill=\"var(--border-2)\"\n\t\t\t\tstroke=\"var(--border-2)\"\n\t\t\t\tstrokeWidth=\"var(--border-width)\"\n\t\t\t\tstyle={{ display: \"block\" }}>\n\t\t\t\t<polygon points=\"8,8 16,16 0,16\" />\n\t\t\t</svg>\n\t\t</div>\n\t);\n});\n"],"mappings":";;;AAEA,SAAgB,EAAc,GAAmB,GAAsD;CACtG,IAAI,CAAC,GAAgB,OAAO,OAAO,CAAC;CAEpC,IAAM,EAAE,MAAG,SAAM,EAAe,OAC1B,IAAQ,EAAU,MAAM,GAAG,CAAC,CAAC,IAE7B,IAAa;EAClB,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;CACP,EAAE,IAEI,IAAS;EACd,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;CACP,EAAE;CAEF,OAAO;EACN,eAAe;EACf,UAAU;EACV,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,MAAM,KAAK,OAAkB,KAAX,GAAG,EAAE;EACvB,KAAK,KAAK,OAAkB,KAAX,GAAG,EAAE;EACtB,WAAW;GACV,IAAa;CACf;AACD;;;ACtBA,IAAa,IAAgB,GAA+C,EAAE,cAAW,qBAAkB,MAEzG,kBAAC,OAAD;CAAU;CAAK,OAAO,EAAc,GAAW,CAAc;CAC5D,UAAA,kBAAC,OAAD;EACC,OAAM;EACN,QAAO;EACP,SAAQ;EACR,MAAK;EACL,QAAO;EACP,aAAY;EACZ,OAAO,EAAE,SAAS,QAAQ;EAC1B,UAAA,kBAAC,WAAD,EAAS,QAAO,iBAAkB,CAAA;CAC9B,CAAA;AACD,CAAA,CAEN"}
1
+ {"version":3,"file":"floating-arrow-DKUKx2ZQ.js","names":[],"sources":["../../src/floating-arrow/getArrowStyle.ts","../../src/floating-arrow/FloatingArrow.tsx"],"sourcesContent":["import { MiddlewareData } from \"@floating-ui/react\";\n\nexport function getArrowStyle(placement: string, middlewareData?: MiddlewareData): React.CSSProperties {\n\tif (!middlewareData?.arrow) return {};\n\n\tconst { x, y } = middlewareData.arrow;\n\tconst place = placement.split(\"-\")[0];\n\n\tconst staticSide = {\n\t\ttop: \"bottom\",\n\t\tright: \"left\",\n\t\tbottom: \"top\",\n\t\tleft: \"right\"\n\t}[place] as keyof React.CSSProperties;\n\n\tconst rotate = {\n\t\ttop: \"rotate(180deg)\",\n\t\tright: \"rotate(-90deg)\",\n\t\tbottom: \"rotate(0deg)\",\n\t\tleft: \"rotate(90deg)\"\n\t}[place] as keyof React.CSSProperties;\n\n\treturn {\n\t\tpointerEvents: \"none\",\n\t\tposition: \"absolute\",\n\t\tzIndex: -5,\n\t\twidth: \"16px\",\n\t\theight: \"16px\",\n\t\tleft: x != null ? `${x}px` : \"\",\n\t\ttop: y != null ? `${y}px` : \"\",\n\t\ttransform: rotate,\n\t\t[staticSide]: \"-16px\" // позиция стрелки в зависимости от стороны\n\t};\n}\n","import { forwardRef } from \"react\";\n\nimport { MiddlewareData, Placement } from \"@floating-ui/react\";\n\nimport { getArrowStyle } from \"./getArrowStyle\";\n\ninterface TooltipArrowProps {\n\tplacement: Placement;\n\tmiddlewareData: MiddlewareData;\n}\n\nexport const FloatingArrow = forwardRef<HTMLDivElement, TooltipArrowProps>(({ placement, middlewareData }, ref) => {\n\treturn (\n\t\t<div ref={ref} style={getArrowStyle(placement, middlewareData)}>\n\t\t\t<svg\n\t\t\t\twidth=\"16\"\n\t\t\t\theight=\"16\"\n\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\tfill=\"var(--border-2)\"\n\t\t\t\tstroke=\"var(--border-2)\"\n\t\t\t\tstrokeWidth=\"var(--border-width)\"\n\t\t\t\tstyle={{ display: \"block\" }}>\n\t\t\t\t<polygon points=\"8,8 16,16 0,16\" />\n\t\t\t</svg>\n\t\t</div>\n\t);\n});\n"],"mappings":";;;AAEA,SAAgB,EAAc,GAAmB,GAAsD;CACtG,IAAI,CAAC,GAAgB,OAAO,OAAO,CAAC;CAEpC,IAAM,EAAE,MAAG,SAAM,EAAe,OAC1B,IAAQ,EAAU,MAAM,GAAG,CAAC,CAAC,IAE7B,IAAa;EAClB,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;CACP,EAAE,IAEI,IAAS;EACd,KAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAM;CACP,EAAE;CAEF,OAAO;EACN,eAAe;EACf,UAAU;EACV,QAAQ;EACR,OAAO;EACP,QAAQ;EACR,MAAM,KAAK,OAAkB,KAAX,GAAG,EAAE;EACvB,KAAK,KAAK,OAAkB,KAAX,GAAG,EAAE;EACtB,WAAW;GACV,IAAa;CACf;AACD;;;ACtBA,IAAa,IAAgB,GAA+C,EAAE,cAAW,qBAAkB,MAEzG,kBAAC,OAAD;CAAU;CAAK,OAAO,EAAc,GAAW,CAAc;CAC5D,UAAA,kBAAC,OAAD;EACC,OAAM;EACN,QAAO;EACP,SAAQ;EACR,MAAK;EACL,QAAO;EACP,aAAY;EACZ,OAAO,EAAE,SAAS,QAAQ;EAC1B,UAAA,kBAAC,WAAD,EAAS,QAAO,iBAAkB,CAAA;CAC9B,CAAA;AACD,CAAA,CAEN"}
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./ui.module-oRwY3Zli.js";
2
- import { useId as t, useLayoutEffect as n, useRef as r, useState as i } from "react";
3
- import { cn as a } from "@ryuzaki13/react-foundation-lib/utils";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { XIcon as c } from "lucide-react";
2
+ import { cn as t } from "@ryuzaki13/react-foundation-lib/utils";
3
+ import { XIcon as n } from "lucide-react";
4
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
+ import { useId as a, useLayoutEffect as o, useRef as s, useState as c } from "react";
6
6
  import { toFiniteNumber as l } from "@ryuzaki13/react-foundation-lib/formatters";
7
7
  var u = {
8
8
  controlLayout: "lRn5ye",
@@ -17,8 +17,8 @@ var u = {
17
17
  };
18
18
  //#endregion
19
19
  //#region src/input/lib/useInputFieldIds.ts
20
- function d({ id: e, hasLabel: n, hasDescription: r, hasError: i }) {
21
- let a = t(), o = e ?? a, s = n ? `${o}-label` : void 0, c = r ? `${o}-description` : void 0, l = i ? `${o}-error` : void 0;
20
+ function d({ id: e, hasLabel: t, hasDescription: n, hasError: r }) {
21
+ let i = a(), o = e ?? i, s = t ? `${o}-label` : void 0, c = n ? `${o}-description` : void 0, l = r ? `${o}-error` : void 0;
22
22
  return {
23
23
  controlId: o,
24
24
  labelId: s,
@@ -29,64 +29,64 @@ function d({ id: e, hasLabel: n, hasDescription: r, hasError: i }) {
29
29
  }
30
30
  //#endregion
31
31
  //#region src/input/Input.tsx
32
- function f({ label: t, controlId: n, labelId: r }) {
33
- return /* @__PURE__ */ o("label", {
34
- id: r,
32
+ function f({ label: t, controlId: n, labelId: i }) {
33
+ return /* @__PURE__ */ r("label", {
34
+ id: i,
35
35
  htmlFor: n,
36
36
  className: e.uiLabel,
37
37
  children: t
38
38
  });
39
39
  }
40
40
  function p() {
41
- return /* @__PURE__ */ o("div", { className: a(e.uiInputControlFake, "skeletonLine") });
41
+ return /* @__PURE__ */ r("div", { className: t(e.uiInputControlFake, "skeletonLine") });
42
42
  }
43
- function m({ label: t, description: n, size: r, disabled: i, isLoading: c, className: l }) {
43
+ function m({ label: n, description: a, size: o, disabled: s, isLoading: c, className: l }) {
44
44
  let { controlId: u, labelId: p, descriptionId: m } = d({
45
- hasLabel: t != null,
46
- hasDescription: !!n
45
+ hasLabel: n != null,
46
+ hasDescription: !!a
47
47
  });
48
- return /* @__PURE__ */ s("div", {
49
- className: a(e.uiElement, e.uiSizable, r && e[r], e.disabled, l),
50
- "aria-disabled": i || void 0,
48
+ return /* @__PURE__ */ i("div", {
49
+ className: t(e.uiElement, e.uiSizable, o && e[o], e.disabled, l),
50
+ "aria-disabled": s || void 0,
51
51
  children: [
52
- t && /* @__PURE__ */ o(f, {
53
- label: t,
52
+ n && /* @__PURE__ */ r(f, {
53
+ label: n,
54
54
  controlId: u,
55
55
  labelId: p
56
56
  }),
57
- n && /* @__PURE__ */ o("p", {
57
+ a && /* @__PURE__ */ r("p", {
58
58
  id: m,
59
59
  className: e.uiDescription,
60
- children: n
60
+ children: a
61
61
  }),
62
- /* @__PURE__ */ o("div", { className: a(e.uiInputControlFake, c && "skeletonLine") })
62
+ /* @__PURE__ */ r("div", { className: t(e.uiInputControlFake, c && "skeletonLine") })
63
63
  ]
64
64
  });
65
65
  }
66
66
  function h(e) {
67
- return /* @__PURE__ */ o(m, {
67
+ return /* @__PURE__ */ r(m, {
68
68
  ...e,
69
69
  isLoading: !0
70
70
  });
71
71
  }
72
- function g({ label: t, description: n, disabled: r, className: i, error: c, size: l, controlId: d, labelId: p, descriptionId: m, errorId: h, required: g, children: _ }) {
73
- return /* @__PURE__ */ s("div", {
74
- className: a(u.inputUI, e.uiElement, e.uiSizable, l && e[l], r && e.disabled, g && e.required, i),
75
- "aria-disabled": r || void 0,
72
+ function g({ label: n, description: a, disabled: o, className: s, error: c, size: l, controlId: d, labelId: p, descriptionId: m, errorId: h, required: g, children: _ }) {
73
+ return /* @__PURE__ */ i("div", {
74
+ className: t(u.inputUI, e.uiElement, e.uiSizable, l && e[l], o && e.disabled, g && e.required, s),
75
+ "aria-disabled": o || void 0,
76
76
  children: [
77
- t && /* @__PURE__ */ o(f, {
78
- label: t,
77
+ n && /* @__PURE__ */ r(f, {
78
+ label: n,
79
79
  controlId: d,
80
80
  labelId: p
81
81
  }),
82
- n && /* @__PURE__ */ o("p", {
82
+ a && /* @__PURE__ */ r("p", {
83
83
  id: m,
84
84
  className: e.uiDescription,
85
- children: n
85
+ children: a
86
86
  }),
87
- /* @__PURE__ */ s("div", {
87
+ /* @__PURE__ */ i("div", {
88
88
  className: u.controlLayout,
89
- children: [_, c && /* @__PURE__ */ o("p", {
89
+ children: [_, c && /* @__PURE__ */ r("p", {
90
90
  id: h,
91
91
  className: u.error,
92
92
  role: "alert",
@@ -96,25 +96,25 @@ function g({ label: t, description: n, disabled: r, className: i, error: c, size
96
96
  ]
97
97
  });
98
98
  }
99
- function _({ className: e, endAdornment: t, endAdornmentClassName: n, endAdornmentWidth: r, children: i }) {
100
- let c = t != null, l = c && r ? { "--input-end-adornment-width": r } : void 0;
101
- return /* @__PURE__ */ s("div", {
102
- className: a(u.controlLayout, e),
99
+ function _({ className: e, endAdornment: n, endAdornmentClassName: a, endAdornmentWidth: o, children: s }) {
100
+ let c = n != null, l = c && o ? { "--input-end-adornment-width": o } : void 0;
101
+ return /* @__PURE__ */ i("div", {
102
+ className: t(u.controlLayout, e),
103
103
  style: l,
104
- children: [i({ controlClassName: c ? u.controlWithEndAdornment : void 0 }), c && /* @__PURE__ */ o("div", {
105
- className: a(u.controlEndAdornment, n),
106
- children: t
104
+ children: [s({ controlClassName: c ? u.controlWithEndAdornment : void 0 }), c && /* @__PURE__ */ r("div", {
105
+ className: t(u.controlEndAdornment, a),
106
+ children: n
107
107
  })]
108
108
  });
109
109
  }
110
- function v({ onClick: e, disabled: t, className: n, ariaLabel: r = "Очистить значение" }) {
111
- return /* @__PURE__ */ o("button", {
110
+ function v({ onClick: e, disabled: i, className: a, ariaLabel: o = "Очистить значение" }) {
111
+ return /* @__PURE__ */ r("button", {
112
112
  type: "button",
113
- disabled: t || !e,
114
- className: a(u.clearButton, n),
113
+ disabled: i || !e,
114
+ className: t(u.clearButton, a),
115
115
  onClick: e,
116
- "aria-label": r,
117
- children: /* @__PURE__ */ o(c, {})
116
+ "aria-label": o,
117
+ children: /* @__PURE__ */ r(n, {})
118
118
  });
119
119
  }
120
120
  function y(e, t, n) {
@@ -123,68 +123,68 @@ function y(e, t, n) {
123
123
  if (e || t) return "var(--control-height)";
124
124
  }
125
125
  function b({ endAdornment: e, onClear: t, disabled: n }) {
126
- if (!(e == null && !t)) return /* @__PURE__ */ s("div", {
126
+ if (!(e == null && !t)) return /* @__PURE__ */ i("div", {
127
127
  className: u.endAdornmentGroup,
128
- children: [e, t && /* @__PURE__ */ o(v, {
128
+ children: [e, t && /* @__PURE__ */ r(v, {
129
129
  onClick: t,
130
130
  disabled: n
131
131
  })]
132
132
  });
133
133
  }
134
- function x({ label: t, description: n, disabled: r, className: s, onClear: c, error: l, onClearError: f, onChange: p, value: m, size: h, allowedPattern: v, endAdornment: x, endAdornmentClassName: S, endAdornmentWidth: C, type: w = "text", ...T }) {
135
- let [E, D] = i(!1), O = (e) => {
134
+ function x({ label: n, description: i, disabled: a, className: o, onClear: s, error: l, onClearError: f, onChange: p, value: m, size: h, allowedPattern: v, endAdornment: x, endAdornmentClassName: S, endAdornmentWidth: C, type: w = "text", ...T }) {
135
+ let [E, D] = c(!1), O = (e) => {
136
136
  let t = e.target.value;
137
137
  v !== void 0 && D(t !== "" && !v.test(t)), p(t), l && f && f();
138
138
  }, k = !!(m && m.length > 0), A = k ? l : void 0, { controlId: j, labelId: M, descriptionId: N, errorId: P, describedBy: F } = d({
139
139
  id: T.id,
140
- hasLabel: t != null,
141
- hasDescription: !!n,
140
+ hasLabel: n != null,
141
+ hasDescription: !!i,
142
142
  hasError: !!A
143
143
  }), I = k && (!!l || E), L = b({
144
144
  endAdornment: x,
145
- onClear: c,
146
- disabled: r || !k
147
- }), R = y(x != null, !!c, C);
148
- return /* @__PURE__ */ o(g, {
149
- label: t,
150
- description: n,
151
- disabled: r,
145
+ onClear: s,
146
+ disabled: a || !k
147
+ }), R = y(x != null, !!s, C);
148
+ return /* @__PURE__ */ r(g, {
149
+ label: n,
150
+ description: i,
151
+ disabled: a,
152
152
  required: T.required,
153
- className: s,
153
+ className: o,
154
154
  size: h,
155
155
  error: A,
156
156
  controlId: j,
157
157
  labelId: M,
158
158
  descriptionId: N,
159
159
  errorId: P,
160
- children: /* @__PURE__ */ o(_, {
160
+ children: /* @__PURE__ */ r(_, {
161
161
  endAdornment: L,
162
162
  endAdornmentClassName: S,
163
163
  endAdornmentWidth: R,
164
- children: ({ controlClassName: t }) => /* @__PURE__ */ o("input", {
164
+ children: ({ controlClassName: n }) => /* @__PURE__ */ r("input", {
165
165
  ...T,
166
166
  id: j,
167
167
  type: w,
168
- disabled: r,
168
+ disabled: a,
169
169
  value: m,
170
170
  "aria-invalid": I || void 0,
171
171
  "aria-labelledby": M,
172
172
  "aria-describedby": F,
173
173
  "data-invalid": I ? "" : void 0,
174
- className: a(e.uiInputControl, u.input, t),
174
+ className: t(e.uiInputControl, u.input, n),
175
175
  onChange: O
176
176
  })
177
177
  })
178
178
  });
179
179
  }
180
- function S({ label: t, description: i, disabled: s, className: c, onClear: f, error: p, onClearError: m, onChange: h, value: v, size: x, endAdornment: S, endAdornmentClassName: C, endAdornmentWidth: w, ...T }) {
180
+ function S({ label: n, description: i, disabled: a, className: c, onClear: f, error: p, onClearError: m, onChange: h, value: v, size: x, endAdornment: S, endAdornmentClassName: C, endAdornmentWidth: w, ...T }) {
181
181
  let E = T, { controlId: D, labelId: O, descriptionId: k, errorId: A, describedBy: j } = d({
182
182
  id: T.id,
183
- hasLabel: t != null,
183
+ hasLabel: n != null,
184
184
  hasDescription: !!i,
185
185
  hasError: !!p
186
- }), M = r(null), N = r(null), P = v !== void 0 && typeof v == "number" && !isNaN(v) ? String(v) : "";
187
- n(() => {
186
+ }), M = s(null), N = s(null), P = v !== void 0 && typeof v == "number" && !isNaN(v) ? String(v) : "";
187
+ o(() => {
188
188
  let e = N.current;
189
189
  if (e && Object.is(e.value, v)) {
190
190
  M.current && M.current.value !== e.raw && (M.current.value = e.raw);
@@ -203,12 +203,12 @@ function S({ label: t, description: i, disabled: s, className: c, onClear: f, er
203
203
  }, L = b({
204
204
  endAdornment: S,
205
205
  onClear: F,
206
- disabled: s
206
+ disabled: a
207
207
  }), R = y(S != null, !!F, w);
208
- return /* @__PURE__ */ o(g, {
209
- label: t,
208
+ return /* @__PURE__ */ r(g, {
209
+ label: n,
210
210
  description: i,
211
- disabled: s,
211
+ disabled: a,
212
212
  required: T.required,
213
213
  className: c,
214
214
  size: x,
@@ -217,21 +217,21 @@ function S({ label: t, description: i, disabled: s, className: c, onClear: f, er
217
217
  labelId: O,
218
218
  descriptionId: k,
219
219
  errorId: A,
220
- children: /* @__PURE__ */ o(_, {
220
+ children: /* @__PURE__ */ r(_, {
221
221
  endAdornment: L,
222
222
  endAdornmentClassName: C,
223
223
  endAdornmentWidth: R,
224
- children: ({ controlClassName: t }) => /* @__PURE__ */ o("input", {
224
+ children: ({ controlClassName: n }) => /* @__PURE__ */ r("input", {
225
225
  ...E,
226
226
  ref: M,
227
227
  id: D,
228
228
  type: "number",
229
229
  inputMode: "decimal",
230
- disabled: s,
230
+ disabled: a,
231
231
  defaultValue: P,
232
232
  "aria-labelledby": O,
233
233
  "aria-describedby": j,
234
- className: a(e.uiInputControl, u.input, u.inputNumber, t),
234
+ className: t(e.uiInputControl, u.input, u.inputNumber, n),
235
235
  onChange: I
236
236
  })
237
237
  })
@@ -241,12 +241,12 @@ var C = x;
241
241
  //#endregion
242
242
  //#region src/input/InputErrorComponent.tsx
243
243
  function w({ text: t }) {
244
- return /* @__PURE__ */ o("div", {
244
+ return /* @__PURE__ */ r("div", {
245
245
  className: e.uiErrorElement,
246
246
  children: t
247
247
  });
248
248
  }
249
249
  //#endregion
250
- export { p as a, g as c, d, u as f, _ as i, m as l, C as n, S as o, v as r, x as s, w as t, h as u };
250
+ export { p as a, g as c, d, _ as i, m as l, C as n, S as o, v as r, x as s, w as t, h as u };
251
251
 
252
- //# sourceMappingURL=input-DSPKgiCK.js.map
252
+ //# sourceMappingURL=input-CuRK9Vbz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-DSPKgiCK.js","names":[],"sources":["../../src/input/Input.module.scss","../../src/input/lib/useInputFieldIds.ts","../../src/input/Input.tsx","../../src/input/InputErrorComponent.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.controlLayout {\n\tposition: relative;\n\twidth: 100%;\n}\n\n.inputUI {\n\t--button-size: calc(var(--control-height) - var(--border-width) * 4);\n}\n\n.input {\n\theight: var(--control-height);\n\twidth: 100%;\n\tpadding: var(--space-xs) var(--space-sm);\n\tfont-size: var(--font-size-md);\n\n\t--ui-color: var(--content-0);\n\t--ui-color-hover: var(--content-0);\n\t--ui-color-active: var(--content-0);\n}\n\n.inputNumber {\n\tappearance: textfield;\n\t-moz-appearance: textfield;\n\n\t&::-webkit-inner-spin-button,\n\t&::-webkit-outer-spin-button {\n\t\t-webkit-appearance: none;\n\t\tmargin: 0;\n\t}\n}\n\n.controlWithEndAdornment {\n\tpadding-right: calc(var(--input-end-adornment-width, var(--control-height)) + var(--space-sm));\n}\n\n.controlEndAdornment {\n\tposition: absolute;\n\theight: 100%;\n\ttop: 0;\n\tright: calc(var(--border-width) * 2);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tmax-width: calc(100% - var(--space-md));\n}\n\n.endAdornmentGroup {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n}\n\n.clearButton {\n\twidth: var(--button-size);\n\theight: var(--button-size);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tborder-radius: var(--radius-sm);\n\n\tbackground: transparent;\n\tcolor: var(--content-2);\n\n\ttransition:\n\t\tcolor var(--transition-fast) ease,\n\t\tbackground-color var(--transition-fast) ease;\n\n\t&:hover {\n\t\tcolor: var(--accent-text);\n\t}\n\n\t&:focus-visible {\n\t\t@include focusVisible;\n\t}\n\n\t&:disabled {\n\t\tpointer-events: none;\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.error {\n\tposition: absolute;\n\tz-index: 11;\n\tbottom: calc(var(--space-xs) * -1);\n\tleft: 0;\n\tright: 0;\n\ttransform: translateY(100%);\n\t// font-size: var(--font-size-sm);\n\tcolor: var(--error-on-fill);\n\tbackground: var(--error-fill);\n\tborder-radius: var(--radius-sm);\n\tpadding: var(--space-xs) var(--space-sm);\n\tbox-shadow: var(--shadow-sm);\n\topacity: 0.9;\n}\n","import { useId } from \"react\";\n\nexport interface UseInputFieldIdsOptions {\n\tid?: string;\n\thasLabel?: boolean;\n\thasDescription?: boolean;\n\thasError?: boolean;\n}\n\nexport interface InputFieldIds {\n\tcontrolId: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\terrorId?: string;\n\tdescribedBy?: string;\n}\n\nexport function useInputFieldIds({ id: externalId, hasLabel, hasDescription, hasError }: UseInputFieldIdsOptions): InputFieldIds {\n\tconst autoId = useId();\n\tconst controlId = externalId ?? autoId;\n\tconst labelId = hasLabel ? `${controlId}-label` : undefined;\n\tconst descriptionId = hasDescription ? `${controlId}-description` : undefined;\n\tconst errorId = hasError ? `${controlId}-error` : undefined;\n\tconst describedBy = [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\n\n\treturn {\n\t\tcontrolId,\n\t\tlabelId,\n\t\tdescriptionId,\n\t\terrorId,\n\t\tdescribedBy\n\t};\n}\n","import React, { CSSProperties, InputHTMLAttributes, ReactNode, useLayoutEffect, useRef, useState } from \"react\";\n\nimport { toFiniteNumber } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { XIcon } from \"lucide-react\";\n\nimport { UiBaseProps, UiSize } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Input.module.scss\";\nimport { useInputFieldIds } from \"./lib/useInputFieldIds\";\n\nexport interface InputUIProps extends Omit<UiBaseProps<never>, \"value\" | \"onChange\"> {\n\tclassName?: string;\n\terror?: string;\n\tcontrolId?: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\terrorId?: string;\n\trequired?: boolean;\n\tchildren: React.ReactNode;\n}\n\nexport interface InputControlRenderProps {\n\tcontrolClassName?: string;\n}\n\nexport interface InputControlProps {\n\tclassName?: string;\n\tendAdornment?: ReactNode;\n\tendAdornmentClassName?: string;\n\tendAdornmentWidth?: string;\n\tchildren: (props: InputControlRenderProps) => ReactNode;\n}\n\nexport interface InputClearButtonProps {\n\tonClick?: () => void;\n\tdisabled?: boolean;\n\tclassName?: string;\n\tariaLabel?: string;\n}\n\nfunction InputLabel({ label, controlId, labelId }: { label: React.ReactNode; controlId?: string; labelId?: string }) {\n\treturn (\n\t\t<label id={labelId} htmlFor={controlId} className={uiStyles.uiLabel}>\n\t\t\t{label}\n\t\t</label>\n\t);\n}\n\nexport function InputLoadingFrame() {\n\treturn <div className={cn(uiStyles.uiInputControlFake, \"skeletonLine\")} />;\n}\n\nexport function InputUIFrame({\n\tlabel,\n\tdescription,\n\tsize,\n\tdisabled,\n\tisLoading,\n\tclassName\n}: Pick<InputUIProps, \"label\" | \"description\" | \"size\" | \"disabled\" | \"className\"> & { isLoading?: boolean }) {\n\tconst { controlId, labelId, descriptionId } = useInputFieldIds({\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description\n\t});\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(uiStyles.uiElement, uiStyles.uiSizable, size && uiStyles[size as UiSize], uiStyles.disabled, className)}\n\t\t\taria-disabled={disabled || undefined}>\n\t\t\t{label && <InputLabel label={label} controlId={controlId} labelId={labelId} />}\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t\t<div className={cn(uiStyles.uiInputControlFake, isLoading && \"skeletonLine\")} />\n\t\t</div>\n\t);\n}\n\nexport function InputUILoading(props: Pick<InputUIProps, \"label\" | \"description\" | \"size\" | \"disabled\" | \"className\">) {\n\treturn <InputUIFrame {...props} isLoading />;\n}\n\n/**\n * Низкоуровневая оболочка поля ввода с общими элементами оформления.\n */\nexport function InputUI({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\terror,\n\tsize,\n\tcontrolId,\n\tlabelId,\n\tdescriptionId,\n\terrorId,\n\trequired,\n\tchildren\n}: InputUIProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tstyles.inputUI,\n\t\t\t\tuiStyles.uiElement,\n\t\t\t\tuiStyles.uiSizable,\n\t\t\t\tsize && uiStyles[size as UiSize],\n\t\t\t\tdisabled && uiStyles.disabled,\n\t\t\t\trequired && uiStyles.required,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\taria-disabled={disabled || undefined}>\n\t\t\t{label && <InputLabel label={label} controlId={controlId} labelId={labelId} />}\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t\t<div className={styles.controlLayout}>\n\t\t\t\t{children}\n\n\t\t\t\t{error && (\n\t\t\t\t\t<p id={errorId} className={styles.error} role=\"alert\">\n\t\t\t\t\t\t{error}\n\t\t\t\t\t</p>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function InputControl({ className, endAdornment, endAdornmentClassName, endAdornmentWidth, children }: InputControlProps) {\n\tconst hasEndAdornment = endAdornment !== undefined && endAdornment !== null;\n\tconst style =\n\t\thasEndAdornment && endAdornmentWidth ? ({ \"--input-end-adornment-width\": endAdornmentWidth } as CSSProperties) : undefined;\n\n\treturn (\n\t\t<div className={cn(styles.controlLayout, className)} style={style}>\n\t\t\t{children({ controlClassName: hasEndAdornment ? styles.controlWithEndAdornment : undefined })}\n\t\t\t{hasEndAdornment && <div className={cn(styles.controlEndAdornment, endAdornmentClassName)}>{endAdornment}</div>}\n\t\t</div>\n\t);\n}\n\nexport function InputClearButton({ onClick, disabled, className, ariaLabel = \"Очистить значение\" }: InputClearButtonProps) {\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled={disabled || !onClick}\n\t\t\tclassName={cn(styles.clearButton, className)}\n\t\t\tonClick={onClick}\n\t\t\taria-label={ariaLabel}>\n\t\t\t<XIcon />\n\t\t</button>\n\t);\n}\n\nfunction resolveEndAdornmentWidth(hasAdornment: boolean, hasClearAction: boolean, explicitWidth?: string) {\n\tif (explicitWidth) {\n\t\treturn explicitWidth;\n\t}\n\n\tif (hasAdornment && hasClearAction) {\n\t\treturn \"calc((var(--control-height) * 2) + var(--space-xs))\";\n\t}\n\n\tif (hasAdornment || hasClearAction) {\n\t\treturn \"var(--control-height)\";\n\t}\n\n\treturn undefined;\n}\n\nfunction createEndAdornment({ endAdornment, onClear, disabled }: { endAdornment?: ReactNode; onClear?: () => void; disabled?: boolean }) {\n\tif ((endAdornment === undefined || endAdornment === null) && !onClear) {\n\t\treturn undefined;\n\t}\n\n\treturn (\n\t\t<div className={styles.endAdornmentGroup}>\n\t\t\t{endAdornment}\n\t\t\t{onClear && <InputClearButton onClick={onClear} disabled={disabled} />}\n\t\t</div>\n\t);\n}\n\nexport interface BaseInputProps<T extends number | string | undefined, V = T>\n\textends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\" | \"value\" | \"type\" | \"defaultValue\" | \"onChange\">, UiBaseProps<T, V> {\n\tonClear?: () => void;\n\terror?: string;\n\tonClearError?: () => void;\n\tdefaultValue?: T;\n\tendAdornment?: ReactNode;\n\tendAdornmentClassName?: string;\n\tendAdornmentWidth?: string;\n}\n\nexport interface InputTextProps extends BaseInputProps<string> {\n\ttype?: \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\";\n\n\t/**\n\t * Регулярное выражение для валидации всего введённого значения.\n\t * При несоответствии поле подсвечивается как невалидное, но текст не удаляется.\n\t * Пример: `/^\\d*$/`\n\t */\n\tallowedPattern?: RegExp;\n}\n\n/**\n * Базовое текстовое поле ввода для строковых значений.\n */\nexport function InputText({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tonClear,\n\terror,\n\tonClearError,\n\tonChange,\n\tvalue,\n\tsize,\n\tallowedPattern,\n\tendAdornment,\n\tendAdornmentClassName,\n\tendAdornmentWidth,\n\ttype = \"text\",\n\t...props\n}: InputTextProps) {\n\tconst [internalInvalid, setInternalInvalid] = useState(false);\n\n\tconst handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = e.target.value;\n\n\t\tif (allowedPattern !== undefined) {\n\t\t\tsetInternalInvalid(newValue !== \"\" && !allowedPattern.test(newValue));\n\t\t}\n\n\t\tonChange(newValue);\n\t\tif (error && onClearError) onClearError();\n\t};\n\n\tconst hasValue = Boolean(value && value.length > 0);\n\tconst visibleError = hasValue ? error : undefined;\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid: props.id,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!visibleError\n\t});\n\tconst isInvalid = hasValue && (!!error || internalInvalid);\n\tconst resolvedEndAdornment = createEndAdornment({ endAdornment, onClear, disabled: disabled || !hasValue });\n\tconst hasCustomAdornment = endAdornment !== undefined && endAdornment !== null;\n\tconst resolvedEndAdornmentWidth = resolveEndAdornmentWidth(hasCustomAdornment, !!onClear, endAdornmentWidth);\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\trequired={props.required}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={visibleError}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<InputControl\n\t\t\t\tendAdornment={resolvedEndAdornment}\n\t\t\t\tendAdornmentClassName={endAdornmentClassName}\n\t\t\t\tendAdornmentWidth={resolvedEndAdornmentWidth}>\n\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\taria-invalid={isInvalid || undefined}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\tdata-invalid={isInvalid ? \"\" : undefined}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.input, controlClassName)}\n\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\t\t</InputUI>\n\t);\n}\n\n/**\n * Числовое поле ввода с нормализацией значения и защитой от промежуточного невалидного ввода.\n */\nexport function InputNumber({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tonClear,\n\terror,\n\tonClearError,\n\tonChange,\n\tvalue,\n\tsize,\n\tendAdornment,\n\tendAdornmentClassName,\n\tendAdornmentWidth,\n\t...props\n}: BaseInputProps<number | undefined>) {\n\tconst inputProps = props as InputHTMLAttributes<HTMLInputElement>;\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid: props.id,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst numberDraftRef = useRef<{ readonly value: number | undefined; readonly raw: string } | null>(null);\n\tconst externalRawValue = value !== undefined && typeof value === \"number\" && !isNaN(value) ? String(value) : \"\";\n\n\t/**\n\t * Числовой input хранит промежуточную строку в DOM, а controlled number остаётся\n\t * источником истины. Layout-effect синхронизирует именно внешнюю DOM-систему,\n\t * поэтому не создаёт каскадного React render и не ломает ввод неполных чисел.\n\t */\n\tuseLayoutEffect(() => {\n\t\tconst numberDraft = numberDraftRef.current;\n\t\tif (numberDraft && Object.is(numberDraft.value, value)) {\n\t\t\tif (inputRef.current && inputRef.current.value !== numberDraft.raw) {\n\t\t\t\tinputRef.current.value = numberDraft.raw;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tnumberDraftRef.current = null;\n\t\tif (inputRef.current && inputRef.current.value !== externalRawValue) {\n\t\t\tinputRef.current.value = externalRawValue;\n\t\t}\n\t}, [externalRawValue, value]);\n\n\tconst handleClear = onClear\n\t\t? () => {\n\t\t\t\tonClear();\n\t\t\t}\n\t\t: undefined;\n\n\tconst handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst raw = e.target.value;\n\n\t\tconst parsed = toFiniteNumber(raw); // ?? value ?? 0;\n\t\tnumberDraftRef.current = { value: parsed, raw };\n\n\t\tonChange(parsed);\n\t\tif (error && onClearError) onClearError();\n\t};\n\n\tconst resolvedEndAdornment = createEndAdornment({ endAdornment, onClear: handleClear, disabled });\n\tconst hasCustomAdornment = endAdornment !== undefined && endAdornment !== null;\n\tconst resolvedEndAdornmentWidth = resolveEndAdornmentWidth(hasCustomAdornment, !!handleClear, endAdornmentWidth);\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\trequired={props.required}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<InputControl\n\t\t\t\tendAdornment={resolvedEndAdornment}\n\t\t\t\tendAdornmentClassName={endAdornmentClassName}\n\t\t\t\tendAdornmentWidth={resolvedEndAdornmentWidth}>\n\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...inputProps}\n\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tinputMode=\"decimal\"\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tdefaultValue={externalRawValue}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.input, styles.inputNumber, controlClassName)}\n\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\t\t</InputUI>\n\t);\n}\n\n/**\n * Совместимый алиас для `InputText`.\n */\nexport const Input = InputText;\n","import styles from \"../ui.module.scss\";\n\ninterface InputErrorComponentProps {\n\ttext: string;\n}\n\nexport function InputErrorComponent({ text }: InputErrorComponentProps) {\n\treturn <div className={styles.uiErrorElement}>{text}</div>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"input-CuRK9Vbz.js","names":[],"sources":["../../src/input/Input.module.scss","../../src/input/lib/useInputFieldIds.ts","../../src/input/Input.tsx","../../src/input/InputErrorComponent.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.controlLayout {\n\tposition: relative;\n\twidth: 100%;\n}\n\n.inputUI {\n\t--button-size: calc(var(--control-height) - var(--border-width) * 4);\n}\n\n.input {\n\theight: var(--control-height);\n\twidth: 100%;\n\tpadding: var(--space-xs) var(--space-sm);\n\tfont-size: var(--font-size-md);\n\n\t--ui-color: var(--content-0);\n\t--ui-color-hover: var(--content-0);\n\t--ui-color-active: var(--content-0);\n}\n\n.inputNumber {\n\tappearance: textfield;\n\t-moz-appearance: textfield;\n\n\t&::-webkit-inner-spin-button,\n\t&::-webkit-outer-spin-button {\n\t\t-webkit-appearance: none;\n\t\tmargin: 0;\n\t}\n}\n\n.controlWithEndAdornment {\n\tpadding-right: calc(var(--input-end-adornment-width, var(--control-height)) + var(--space-sm));\n}\n\n.controlEndAdornment {\n\tposition: absolute;\n\theight: 100%;\n\ttop: 0;\n\tright: calc(var(--border-width) * 2);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tmax-width: calc(100% - var(--space-md));\n}\n\n.endAdornmentGroup {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n}\n\n.clearButton {\n\twidth: var(--button-size);\n\theight: var(--button-size);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tborder-radius: var(--radius-sm);\n\n\tbackground: transparent;\n\tcolor: var(--content-2);\n\n\ttransition:\n\t\tcolor var(--transition-fast) ease,\n\t\tbackground-color var(--transition-fast) ease;\n\n\t&:hover {\n\t\tcolor: var(--accent-text);\n\t}\n\n\t&:focus-visible {\n\t\t@include focusVisible;\n\t}\n\n\t&:disabled {\n\t\tpointer-events: none;\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.error {\n\tposition: absolute;\n\tz-index: 11;\n\tbottom: calc(var(--space-xs) * -1);\n\tleft: 0;\n\tright: 0;\n\ttransform: translateY(100%);\n\t// font-size: var(--font-size-sm);\n\tcolor: var(--error-on-fill);\n\tbackground: var(--error-fill);\n\tborder-radius: var(--radius-sm);\n\tpadding: var(--space-xs) var(--space-sm);\n\tbox-shadow: var(--shadow-sm);\n\topacity: 0.9;\n}\n","import { useId } from \"react\";\n\nexport interface UseInputFieldIdsOptions {\n\tid?: string;\n\thasLabel?: boolean;\n\thasDescription?: boolean;\n\thasError?: boolean;\n}\n\nexport interface InputFieldIds {\n\tcontrolId: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\terrorId?: string;\n\tdescribedBy?: string;\n}\n\nexport function useInputFieldIds({ id: externalId, hasLabel, hasDescription, hasError }: UseInputFieldIdsOptions): InputFieldIds {\n\tconst autoId = useId();\n\tconst controlId = externalId ?? autoId;\n\tconst labelId = hasLabel ? `${controlId}-label` : undefined;\n\tconst descriptionId = hasDescription ? `${controlId}-description` : undefined;\n\tconst errorId = hasError ? `${controlId}-error` : undefined;\n\tconst describedBy = [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\n\n\treturn {\n\t\tcontrolId,\n\t\tlabelId,\n\t\tdescriptionId,\n\t\terrorId,\n\t\tdescribedBy\n\t};\n}\n","import React, { CSSProperties, InputHTMLAttributes, ReactNode, useLayoutEffect, useRef, useState } from \"react\";\n\nimport { toFiniteNumber } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { XIcon } from \"lucide-react\";\n\nimport { UiBaseProps, UiSize } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./Input.module.scss\";\nimport { useInputFieldIds } from \"./lib/useInputFieldIds\";\n\nexport interface InputUIProps extends Omit<UiBaseProps<never>, \"value\" | \"onChange\"> {\n\tclassName?: string;\n\terror?: string;\n\tcontrolId?: string;\n\tlabelId?: string;\n\tdescriptionId?: string;\n\terrorId?: string;\n\trequired?: boolean;\n\tchildren: React.ReactNode;\n}\n\nexport interface InputControlRenderProps {\n\tcontrolClassName?: string;\n}\n\nexport interface InputControlProps {\n\tclassName?: string;\n\tendAdornment?: ReactNode;\n\tendAdornmentClassName?: string;\n\tendAdornmentWidth?: string;\n\tchildren: (props: InputControlRenderProps) => ReactNode;\n}\n\nexport interface InputClearButtonProps {\n\tonClick?: () => void;\n\tdisabled?: boolean;\n\tclassName?: string;\n\tariaLabel?: string;\n}\n\nfunction InputLabel({ label, controlId, labelId }: { label: React.ReactNode; controlId?: string; labelId?: string }) {\n\treturn (\n\t\t<label id={labelId} htmlFor={controlId} className={uiStyles.uiLabel}>\n\t\t\t{label}\n\t\t</label>\n\t);\n}\n\nexport function InputLoadingFrame() {\n\treturn <div className={cn(uiStyles.uiInputControlFake, \"skeletonLine\")} />;\n}\n\nexport function InputUIFrame({\n\tlabel,\n\tdescription,\n\tsize,\n\tdisabled,\n\tisLoading,\n\tclassName\n}: Pick<InputUIProps, \"label\" | \"description\" | \"size\" | \"disabled\" | \"className\"> & { isLoading?: boolean }) {\n\tconst { controlId, labelId, descriptionId } = useInputFieldIds({\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description\n\t});\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(uiStyles.uiElement, uiStyles.uiSizable, size && uiStyles[size as UiSize], uiStyles.disabled, className)}\n\t\t\taria-disabled={disabled || undefined}>\n\t\t\t{label && <InputLabel label={label} controlId={controlId} labelId={labelId} />}\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t\t<div className={cn(uiStyles.uiInputControlFake, isLoading && \"skeletonLine\")} />\n\t\t</div>\n\t);\n}\n\nexport function InputUILoading(props: Pick<InputUIProps, \"label\" | \"description\" | \"size\" | \"disabled\" | \"className\">) {\n\treturn <InputUIFrame {...props} isLoading />;\n}\n\n/**\n * Низкоуровневая оболочка поля ввода с общими элементами оформления.\n */\nexport function InputUI({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\terror,\n\tsize,\n\tcontrolId,\n\tlabelId,\n\tdescriptionId,\n\terrorId,\n\trequired,\n\tchildren\n}: InputUIProps) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tstyles.inputUI,\n\t\t\t\tuiStyles.uiElement,\n\t\t\t\tuiStyles.uiSizable,\n\t\t\t\tsize && uiStyles[size as UiSize],\n\t\t\t\tdisabled && uiStyles.disabled,\n\t\t\t\trequired && uiStyles.required,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\taria-disabled={disabled || undefined}>\n\t\t\t{label && <InputLabel label={label} controlId={controlId} labelId={labelId} />}\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t\t<div className={styles.controlLayout}>\n\t\t\t\t{children}\n\n\t\t\t\t{error && (\n\t\t\t\t\t<p id={errorId} className={styles.error} role=\"alert\">\n\t\t\t\t\t\t{error}\n\t\t\t\t\t</p>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport function InputControl({ className, endAdornment, endAdornmentClassName, endAdornmentWidth, children }: InputControlProps) {\n\tconst hasEndAdornment = endAdornment !== undefined && endAdornment !== null;\n\tconst style =\n\t\thasEndAdornment && endAdornmentWidth ? ({ \"--input-end-adornment-width\": endAdornmentWidth } as CSSProperties) : undefined;\n\n\treturn (\n\t\t<div className={cn(styles.controlLayout, className)} style={style}>\n\t\t\t{children({ controlClassName: hasEndAdornment ? styles.controlWithEndAdornment : undefined })}\n\t\t\t{hasEndAdornment && <div className={cn(styles.controlEndAdornment, endAdornmentClassName)}>{endAdornment}</div>}\n\t\t</div>\n\t);\n}\n\nexport function InputClearButton({ onClick, disabled, className, ariaLabel = \"Очистить значение\" }: InputClearButtonProps) {\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tdisabled={disabled || !onClick}\n\t\t\tclassName={cn(styles.clearButton, className)}\n\t\t\tonClick={onClick}\n\t\t\taria-label={ariaLabel}>\n\t\t\t<XIcon />\n\t\t</button>\n\t);\n}\n\nfunction resolveEndAdornmentWidth(hasAdornment: boolean, hasClearAction: boolean, explicitWidth?: string) {\n\tif (explicitWidth) {\n\t\treturn explicitWidth;\n\t}\n\n\tif (hasAdornment && hasClearAction) {\n\t\treturn \"calc((var(--control-height) * 2) + var(--space-xs))\";\n\t}\n\n\tif (hasAdornment || hasClearAction) {\n\t\treturn \"var(--control-height)\";\n\t}\n\n\treturn undefined;\n}\n\nfunction createEndAdornment({ endAdornment, onClear, disabled }: { endAdornment?: ReactNode; onClear?: () => void; disabled?: boolean }) {\n\tif ((endAdornment === undefined || endAdornment === null) && !onClear) {\n\t\treturn undefined;\n\t}\n\n\treturn (\n\t\t<div className={styles.endAdornmentGroup}>\n\t\t\t{endAdornment}\n\t\t\t{onClear && <InputClearButton onClick={onClear} disabled={disabled} />}\n\t\t</div>\n\t);\n}\n\nexport interface BaseInputProps<T extends number | string | undefined, V = T>\n\textends Omit<InputHTMLAttributes<HTMLInputElement>, \"size\" | \"value\" | \"type\" | \"defaultValue\" | \"onChange\">, UiBaseProps<T, V> {\n\tonClear?: () => void;\n\terror?: string;\n\tonClearError?: () => void;\n\tdefaultValue?: T;\n\tendAdornment?: ReactNode;\n\tendAdornmentClassName?: string;\n\tendAdornmentWidth?: string;\n}\n\nexport interface InputTextProps extends BaseInputProps<string> {\n\ttype?: \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\";\n\n\t/**\n\t * Регулярное выражение для валидации всего введённого значения.\n\t * При несоответствии поле подсвечивается как невалидное, но текст не удаляется.\n\t * Пример: `/^\\d*$/`\n\t */\n\tallowedPattern?: RegExp;\n}\n\n/**\n * Базовое текстовое поле ввода для строковых значений.\n */\nexport function InputText({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tonClear,\n\terror,\n\tonClearError,\n\tonChange,\n\tvalue,\n\tsize,\n\tallowedPattern,\n\tendAdornment,\n\tendAdornmentClassName,\n\tendAdornmentWidth,\n\ttype = \"text\",\n\t...props\n}: InputTextProps) {\n\tconst [internalInvalid, setInternalInvalid] = useState(false);\n\n\tconst handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = e.target.value;\n\n\t\tif (allowedPattern !== undefined) {\n\t\t\tsetInternalInvalid(newValue !== \"\" && !allowedPattern.test(newValue));\n\t\t}\n\n\t\tonChange(newValue);\n\t\tif (error && onClearError) onClearError();\n\t};\n\n\tconst hasValue = Boolean(value && value.length > 0);\n\tconst visibleError = hasValue ? error : undefined;\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid: props.id,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!visibleError\n\t});\n\tconst isInvalid = hasValue && (!!error || internalInvalid);\n\tconst resolvedEndAdornment = createEndAdornment({ endAdornment, onClear, disabled: disabled || !hasValue });\n\tconst hasCustomAdornment = endAdornment !== undefined && endAdornment !== null;\n\tconst resolvedEndAdornmentWidth = resolveEndAdornmentWidth(hasCustomAdornment, !!onClear, endAdornmentWidth);\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\trequired={props.required}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={visibleError}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<InputControl\n\t\t\t\tendAdornment={resolvedEndAdornment}\n\t\t\t\tendAdornmentClassName={endAdornmentClassName}\n\t\t\t\tendAdornmentWidth={resolvedEndAdornmentWidth}>\n\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\taria-invalid={isInvalid || undefined}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\tdata-invalid={isInvalid ? \"\" : undefined}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.input, controlClassName)}\n\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\t\t</InputUI>\n\t);\n}\n\n/**\n * Числовое поле ввода с нормализацией значения и защитой от промежуточного невалидного ввода.\n */\nexport function InputNumber({\n\tlabel,\n\tdescription,\n\tdisabled,\n\tclassName,\n\tonClear,\n\terror,\n\tonClearError,\n\tonChange,\n\tvalue,\n\tsize,\n\tendAdornment,\n\tendAdornmentClassName,\n\tendAdornmentWidth,\n\t...props\n}: BaseInputProps<number | undefined>) {\n\tconst inputProps = props as InputHTMLAttributes<HTMLInputElement>;\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid: props.id,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst numberDraftRef = useRef<{ readonly value: number | undefined; readonly raw: string } | null>(null);\n\tconst externalRawValue = value !== undefined && typeof value === \"number\" && !isNaN(value) ? String(value) : \"\";\n\n\t/**\n\t * Числовой input хранит промежуточную строку в DOM, а controlled number остаётся\n\t * источником истины. Layout-effect синхронизирует именно внешнюю DOM-систему,\n\t * поэтому не создаёт каскадного React render и не ломает ввод неполных чисел.\n\t */\n\tuseLayoutEffect(() => {\n\t\tconst numberDraft = numberDraftRef.current;\n\t\tif (numberDraft && Object.is(numberDraft.value, value)) {\n\t\t\tif (inputRef.current && inputRef.current.value !== numberDraft.raw) {\n\t\t\t\tinputRef.current.value = numberDraft.raw;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tnumberDraftRef.current = null;\n\t\tif (inputRef.current && inputRef.current.value !== externalRawValue) {\n\t\t\tinputRef.current.value = externalRawValue;\n\t\t}\n\t}, [externalRawValue, value]);\n\n\tconst handleClear = onClear\n\t\t? () => {\n\t\t\t\tonClear();\n\t\t\t}\n\t\t: undefined;\n\n\tconst handleInput = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst raw = e.target.value;\n\n\t\tconst parsed = toFiniteNumber(raw); // ?? value ?? 0;\n\t\tnumberDraftRef.current = { value: parsed, raw };\n\n\t\tonChange(parsed);\n\t\tif (error && onClearError) onClearError();\n\t};\n\n\tconst resolvedEndAdornment = createEndAdornment({ endAdornment, onClear: handleClear, disabled });\n\tconst hasCustomAdornment = endAdornment !== undefined && endAdornment !== null;\n\tconst resolvedEndAdornmentWidth = resolveEndAdornmentWidth(hasCustomAdornment, !!handleClear, endAdornmentWidth);\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\trequired={props.required}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<InputControl\n\t\t\t\tendAdornment={resolvedEndAdornment}\n\t\t\t\tendAdornmentClassName={endAdornmentClassName}\n\t\t\t\tendAdornmentWidth={resolvedEndAdornmentWidth}>\n\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...inputProps}\n\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tinputMode=\"decimal\"\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tdefaultValue={externalRawValue}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.input, styles.inputNumber, controlClassName)}\n\t\t\t\t\t\tonChange={handleInput}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\t\t</InputUI>\n\t);\n}\n\n/**\n * Совместимый алиас для `InputText`.\n */\nexport const Input = InputText;\n","import styles from \"../ui.module.scss\";\n\ninterface InputErrorComponentProps {\n\ttext: string;\n}\n\nexport function InputErrorComponent({ text }: InputErrorComponentProps) {\n\treturn <div className={styles.uiErrorElement}>{text}</div>;\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { t as e } from "./ui.module-oRwY3Zli.js";
2
- import { c as t, d as n, i as r } from "./input-DSPKgiCK.js";
3
- import { useCallback as i, useRef as a } from "react";
4
- import { cn as o, handleKeyboardActivation as s } from "@ryuzaki13/react-foundation-lib/utils";
5
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
- import { XIcon as u } from "lucide-react";
2
+ import { c as t, d as n, i as r } from "./input-CuRK9Vbz.js";
3
+ import { cn as i, handleKeyboardActivation as a } from "@ryuzaki13/react-foundation-lib/utils";
4
+ import { XIcon as o } from "lucide-react";
5
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
+ import { useCallback as l, useRef as u } from "react";
7
7
  import { ReadFileError as d, assertValidAccept as f, assertValidAllowedMime as p, readFile as m } from "@ryuzaki13/react-foundation-lib/file";
8
8
  var h = {
9
9
  control: "h9SMea",
@@ -16,42 +16,42 @@ var h = {
16
16
  //#endregion
17
17
  //#region src/input-files/InputFilesList.tsx
18
18
  function g({ files: e, onChange: t }) {
19
- let n = i((n) => {
19
+ let n = l((n) => {
20
20
  t(e.filter((e, t) => t !== n));
21
21
  }, [e, t]);
22
- return !e || !e.length ? null : /* @__PURE__ */ c("ul", {
22
+ return !e || !e.length ? null : /* @__PURE__ */ s("ul", {
23
23
  className: h.fileList,
24
- children: e.map((e, t) => /* @__PURE__ */ l("li", {
24
+ children: e.map((e, t) => /* @__PURE__ */ c("li", {
25
25
  className: h.fileItem,
26
- children: [/* @__PURE__ */ c("span", {
26
+ children: [/* @__PURE__ */ s("span", {
27
27
  className: h.fileItemName,
28
28
  children: e.meta.name
29
- }), /* @__PURE__ */ c("button", {
29
+ }), /* @__PURE__ */ s("button", {
30
30
  type: "button",
31
- className: o(h.removeButton, "flexCenter"),
31
+ className: i(h.removeButton, "flexCenter"),
32
32
  onClick: () => n(t),
33
33
  "aria-label": `Удалить ${e.meta.name}`,
34
- children: /* @__PURE__ */ c(u, {})
34
+ children: /* @__PURE__ */ s(o, {})
35
35
  })]
36
36
  }, `${e.meta.name}-${e.meta.lastModified}`))
37
37
  });
38
38
  }
39
39
  //#endregion
40
40
  //#region src/input-files/InputFiles.tsx
41
- function _(u) {
42
- let { value: _, onReadError: v, accept: y, allowedMime: b, maxBytes: x, maxFiles: S, label: C, description: w, placeholder: T = "Выберите файлы", disabled: E, size: D, error: O, onClearError: k, className: A } = u;
41
+ function _(o) {
42
+ let { value: _, onReadError: v, accept: y, allowedMime: b, maxBytes: x, maxFiles: S, label: C, description: w, placeholder: T = "Выберите файлы", disabled: E, size: D, error: O, onClearError: k, className: A } = o;
43
43
  p(b), f(y);
44
- let j = a(null), { controlId: M, labelId: N, descriptionId: P, errorId: F, describedBy: I } = n({
44
+ let j = u(null), { controlId: M, labelId: N, descriptionId: P, errorId: F, describedBy: I } = n({
45
45
  hasLabel: C != null,
46
46
  hasDescription: !!w,
47
47
  hasError: !!O
48
- }), L = typeof S == "number" && _.length >= S, R = i(async (e) => {
48
+ }), L = typeof S == "number" && _.length >= S, R = l(async (e) => {
49
49
  let t = e.target.files;
50
50
  if (!t || t.length === 0) return;
51
51
  let n = Array.from(t);
52
52
  e.target.value = "", O && k && k();
53
53
  let r = typeof S == "number" ? S - _.length : n.length, i = n.slice(0, r);
54
- if (u.readMode === "array-buffer") {
54
+ if (o.readMode === "array-buffer") {
55
55
  let e = [];
56
56
  for (let t of i) try {
57
57
  let n = await m(t, {
@@ -63,7 +63,7 @@ function _(u) {
63
63
  } catch (e) {
64
64
  e instanceof d && v && v(e);
65
65
  }
66
- e.length > 0 && u.onChange([...u.value, ...e]);
66
+ e.length > 0 && o.onChange([...o.value, ...e]);
67
67
  return;
68
68
  }
69
69
  let a = [];
@@ -76,9 +76,9 @@ function _(u) {
76
76
  } catch (e) {
77
77
  e instanceof d && v && v(e);
78
78
  }
79
- a.length > 0 && u.onChange([...u.value, ...a]);
79
+ a.length > 0 && o.onChange([...o.value, ...a]);
80
80
  }, [
81
- u,
81
+ o,
82
82
  S,
83
83
  _.length,
84
84
  b,
@@ -86,13 +86,13 @@ function _(u) {
86
86
  v,
87
87
  O,
88
88
  k
89
- ]), z = i(() => {
89
+ ]), z = l(() => {
90
90
  j.current?.click();
91
- }, []), B = (u.readMode, /* @__PURE__ */ c(g, {
92
- files: u.value,
93
- onChange: u.onChange
91
+ }, []), B = (o.readMode, /* @__PURE__ */ s(g, {
92
+ files: o.value,
93
+ onChange: o.onChange
94
94
  }));
95
- return /* @__PURE__ */ l(t, {
95
+ return /* @__PURE__ */ c(t, {
96
96
  label: C,
97
97
  description: w,
98
98
  disabled: E,
@@ -104,7 +104,7 @@ function _(u) {
104
104
  descriptionId: P,
105
105
  errorId: F,
106
106
  children: [
107
- /* @__PURE__ */ c("input", {
107
+ /* @__PURE__ */ s("input", {
108
108
  ref: j,
109
109
  id: M,
110
110
  type: "file",
@@ -115,18 +115,18 @@ function _(u) {
115
115
  onChange: R,
116
116
  tabIndex: -1
117
117
  }),
118
- /* @__PURE__ */ c(r, { children: () => /* @__PURE__ */ c("div", {
118
+ /* @__PURE__ */ s(r, { children: () => /* @__PURE__ */ s("div", {
119
119
  role: "button",
120
120
  tabIndex: E || L ? -1 : 0,
121
121
  onClick: z,
122
- onKeyDown: (e) => s(e, z, { disabled: E || L }),
123
- className: o(e.uiInputControl, h.control, !!O && "invalid"),
122
+ onKeyDown: (e) => a(e, z, { disabled: E || L }),
123
+ className: i(e.uiInputControl, h.control, !!O && "invalid"),
124
124
  "data-disabled": E || void 0,
125
125
  "aria-invalid": !!O || void 0,
126
126
  "aria-disabled": E || L,
127
127
  "aria-labelledby": N,
128
128
  "aria-describedby": I,
129
- children: /* @__PURE__ */ c("span", {
129
+ children: /* @__PURE__ */ s("span", {
130
130
  className: e.uiPlaceholder,
131
131
  children: L ? `Максимум ${S} файлов` : T
132
132
  })
@@ -138,4 +138,4 @@ function _(u) {
138
138
  //#endregion
139
139
  export { g as n, _ as t };
140
140
 
141
- //# sourceMappingURL=input-files-tIS17-zX.js.map
141
+ //# sourceMappingURL=input-files-B8j6Pb_M.js.map