@protonradio/proton-ui 0.11.10-beta.3 → 0.11.11

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 (613) hide show
  1. package/dist/components/ActionMenu/ActionMenu.cjs.js +1 -1
  2. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -1
  3. package/dist/components/ActionMenu/ActionMenu.es.js +253 -186
  4. package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -1
  5. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +1 -1
  6. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +1 -1
  7. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +7 -8
  8. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -1
  9. package/dist/components/Input/BaseInput/Input.cjs.js +1 -1
  10. package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -1
  11. package/dist/components/Input/BaseInput/Input.es.js +67 -63
  12. package/dist/components/Input/BaseInput/Input.es.js.map +1 -1
  13. package/dist/components/Input/SearchInput/SearchInput.cjs.js +1 -1
  14. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -1
  15. package/dist/components/Input/SearchInput/SearchInput.es.js +1 -1
  16. package/dist/components/Input/SearchInput/SearchInput.es.js.map +1 -1
  17. package/dist/components/Menu/MenuTrigger.cjs.js +1 -1
  18. package/dist/components/Menu/MenuTrigger.cjs.js.map +1 -1
  19. package/dist/components/Menu/MenuTrigger.es.js +65 -73
  20. package/dist/components/Menu/MenuTrigger.es.js.map +1 -1
  21. package/dist/components/Menu/PopoverMenu.cjs.js +1 -1
  22. package/dist/components/Menu/PopoverMenu.cjs.js.map +1 -1
  23. package/dist/components/Menu/PopoverMenu.es.js +110 -104
  24. package/dist/components/Menu/PopoverMenu.es.js.map +1 -1
  25. package/dist/components/Popover/Popover.cjs.js +1 -1
  26. package/dist/components/Popover/Popover.cjs.js.map +1 -1
  27. package/dist/components/Popover/Popover.es.js +44 -64
  28. package/dist/components/Popover/Popover.es.js.map +1 -1
  29. package/dist/components/Select/Select.cjs.js +1 -1
  30. package/dist/components/Select/Select.cjs.js.map +1 -1
  31. package/dist/components/Select/Select.es.js +177 -122
  32. package/dist/components/Select/Select.es.js.map +1 -1
  33. package/dist/index.cjs.js +1 -1
  34. package/dist/index.d.ts +70 -81
  35. package/dist/index.es.js +37 -38
  36. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js +1 -1
  37. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.cjs.js.map +1 -1
  38. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js +12 -16
  39. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.es.js.map +1 -1
  40. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js +1 -1
  41. package/dist/node_modules/@react-aria/overlays/dist/Overlay.cjs.js.map +1 -1
  42. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js +8 -31
  43. package/dist/node_modules/@react-aria/overlays/dist/Overlay.es.js.map +1 -1
  44. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js +1 -1
  45. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.cjs.js.map +1 -1
  46. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js +36 -44
  47. package/dist/node_modules/@react-aria/overlays/dist/ariaHideOutside.es.js.map +1 -1
  48. package/dist/node_modules/react-aria-components/dist/utils.cjs.js +1 -1
  49. package/dist/node_modules/react-aria-components/dist/utils.cjs.js.map +1 -1
  50. package/dist/node_modules/react-aria-components/dist/utils.es.js +36 -48
  51. package/dist/node_modules/react-aria-components/dist/utils.es.js.map +1 -1
  52. package/dist/style.css +1 -1
  53. package/package.json +1 -1
  54. package/dist/_virtual/index.cjs.js +0 -2
  55. package/dist/_virtual/index.cjs.js.map +0 -1
  56. package/dist/_virtual/index.es.js +0 -5
  57. package/dist/_virtual/index.es.js.map +0 -1
  58. package/dist/_virtual/use-sync-external-store-shim.development.cjs.js +0 -2
  59. package/dist/_virtual/use-sync-external-store-shim.development.cjs.js.map +0 -1
  60. package/dist/_virtual/use-sync-external-store-shim.development.es.js +0 -5
  61. package/dist/_virtual/use-sync-external-store-shim.development.es.js.map +0 -1
  62. package/dist/_virtual/use-sync-external-store-shim.production.cjs.js +0 -2
  63. package/dist/_virtual/use-sync-external-store-shim.production.cjs.js.map +0 -1
  64. package/dist/_virtual/use-sync-external-store-shim.production.es.js +0 -5
  65. package/dist/_virtual/use-sync-external-store-shim.production.es.js.map +0 -1
  66. package/dist/components/ListBox/ListBox.cjs.js +0 -2
  67. package/dist/components/ListBox/ListBox.cjs.js.map +0 -1
  68. package/dist/components/ListBox/ListBox.es.js +0 -25
  69. package/dist/components/ListBox/ListBox.es.js.map +0 -1
  70. package/dist/node_modules/@internationalized/string/dist/LocalizedStringDictionary.cjs.js +0 -2
  71. package/dist/node_modules/@internationalized/string/dist/LocalizedStringDictionary.cjs.js.map +0 -1
  72. package/dist/node_modules/@internationalized/string/dist/LocalizedStringDictionary.es.js +0 -48
  73. package/dist/node_modules/@internationalized/string/dist/LocalizedStringDictionary.es.js.map +0 -1
  74. package/dist/node_modules/@internationalized/string/dist/LocalizedStringFormatter.cjs.js +0 -2
  75. package/dist/node_modules/@internationalized/string/dist/LocalizedStringFormatter.cjs.js.map +0 -1
  76. package/dist/node_modules/@internationalized/string/dist/LocalizedStringFormatter.es.js +0 -33
  77. package/dist/node_modules/@internationalized/string/dist/LocalizedStringFormatter.es.js.map +0 -1
  78. package/dist/node_modules/@react-aria/collections/dist/BaseCollection.cjs.js +0 -2
  79. package/dist/node_modules/@react-aria/collections/dist/BaseCollection.cjs.js.map +0 -1
  80. package/dist/node_modules/@react-aria/collections/dist/BaseCollection.es.js +0 -135
  81. package/dist/node_modules/@react-aria/collections/dist/BaseCollection.es.js.map +0 -1
  82. package/dist/node_modules/@react-aria/collections/dist/CollectionBuilder.cjs.js +0 -2
  83. package/dist/node_modules/@react-aria/collections/dist/CollectionBuilder.cjs.js.map +0 -1
  84. package/dist/node_modules/@react-aria/collections/dist/CollectionBuilder.es.js +0 -145
  85. package/dist/node_modules/@react-aria/collections/dist/CollectionBuilder.es.js.map +0 -1
  86. package/dist/node_modules/@react-aria/collections/dist/Document.cjs.js +0 -2
  87. package/dist/node_modules/@react-aria/collections/dist/Document.cjs.js.map +0 -1
  88. package/dist/node_modules/@react-aria/collections/dist/Document.es.js +0 -220
  89. package/dist/node_modules/@react-aria/collections/dist/Document.es.js.map +0 -1
  90. package/dist/node_modules/@react-aria/collections/dist/Hidden.cjs.js +0 -2
  91. package/dist/node_modules/@react-aria/collections/dist/Hidden.cjs.js.map +0 -1
  92. package/dist/node_modules/@react-aria/collections/dist/Hidden.es.js +0 -36
  93. package/dist/node_modules/@react-aria/collections/dist/Hidden.es.js.map +0 -1
  94. package/dist/node_modules/@react-aria/collections/dist/useCachedChildren.cjs.js +0 -2
  95. package/dist/node_modules/@react-aria/collections/dist/useCachedChildren.cjs.js.map +0 -1
  96. package/dist/node_modules/@react-aria/collections/dist/useCachedChildren.es.js +0 -37
  97. package/dist/node_modules/@react-aria/collections/dist/useCachedChildren.es.js.map +0 -1
  98. package/dist/node_modules/@react-aria/focus/dist/virtualFocus.cjs.js +0 -2
  99. package/dist/node_modules/@react-aria/focus/dist/virtualFocus.cjs.js.map +0 -1
  100. package/dist/node_modules/@react-aria/focus/dist/virtualFocus.es.js +0 -32
  101. package/dist/node_modules/@react-aria/focus/dist/virtualFocus.es.js.map +0 -1
  102. package/dist/node_modules/@react-aria/i18n/dist/useCollator.cjs.js +0 -2
  103. package/dist/node_modules/@react-aria/i18n/dist/useCollator.cjs.js.map +0 -1
  104. package/dist/node_modules/@react-aria/i18n/dist/useCollator.es.js +0 -12
  105. package/dist/node_modules/@react-aria/i18n/dist/useCollator.es.js.map +0 -1
  106. package/dist/node_modules/@react-aria/i18n/dist/useLocalizedStringFormatter.cjs.js +0 -2
  107. package/dist/node_modules/@react-aria/i18n/dist/useLocalizedStringFormatter.cjs.js.map +0 -1
  108. package/dist/node_modules/@react-aria/i18n/dist/useLocalizedStringFormatter.es.js +0 -24
  109. package/dist/node_modules/@react-aria/i18n/dist/useLocalizedStringFormatter.es.js.map +0 -1
  110. package/dist/node_modules/@react-aria/interactions/dist/PressResponder.cjs.js +0 -2
  111. package/dist/node_modules/@react-aria/interactions/dist/PressResponder.cjs.js.map +0 -1
  112. package/dist/node_modules/@react-aria/interactions/dist/PressResponder.es.js +0 -15
  113. package/dist/node_modules/@react-aria/interactions/dist/PressResponder.es.js.map +0 -1
  114. package/dist/node_modules/@react-aria/interactions/dist/useHover.cjs.js +0 -2
  115. package/dist/node_modules/@react-aria/interactions/dist/useHover.cjs.js.map +0 -1
  116. package/dist/node_modules/@react-aria/interactions/dist/useHover.es.js +0 -85
  117. package/dist/node_modules/@react-aria/interactions/dist/useHover.es.js.map +0 -1
  118. package/dist/node_modules/@react-aria/interactions/dist/useLongPress.cjs.js +0 -2
  119. package/dist/node_modules/@react-aria/interactions/dist/useLongPress.cjs.js.map +0 -1
  120. package/dist/node_modules/@react-aria/interactions/dist/useLongPress.es.js +0 -50
  121. package/dist/node_modules/@react-aria/interactions/dist/useLongPress.es.js.map +0 -1
  122. package/dist/node_modules/@react-aria/listbox/dist/useListBox.cjs.js +0 -2
  123. package/dist/node_modules/@react-aria/listbox/dist/useListBox.cjs.js.map +0 -1
  124. package/dist/node_modules/@react-aria/listbox/dist/useListBox.es.js +0 -52
  125. package/dist/node_modules/@react-aria/listbox/dist/useListBox.es.js.map +0 -1
  126. package/dist/node_modules/@react-aria/listbox/dist/useOption.cjs.js +0 -2
  127. package/dist/node_modules/@react-aria/listbox/dist/useOption.cjs.js.map +0 -1
  128. package/dist/node_modules/@react-aria/listbox/dist/useOption.es.js +0 -79
  129. package/dist/node_modules/@react-aria/listbox/dist/useOption.es.js.map +0 -1
  130. package/dist/node_modules/@react-aria/listbox/dist/utils.cjs.js +0 -2
  131. package/dist/node_modules/@react-aria/listbox/dist/utils.cjs.js.map +0 -1
  132. package/dist/node_modules/@react-aria/listbox/dist/utils.es.js +0 -14
  133. package/dist/node_modules/@react-aria/listbox/dist/utils.es.js.map +0 -1
  134. package/dist/node_modules/@react-aria/live-announcer/dist/LiveAnnouncer.cjs.js +0 -2
  135. package/dist/node_modules/@react-aria/live-announcer/dist/LiveAnnouncer.cjs.js.map +0 -1
  136. package/dist/node_modules/@react-aria/live-announcer/dist/LiveAnnouncer.es.js +0 -48
  137. package/dist/node_modules/@react-aria/live-announcer/dist/LiveAnnouncer.es.js.map +0 -1
  138. package/dist/node_modules/@react-aria/menu/dist/ar-AE.cjs.js +0 -2
  139. package/dist/node_modules/@react-aria/menu/dist/ar-AE.cjs.js.map +0 -1
  140. package/dist/node_modules/@react-aria/menu/dist/ar-AE.es.js +0 -8
  141. package/dist/node_modules/@react-aria/menu/dist/ar-AE.es.js.map +0 -1
  142. package/dist/node_modules/@react-aria/menu/dist/bg-BG.cjs.js +0 -2
  143. package/dist/node_modules/@react-aria/menu/dist/bg-BG.cjs.js.map +0 -1
  144. package/dist/node_modules/@react-aria/menu/dist/bg-BG.es.js +0 -8
  145. package/dist/node_modules/@react-aria/menu/dist/bg-BG.es.js.map +0 -1
  146. package/dist/node_modules/@react-aria/menu/dist/cs-CZ.cjs.js +0 -2
  147. package/dist/node_modules/@react-aria/menu/dist/cs-CZ.cjs.js.map +0 -1
  148. package/dist/node_modules/@react-aria/menu/dist/cs-CZ.es.js +0 -8
  149. package/dist/node_modules/@react-aria/menu/dist/cs-CZ.es.js.map +0 -1
  150. package/dist/node_modules/@react-aria/menu/dist/da-DK.cjs.js +0 -2
  151. package/dist/node_modules/@react-aria/menu/dist/da-DK.cjs.js.map +0 -1
  152. package/dist/node_modules/@react-aria/menu/dist/da-DK.es.js +0 -8
  153. package/dist/node_modules/@react-aria/menu/dist/da-DK.es.js.map +0 -1
  154. package/dist/node_modules/@react-aria/menu/dist/de-DE.cjs.js +0 -2
  155. package/dist/node_modules/@react-aria/menu/dist/de-DE.cjs.js.map +0 -1
  156. package/dist/node_modules/@react-aria/menu/dist/de-DE.es.js +0 -8
  157. package/dist/node_modules/@react-aria/menu/dist/de-DE.es.js.map +0 -1
  158. package/dist/node_modules/@react-aria/menu/dist/el-GR.cjs.js +0 -2
  159. package/dist/node_modules/@react-aria/menu/dist/el-GR.cjs.js.map +0 -1
  160. package/dist/node_modules/@react-aria/menu/dist/el-GR.es.js +0 -8
  161. package/dist/node_modules/@react-aria/menu/dist/el-GR.es.js.map +0 -1
  162. package/dist/node_modules/@react-aria/menu/dist/en-US.cjs.js +0 -2
  163. package/dist/node_modules/@react-aria/menu/dist/en-US.cjs.js.map +0 -1
  164. package/dist/node_modules/@react-aria/menu/dist/en-US.es.js +0 -8
  165. package/dist/node_modules/@react-aria/menu/dist/en-US.es.js.map +0 -1
  166. package/dist/node_modules/@react-aria/menu/dist/es-ES.cjs.js +0 -2
  167. package/dist/node_modules/@react-aria/menu/dist/es-ES.cjs.js.map +0 -1
  168. package/dist/node_modules/@react-aria/menu/dist/es-ES.es.js +0 -8
  169. package/dist/node_modules/@react-aria/menu/dist/es-ES.es.js.map +0 -1
  170. package/dist/node_modules/@react-aria/menu/dist/et-EE.cjs.js +0 -2
  171. package/dist/node_modules/@react-aria/menu/dist/et-EE.cjs.js.map +0 -1
  172. package/dist/node_modules/@react-aria/menu/dist/et-EE.es.js +0 -8
  173. package/dist/node_modules/@react-aria/menu/dist/et-EE.es.js.map +0 -1
  174. package/dist/node_modules/@react-aria/menu/dist/fi-FI.cjs.js +0 -2
  175. package/dist/node_modules/@react-aria/menu/dist/fi-FI.cjs.js.map +0 -1
  176. package/dist/node_modules/@react-aria/menu/dist/fi-FI.es.js +0 -8
  177. package/dist/node_modules/@react-aria/menu/dist/fi-FI.es.js.map +0 -1
  178. package/dist/node_modules/@react-aria/menu/dist/fr-FR.cjs.js +0 -2
  179. package/dist/node_modules/@react-aria/menu/dist/fr-FR.cjs.js.map +0 -1
  180. package/dist/node_modules/@react-aria/menu/dist/fr-FR.es.js +0 -8
  181. package/dist/node_modules/@react-aria/menu/dist/fr-FR.es.js.map +0 -1
  182. package/dist/node_modules/@react-aria/menu/dist/he-IL.cjs.js +0 -2
  183. package/dist/node_modules/@react-aria/menu/dist/he-IL.cjs.js.map +0 -1
  184. package/dist/node_modules/@react-aria/menu/dist/he-IL.es.js +0 -8
  185. package/dist/node_modules/@react-aria/menu/dist/he-IL.es.js.map +0 -1
  186. package/dist/node_modules/@react-aria/menu/dist/hr-HR.cjs.js +0 -2
  187. package/dist/node_modules/@react-aria/menu/dist/hr-HR.cjs.js.map +0 -1
  188. package/dist/node_modules/@react-aria/menu/dist/hr-HR.es.js +0 -8
  189. package/dist/node_modules/@react-aria/menu/dist/hr-HR.es.js.map +0 -1
  190. package/dist/node_modules/@react-aria/menu/dist/hu-HU.cjs.js +0 -2
  191. package/dist/node_modules/@react-aria/menu/dist/hu-HU.cjs.js.map +0 -1
  192. package/dist/node_modules/@react-aria/menu/dist/hu-HU.es.js +0 -8
  193. package/dist/node_modules/@react-aria/menu/dist/hu-HU.es.js.map +0 -1
  194. package/dist/node_modules/@react-aria/menu/dist/intlStrings.cjs.js +0 -2
  195. package/dist/node_modules/@react-aria/menu/dist/intlStrings.cjs.js.map +0 -1
  196. package/dist/node_modules/@react-aria/menu/dist/intlStrings.es.js +0 -75
  197. package/dist/node_modules/@react-aria/menu/dist/intlStrings.es.js.map +0 -1
  198. package/dist/node_modules/@react-aria/menu/dist/it-IT.cjs.js +0 -2
  199. package/dist/node_modules/@react-aria/menu/dist/it-IT.cjs.js.map +0 -1
  200. package/dist/node_modules/@react-aria/menu/dist/it-IT.es.js +0 -8
  201. package/dist/node_modules/@react-aria/menu/dist/it-IT.es.js.map +0 -1
  202. package/dist/node_modules/@react-aria/menu/dist/ja-JP.cjs.js +0 -2
  203. package/dist/node_modules/@react-aria/menu/dist/ja-JP.cjs.js.map +0 -1
  204. package/dist/node_modules/@react-aria/menu/dist/ja-JP.es.js +0 -8
  205. package/dist/node_modules/@react-aria/menu/dist/ja-JP.es.js.map +0 -1
  206. package/dist/node_modules/@react-aria/menu/dist/ko-KR.cjs.js +0 -2
  207. package/dist/node_modules/@react-aria/menu/dist/ko-KR.cjs.js.map +0 -1
  208. package/dist/node_modules/@react-aria/menu/dist/ko-KR.es.js +0 -8
  209. package/dist/node_modules/@react-aria/menu/dist/ko-KR.es.js.map +0 -1
  210. package/dist/node_modules/@react-aria/menu/dist/lt-LT.cjs.js +0 -2
  211. package/dist/node_modules/@react-aria/menu/dist/lt-LT.cjs.js.map +0 -1
  212. package/dist/node_modules/@react-aria/menu/dist/lt-LT.es.js +0 -8
  213. package/dist/node_modules/@react-aria/menu/dist/lt-LT.es.js.map +0 -1
  214. package/dist/node_modules/@react-aria/menu/dist/lv-LV.cjs.js +0 -2
  215. package/dist/node_modules/@react-aria/menu/dist/lv-LV.cjs.js.map +0 -1
  216. package/dist/node_modules/@react-aria/menu/dist/lv-LV.es.js +0 -8
  217. package/dist/node_modules/@react-aria/menu/dist/lv-LV.es.js.map +0 -1
  218. package/dist/node_modules/@react-aria/menu/dist/nb-NO.cjs.js +0 -2
  219. package/dist/node_modules/@react-aria/menu/dist/nb-NO.cjs.js.map +0 -1
  220. package/dist/node_modules/@react-aria/menu/dist/nb-NO.es.js +0 -8
  221. package/dist/node_modules/@react-aria/menu/dist/nb-NO.es.js.map +0 -1
  222. package/dist/node_modules/@react-aria/menu/dist/nl-NL.cjs.js +0 -2
  223. package/dist/node_modules/@react-aria/menu/dist/nl-NL.cjs.js.map +0 -1
  224. package/dist/node_modules/@react-aria/menu/dist/nl-NL.es.js +0 -8
  225. package/dist/node_modules/@react-aria/menu/dist/nl-NL.es.js.map +0 -1
  226. package/dist/node_modules/@react-aria/menu/dist/pl-PL.cjs.js +0 -2
  227. package/dist/node_modules/@react-aria/menu/dist/pl-PL.cjs.js.map +0 -1
  228. package/dist/node_modules/@react-aria/menu/dist/pl-PL.es.js +0 -8
  229. package/dist/node_modules/@react-aria/menu/dist/pl-PL.es.js.map +0 -1
  230. package/dist/node_modules/@react-aria/menu/dist/pt-BR.cjs.js +0 -2
  231. package/dist/node_modules/@react-aria/menu/dist/pt-BR.cjs.js.map +0 -1
  232. package/dist/node_modules/@react-aria/menu/dist/pt-BR.es.js +0 -8
  233. package/dist/node_modules/@react-aria/menu/dist/pt-BR.es.js.map +0 -1
  234. package/dist/node_modules/@react-aria/menu/dist/pt-PT.cjs.js +0 -2
  235. package/dist/node_modules/@react-aria/menu/dist/pt-PT.cjs.js.map +0 -1
  236. package/dist/node_modules/@react-aria/menu/dist/pt-PT.es.js +0 -8
  237. package/dist/node_modules/@react-aria/menu/dist/pt-PT.es.js.map +0 -1
  238. package/dist/node_modules/@react-aria/menu/dist/ro-RO.cjs.js +0 -2
  239. package/dist/node_modules/@react-aria/menu/dist/ro-RO.cjs.js.map +0 -1
  240. package/dist/node_modules/@react-aria/menu/dist/ro-RO.es.js +0 -8
  241. package/dist/node_modules/@react-aria/menu/dist/ro-RO.es.js.map +0 -1
  242. package/dist/node_modules/@react-aria/menu/dist/ru-RU.cjs.js +0 -2
  243. package/dist/node_modules/@react-aria/menu/dist/ru-RU.cjs.js.map +0 -1
  244. package/dist/node_modules/@react-aria/menu/dist/ru-RU.es.js +0 -8
  245. package/dist/node_modules/@react-aria/menu/dist/ru-RU.es.js.map +0 -1
  246. package/dist/node_modules/@react-aria/menu/dist/sk-SK.cjs.js +0 -2
  247. package/dist/node_modules/@react-aria/menu/dist/sk-SK.cjs.js.map +0 -1
  248. package/dist/node_modules/@react-aria/menu/dist/sk-SK.es.js +0 -8
  249. package/dist/node_modules/@react-aria/menu/dist/sk-SK.es.js.map +0 -1
  250. package/dist/node_modules/@react-aria/menu/dist/sl-SI.cjs.js +0 -2
  251. package/dist/node_modules/@react-aria/menu/dist/sl-SI.cjs.js.map +0 -1
  252. package/dist/node_modules/@react-aria/menu/dist/sl-SI.es.js +0 -8
  253. package/dist/node_modules/@react-aria/menu/dist/sl-SI.es.js.map +0 -1
  254. package/dist/node_modules/@react-aria/menu/dist/sr-SP.cjs.js +0 -2
  255. package/dist/node_modules/@react-aria/menu/dist/sr-SP.cjs.js.map +0 -1
  256. package/dist/node_modules/@react-aria/menu/dist/sr-SP.es.js +0 -8
  257. package/dist/node_modules/@react-aria/menu/dist/sr-SP.es.js.map +0 -1
  258. package/dist/node_modules/@react-aria/menu/dist/sv-SE.cjs.js +0 -2
  259. package/dist/node_modules/@react-aria/menu/dist/sv-SE.cjs.js.map +0 -1
  260. package/dist/node_modules/@react-aria/menu/dist/sv-SE.es.js +0 -8
  261. package/dist/node_modules/@react-aria/menu/dist/sv-SE.es.js.map +0 -1
  262. package/dist/node_modules/@react-aria/menu/dist/tr-TR.cjs.js +0 -2
  263. package/dist/node_modules/@react-aria/menu/dist/tr-TR.cjs.js.map +0 -1
  264. package/dist/node_modules/@react-aria/menu/dist/tr-TR.es.js +0 -8
  265. package/dist/node_modules/@react-aria/menu/dist/tr-TR.es.js.map +0 -1
  266. package/dist/node_modules/@react-aria/menu/dist/uk-UA.cjs.js +0 -2
  267. package/dist/node_modules/@react-aria/menu/dist/uk-UA.cjs.js.map +0 -1
  268. package/dist/node_modules/@react-aria/menu/dist/uk-UA.es.js +0 -8
  269. package/dist/node_modules/@react-aria/menu/dist/uk-UA.es.js.map +0 -1
  270. package/dist/node_modules/@react-aria/menu/dist/useMenu.cjs.js +0 -2
  271. package/dist/node_modules/@react-aria/menu/dist/useMenu.cjs.js.map +0 -1
  272. package/dist/node_modules/@react-aria/menu/dist/useMenu.es.js +0 -39
  273. package/dist/node_modules/@react-aria/menu/dist/useMenu.es.js.map +0 -1
  274. package/dist/node_modules/@react-aria/menu/dist/useMenuItem.cjs.js +0 -2
  275. package/dist/node_modules/@react-aria/menu/dist/useMenuItem.cjs.js.map +0 -1
  276. package/dist/node_modules/@react-aria/menu/dist/useMenuItem.es.js +0 -145
  277. package/dist/node_modules/@react-aria/menu/dist/useMenuItem.es.js.map +0 -1
  278. package/dist/node_modules/@react-aria/menu/dist/useMenuTrigger.cjs.js +0 -2
  279. package/dist/node_modules/@react-aria/menu/dist/useMenuTrigger.cjs.js.map +0 -1
  280. package/dist/node_modules/@react-aria/menu/dist/useMenuTrigger.es.js +0 -64
  281. package/dist/node_modules/@react-aria/menu/dist/useMenuTrigger.es.js.map +0 -1
  282. package/dist/node_modules/@react-aria/menu/dist/utils.cjs.js +0 -2
  283. package/dist/node_modules/@react-aria/menu/dist/utils.cjs.js.map +0 -1
  284. package/dist/node_modules/@react-aria/menu/dist/utils.es.js +0 -5
  285. package/dist/node_modules/@react-aria/menu/dist/utils.es.js.map +0 -1
  286. package/dist/node_modules/@react-aria/menu/dist/zh-CN.cjs.js +0 -2
  287. package/dist/node_modules/@react-aria/menu/dist/zh-CN.cjs.js.map +0 -1
  288. package/dist/node_modules/@react-aria/menu/dist/zh-CN.es.js +0 -8
  289. package/dist/node_modules/@react-aria/menu/dist/zh-CN.es.js.map +0 -1
  290. package/dist/node_modules/@react-aria/menu/dist/zh-TW.cjs.js +0 -2
  291. package/dist/node_modules/@react-aria/menu/dist/zh-TW.cjs.js.map +0 -1
  292. package/dist/node_modules/@react-aria/menu/dist/zh-TW.es.js +0 -8
  293. package/dist/node_modules/@react-aria/menu/dist/zh-TW.es.js.map +0 -1
  294. package/dist/node_modules/@react-aria/overlays/dist/DismissButton.cjs.js +0 -2
  295. package/dist/node_modules/@react-aria/overlays/dist/DismissButton.cjs.js.map +0 -1
  296. package/dist/node_modules/@react-aria/overlays/dist/DismissButton.es.js +0 -26
  297. package/dist/node_modules/@react-aria/overlays/dist/DismissButton.es.js.map +0 -1
  298. package/dist/node_modules/@react-aria/overlays/dist/PortalProvider.cjs.js +0 -2
  299. package/dist/node_modules/@react-aria/overlays/dist/PortalProvider.cjs.js.map +0 -1
  300. package/dist/node_modules/@react-aria/overlays/dist/PortalProvider.es.js +0 -11
  301. package/dist/node_modules/@react-aria/overlays/dist/PortalProvider.es.js.map +0 -1
  302. package/dist/node_modules/@react-aria/overlays/dist/ar-AE.cjs.js +0 -2
  303. package/dist/node_modules/@react-aria/overlays/dist/ar-AE.cjs.js.map +0 -1
  304. package/dist/node_modules/@react-aria/overlays/dist/ar-AE.es.js +0 -8
  305. package/dist/node_modules/@react-aria/overlays/dist/ar-AE.es.js.map +0 -1
  306. package/dist/node_modules/@react-aria/overlays/dist/bg-BG.cjs.js +0 -2
  307. package/dist/node_modules/@react-aria/overlays/dist/bg-BG.cjs.js.map +0 -1
  308. package/dist/node_modules/@react-aria/overlays/dist/bg-BG.es.js +0 -8
  309. package/dist/node_modules/@react-aria/overlays/dist/bg-BG.es.js.map +0 -1
  310. package/dist/node_modules/@react-aria/overlays/dist/calculatePosition.cjs.js +0 -2
  311. package/dist/node_modules/@react-aria/overlays/dist/calculatePosition.cjs.js.map +0 -1
  312. package/dist/node_modules/@react-aria/overlays/dist/calculatePosition.es.js +0 -200
  313. package/dist/node_modules/@react-aria/overlays/dist/calculatePosition.es.js.map +0 -1
  314. package/dist/node_modules/@react-aria/overlays/dist/cs-CZ.cjs.js +0 -2
  315. package/dist/node_modules/@react-aria/overlays/dist/cs-CZ.cjs.js.map +0 -1
  316. package/dist/node_modules/@react-aria/overlays/dist/cs-CZ.es.js +0 -8
  317. package/dist/node_modules/@react-aria/overlays/dist/cs-CZ.es.js.map +0 -1
  318. package/dist/node_modules/@react-aria/overlays/dist/da-DK.cjs.js +0 -2
  319. package/dist/node_modules/@react-aria/overlays/dist/da-DK.cjs.js.map +0 -1
  320. package/dist/node_modules/@react-aria/overlays/dist/da-DK.es.js +0 -8
  321. package/dist/node_modules/@react-aria/overlays/dist/da-DK.es.js.map +0 -1
  322. package/dist/node_modules/@react-aria/overlays/dist/de-DE.cjs.js +0 -2
  323. package/dist/node_modules/@react-aria/overlays/dist/de-DE.cjs.js.map +0 -1
  324. package/dist/node_modules/@react-aria/overlays/dist/de-DE.es.js +0 -8
  325. package/dist/node_modules/@react-aria/overlays/dist/de-DE.es.js.map +0 -1
  326. package/dist/node_modules/@react-aria/overlays/dist/el-GR.cjs.js +0 -2
  327. package/dist/node_modules/@react-aria/overlays/dist/el-GR.cjs.js.map +0 -1
  328. package/dist/node_modules/@react-aria/overlays/dist/el-GR.es.js +0 -8
  329. package/dist/node_modules/@react-aria/overlays/dist/el-GR.es.js.map +0 -1
  330. package/dist/node_modules/@react-aria/overlays/dist/en-US.cjs.js +0 -2
  331. package/dist/node_modules/@react-aria/overlays/dist/en-US.cjs.js.map +0 -1
  332. package/dist/node_modules/@react-aria/overlays/dist/en-US.es.js +0 -8
  333. package/dist/node_modules/@react-aria/overlays/dist/en-US.es.js.map +0 -1
  334. package/dist/node_modules/@react-aria/overlays/dist/es-ES.cjs.js +0 -2
  335. package/dist/node_modules/@react-aria/overlays/dist/es-ES.cjs.js.map +0 -1
  336. package/dist/node_modules/@react-aria/overlays/dist/es-ES.es.js +0 -8
  337. package/dist/node_modules/@react-aria/overlays/dist/es-ES.es.js.map +0 -1
  338. package/dist/node_modules/@react-aria/overlays/dist/et-EE.cjs.js +0 -2
  339. package/dist/node_modules/@react-aria/overlays/dist/et-EE.cjs.js.map +0 -1
  340. package/dist/node_modules/@react-aria/overlays/dist/et-EE.es.js +0 -8
  341. package/dist/node_modules/@react-aria/overlays/dist/et-EE.es.js.map +0 -1
  342. package/dist/node_modules/@react-aria/overlays/dist/fi-FI.cjs.js +0 -2
  343. package/dist/node_modules/@react-aria/overlays/dist/fi-FI.cjs.js.map +0 -1
  344. package/dist/node_modules/@react-aria/overlays/dist/fi-FI.es.js +0 -8
  345. package/dist/node_modules/@react-aria/overlays/dist/fi-FI.es.js.map +0 -1
  346. package/dist/node_modules/@react-aria/overlays/dist/fr-FR.cjs.js +0 -2
  347. package/dist/node_modules/@react-aria/overlays/dist/fr-FR.cjs.js.map +0 -1
  348. package/dist/node_modules/@react-aria/overlays/dist/fr-FR.es.js +0 -8
  349. package/dist/node_modules/@react-aria/overlays/dist/fr-FR.es.js.map +0 -1
  350. package/dist/node_modules/@react-aria/overlays/dist/he-IL.cjs.js +0 -2
  351. package/dist/node_modules/@react-aria/overlays/dist/he-IL.cjs.js.map +0 -1
  352. package/dist/node_modules/@react-aria/overlays/dist/he-IL.es.js +0 -8
  353. package/dist/node_modules/@react-aria/overlays/dist/he-IL.es.js.map +0 -1
  354. package/dist/node_modules/@react-aria/overlays/dist/hr-HR.cjs.js +0 -2
  355. package/dist/node_modules/@react-aria/overlays/dist/hr-HR.cjs.js.map +0 -1
  356. package/dist/node_modules/@react-aria/overlays/dist/hr-HR.es.js +0 -8
  357. package/dist/node_modules/@react-aria/overlays/dist/hr-HR.es.js.map +0 -1
  358. package/dist/node_modules/@react-aria/overlays/dist/hu-HU.cjs.js +0 -2
  359. package/dist/node_modules/@react-aria/overlays/dist/hu-HU.cjs.js.map +0 -1
  360. package/dist/node_modules/@react-aria/overlays/dist/hu-HU.es.js +0 -8
  361. package/dist/node_modules/@react-aria/overlays/dist/hu-HU.es.js.map +0 -1
  362. package/dist/node_modules/@react-aria/overlays/dist/intlStrings.cjs.js +0 -2
  363. package/dist/node_modules/@react-aria/overlays/dist/intlStrings.cjs.js.map +0 -1
  364. package/dist/node_modules/@react-aria/overlays/dist/intlStrings.es.js +0 -75
  365. package/dist/node_modules/@react-aria/overlays/dist/intlStrings.es.js.map +0 -1
  366. package/dist/node_modules/@react-aria/overlays/dist/it-IT.cjs.js +0 -2
  367. package/dist/node_modules/@react-aria/overlays/dist/it-IT.cjs.js.map +0 -1
  368. package/dist/node_modules/@react-aria/overlays/dist/it-IT.es.js +0 -8
  369. package/dist/node_modules/@react-aria/overlays/dist/it-IT.es.js.map +0 -1
  370. package/dist/node_modules/@react-aria/overlays/dist/ja-JP.cjs.js +0 -2
  371. package/dist/node_modules/@react-aria/overlays/dist/ja-JP.cjs.js.map +0 -1
  372. package/dist/node_modules/@react-aria/overlays/dist/ja-JP.es.js +0 -8
  373. package/dist/node_modules/@react-aria/overlays/dist/ja-JP.es.js.map +0 -1
  374. package/dist/node_modules/@react-aria/overlays/dist/ko-KR.cjs.js +0 -2
  375. package/dist/node_modules/@react-aria/overlays/dist/ko-KR.cjs.js.map +0 -1
  376. package/dist/node_modules/@react-aria/overlays/dist/ko-KR.es.js +0 -8
  377. package/dist/node_modules/@react-aria/overlays/dist/ko-KR.es.js.map +0 -1
  378. package/dist/node_modules/@react-aria/overlays/dist/lt-LT.cjs.js +0 -2
  379. package/dist/node_modules/@react-aria/overlays/dist/lt-LT.cjs.js.map +0 -1
  380. package/dist/node_modules/@react-aria/overlays/dist/lt-LT.es.js +0 -8
  381. package/dist/node_modules/@react-aria/overlays/dist/lt-LT.es.js.map +0 -1
  382. package/dist/node_modules/@react-aria/overlays/dist/lv-LV.cjs.js +0 -2
  383. package/dist/node_modules/@react-aria/overlays/dist/lv-LV.cjs.js.map +0 -1
  384. package/dist/node_modules/@react-aria/overlays/dist/lv-LV.es.js +0 -8
  385. package/dist/node_modules/@react-aria/overlays/dist/lv-LV.es.js.map +0 -1
  386. package/dist/node_modules/@react-aria/overlays/dist/nb-NO.cjs.js +0 -2
  387. package/dist/node_modules/@react-aria/overlays/dist/nb-NO.cjs.js.map +0 -1
  388. package/dist/node_modules/@react-aria/overlays/dist/nb-NO.es.js +0 -8
  389. package/dist/node_modules/@react-aria/overlays/dist/nb-NO.es.js.map +0 -1
  390. package/dist/node_modules/@react-aria/overlays/dist/nl-NL.cjs.js +0 -2
  391. package/dist/node_modules/@react-aria/overlays/dist/nl-NL.cjs.js.map +0 -1
  392. package/dist/node_modules/@react-aria/overlays/dist/nl-NL.es.js +0 -8
  393. package/dist/node_modules/@react-aria/overlays/dist/nl-NL.es.js.map +0 -1
  394. package/dist/node_modules/@react-aria/overlays/dist/pl-PL.cjs.js +0 -2
  395. package/dist/node_modules/@react-aria/overlays/dist/pl-PL.cjs.js.map +0 -1
  396. package/dist/node_modules/@react-aria/overlays/dist/pl-PL.es.js +0 -8
  397. package/dist/node_modules/@react-aria/overlays/dist/pl-PL.es.js.map +0 -1
  398. package/dist/node_modules/@react-aria/overlays/dist/pt-BR.cjs.js +0 -2
  399. package/dist/node_modules/@react-aria/overlays/dist/pt-BR.cjs.js.map +0 -1
  400. package/dist/node_modules/@react-aria/overlays/dist/pt-BR.es.js +0 -8
  401. package/dist/node_modules/@react-aria/overlays/dist/pt-BR.es.js.map +0 -1
  402. package/dist/node_modules/@react-aria/overlays/dist/pt-PT.cjs.js +0 -2
  403. package/dist/node_modules/@react-aria/overlays/dist/pt-PT.cjs.js.map +0 -1
  404. package/dist/node_modules/@react-aria/overlays/dist/pt-PT.es.js +0 -8
  405. package/dist/node_modules/@react-aria/overlays/dist/pt-PT.es.js.map +0 -1
  406. package/dist/node_modules/@react-aria/overlays/dist/ro-RO.cjs.js +0 -2
  407. package/dist/node_modules/@react-aria/overlays/dist/ro-RO.cjs.js.map +0 -1
  408. package/dist/node_modules/@react-aria/overlays/dist/ro-RO.es.js +0 -8
  409. package/dist/node_modules/@react-aria/overlays/dist/ro-RO.es.js.map +0 -1
  410. package/dist/node_modules/@react-aria/overlays/dist/ru-RU.cjs.js +0 -2
  411. package/dist/node_modules/@react-aria/overlays/dist/ru-RU.cjs.js.map +0 -1
  412. package/dist/node_modules/@react-aria/overlays/dist/ru-RU.es.js +0 -8
  413. package/dist/node_modules/@react-aria/overlays/dist/ru-RU.es.js.map +0 -1
  414. package/dist/node_modules/@react-aria/overlays/dist/sk-SK.cjs.js +0 -2
  415. package/dist/node_modules/@react-aria/overlays/dist/sk-SK.cjs.js.map +0 -1
  416. package/dist/node_modules/@react-aria/overlays/dist/sk-SK.es.js +0 -8
  417. package/dist/node_modules/@react-aria/overlays/dist/sk-SK.es.js.map +0 -1
  418. package/dist/node_modules/@react-aria/overlays/dist/sl-SI.cjs.js +0 -2
  419. package/dist/node_modules/@react-aria/overlays/dist/sl-SI.cjs.js.map +0 -1
  420. package/dist/node_modules/@react-aria/overlays/dist/sl-SI.es.js +0 -8
  421. package/dist/node_modules/@react-aria/overlays/dist/sl-SI.es.js.map +0 -1
  422. package/dist/node_modules/@react-aria/overlays/dist/sr-SP.cjs.js +0 -2
  423. package/dist/node_modules/@react-aria/overlays/dist/sr-SP.cjs.js.map +0 -1
  424. package/dist/node_modules/@react-aria/overlays/dist/sr-SP.es.js +0 -8
  425. package/dist/node_modules/@react-aria/overlays/dist/sr-SP.es.js.map +0 -1
  426. package/dist/node_modules/@react-aria/overlays/dist/sv-SE.cjs.js +0 -2
  427. package/dist/node_modules/@react-aria/overlays/dist/sv-SE.cjs.js.map +0 -1
  428. package/dist/node_modules/@react-aria/overlays/dist/sv-SE.es.js +0 -8
  429. package/dist/node_modules/@react-aria/overlays/dist/sv-SE.es.js.map +0 -1
  430. package/dist/node_modules/@react-aria/overlays/dist/tr-TR.cjs.js +0 -2
  431. package/dist/node_modules/@react-aria/overlays/dist/tr-TR.cjs.js.map +0 -1
  432. package/dist/node_modules/@react-aria/overlays/dist/tr-TR.es.js +0 -8
  433. package/dist/node_modules/@react-aria/overlays/dist/tr-TR.es.js.map +0 -1
  434. package/dist/node_modules/@react-aria/overlays/dist/uk-UA.cjs.js +0 -2
  435. package/dist/node_modules/@react-aria/overlays/dist/uk-UA.cjs.js.map +0 -1
  436. package/dist/node_modules/@react-aria/overlays/dist/uk-UA.es.js +0 -8
  437. package/dist/node_modules/@react-aria/overlays/dist/uk-UA.es.js.map +0 -1
  438. package/dist/node_modules/@react-aria/overlays/dist/useCloseOnScroll.cjs.js +0 -2
  439. package/dist/node_modules/@react-aria/overlays/dist/useCloseOnScroll.cjs.js.map +0 -1
  440. package/dist/node_modules/@react-aria/overlays/dist/useCloseOnScroll.es.js +0 -26
  441. package/dist/node_modules/@react-aria/overlays/dist/useCloseOnScroll.es.js.map +0 -1
  442. package/dist/node_modules/@react-aria/overlays/dist/useOverlayPosition.cjs.js +0 -2
  443. package/dist/node_modules/@react-aria/overlays/dist/useOverlayPosition.cjs.js.map +0 -1
  444. package/dist/node_modules/@react-aria/overlays/dist/useOverlayPosition.es.js +0 -143
  445. package/dist/node_modules/@react-aria/overlays/dist/useOverlayPosition.es.js.map +0 -1
  446. package/dist/node_modules/@react-aria/overlays/dist/useOverlayTrigger.cjs.js +0 -2
  447. package/dist/node_modules/@react-aria/overlays/dist/useOverlayTrigger.cjs.js.map +0 -1
  448. package/dist/node_modules/@react-aria/overlays/dist/useOverlayTrigger.es.js +0 -27
  449. package/dist/node_modules/@react-aria/overlays/dist/useOverlayTrigger.es.js.map +0 -1
  450. package/dist/node_modules/@react-aria/overlays/dist/usePopover.cjs.js +0 -2
  451. package/dist/node_modules/@react-aria/overlays/dist/usePopover.cjs.js.map +0 -1
  452. package/dist/node_modules/@react-aria/overlays/dist/usePopover.es.js +0 -48
  453. package/dist/node_modules/@react-aria/overlays/dist/usePopover.es.js.map +0 -1
  454. package/dist/node_modules/@react-aria/overlays/dist/zh-CN.cjs.js +0 -2
  455. package/dist/node_modules/@react-aria/overlays/dist/zh-CN.cjs.js.map +0 -1
  456. package/dist/node_modules/@react-aria/overlays/dist/zh-CN.es.js +0 -8
  457. package/dist/node_modules/@react-aria/overlays/dist/zh-CN.es.js.map +0 -1
  458. package/dist/node_modules/@react-aria/overlays/dist/zh-TW.cjs.js +0 -2
  459. package/dist/node_modules/@react-aria/overlays/dist/zh-TW.cjs.js.map +0 -1
  460. package/dist/node_modules/@react-aria/overlays/dist/zh-TW.es.js +0 -8
  461. package/dist/node_modules/@react-aria/overlays/dist/zh-TW.es.js.map +0 -1
  462. package/dist/node_modules/@react-aria/select/dist/HiddenSelect.cjs.js +0 -2
  463. package/dist/node_modules/@react-aria/select/dist/HiddenSelect.cjs.js.map +0 -1
  464. package/dist/node_modules/@react-aria/select/dist/HiddenSelect.es.js +0 -105
  465. package/dist/node_modules/@react-aria/select/dist/HiddenSelect.es.js.map +0 -1
  466. package/dist/node_modules/@react-aria/select/dist/useSelect.cjs.js +0 -2
  467. package/dist/node_modules/@react-aria/select/dist/useSelect.cjs.js.map +0 -1
  468. package/dist/node_modules/@react-aria/select/dist/useSelect.es.js +0 -126
  469. package/dist/node_modules/@react-aria/select/dist/useSelect.es.js.map +0 -1
  470. package/dist/node_modules/@react-aria/selection/dist/DOMLayoutDelegate.cjs.js +0 -2
  471. package/dist/node_modules/@react-aria/selection/dist/DOMLayoutDelegate.cjs.js.map +0 -1
  472. package/dist/node_modules/@react-aria/selection/dist/DOMLayoutDelegate.es.js +0 -41
  473. package/dist/node_modules/@react-aria/selection/dist/DOMLayoutDelegate.es.js.map +0 -1
  474. package/dist/node_modules/@react-aria/selection/dist/ListKeyboardDelegate.cjs.js +0 -2
  475. package/dist/node_modules/@react-aria/selection/dist/ListKeyboardDelegate.cjs.js.map +0 -1
  476. package/dist/node_modules/@react-aria/selection/dist/ListKeyboardDelegate.es.js +0 -122
  477. package/dist/node_modules/@react-aria/selection/dist/ListKeyboardDelegate.es.js.map +0 -1
  478. package/dist/node_modules/@react-aria/selection/dist/useSelectableCollection.cjs.js +0 -2
  479. package/dist/node_modules/@react-aria/selection/dist/useSelectableCollection.cjs.js.map +0 -1
  480. package/dist/node_modules/@react-aria/selection/dist/useSelectableCollection.es.js +0 -235
  481. package/dist/node_modules/@react-aria/selection/dist/useSelectableCollection.es.js.map +0 -1
  482. package/dist/node_modules/@react-aria/selection/dist/useSelectableItem.cjs.js +0 -2
  483. package/dist/node_modules/@react-aria/selection/dist/useSelectableItem.cjs.js.map +0 -1
  484. package/dist/node_modules/@react-aria/selection/dist/useSelectableItem.es.js +0 -127
  485. package/dist/node_modules/@react-aria/selection/dist/useSelectableItem.es.js.map +0 -1
  486. package/dist/node_modules/@react-aria/selection/dist/useSelectableList.cjs.js +0 -2
  487. package/dist/node_modules/@react-aria/selection/dist/useSelectableList.cjs.js.map +0 -1
  488. package/dist/node_modules/@react-aria/selection/dist/useSelectableList.es.js +0 -37
  489. package/dist/node_modules/@react-aria/selection/dist/useSelectableList.es.js.map +0 -1
  490. package/dist/node_modules/@react-aria/selection/dist/useTypeSelect.cjs.js +0 -2
  491. package/dist/node_modules/@react-aria/selection/dist/useTypeSelect.cjs.js.map +0 -1
  492. package/dist/node_modules/@react-aria/selection/dist/useTypeSelect.es.js +0 -33
  493. package/dist/node_modules/@react-aria/selection/dist/useTypeSelect.es.js.map +0 -1
  494. package/dist/node_modules/@react-aria/selection/dist/utils.cjs.js +0 -2
  495. package/dist/node_modules/@react-aria/selection/dist/utils.cjs.js.map +0 -1
  496. package/dist/node_modules/@react-aria/selection/dist/utils.es.js +0 -24
  497. package/dist/node_modules/@react-aria/selection/dist/utils.es.js.map +0 -1
  498. package/dist/node_modules/@react-stately/collections/dist/CollectionBuilder.cjs.js +0 -2
  499. package/dist/node_modules/@react-stately/collections/dist/CollectionBuilder.cjs.js.map +0 -1
  500. package/dist/node_modules/@react-stately/collections/dist/CollectionBuilder.es.js +0 -171
  501. package/dist/node_modules/@react-stately/collections/dist/CollectionBuilder.es.js.map +0 -1
  502. package/dist/node_modules/@react-stately/collections/dist/Item.cjs.js +0 -2
  503. package/dist/node_modules/@react-stately/collections/dist/Item.cjs.js.map +0 -1
  504. package/dist/node_modules/@react-stately/collections/dist/Item.es.js +0 -38
  505. package/dist/node_modules/@react-stately/collections/dist/Item.es.js.map +0 -1
  506. package/dist/node_modules/@react-stately/collections/dist/getChildNodes.cjs.js +0 -2
  507. package/dist/node_modules/@react-stately/collections/dist/getChildNodes.cjs.js.map +0 -1
  508. package/dist/node_modules/@react-stately/collections/dist/getChildNodes.es.js +0 -34
  509. package/dist/node_modules/@react-stately/collections/dist/getChildNodes.es.js.map +0 -1
  510. package/dist/node_modules/@react-stately/collections/dist/getItemCount.cjs.js +0 -2
  511. package/dist/node_modules/@react-stately/collections/dist/getItemCount.cjs.js.map +0 -1
  512. package/dist/node_modules/@react-stately/collections/dist/getItemCount.es.js +0 -15
  513. package/dist/node_modules/@react-stately/collections/dist/getItemCount.es.js.map +0 -1
  514. package/dist/node_modules/@react-stately/collections/dist/useCollection.cjs.js +0 -2
  515. package/dist/node_modules/@react-stately/collections/dist/useCollection.cjs.js.map +0 -1
  516. package/dist/node_modules/@react-stately/collections/dist/useCollection.es.js +0 -24
  517. package/dist/node_modules/@react-stately/collections/dist/useCollection.es.js.map +0 -1
  518. package/dist/node_modules/@react-stately/list/dist/ListCollection.cjs.js +0 -2
  519. package/dist/node_modules/@react-stately/list/dist/ListCollection.cjs.js.map +0 -1
  520. package/dist/node_modules/@react-stately/list/dist/ListCollection.es.js +0 -57
  521. package/dist/node_modules/@react-stately/list/dist/ListCollection.es.js.map +0 -1
  522. package/dist/node_modules/@react-stately/list/dist/useListState.cjs.js +0 -2
  523. package/dist/node_modules/@react-stately/list/dist/useListState.cjs.js.map +0 -1
  524. package/dist/node_modules/@react-stately/list/dist/useListState.es.js +0 -70
  525. package/dist/node_modules/@react-stately/list/dist/useListState.es.js.map +0 -1
  526. package/dist/node_modules/@react-stately/list/dist/useSingleSelectListState.cjs.js +0 -2
  527. package/dist/node_modules/@react-stately/list/dist/useSingleSelectListState.cjs.js.map +0 -1
  528. package/dist/node_modules/@react-stately/list/dist/useSingleSelectListState.es.js +0 -35
  529. package/dist/node_modules/@react-stately/list/dist/useSingleSelectListState.es.js.map +0 -1
  530. package/dist/node_modules/@react-stately/menu/dist/useMenuTriggerState.cjs.js +0 -2
  531. package/dist/node_modules/@react-stately/menu/dist/useMenuTriggerState.cjs.js.map +0 -1
  532. package/dist/node_modules/@react-stately/menu/dist/useMenuTriggerState.es.js +0 -34
  533. package/dist/node_modules/@react-stately/menu/dist/useMenuTriggerState.es.js.map +0 -1
  534. package/dist/node_modules/@react-stately/select/dist/useSelectState.cjs.js +0 -2
  535. package/dist/node_modules/@react-stately/select/dist/useSelectState.cjs.js.map +0 -1
  536. package/dist/node_modules/@react-stately/select/dist/useSelectState.es.js +0 -35
  537. package/dist/node_modules/@react-stately/select/dist/useSelectState.es.js.map +0 -1
  538. package/dist/node_modules/@react-stately/selection/dist/Selection.cjs.js +0 -2
  539. package/dist/node_modules/@react-stately/selection/dist/Selection.cjs.js.map +0 -1
  540. package/dist/node_modules/@react-stately/selection/dist/Selection.es.js +0 -9
  541. package/dist/node_modules/@react-stately/selection/dist/Selection.es.js.map +0 -1
  542. package/dist/node_modules/@react-stately/selection/dist/SelectionManager.cjs.js +0 -2
  543. package/dist/node_modules/@react-stately/selection/dist/SelectionManager.cjs.js.map +0 -1
  544. package/dist/node_modules/@react-stately/selection/dist/SelectionManager.es.js +0 -285
  545. package/dist/node_modules/@react-stately/selection/dist/SelectionManager.es.js.map +0 -1
  546. package/dist/node_modules/@react-stately/selection/dist/useMultipleSelectionState.cjs.js +0 -2
  547. package/dist/node_modules/@react-stately/selection/dist/useMultipleSelectionState.cjs.js.map +0 -1
  548. package/dist/node_modules/@react-stately/selection/dist/useMultipleSelectionState.es.js +0 -58
  549. package/dist/node_modules/@react-stately/selection/dist/useMultipleSelectionState.es.js.map +0 -1
  550. package/dist/node_modules/@react-stately/tree/dist/TreeCollection.cjs.js +0 -2
  551. package/dist/node_modules/@react-stately/tree/dist/TreeCollection.cjs.js.map +0 -1
  552. package/dist/node_modules/@react-stately/tree/dist/TreeCollection.es.js +0 -53
  553. package/dist/node_modules/@react-stately/tree/dist/TreeCollection.es.js.map +0 -1
  554. package/dist/node_modules/@react-stately/tree/dist/useTreeState.cjs.js +0 -2
  555. package/dist/node_modules/@react-stately/tree/dist/useTreeState.cjs.js.map +0 -1
  556. package/dist/node_modules/@react-stately/tree/dist/useTreeState.es.js +0 -38
  557. package/dist/node_modules/@react-stately/tree/dist/useTreeState.es.js.map +0 -1
  558. package/dist/node_modules/react-aria-components/dist/Autocomplete.cjs.js +0 -2
  559. package/dist/node_modules/react-aria-components/dist/Autocomplete.cjs.js.map +0 -1
  560. package/dist/node_modules/react-aria-components/dist/Autocomplete.es.js +0 -6
  561. package/dist/node_modules/react-aria-components/dist/Autocomplete.es.js.map +0 -1
  562. package/dist/node_modules/react-aria-components/dist/Button.cjs.js +0 -2
  563. package/dist/node_modules/react-aria-components/dist/Button.cjs.js.map +0 -1
  564. package/dist/node_modules/react-aria-components/dist/Button.es.js +0 -70
  565. package/dist/node_modules/react-aria-components/dist/Button.es.js.map +0 -1
  566. package/dist/node_modules/react-aria-components/dist/Collection.cjs.js +0 -2
  567. package/dist/node_modules/react-aria-components/dist/Collection.cjs.js.map +0 -1
  568. package/dist/node_modules/react-aria-components/dist/Collection.es.js +0 -64
  569. package/dist/node_modules/react-aria-components/dist/Collection.es.js.map +0 -1
  570. package/dist/node_modules/react-aria-components/dist/Dialog.cjs.js +0 -2
  571. package/dist/node_modules/react-aria-components/dist/Dialog.cjs.js.map +0 -1
  572. package/dist/node_modules/react-aria-components/dist/Dialog.es.js +0 -6
  573. package/dist/node_modules/react-aria-components/dist/Dialog.es.js.map +0 -1
  574. package/dist/node_modules/react-aria-components/dist/Header.cjs.js +0 -2
  575. package/dist/node_modules/react-aria-components/dist/Header.cjs.js.map +0 -1
  576. package/dist/node_modules/react-aria-components/dist/Header.es.js +0 -15
  577. package/dist/node_modules/react-aria-components/dist/Header.es.js.map +0 -1
  578. package/dist/node_modules/react-aria-components/dist/Keyboard.cjs.js +0 -2
  579. package/dist/node_modules/react-aria-components/dist/Keyboard.cjs.js.map +0 -1
  580. package/dist/node_modules/react-aria-components/dist/Keyboard.es.js +0 -6
  581. package/dist/node_modules/react-aria-components/dist/Keyboard.es.js.map +0 -1
  582. package/dist/node_modules/react-aria-components/dist/Menu.cjs.js +0 -2
  583. package/dist/node_modules/react-aria-components/dist/Menu.cjs.js.map +0 -1
  584. package/dist/node_modules/react-aria-components/dist/Menu.es.js +0 -286
  585. package/dist/node_modules/react-aria-components/dist/Menu.es.js.map +0 -1
  586. package/dist/node_modules/react-aria-components/dist/Popover.cjs.js +0 -2
  587. package/dist/node_modules/react-aria-components/dist/Popover.cjs.js.map +0 -1
  588. package/dist/node_modules/react-aria-components/dist/Popover.es.js +0 -141
  589. package/dist/node_modules/react-aria-components/dist/Popover.es.js.map +0 -1
  590. package/dist/node_modules/react-aria-components/dist/ProgressBar.cjs.js +0 -2
  591. package/dist/node_modules/react-aria-components/dist/ProgressBar.cjs.js.map +0 -1
  592. package/dist/node_modules/react-aria-components/dist/ProgressBar.es.js +0 -6
  593. package/dist/node_modules/react-aria-components/dist/ProgressBar.es.js.map +0 -1
  594. package/dist/node_modules/react-aria-components/dist/Separator.cjs.js +0 -2
  595. package/dist/node_modules/react-aria-components/dist/Separator.cjs.js.map +0 -1
  596. package/dist/node_modules/react-aria-components/dist/Separator.es.js +0 -6
  597. package/dist/node_modules/react-aria-components/dist/Separator.es.js.map +0 -1
  598. package/dist/node_modules/react-aria-components/dist/Text.cjs.js +0 -2
  599. package/dist/node_modules/react-aria-components/dist/Text.cjs.js.map +0 -1
  600. package/dist/node_modules/react-aria-components/dist/Text.es.js +0 -16
  601. package/dist/node_modules/react-aria-components/dist/Text.es.js.map +0 -1
  602. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.js +0 -10
  603. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.js.map +0 -1
  604. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.es.js +0 -68
  605. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.es.js.map +0 -1
  606. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs.js +0 -10
  607. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs.js.map +0 -1
  608. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.es.js +0 -56
  609. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.es.js.map +0 -1
  610. package/dist/node_modules/use-sync-external-store/shim/index.cjs.js +0 -2
  611. package/dist/node_modules/use-sync-external-store/shim/index.cjs.js.map +0 -1
  612. package/dist/node_modules/use-sync-external-store/shim/index.es.js +0 -9
  613. package/dist/node_modules/use-sync-external-store/shim/index.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ActionMenu.es.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\r\nimport { useMenu, useMenuItem } from \"@react-aria/menu\";\r\nimport { TreeState, useTreeState } from \"@react-stately/tree\";\r\nimport { Item } from \"@react-stately/collections\";\r\nimport type { Node, Selection } from \"@react-types/shared\";\r\n\r\nimport { useIsClosing } from \"../../hooks/useIsClosing\";\r\nimport { useLockBodyScroll } from \"../../hooks/useLockBodyScroll\";\r\nimport { csx, handleInternalNavigation, isUrlExternal } from \"../../utils\";\r\nimport { Button } from \"../Button/Button\";\r\nimport { ScreenOverlay } from \"../ScreenOverlay/ScreenOverlay\";\r\n\r\nimport \"./ActionMenu.css\";\r\nimport { Icon } from \"../Icon/Icon\";\r\n\r\nexport interface ActionMenuAction {\r\n key: string;\r\n label?: ReactNode;\r\n description?: ReactNode;\r\n to?: string;\r\n onAction?: (key: string) => void;\r\n children?: ActionMenuAction[];\r\n}\r\n\r\nexport interface ActionMenuProps {\r\n /** The actions of the menu\r\n * - type {@link ActionMenuAction}[]\r\n */\r\n actions?: ActionMenuAction[];\r\n\r\n /** The text of the cancel button */\r\n cancelButtonText?: string;\r\n\r\n /** The children of the menu */\r\n children?: ReactNode | ((props: { close: () => void }) => ReactNode);\r\n\r\n /** The test id of the menu */\r\n \"data-testid\"?: string;\r\n\r\n /** The keys of the default selected items */\r\n defaultSelectedKeys?: string[];\r\n\r\n /** The keys of the disabled items */\r\n disabledKeys?: string[];\r\n\r\n /** Whether the menu is open\r\n * @default false\r\n */\r\n isOpen: boolean;\r\n\r\n /** The callback function to close the menu */\r\n onClose?: () => void;\r\n\r\n /** The callback function to change the selection\r\n * - type {@link Selection}\r\n */\r\n onSelectionChange?: (keys: Selection) => void;\r\n\r\n /** The selection mode of the menu\r\n * @default \"single\"\r\n */\r\n selectionMode?: \"single\" | \"multiple\" | \"none\";\r\n\r\n /** The keys of the selected items */\r\n selectedKeys?: string[];\r\n\r\n /** Whether to show the cancel button */\r\n showCancel?: boolean;\r\n\r\n /** The title of the menu */\r\n title?: string;\r\n}\r\n\r\ntype ActionStack = {\r\n title: ReactNode | null;\r\n actions: ActionMenuAction[];\r\n key: string | null;\r\n previousKey: string | null;\r\n};\r\n\r\n/**\r\n * ActionMenu to display a menu of actions.\r\n * Renders a list of actions as a focusable menu, or non-focusable children.\r\n *\r\n * API:\r\n * - {@link ActionMenuProps}\r\n */\r\nexport const ActionMenu = ({\r\n isOpen,\r\n selectionMode = \"single\",\r\n selectedKeys,\r\n defaultSelectedKeys,\r\n disabledKeys,\r\n children,\r\n showCancel = true,\r\n cancelButtonText = \"Cancel\",\r\n actions,\r\n title,\r\n onSelectionChange,\r\n onClose,\r\n \"data-testid\": testId,\r\n}: ActionMenuProps) => {\r\n useLockBodyScroll(isOpen);\r\n const [contentHeight, setContentHeight] = useState<number>(0);\r\n const [stackHistory, setStackHistory] = useState<ActionStack[]>([]);\r\n const [currentActionStack, setCurrentActionStack] = useState<ActionStack>({\r\n title,\r\n actions,\r\n key: null,\r\n previousKey: null,\r\n });\r\n const currentActions = currentActionStack.actions || [];\r\n\r\n const contentRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const overlayRef = useRef<HTMLDivElement>(null);\r\n const justNavigatedToSubmenuRef = useRef(false);\r\n const { isClosing, handleClose } = useIsClosing({\r\n onClose,\r\n overlayRef,\r\n });\r\n\r\n const hasActions = currentActions && currentActions.length > 0;\r\n\r\n const handleOverlayClose = () => {\r\n setContentHeight(0);\r\n handleClose();\r\n };\r\n\r\n const state = useTreeState({\r\n items: currentActions,\r\n children: currentActions.map((action) => (\r\n <Item {...action} key={action.key} textValue={action.key}>\r\n {action.label}\r\n </Item>\r\n )),\r\n defaultSelectedKeys: defaultSelectedKeys\r\n ? new Set(defaultSelectedKeys)\r\n : undefined,\r\n selectedKeys: selectedKeys ? new Set(selectedKeys) : undefined,\r\n onSelectionChange,\r\n selectionMode,\r\n disabledKeys,\r\n });\r\n\r\n const { menuProps } = useMenu(\r\n {\r\n autoFocus: true,\r\n shouldFocusWrap: true,\r\n onAction: (key) => {\r\n const action = currentActions.find((action) => action.key === key);\r\n if (!action) {\r\n console.error(`Action with key ${key} not found`);\r\n return;\r\n }\r\n\r\n // the action's onAction is called in ActionMenuItem, so we don't need to call it again\r\n\r\n if (action?.children?.length) {\r\n handleSubmenuOpen(key as string);\r\n }\r\n },\r\n onClose: () => {\r\n if (justNavigatedToSubmenuRef.current) {\r\n justNavigatedToSubmenuRef.current = false;\r\n return;\r\n }\r\n onClose?.();\r\n },\r\n disabledKeys,\r\n onSelectionChange,\r\n selectionMode,\r\n selectedKeys,\r\n defaultSelectedKeys,\r\n \"aria-label\": \"Action Menu\",\r\n },\r\n state,\r\n menuRef\r\n );\r\n\r\n function handleSubmenuOpen(key: string) {\r\n const action = currentActions.find((action) => action.key === key);\r\n if (!action) {\r\n console.error(`Action with key ${key} not found`);\r\n return;\r\n }\r\n\r\n setStackHistory((prevStackHistory) => [\r\n ...prevStackHistory,\r\n currentActionStack,\r\n ]);\r\n setCurrentActionStack((prevStack) => ({\r\n title: action.label,\r\n actions: action.children,\r\n key: action.key,\r\n previousKey: prevStack.key,\r\n }));\r\n justNavigatedToSubmenuRef.current = true;\r\n }\r\n\r\n function handleBack() {\r\n if (stackHistory.length > 0) {\r\n const previousStack = stackHistory[stackHistory.length - 1];\r\n setCurrentActionStack(previousStack);\r\n setStackHistory(stackHistory.slice(0, -1));\r\n }\r\n }\r\n\r\n const hasContent = children || hasActions || showCancel;\r\n\r\n // We need to re-measure the open menu's content height when stack history changes\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n requestAnimationFrame(() => {\r\n if (contentRef.current) {\r\n setContentHeight(contentRef.current.scrollHeight);\r\n }\r\n });\r\n }, [isOpen, contentRef.current, stackHistory, hasContent]);\r\n\r\n if (!isOpen) return null;\r\n\r\n return (\r\n <ScreenOverlay fadeIn ref={overlayRef} onClose={handleOverlayClose}>\r\n <div\r\n className=\"proton-ActionMenu__background-wrapper\"\r\n style={{\r\n opacity: isClosing ? 0 : 1,\r\n }}\r\n >\r\n <div\r\n data-testid={testId || \"ActionMenu-wrapper\"}\r\n className=\"proton-ActionMenu__wrapper\"\r\n >\r\n <div\r\n className=\"proton-ActionMenu__card\"\r\n data-testid=\"ActionMenu-content\"\r\n style={{ height: `${contentHeight}px` }}\r\n >\r\n <div ref={menuRef}>\r\n <div {...menuProps} ref={contentRef}>\r\n {currentActionStack.title && (\r\n <div className=\"proton-ActionMenu__title\">\r\n {stackHistory.length > 0 && (\r\n <div style={{ position: \"absolute\", left: 0 }}>\r\n <button onClick={handleBack}>\r\n <Icon id=\"chevron-left\" size={16} />\r\n </button>\r\n </div>\r\n )}\r\n {currentActionStack.title}\r\n </div>\r\n )}\r\n {hasContent ? (\r\n <>\r\n {children && (\r\n <div className=\"proton-ActionMenu__content\">\r\n {typeof children === \"function\"\r\n ? children({ close: handleOverlayClose })\r\n : children}\r\n </div>\r\n )}\r\n\r\n {hasActions && (\r\n <div\r\n className={csx(\r\n \"proton-ActionMenu__list\",\r\n selectionMode === \"none\" &&\r\n \"proton-ActionMenu__list--disabled\"\r\n )}\r\n >\r\n {Array.from(state.collection).map((item, i) => {\r\n const itemProps = currentActionStack.actions[i];\r\n\r\n return (\r\n <ActionMenuItem\r\n key={item.key}\r\n item={item}\r\n state={state}\r\n isSubmenu={!!itemProps.children?.length}\r\n />\r\n );\r\n })}\r\n </div>\r\n )}\r\n\r\n {showCancel && (\r\n <div\r\n className=\"proton-ActionMenu__cancel-button\"\r\n tabIndex={-1}\r\n >\r\n <Button\r\n data-testid=\"ActionMenuItem-cancel\"\r\n onPress={onClose}\r\n fullWidth\r\n variant=\"secondary\"\r\n >\r\n {cancelButtonText}\r\n </Button>\r\n </div>\r\n )}\r\n </>\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ScreenOverlay>\r\n );\r\n};\r\n\r\ninterface ActionMenuItemProps {\r\n to?: string;\r\n state: TreeState<ActionMenuAction>;\r\n item: Node<ActionMenuAction>;\r\n isSubmenu?: boolean;\r\n}\r\n\r\nconst ActionMenuItem = ({ state, item, isSubmenu }: ActionMenuItemProps) => {\r\n const ref = useRef(null);\r\n const { props } = item;\r\n const { menuItemProps } = useMenuItem({ key: item.key }, state, ref);\r\n const Component = props.to ? \"a\" : \"div\";\r\n const isExternal = props.to && isUrlExternal(props.to);\r\n\r\n const anchorProps = props.to\r\n ? {\r\n href: props.to,\r\n target: isExternal ? \"_blank\" : undefined,\r\n rel: isExternal ? \"noopener noreferrer\" : undefined,\r\n onClick: (e: React.MouseEvent<HTMLAnchorElement | HTMLDivElement>) => {\r\n if (isExternal || !props.to) {\r\n return;\r\n }\r\n\r\n handleInternalNavigation(\r\n e as React.MouseEvent<HTMLAnchorElement>,\r\n props.to\r\n );\r\n },\r\n }\r\n : {};\r\n\r\n return (\r\n <Component\r\n {...menuItemProps}\r\n {...anchorProps}\r\n key={item.key}\r\n className=\"proton-ActionMenu__item\"\r\n aria-label={`ActionMenu-Item-${item.key}`}\r\n ref={ref}\r\n >\r\n <div className=\"proton-ActionMenu__item-content\">\r\n <div className=\"proton-ActionMenu__item-label\">{item.rendered}</div>\r\n {props.description && (\r\n <div className=\"proton-ActionMenu__description\">\r\n {props.description}\r\n </div>\r\n )}\r\n </div>\r\n {isSubmenu && <Icon id=\"chevron-right\" size={16} />}\r\n </Component>\r\n );\r\n};\r\n"],"names":["ActionMenu","isOpen","selectionMode","selectedKeys","defaultSelectedKeys","disabledKeys","children","showCancel","cancelButtonText","actions","title","onSelectionChange","onClose","testId","useLockBodyScroll","contentHeight","setContentHeight","useState","stackHistory","setStackHistory","currentActionStack","setCurrentActionStack","currentActions","contentRef","useRef","menuRef","overlayRef","justNavigatedToSubmenuRef","isClosing","handleClose","useIsClosing","hasActions","handleOverlayClose","state","useTreeState","action","Item","menuProps","useMenu","key","_a","handleSubmenuOpen","prevStackHistory","prevStack","handleBack","previousStack","hasContent","useEffect","ScreenOverlay","jsx","jsxs","Icon","Fragment","csx","item","i","itemProps","ActionMenuItem","Button","isSubmenu","ref","props","menuItemProps","useMenuItem","Component","isExternal","isUrlExternal","anchorProps","e","handleInternalNavigation","createElement"],"mappings":"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"}
1
+ {"version":3,"file":"ActionMenu.es.js","sources":["../../../src/components/ActionMenu/ActionMenu.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\r\nimport type { Selection } from \"@react-types/shared\";\r\n\r\nimport { useIsClosing } from \"../../hooks/useIsClosing\";\r\nimport { useLockBodyScroll } from \"../../hooks/useLockBodyScroll\";\r\nimport { handleInternalNavigation, isUrlExternal } from \"../../utils\";\r\n\r\nimport { Button } from \"../Button/Button\";\r\nimport { ScreenOverlay } from \"../ScreenOverlay/ScreenOverlay\";\r\nimport { DropdownMenu } from \"radix-ui\";\r\nimport { Icon } from \"../Icon/Icon\";\r\n\r\nimport \"./ActionMenu.css\";\r\n\r\nexport interface ActionMenuAction {\r\n key: string;\r\n label?: ReactNode;\r\n description?: ReactNode;\r\n to?: string;\r\n onAction?: (key: string) => void;\r\n children?: ActionMenuAction[];\r\n}\r\n\r\nexport type ActionMenuSelectionMode = \"single\" | \"multiple\" | \"none\";\r\n\r\nexport interface ActionMenuProps {\r\n /** The actions of the menu\r\n * - type {@link ActionMenuAction}[]\r\n */\r\n actions?: ActionMenuAction[];\r\n\r\n /** The text of the cancel button */\r\n cancelButtonText?: string;\r\n\r\n /** The children of the menu */\r\n children?: ReactNode | ((props: { close: () => void }) => ReactNode);\r\n\r\n /** The test id of the menu */\r\n \"data-testid\"?: string;\r\n\r\n /** The keys of the disabled items\r\n * @default []\r\n */\r\n disabledKeys?: string[];\r\n\r\n /** Whether the menu is open\r\n * @default false\r\n */\r\n isOpen: boolean;\r\n\r\n /** The callback function to close the menu */\r\n onClose?: () => void;\r\n\r\n /** The callback function to change the selection\r\n * - type {@link Selection}\r\n */\r\n onSelectionChange?: (keys: Selection) => void;\r\n\r\n /** The selection mode of the menu\r\n * @default \"single\"\r\n */\r\n selectionMode?: ActionMenuSelectionMode;\r\n\r\n /** The keys of the selected items */\r\n selectedKeys?: string[];\r\n\r\n /** Whether to show the cancel button */\r\n showCancel?: boolean;\r\n\r\n /** The title of the menu */\r\n title?: string;\r\n}\r\n\r\ntype ActionStack = {\r\n title: ReactNode | null;\r\n actions: ActionMenuAction[];\r\n key: string | null;\r\n previousKey: string | null;\r\n};\r\n\r\n/**\r\n * A controlled ActionMenu to display a menu of actions.\r\n * Renders a list of actions as a focusable menu, or non-focusable children.\r\n *\r\n * API:\r\n * - {@link ActionMenuProps}\r\n */\r\nexport const ActionMenu = ({\r\n isOpen,\r\n actions = [],\r\n children,\r\n showCancel = true,\r\n cancelButtonText = \"Cancel\",\r\n selectionMode = \"single\",\r\n selectedKeys,\r\n disabledKeys = [],\r\n onSelectionChange,\r\n onClose,\r\n title,\r\n \"data-testid\": testId,\r\n}: ActionMenuProps) => {\r\n useLockBodyScroll(isOpen);\r\n const [contentHeight, setContentHeight] = useState<number>(0);\r\n const [stackHistory, setStackHistory] = useState<ActionStack[]>([]);\r\n const [currentActionStack, setCurrentActionStack] = useState<ActionStack>({\r\n title,\r\n actions,\r\n key: null,\r\n previousKey: null,\r\n });\r\n const contentRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const overlayRef = useRef<HTMLDivElement>(null);\r\n const { isClosing, handleClose } = useIsClosing({ onClose, overlayRef });\r\n\r\n const currentActions = currentActionStack.actions || [];\r\n const hasActions = currentActions && currentActions.length > 0;\r\n const hasContent = children || hasActions || showCancel;\r\n const isInSubmenu = stackHistory.length > 0;\r\n\r\n function handleSubmenuOpen(key: string) {\r\n const action = currentActions.find((action) => action.key === key);\r\n if (!action) {\r\n console.error(`Action with key ${key} not found`);\r\n return;\r\n }\r\n\r\n setStackHistory((prevStackHistory) => [\r\n ...prevStackHistory,\r\n currentActionStack,\r\n ]);\r\n setCurrentActionStack((prevStack) => ({\r\n title: action.label,\r\n actions: action.children,\r\n key: action.key,\r\n previousKey: prevStack.key,\r\n }));\r\n }\r\n\r\n function handleBack() {\r\n if (stackHistory.length > 0) {\r\n const previousStack = stackHistory[stackHistory.length - 1];\r\n setCurrentActionStack(previousStack);\r\n setStackHistory(stackHistory.slice(0, -1));\r\n }\r\n }\r\n\r\n // Re-measure the open menu's content height when stack history changes\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n requestAnimationFrame(() => {\r\n if (contentRef.current) {\r\n setContentHeight(contentRef.current.scrollHeight + 12);\r\n }\r\n });\r\n }, [isOpen, stackHistory, hasContent]);\r\n\r\n // Reset content height when menu closes or is closing\r\n useEffect(() => {\r\n if (!isOpen || isClosing) {\r\n setContentHeight(0);\r\n }\r\n }, [isOpen, isClosing]);\r\n\r\n if (!isOpen && !isClosing) return null;\r\n\r\n return (\r\n <ScreenOverlay fadeIn ref={overlayRef}>\r\n <DropdownMenu.Root\r\n modal\r\n open={isOpen}\r\n onOpenChange={(open) => {\r\n if (!open) handleClose();\r\n }}\r\n >\r\n <DropdownMenu.Trigger asChild>\r\n {/* No visible trigger, menu is controlled by isOpen */}\r\n <div>{\"\"}</div>\r\n </DropdownMenu.Trigger>\r\n\r\n <div\r\n className=\"proton-ActionMenu__background-wrapper\"\r\n style={{ opacity: isClosing ? 0 : 1 }}\r\n >\r\n <div\r\n data-testid={testId || \"ActionMenu-wrapper\"}\r\n className=\"proton-ActionMenu__wrapper\"\r\n >\r\n <div\r\n className=\"proton-ActionMenu__card\"\r\n data-testid=\"ActionMenu-content\"\r\n style={{ height: `${contentHeight}px` }}\r\n >\r\n <div ref={menuRef} className=\"proton-ActionMenu__menu\">\r\n <DropdownMenu.Content loop sideOffset={8} ref={contentRef}>\r\n {hasContent && (\r\n <>\r\n {children && (\r\n <div className=\"proton-ActionMenu__content\">\r\n {typeof children === \"function\"\r\n ? children({ close: handleClose })\r\n : children}\r\n </div>\r\n )}\r\n\r\n {hasActions && (\r\n <ActionMenuList\r\n actions={currentActions}\r\n selectionMode={selectionMode}\r\n selectedKeys={selectedKeys}\r\n onSelectionChange={onSelectionChange}\r\n disabledKeys={disabledKeys}\r\n handleSubmenuOpen={handleSubmenuOpen}\r\n title={currentActionStack.title}\r\n isInSubmenu={isInSubmenu}\r\n handleBack={handleBack}\r\n previousMenuTitle={\r\n stackHistory[stackHistory.length - 1]?.title\r\n }\r\n />\r\n )}\r\n\r\n {showCancel && (\r\n <>\r\n <DropdownMenu.Separator />\r\n <DropdownMenu.Item className=\"proton-ActionMenu__cancel-button\">\r\n <Button\r\n data-testid=\"ActionMenuItem-cancel\"\r\n onPress={handleClose}\r\n fullWidth\r\n variant=\"secondary\"\r\n >\r\n {cancelButtonText}\r\n </Button>\r\n </DropdownMenu.Item>\r\n </>\r\n )}\r\n </>\r\n )}\r\n </DropdownMenu.Content>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </DropdownMenu.Root>\r\n </ScreenOverlay>\r\n );\r\n};\r\n\r\ninterface ActionMenuListProps {\r\n actions: ActionMenuAction[];\r\n selectionMode: ActionMenuSelectionMode;\r\n selectedKeys?: string[];\r\n onSelectionChange?: (keys: Selection) => void;\r\n disabledKeys?: string[];\r\n handleSubmenuOpen: (key: string) => void;\r\n title?: ReactNode;\r\n isInSubmenu?: boolean;\r\n handleBack?: () => void;\r\n previousMenuTitle?: ReactNode;\r\n}\r\n\r\nconst ActionMenuList = ({\r\n actions,\r\n selectionMode,\r\n selectedKeys = [],\r\n onSelectionChange,\r\n disabledKeys = [],\r\n handleSubmenuOpen,\r\n title,\r\n isInSubmenu = false,\r\n handleBack,\r\n previousMenuTitle,\r\n}: ActionMenuListProps) => {\r\n const ActionMenuItemMap = () => (\r\n <>\r\n {isInSubmenu && handleBack && (\r\n <div className=\"proton-ActionMenu__back-button-container\">\r\n <DropdownMenu.Item\r\n className=\"proton-ActionMenu__back-button\"\r\n onSelect={(event) => {\r\n event.preventDefault();\r\n handleBack();\r\n }}\r\n aria-label={`Go back to ${previousMenuTitle || \"previous menu\"}`}\r\n >\r\n <Icon id=\"chevron-left\" size={16} aria-hidden=\"true\" />\r\n </DropdownMenu.Item>\r\n <div\r\n className=\"proton-ActionMenu__title\"\r\n role=\"banner\"\r\n aria-label={isInSubmenu ? `Submenu: ${title}` : `Menu: ${title}`}\r\n >\r\n <span>{title}</span>\r\n </div>\r\n <DropdownMenu.Separator />\r\n </div>\r\n )}\r\n\r\n {actions.map((action, i) => {\r\n const itemProps = actions[i];\r\n return (\r\n <ActionMenuItem\r\n key={action.key}\r\n item={action}\r\n isSubmenu={Boolean(itemProps.children?.length)}\r\n selectionMode={selectionMode}\r\n onSelectionChange={onSelectionChange}\r\n selectedKeys={selectedKeys}\r\n disabledKeys={disabledKeys}\r\n handleSubmenuOpen={handleSubmenuOpen}\r\n />\r\n );\r\n })}\r\n </>\r\n );\r\n\r\n return (\r\n <div\r\n aria-disabled={selectionMode === \"none\"}\r\n className=\"proton-ActionMenu__list\"\r\n role=\"menu\"\r\n aria-label={\r\n title ? `${isInSubmenu ? \"Submenu\" : \"Menu\"}: ${title}` : \"Action menu\"\r\n }\r\n aria-orientation=\"vertical\"\r\n >\r\n {selectionMode === \"single\" ? (\r\n <DropdownMenu.RadioGroup\r\n value={selectedKeys?.[0] || \"\"}\r\n onValueChange={(value) => {\r\n // Check if this is a submenu item - if so, don't trigger selection change\r\n const action = actions.find((action) => action.key === value);\r\n if (action?.children?.length) {\r\n return;\r\n }\r\n\r\n if (onSelectionChange) {\r\n onSelectionChange(new Set([value]));\r\n }\r\n }}\r\n >\r\n <ActionMenuItemMap />\r\n </DropdownMenu.RadioGroup>\r\n ) : (\r\n <DropdownMenu.Group>\r\n <ActionMenuItemMap />\r\n </DropdownMenu.Group>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\ninterface ActionMenuItemProps {\r\n to?: string;\r\n item: ActionMenuAction;\r\n isSubmenu?: boolean;\r\n selectionMode: ActionMenuSelectionMode;\r\n onSelectionChange?: (keys: Selection) => void;\r\n selectedKeys?: string[];\r\n disabledKeys?: string[];\r\n handleSubmenuOpen: (key: string) => void;\r\n}\r\n\r\nconst ActionMenuItem = ({\r\n item,\r\n isSubmenu,\r\n selectionMode,\r\n onSelectionChange,\r\n selectedKeys = [],\r\n disabledKeys = [],\r\n handleSubmenuOpen,\r\n}: ActionMenuItemProps) => {\r\n const ref = useRef(null);\r\n const isExternal = item.to && isUrlExternal(item.to);\r\n const isDisabled = disabledKeys.includes(item.key);\r\n const isSelected = selectedKeys.includes(item.key);\r\n\r\n const radixItemProps = {\r\n className: \"proton-ActionMenu__item\",\r\n \"aria-label\": item.label\r\n ? `${item.label}${item.description ? `, ${item.description}` : \"\"}`\r\n : `ActionMenu-Item-${item.key}`,\r\n role: \"menuitem\",\r\n disabled: isDisabled,\r\n ref,\r\n };\r\n\r\n const onSelect = (event: Event) => {\r\n if (item?.children?.length) {\r\n event.preventDefault();\r\n handleSubmenuOpen(item.key);\r\n return;\r\n }\r\n if (item.onAction) {\r\n item.onAction(item.key);\r\n }\r\n };\r\n\r\n const content = (\r\n <>\r\n <div className=\"proton-ActionMenu__item-content\">\r\n <div className=\"proton-ActionMenu__item-label\">{item.label}</div>\r\n {item.description && (\r\n <div className=\"proton-ActionMenu__description\">\r\n {item.description}\r\n </div>\r\n )}\r\n </div>\r\n {isSubmenu && <Icon id=\"chevron-right\" size={16} aria-hidden=\"true\" />}\r\n </>\r\n );\r\n\r\n if (item.to) {\r\n return (\r\n <DropdownMenu.Item {...radixItemProps} key={item.key} asChild>\r\n <a\r\n aria-label={\r\n item.label\r\n ? `${item.label}${item.description ? `, ${item.description}` : \"\"}`\r\n : `ActionMenu-Item-${item.key}`\r\n }\r\n aria-disabled={isDisabled}\r\n aria-checked={isSelected}\r\n aria-expanded={isSubmenu ? false : undefined}\r\n href={item.to}\r\n target={isExternal ? \"_blank\" : undefined}\r\n rel={isExternal ? \"noopener noreferrer\" : undefined}\r\n onClick={(e: React.MouseEvent<HTMLAnchorElement>) => {\r\n if (isExternal || !item.to) {\r\n return;\r\n }\r\n handleInternalNavigation(e, item.to);\r\n }}\r\n >\r\n {content}\r\n </a>\r\n </DropdownMenu.Item>\r\n );\r\n }\r\n\r\n if (selectionMode === \"multiple\") {\r\n return (\r\n <DropdownMenu.CheckboxItem\r\n {...radixItemProps}\r\n key={item.key}\r\n checked={isSelected}\r\n onSelect={onSelect}\r\n onCheckedChange={(checked: boolean) => {\r\n if (!onSelectionChange) return;\r\n\r\n const currentKeys = new Set(selectedKeys);\r\n if (checked) {\r\n currentKeys.add(item.key);\r\n } else {\r\n currentKeys.delete(item.key);\r\n }\r\n onSelectionChange(currentKeys);\r\n }}\r\n >\r\n {content}\r\n </DropdownMenu.CheckboxItem>\r\n );\r\n }\r\n\r\n return (\r\n <DropdownMenu.RadioItem\r\n {...radixItemProps}\r\n value={item.key}\r\n key={item.key}\r\n aria-checked={isSelected}\r\n aria-expanded={isSubmenu ? false : undefined}\r\n onSelect={onSelect}\r\n >\r\n {content}\r\n </DropdownMenu.RadioItem>\r\n );\r\n};\r\n"],"names":["ActionMenu","isOpen","actions","children","showCancel","cancelButtonText","selectionMode","selectedKeys","disabledKeys","onSelectionChange","onClose","title","testId","useLockBodyScroll","contentHeight","setContentHeight","useState","stackHistory","setStackHistory","currentActionStack","setCurrentActionStack","contentRef","useRef","menuRef","overlayRef","isClosing","handleClose","useIsClosing","currentActions","hasActions","hasContent","isInSubmenu","handleSubmenuOpen","key","action","prevStackHistory","prevStack","handleBack","previousStack","useEffect","jsx","ScreenOverlay","jsxs","DropdownMenu","open","Fragment","ActionMenuList","_a","Button","previousMenuTitle","ActionMenuItemMap","event","Icon","i","itemProps","ActionMenuItem","value","item","isSubmenu","ref","isExternal","isUrlExternal","isDisabled","isSelected","radixItemProps","onSelect","content","createElement","e","handleInternalNavigation","checked","currentKeys"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js"),S=require("react"),o=require("../Button/Button.cjs.js"),E=require("../Icon/Icon.cjs.js"),T=require("../Menu/MenuTrigger.cjs.js");;/* empty css */const u=44;function c({items:e,defaultValue:s,children:l,onSelectionChange:d,disabledKeys:a,selectedKey:g,icon:j,variant:i,fullWidth:r,onPress:h,...n}){const m=r?u/2:0;return t.jsxRuntimeExports.jsxs("div",{className:"proton-ButtonWithSelect",children:[t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__button",style:{"--proton-button-text-shift":`${m}px`,"--flex":r?1:0},children:t.jsxRuntimeExports.jsx(o.Button,{...n,onPress:h,icon:j,fullWidth:r,variant:i,"data-testid":"ButtonWithSelect-Button",children:l})}),t.jsxRuntimeExports.jsx(T.MenuTrigger,{items:e,disabled:n.isDisabled,disabledKeys:a,onSelectionChange:d,selectedKey:g,renderTrigger:({triggerRef:p,isOpen:B,setIsOpen:R})=>t.jsxRuntimeExports.jsx(x,{...n,variant:i,ref:p,onPress:()=>R(!B)})})]})}c.displayName="ProtonUIButtonWithSelect";const x=S.forwardRef((e,s)=>t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__trigger",style:{"--trigger-width":`${u}px`},children:t.jsxRuntimeExports.jsx(o.Button,{...e,"data-testid":"ButtonWithSelect-Trigger",ref:s,children:t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__trigger-content",children:t.jsxRuntimeExports.jsx(E.Icon,{id:"chevron-down",size:16})})})}));x.displayName="ProtonUIButtonWithSelectTrigger";exports.ButtonWithSelect=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../node_modules/react/jsx-runtime.cjs.js"),R=require("react"),o=require("../Button/Button.cjs.js"),S=require("../Icon/Icon.cjs.js"),E=require("../Menu/MenuTrigger.cjs.js");;/* empty css */const u=44;function c({items:e,defaultValue:s,children:l,onSelectionChange:d,disabledKeys:a,selectedKey:g,icon:j,variant:i,fullWidth:r,onPress:h,...n}){const m=r?u/2:0;return t.jsxRuntimeExports.jsxs("div",{className:"proton-ButtonWithSelect",children:[t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__button",style:{"--proton-button-text-shift":`${m}px`,"--flex":r?1:0},children:t.jsxRuntimeExports.jsx(o.Button,{...n,onPress:h,icon:j,fullWidth:r,variant:i,"data-testid":"ButtonWithSelect-Button",children:l})}),t.jsxRuntimeExports.jsx(E.MenuTrigger,{items:e,disabled:n.isDisabled,disabledKeys:a,onSelectionChange:d,selectedKey:g,renderTrigger:({isOpen:p,setIsOpen:B})=>t.jsxRuntimeExports.jsx(x,{...n,variant:i,onPress:()=>B(!p)})})]})}c.displayName="ProtonUIButtonWithSelect";const x=R.forwardRef((e,s)=>t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__trigger",style:{"--trigger-width":`${u}px`},children:t.jsxRuntimeExports.jsx(o.Button,{...e,"data-testid":"ButtonWithSelect-Trigger",ref:s,children:t.jsxRuntimeExports.jsx("div",{className:"proton-ButtonWithSelect__trigger-content",children:t.jsxRuntimeExports.jsx(S.Icon,{id:"chevron-down",size:16})})})}));x.displayName="ProtonUIButtonWithSelectTrigger";exports.ButtonWithSelect=c;
2
2
  //# sourceMappingURL=ButtonWithSelect.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonWithSelect.cjs.js","sources":["../../../src/components/ButtonWithSelect/ButtonWithSelect.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport { MenuTrigger } from \"../Menu/MenuTrigger\";\r\nimport type { ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./ButtonWithSelect.css\";\r\n\r\nconst FIXED_TRIGGER_WIDTH = 44;\r\n\r\ninterface ButtonWithSelectProps extends ButtonProps {\r\n /**\r\n * The default value of the select menu.\r\n */\r\n defaultValue?: string;\r\n /**\r\n * The keys of the disabled items.\r\n */\r\n disabledKeys?: string[];\r\n /**\r\n * The items to display in the select menu.\r\n * - type {@link ActionMenuAction}\r\n */\r\n items: ActionMenuAction[];\r\n /**\r\n * The callback function to call when the selection changes.\r\n */\r\n onSelectionChange?: (key: string) => void;\r\n /**\r\n * The key of the selected item.\r\n */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A button with a select menu.\r\n *\r\n * API:\r\n * - {@link ButtonWithSelectProps}\r\n * - extends {@link ButtonProps}\r\n */\r\nexport function ButtonWithSelect({\r\n items,\r\n defaultValue,\r\n children,\r\n onSelectionChange,\r\n disabledKeys,\r\n selectedKey,\r\n icon,\r\n variant,\r\n fullWidth,\r\n onPress,\r\n ...buttonProps\r\n}: ButtonWithSelectProps) {\r\n const textShift = fullWidth ? FIXED_TRIGGER_WIDTH / 2 : 0;\r\n\r\n return (\r\n <div className=\"proton-ButtonWithSelect\">\r\n <div\r\n className=\"proton-ButtonWithSelect__button\"\r\n style={\r\n {\r\n \"--proton-button-text-shift\": `${textShift}px`,\r\n \"--flex\": fullWidth ? 1 : 0,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button\r\n {...buttonProps}\r\n onPress={onPress}\r\n icon={icon}\r\n fullWidth={fullWidth}\r\n variant={variant}\r\n data-testid=\"ButtonWithSelect-Button\"\r\n >\r\n {children}\r\n </Button>\r\n </div>\r\n\r\n <MenuTrigger\r\n items={items}\r\n disabled={buttonProps.isDisabled}\r\n disabledKeys={disabledKeys}\r\n onSelectionChange={onSelectionChange}\r\n selectedKey={selectedKey}\r\n renderTrigger={({ triggerRef, isOpen, setIsOpen }) => {\r\n return (\r\n <TriggerButton\r\n {...buttonProps}\r\n variant={variant}\r\n ref={triggerRef}\r\n onPress={() => setIsOpen(!isOpen)}\r\n />\r\n );\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nButtonWithSelect.displayName = \"ProtonUIButtonWithSelect\";\r\n\r\nconst TriggerButton = React.forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>((props, ref) => {\r\n return (\r\n <div\r\n className=\"proton-ButtonWithSelect__trigger\"\r\n style={\r\n {\r\n \"--trigger-width\": `${FIXED_TRIGGER_WIDTH}px`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button {...props} data-testid=\"ButtonWithSelect-Trigger\" ref={ref}>\r\n <div className=\"proton-ButtonWithSelect__trigger-content\">\r\n <Icon id=\"chevron-down\" size={16} />\r\n </div>\r\n </Button>\r\n </div>\r\n );\r\n});\r\n\r\nTriggerButton.displayName = \"ProtonUIButtonWithSelectTrigger\";\r\n"],"names":["FIXED_TRIGGER_WIDTH","ButtonWithSelect","items","defaultValue","children","onSelectionChange","disabledKeys","selectedKey","icon","variant","fullWidth","onPress","buttonProps","textShift","jsxs","jsx","Button","MenuTrigger","triggerRef","isOpen","setIsOpen","TriggerButton","React","props","ref","Icon"],"mappings":"yTAQA,MAAMA,EAAsB,GAiCrB,SAASC,EAAiB,CAC/B,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,aAAAC,EACA,YAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA0B,CAClB,MAAAC,EAAYH,EAAYV,EAAsB,EAAI,EAGtD,OAAAc,EAAA,kBAAA,KAAC,MAAI,CAAA,UAAU,0BACb,SAAA,CAAAC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,kCACV,MACE,CACE,6BAA8B,GAAGF,CAAS,KAC1C,SAAUH,EAAY,EAAI,CAC5B,EAGF,SAAAK,EAAA,kBAAA,IAACC,EAAA,OAAA,CACE,GAAGJ,EACJ,QAAAD,EACA,KAAAH,EACA,UAAAE,EACA,QAAAD,EACA,cAAY,0BAEX,SAAAL,CAAA,CACH,CAAA,CACF,EAEAW,EAAA,kBAAA,IAACE,EAAA,YAAA,CACC,MAAAf,EACA,SAAUU,EAAY,WACtB,aAAAN,EACA,kBAAAD,EACA,YAAAE,EACA,cAAe,CAAC,CAAE,WAAAW,EAAY,OAAAC,EAAQ,UAAAC,KAElCL,EAAA,kBAAA,IAACM,EAAA,CACE,GAAGT,EACJ,QAAAH,EACA,IAAKS,EACL,QAAS,IAAME,EAAU,CAACD,CAAM,CAAA,CAAA,CAGtC,CACF,CACF,CAAA,CAAA,CAEJ,CAEAlB,EAAiB,YAAc,2BAE/B,MAAMoB,EAAgBC,EAAM,WAG1B,CAACC,EAAOC,IAENT,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,mCACV,MACE,CACE,kBAAmB,GAAGf,CAAmB,IAC3C,EAGF,iCAACgB,SAAQ,CAAA,GAAGO,EAAO,cAAY,2BAA2B,IAAAC,EACxD,SAACT,EAAAA,kBAAAA,IAAA,MAAA,CAAI,UAAU,2CACb,iCAACU,EAAAA,KAAK,CAAA,GAAG,eAAe,KAAM,GAAI,EACpC,CACF,CAAA,CAAA,CAAA,CAGL,EAEDJ,EAAc,YAAc"}
1
+ {"version":3,"file":"ButtonWithSelect.cjs.js","sources":["../../../src/components/ButtonWithSelect/ButtonWithSelect.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport { MenuTrigger } from \"../Menu/MenuTrigger\";\r\nimport type { ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./ButtonWithSelect.css\";\r\n\r\nconst FIXED_TRIGGER_WIDTH = 44;\r\n\r\ninterface ButtonWithSelectProps extends ButtonProps {\r\n /**\r\n * The default value of the select menu.\r\n */\r\n defaultValue?: string;\r\n /**\r\n * The keys of the disabled items.\r\n */\r\n disabledKeys?: string[];\r\n /**\r\n * The items to display in the select menu.\r\n * - type {@link ActionMenuAction}\r\n */\r\n items: ActionMenuAction[];\r\n /**\r\n * The callback function to call when the selection changes.\r\n */\r\n onSelectionChange?: (key: string) => void;\r\n /**\r\n * The key of the selected item.\r\n */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A button with a select menu.\r\n *\r\n * API:\r\n * - {@link ButtonWithSelectProps}\r\n * - extends {@link ButtonProps}\r\n */\r\nexport function ButtonWithSelect({\r\n items,\r\n defaultValue,\r\n children,\r\n onSelectionChange,\r\n disabledKeys,\r\n selectedKey,\r\n icon,\r\n variant,\r\n fullWidth,\r\n onPress,\r\n ...buttonProps\r\n}: ButtonWithSelectProps) {\r\n const textShift = fullWidth ? FIXED_TRIGGER_WIDTH / 2 : 0;\r\n\r\n return (\r\n <div className=\"proton-ButtonWithSelect\">\r\n <div\r\n className=\"proton-ButtonWithSelect__button\"\r\n style={\r\n {\r\n \"--proton-button-text-shift\": `${textShift}px`,\r\n \"--flex\": fullWidth ? 1 : 0,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button\r\n {...buttonProps}\r\n onPress={onPress}\r\n icon={icon}\r\n fullWidth={fullWidth}\r\n variant={variant}\r\n data-testid=\"ButtonWithSelect-Button\"\r\n >\r\n {children}\r\n </Button>\r\n </div>\r\n\r\n <MenuTrigger\r\n items={items}\r\n disabled={buttonProps.isDisabled}\r\n disabledKeys={disabledKeys}\r\n onSelectionChange={onSelectionChange}\r\n selectedKey={selectedKey}\r\n renderTrigger={({ isOpen, setIsOpen }) => {\r\n return (\r\n <TriggerButton\r\n {...buttonProps}\r\n variant={variant}\r\n onPress={() => setIsOpen(!isOpen)}\r\n />\r\n );\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nButtonWithSelect.displayName = \"ProtonUIButtonWithSelect\";\r\n\r\nconst TriggerButton = React.forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>((props, ref) => {\r\n return (\r\n <div\r\n className=\"proton-ButtonWithSelect__trigger\"\r\n style={\r\n {\r\n \"--trigger-width\": `${FIXED_TRIGGER_WIDTH}px`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button {...props} data-testid=\"ButtonWithSelect-Trigger\" ref={ref}>\r\n <div className=\"proton-ButtonWithSelect__trigger-content\">\r\n <Icon id=\"chevron-down\" size={16} />\r\n </div>\r\n </Button>\r\n </div>\r\n );\r\n});\r\n\r\nTriggerButton.displayName = \"ProtonUIButtonWithSelectTrigger\";\r\n"],"names":["FIXED_TRIGGER_WIDTH","ButtonWithSelect","items","defaultValue","children","onSelectionChange","disabledKeys","selectedKey","icon","variant","fullWidth","onPress","buttonProps","textShift","jsxs","jsx","Button","MenuTrigger","isOpen","setIsOpen","TriggerButton","React","props","ref","Icon"],"mappings":"yTAQA,MAAMA,EAAsB,GAiCrB,SAASC,EAAiB,CAC/B,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,aAAAC,EACA,YAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA0B,CAClB,MAAAC,EAAYH,EAAYV,EAAsB,EAAI,EAGtD,OAAAc,EAAA,kBAAA,KAAC,MAAI,CAAA,UAAU,0BACb,SAAA,CAAAC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,kCACV,MACE,CACE,6BAA8B,GAAGF,CAAS,KAC1C,SAAUH,EAAY,EAAI,CAC5B,EAGF,SAAAK,EAAA,kBAAA,IAACC,EAAA,OAAA,CACE,GAAGJ,EACJ,QAAAD,EACA,KAAAH,EACA,UAAAE,EACA,QAAAD,EACA,cAAY,0BAEX,SAAAL,CAAA,CACH,CAAA,CACF,EAEAW,EAAA,kBAAA,IAACE,EAAA,YAAA,CACC,MAAAf,EACA,SAAUU,EAAY,WACtB,aAAAN,EACA,kBAAAD,EACA,YAAAE,EACA,cAAe,CAAC,CAAE,OAAAW,EAAQ,UAAAC,KAEtBJ,EAAA,kBAAA,IAACK,EAAA,CACE,GAAGR,EACJ,QAAAH,EACA,QAAS,IAAMU,EAAU,CAACD,CAAM,CAAA,CAAA,CAGtC,CACF,CACF,CAAA,CAAA,CAEJ,CAEAjB,EAAiB,YAAc,2BAE/B,MAAMmB,EAAgBC,EAAM,WAG1B,CAACC,EAAOC,IAENR,EAAA,kBAAA,IAAC,MAAA,CACC,UAAU,mCACV,MACE,CACE,kBAAmB,GAAGf,CAAmB,IAC3C,EAGF,iCAACgB,SAAQ,CAAA,GAAGM,EAAO,cAAY,2BAA2B,IAAAC,EACxD,SAACR,EAAAA,kBAAAA,IAAA,MAAA,CAAI,UAAU,2CACb,iCAACS,EAAAA,KAAK,CAAA,GAAG,eAAe,KAAM,GAAI,EACpC,CACF,CAAA,CAAA,CAAA,CAGL,EAEDJ,EAAc,YAAc"}
@@ -2,10 +2,10 @@ import { j as t } from "../../node_modules/react/jsx-runtime.es.js";
2
2
  import j from "react";
3
3
  import { Button as s } from "../Button/Button.es.js";
4
4
  import { Icon as S } from "../Icon/Icon.es.js";
5
- import { MenuTrigger as W } from "../Menu/MenuTrigger.es.js";
5
+ import { MenuTrigger as f } from "../Menu/MenuTrigger.es.js";
6
6
  /* empty css */
7
7
  const c = 44;
8
- function _({
8
+ function W({
9
9
  items: e,
10
10
  defaultValue: i,
11
11
  children: l,
@@ -43,27 +43,26 @@ function _({
43
43
  }
44
44
  ),
45
45
  /* @__PURE__ */ t.jsx(
46
- W,
46
+ f,
47
47
  {
48
48
  items: e,
49
49
  disabled: o.isDisabled,
50
50
  disabledKeys: m,
51
51
  onSelectionChange: a,
52
52
  selectedKey: u,
53
- renderTrigger: ({ triggerRef: p, isOpen: B, setIsOpen: f }) => /* @__PURE__ */ t.jsx(
53
+ renderTrigger: ({ isOpen: p, setIsOpen: B }) => /* @__PURE__ */ t.jsx(
54
54
  d,
55
55
  {
56
56
  ...o,
57
57
  variant: n,
58
- ref: p,
59
- onPress: () => f(!B)
58
+ onPress: () => B(!p)
60
59
  }
61
60
  )
62
61
  }
63
62
  )
64
63
  ] });
65
64
  }
66
- _.displayName = "ProtonUIButtonWithSelect";
65
+ W.displayName = "ProtonUIButtonWithSelect";
67
66
  const d = j.forwardRef((e, i) => /* @__PURE__ */ t.jsx(
68
67
  "div",
69
68
  {
@@ -76,6 +75,6 @@ const d = j.forwardRef((e, i) => /* @__PURE__ */ t.jsx(
76
75
  ));
77
76
  d.displayName = "ProtonUIButtonWithSelectTrigger";
78
77
  export {
79
- _ as ButtonWithSelect
78
+ W as ButtonWithSelect
80
79
  };
81
80
  //# sourceMappingURL=ButtonWithSelect.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonWithSelect.es.js","sources":["../../../src/components/ButtonWithSelect/ButtonWithSelect.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport { MenuTrigger } from \"../Menu/MenuTrigger\";\r\nimport type { ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./ButtonWithSelect.css\";\r\n\r\nconst FIXED_TRIGGER_WIDTH = 44;\r\n\r\ninterface ButtonWithSelectProps extends ButtonProps {\r\n /**\r\n * The default value of the select menu.\r\n */\r\n defaultValue?: string;\r\n /**\r\n * The keys of the disabled items.\r\n */\r\n disabledKeys?: string[];\r\n /**\r\n * The items to display in the select menu.\r\n * - type {@link ActionMenuAction}\r\n */\r\n items: ActionMenuAction[];\r\n /**\r\n * The callback function to call when the selection changes.\r\n */\r\n onSelectionChange?: (key: string) => void;\r\n /**\r\n * The key of the selected item.\r\n */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A button with a select menu.\r\n *\r\n * API:\r\n * - {@link ButtonWithSelectProps}\r\n * - extends {@link ButtonProps}\r\n */\r\nexport function ButtonWithSelect({\r\n items,\r\n defaultValue,\r\n children,\r\n onSelectionChange,\r\n disabledKeys,\r\n selectedKey,\r\n icon,\r\n variant,\r\n fullWidth,\r\n onPress,\r\n ...buttonProps\r\n}: ButtonWithSelectProps) {\r\n const textShift = fullWidth ? FIXED_TRIGGER_WIDTH / 2 : 0;\r\n\r\n return (\r\n <div className=\"proton-ButtonWithSelect\">\r\n <div\r\n className=\"proton-ButtonWithSelect__button\"\r\n style={\r\n {\r\n \"--proton-button-text-shift\": `${textShift}px`,\r\n \"--flex\": fullWidth ? 1 : 0,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button\r\n {...buttonProps}\r\n onPress={onPress}\r\n icon={icon}\r\n fullWidth={fullWidth}\r\n variant={variant}\r\n data-testid=\"ButtonWithSelect-Button\"\r\n >\r\n {children}\r\n </Button>\r\n </div>\r\n\r\n <MenuTrigger\r\n items={items}\r\n disabled={buttonProps.isDisabled}\r\n disabledKeys={disabledKeys}\r\n onSelectionChange={onSelectionChange}\r\n selectedKey={selectedKey}\r\n renderTrigger={({ triggerRef, isOpen, setIsOpen }) => {\r\n return (\r\n <TriggerButton\r\n {...buttonProps}\r\n variant={variant}\r\n ref={triggerRef}\r\n onPress={() => setIsOpen(!isOpen)}\r\n />\r\n );\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nButtonWithSelect.displayName = \"ProtonUIButtonWithSelect\";\r\n\r\nconst TriggerButton = React.forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>((props, ref) => {\r\n return (\r\n <div\r\n className=\"proton-ButtonWithSelect__trigger\"\r\n style={\r\n {\r\n \"--trigger-width\": `${FIXED_TRIGGER_WIDTH}px`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button {...props} data-testid=\"ButtonWithSelect-Trigger\" ref={ref}>\r\n <div className=\"proton-ButtonWithSelect__trigger-content\">\r\n <Icon id=\"chevron-down\" size={16} />\r\n </div>\r\n </Button>\r\n </div>\r\n );\r\n});\r\n\r\nTriggerButton.displayName = \"ProtonUIButtonWithSelectTrigger\";\r\n"],"names":["FIXED_TRIGGER_WIDTH","ButtonWithSelect","items","defaultValue","children","onSelectionChange","disabledKeys","selectedKey","icon","variant","fullWidth","onPress","buttonProps","textShift","jsxs","jsx","Button","MenuTrigger","triggerRef","isOpen","setIsOpen","TriggerButton","React","props","ref","Icon"],"mappings":";;;;;;AAQA,MAAMA,IAAsB;AAiCrB,SAASC,EAAiB;AAAA,EAC/B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAA0B;AAClB,QAAAC,IAAYH,IAAYV,IAAsB,IAAI;AAGtD,SAAAc,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,2BACb,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OACE;AAAA,UACE,8BAA8B,GAAGF,CAAS;AAAA,UAC1C,UAAUH,IAAY,IAAI;AAAA,QAC5B;AAAA,QAGF,UAAAK,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACE,GAAGJ;AAAA,YACJ,SAAAD;AAAA,YACA,MAAAH;AAAA,YACA,WAAAE;AAAA,YACA,SAAAD;AAAA,YACA,eAAY;AAAA,YAEX,UAAAL;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IACF;AAAA,IAEAW,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAf;AAAA,QACA,UAAUU,EAAY;AAAA,QACtB,cAAAN;AAAA,QACA,mBAAAD;AAAA,QACA,aAAAE;AAAA,QACA,eAAe,CAAC,EAAE,YAAAW,GAAY,QAAAC,GAAQ,WAAAC,QAElCL,gBAAAA,EAAA;AAAA,UAACM;AAAA,UAAA;AAAA,YACE,GAAGT;AAAA,YACJ,SAAAH;AAAA,YACA,KAAKS;AAAA,YACL,SAAS,MAAME,EAAU,CAACD,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAGtC;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAEAlB,EAAiB,cAAc;AAE/B,MAAMoB,IAAgBC,EAAM,WAG1B,CAACC,GAAOC,MAENT,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,OACE;AAAA,MACE,mBAAmB,GAAGf,CAAmB;AAAA,IAC3C;AAAA,IAGF,gCAACgB,GAAQ,EAAA,GAAGO,GAAO,eAAY,4BAA2B,KAAAC,GACxD,UAACT,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,4CACb,gCAACU,GAAK,EAAA,IAAG,gBAAe,MAAM,IAAI,GACpC,EACF,CAAA;AAAA,EAAA;AAAA,CAGL;AAEDJ,EAAc,cAAc;"}
1
+ {"version":3,"file":"ButtonWithSelect.es.js","sources":["../../../src/components/ButtonWithSelect/ButtonWithSelect.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { Button, type ButtonProps } from \"../Button/Button\";\r\nimport { Icon } from \"../Icon/Icon\";\r\nimport { MenuTrigger } from \"../Menu/MenuTrigger\";\r\nimport type { ActionMenuAction } from \"../ActionMenu/ActionMenu\";\r\n\r\nimport \"./ButtonWithSelect.css\";\r\n\r\nconst FIXED_TRIGGER_WIDTH = 44;\r\n\r\ninterface ButtonWithSelectProps extends ButtonProps {\r\n /**\r\n * The default value of the select menu.\r\n */\r\n defaultValue?: string;\r\n /**\r\n * The keys of the disabled items.\r\n */\r\n disabledKeys?: string[];\r\n /**\r\n * The items to display in the select menu.\r\n * - type {@link ActionMenuAction}\r\n */\r\n items: ActionMenuAction[];\r\n /**\r\n * The callback function to call when the selection changes.\r\n */\r\n onSelectionChange?: (key: string) => void;\r\n /**\r\n * The key of the selected item.\r\n */\r\n selectedKey?: string;\r\n}\r\n\r\n/**\r\n * A button with a select menu.\r\n *\r\n * API:\r\n * - {@link ButtonWithSelectProps}\r\n * - extends {@link ButtonProps}\r\n */\r\nexport function ButtonWithSelect({\r\n items,\r\n defaultValue,\r\n children,\r\n onSelectionChange,\r\n disabledKeys,\r\n selectedKey,\r\n icon,\r\n variant,\r\n fullWidth,\r\n onPress,\r\n ...buttonProps\r\n}: ButtonWithSelectProps) {\r\n const textShift = fullWidth ? FIXED_TRIGGER_WIDTH / 2 : 0;\r\n\r\n return (\r\n <div className=\"proton-ButtonWithSelect\">\r\n <div\r\n className=\"proton-ButtonWithSelect__button\"\r\n style={\r\n {\r\n \"--proton-button-text-shift\": `${textShift}px`,\r\n \"--flex\": fullWidth ? 1 : 0,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button\r\n {...buttonProps}\r\n onPress={onPress}\r\n icon={icon}\r\n fullWidth={fullWidth}\r\n variant={variant}\r\n data-testid=\"ButtonWithSelect-Button\"\r\n >\r\n {children}\r\n </Button>\r\n </div>\r\n\r\n <MenuTrigger\r\n items={items}\r\n disabled={buttonProps.isDisabled}\r\n disabledKeys={disabledKeys}\r\n onSelectionChange={onSelectionChange}\r\n selectedKey={selectedKey}\r\n renderTrigger={({ isOpen, setIsOpen }) => {\r\n return (\r\n <TriggerButton\r\n {...buttonProps}\r\n variant={variant}\r\n onPress={() => setIsOpen(!isOpen)}\r\n />\r\n );\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nButtonWithSelect.displayName = \"ProtonUIButtonWithSelect\";\r\n\r\nconst TriggerButton = React.forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonProps\r\n>((props, ref) => {\r\n return (\r\n <div\r\n className=\"proton-ButtonWithSelect__trigger\"\r\n style={\r\n {\r\n \"--trigger-width\": `${FIXED_TRIGGER_WIDTH}px`,\r\n } as React.CSSProperties\r\n }\r\n >\r\n <Button {...props} data-testid=\"ButtonWithSelect-Trigger\" ref={ref}>\r\n <div className=\"proton-ButtonWithSelect__trigger-content\">\r\n <Icon id=\"chevron-down\" size={16} />\r\n </div>\r\n </Button>\r\n </div>\r\n );\r\n});\r\n\r\nTriggerButton.displayName = \"ProtonUIButtonWithSelectTrigger\";\r\n"],"names":["FIXED_TRIGGER_WIDTH","ButtonWithSelect","items","defaultValue","children","onSelectionChange","disabledKeys","selectedKey","icon","variant","fullWidth","onPress","buttonProps","textShift","jsxs","jsx","Button","MenuTrigger","isOpen","setIsOpen","TriggerButton","React","props","ref","Icon"],"mappings":";;;;;;AAQA,MAAMA,IAAsB;AAiCrB,SAASC,EAAiB;AAAA,EAC/B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAA0B;AAClB,QAAAC,IAAYH,IAAYV,IAAsB,IAAI;AAGtD,SAAAc,gBAAAA,EAAA,KAAC,OAAI,EAAA,WAAU,2BACb,UAAA;AAAA,IAAAC,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OACE;AAAA,UACE,8BAA8B,GAAGF,CAAS;AAAA,UAC1C,UAAUH,IAAY,IAAI;AAAA,QAC5B;AAAA,QAGF,UAAAK,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACE,GAAGJ;AAAA,YACJ,SAAAD;AAAA,YACA,MAAAH;AAAA,YACA,WAAAE;AAAA,YACA,SAAAD;AAAA,YACA,eAAY;AAAA,YAEX,UAAAL;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IACF;AAAA,IAEAW,gBAAAA,EAAA;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAf;AAAA,QACA,UAAUU,EAAY;AAAA,QACtB,cAAAN;AAAA,QACA,mBAAAD;AAAA,QACA,aAAAE;AAAA,QACA,eAAe,CAAC,EAAE,QAAAW,GAAQ,WAAAC,QAEtBJ,gBAAAA,EAAA;AAAA,UAACK;AAAA,UAAA;AAAA,YACE,GAAGR;AAAA,YACJ,SAAAH;AAAA,YACA,SAAS,MAAMU,EAAU,CAACD,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MAGtC;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;AAEAjB,EAAiB,cAAc;AAE/B,MAAMmB,IAAgBC,EAAM,WAG1B,CAACC,GAAOC,MAENR,gBAAAA,EAAA;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAU;AAAA,IACV,OACE;AAAA,MACE,mBAAmB,GAAGf,CAAmB;AAAA,IAC3C;AAAA,IAGF,gCAACgB,GAAQ,EAAA,GAAGM,GAAO,eAAY,4BAA2B,KAAAC,GACxD,UAACR,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,4CACb,gCAACS,GAAK,EAAA,IAAG,gBAAe,MAAM,IAAI,GACpC,EACF,CAAA;AAAA,EAAA;AAAA,CAGL;AAEDJ,EAAc,cAAc;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../node_modules/react/jsx-runtime.cjs.js"),s=require("react"),B=require("../../ThemeProvider.cjs.js");;/* empty css */const F=require("../../../utils/copy.cjs.js"),p=require("../../../utils/string.cjs.js"),W=s.forwardRef(({prefix:x,suffix:f,description:o,descriptionPosition:I="top",isDisabled:h,error:n,onChange:_,label:l,name:i,placeholder:P,type:T="text",value:R,autoFocus:g,autoComplete:k,isRequired:m=!1,isReadOnly:y=!1,onSubmit:b,onClear:E,"data-testid":z},O)=>{const N=s.useRef(null),c=s.useRef(null),u=s.useRef(null),r=s.useRef(null),{className:S}=B.useTheme(),D=O||N;s.useEffect(()=>{if(!r.current)return;const t=()=>{var $,q;if(r.current){const a=r.current.offsetWidth||200;r.current.style.setProperty("--container-width",`${a}px`)}if(c.current){const a=c.current.offsetWidth||32;($=r.current)==null||$.style.setProperty("--prefix-width",`${a}px`)}if(u.current){const a=u.current.offsetWidth||32;(q=r.current)==null||q.style.setProperty("--suffix-width",`${a}px`)}};t();const d=new ResizeObserver(t);return r.current&&d.observe(r.current),c.current&&d.observe(c.current),u.current&&d.observe(u.current),()=>{d.disconnect()}},[x,f]);const w=`${i}-input`,j=`${i}-error`,v=`${i}-description`;return e.jsxRuntimeExports.jsxs("div",{className:"proton-Input__container",ref:r,children:[o&&I==="top"&&e.jsxRuntimeExports.jsx("div",{id:v,className:"proton-Input__text","aria-live":"polite",children:o}),e.jsxRuntimeExports.jsxs("div",{className:"proton-Input__container-inner",children:[x&&e.jsxRuntimeExports.jsx("div",{ref:c,className:p.csx("proton-Input__descriptor","proton-Input__prefix"),children:x}),e.jsxRuntimeExports.jsx("input",{id:w,name:i,type:T,value:R,onChange:t=>{_==null||_(t.target.value)},onKeyDown:t=>{switch(t.key){case"Enter":b&&(t.preventDefault(),b(t));break;case"Escape":E&&(t.preventDefault(),E());break}},onCopy:async()=>{var t;return await F.copyTextToClipboard((t=N.current)==null?void 0:t.value)},disabled:h,readOnly:y,required:m,autoFocus:g,autoComplete:k?"on":"off",placeholder:l?void 0:P,"aria-label":l||i,"aria-invalid":!!n,"aria-errormessage":typeof n=="string"?n:j,"aria-required":m,"aria-readonly":y,"aria-describedby":n?j:o?v:void 0,"aria-disabled":h,"data-testid":z,ref:D,className:p.csx("proton-Input",n&&"proton-Input--error",l&&"proton-Input__label-top",S)}),e.jsxRuntimeExports.jsxs("label",{htmlFor:w,className:p.csx("proton-Input__label",R&&"proton-Input__label--filled"),children:[l,m&&e.jsxRuntimeExports.jsx("span",{"aria-hidden":"true",children:" *"})]}),f&&e.jsxRuntimeExports.jsx("div",{ref:u,className:p.csx("proton-Input__descriptor","proton-Input__suffix"),children:f})]}),n?e.jsxRuntimeExports.jsx("div",{role:"alert",className:p.csx("proton-Input__error","proton-Input__text"),id:j,children:n}):o&&I==="bottom"?e.jsxRuntimeExports.jsx("div",{id:v,className:"proton-Input__text","aria-live":"polite",children:o}):null]})});W.displayName="ProtonUIInput";exports.Input=W;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../node_modules/react/jsx-runtime.cjs.js"),s=require("react"),B=require("../../ThemeProvider.cjs.js");;/* empty css */const F=require("../../../utils/copy.cjs.js"),o=require("../../../utils/string.cjs.js"),W=s.forwardRef(({prefix:l,suffix:d,description:i,descriptionPosition:j="top",isDisabled:v,error:n,onChange:_,label:x,name:u,placeholder:P,type:T="text",value:R,autoFocus:g,autoComplete:k,isRequired:h=!1,isReadOnly:y=!1,onSubmit:b,onClear:E,"data-testid":z},O)=>{const N=s.useRef(null),c=s.useRef(null),p=s.useRef(null),r=s.useRef(null),{className:S}=B.useTheme(),D=O||N;s.useEffect(()=>{if(!r.current)return;const t=()=>{var $,q;if(r.current){const a=r.current.offsetWidth||200;r.current.style.setProperty("--container-width",`${a}px`)}if(c.current){const a=c.current.offsetWidth||32;($=r.current)==null||$.style.setProperty("--prefix-width",`${a}px`)}if(p.current){const a=p.current.offsetWidth||32;(q=r.current)==null||q.style.setProperty("--suffix-width",`${a}px`)}};t();const f=new ResizeObserver(t);return r.current&&f.observe(r.current),c.current&&f.observe(c.current),p.current&&f.observe(p.current),()=>{f.disconnect()}},[l,d]);const w=`${u}-input`,m=`${u}-error`,I=`${u}-description`;return e.jsxRuntimeExports.jsxs("div",{ref:r,children:[i&&j==="top"&&e.jsxRuntimeExports.jsx("div",{id:I,className:"proton-Input__text","aria-live":"polite",children:i}),e.jsxRuntimeExports.jsxs("div",{className:o.csx("proton-Input__container-inner",l&&"proton-Input__has-prefix",d&&"proton-Input__has-suffix"),children:[l&&e.jsxRuntimeExports.jsx("div",{ref:c,className:o.csx("proton-Input__descriptor","proton-Input__prefix"),children:l}),e.jsxRuntimeExports.jsx("input",{id:w,name:u,type:T,value:R,onChange:t=>{_==null||_(t.target.value)},onKeyDown:t=>{switch(t.key){case"Enter":b&&(t.preventDefault(),b(t));break;case"Escape":E&&(t.preventDefault(),E());break}},onCopy:async()=>{var t;return await F.copyTextToClipboard((t=N.current)==null?void 0:t.value)},disabled:v,readOnly:y,required:h,autoFocus:g,autoComplete:k?"on":"off",placeholder:x?void 0:P,"aria-label":x||u,"aria-invalid":!!n,"aria-errormessage":typeof n=="string"?n:m,"aria-required":h,"aria-readonly":y,"aria-describedby":n?m:i?I:void 0,"aria-disabled":v,"data-testid":z,ref:D,className:o.csx("proton-Input",n&&"proton-Input--error",x&&"proton-Input__label-top",S)}),e.jsxRuntimeExports.jsxs("label",{htmlFor:w,className:o.csx("proton-Input__label",R&&"proton-Input__label--filled"),children:[x,h&&e.jsxRuntimeExports.jsx("span",{"aria-hidden":"true",children:" *"})]}),d&&e.jsxRuntimeExports.jsx("div",{ref:p,className:o.csx("proton-Input__descriptor","proton-Input__suffix"),children:d})]}),n?e.jsxRuntimeExports.jsx("div",{role:"alert",className:o.csx("proton-Input__error","proton-Input__text"),id:m,children:n}):i&&j==="bottom"?e.jsxRuntimeExports.jsx("div",{id:I,className:"proton-Input__text","aria-live":"polite",children:i}):null]})});W.displayName="ProtonUIInput";exports.Input=W;
2
2
  //# sourceMappingURL=Input.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs.js","sources":["../../../../src/components/Input/BaseInput/Input.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { forwardRef, useEffect, useRef } from \"react\";\r\n\r\nimport { useTheme } from \"../../ThemeProvider\";\r\nimport { csx } from \"../../../utils\";\r\nimport \"./Input.css\";\r\nimport { copyTextToClipboard } from \"../../../utils/copy\";\r\n\r\nexport interface BaseInputProps {\r\n /**\r\n * onChange handler for the input\r\n */\r\n onChange?: (value: string) => void;\r\n\r\n /** Whether the input is disabled. */\r\n isDisabled?: boolean;\r\n\r\n /** Description text shown above the input. */\r\n description?: React.ReactNode | string;\r\n\r\n /**\r\n * The position of the description text.\r\n * @default \"top\"\r\n */\r\n descriptionPosition?: \"top\" | \"bottom\";\r\n\r\n /** Error state that changes the input's visual style and displays an error message. */\r\n error?: React.ReactNode | string;\r\n\r\n /**\r\n * Label for the input element.\r\n * @note When a label is provided, the input will have extra padding, and the label will float above the text input when focused or filled.\r\n */\r\n label?: string;\r\n\r\n /** Test ID for the component. */\r\n \"data-testid\"?: string;\r\n\r\n /** Content to display before the input. Typically used for icons. */\r\n prefix?: React.ReactNode;\r\n\r\n /** Content to display after the input. Typically used for icons. */\r\n suffix?: React.ReactNode;\r\n\r\n /**\r\n * Should the browser's autocomplete be enabled?\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\r\n */\r\n autoComplete?: boolean;\r\n\r\n /**\r\n * Should the input be autofocused?\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autofocus\r\n */\r\n autoFocus?: boolean;\r\n\r\n /**\r\n * The name attribute of the input element.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/name\r\n */\r\n name: string;\r\n\r\n /**\r\n * The placeholder text to display when the input is empty.\r\n * @note label takes precedence over placeholder, if both are provided.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * The type attribute of the input element.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type\r\n * @default \"text\"\r\n */\r\n type?: string;\r\n\r\n /**\r\n * The value of the input.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value\r\n */\r\n value?: string;\r\n\r\n /**\r\n * Whether the input is required.\r\n * @default false\r\n */\r\n isRequired?: boolean;\r\n\r\n /**\r\n * Whether the input is read-only.\r\n * @default false\r\n */\r\n isReadOnly?: boolean;\r\n\r\n /**\r\n * Called when the input is submitted (e.g. by pressing Enter).\r\n */\r\n onSubmit?: React.FormEventHandler<HTMLInputElement>;\r\n\r\n /**\r\n * Called when the input is cleared (e.g. by pressing Escape).\r\n */\r\n onClear?: () => void;\r\n}\r\n\r\n/**\r\n * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.\r\n *\r\n * API:\r\n * - {@link BaseInputProps}\r\n */\r\nexport const Input = forwardRef<HTMLInputElement, BaseInputProps>(\r\n (\r\n {\r\n prefix,\r\n suffix,\r\n description,\r\n descriptionPosition = \"top\",\r\n isDisabled,\r\n error,\r\n onChange,\r\n label,\r\n name,\r\n placeholder,\r\n type = \"text\",\r\n value,\r\n autoFocus,\r\n autoComplete,\r\n isRequired = false,\r\n isReadOnly = false,\r\n onSubmit,\r\n onClear,\r\n \"data-testid\": testId,\r\n },\r\n forwardedRef: React.RefObject<HTMLInputElement>\r\n ) => {\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const prefixRef = useRef<HTMLDivElement>(null);\r\n const suffixRef = useRef<HTMLDivElement>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const { className } = useTheme();\r\n const ref = forwardedRef || inputRef;\r\n\r\n // Control dynamic prefix and suffix widths using ResizeObserver\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const updateSizes = () => {\r\n if (containerRef.current) {\r\n const containerWidth = containerRef.current.offsetWidth || 200;\r\n containerRef.current.style.setProperty(\r\n \"--container-width\",\r\n `${containerWidth}px`\r\n );\r\n }\r\n\r\n if (prefixRef.current) {\r\n const prefixWidth = prefixRef.current.offsetWidth || 32;\r\n containerRef.current?.style.setProperty(\r\n \"--prefix-width\",\r\n `${prefixWidth}px`\r\n );\r\n }\r\n\r\n if (suffixRef.current) {\r\n const suffixWidth = suffixRef.current.offsetWidth || 32;\r\n containerRef.current?.style.setProperty(\r\n \"--suffix-width\",\r\n `${suffixWidth}px`\r\n );\r\n }\r\n };\r\n\r\n updateSizes();\r\n\r\n const resizeObserver = new ResizeObserver(updateSizes);\r\n\r\n if (containerRef.current) {\r\n resizeObserver.observe(containerRef.current);\r\n }\r\n if (prefixRef.current) {\r\n resizeObserver.observe(prefixRef.current);\r\n }\r\n if (suffixRef.current) {\r\n resizeObserver.observe(suffixRef.current);\r\n }\r\n\r\n return () => {\r\n resizeObserver.disconnect();\r\n };\r\n }, [prefix, suffix]);\r\n\r\n const inputId = `${name}-input`;\r\n const errorId = `${name}-error`;\r\n const descriptionId = `${name}-description`;\r\n\r\n return (\r\n <div className=\"proton-Input__container\" ref={containerRef}>\r\n {description && descriptionPosition === \"top\" && (\r\n <div\r\n id={descriptionId}\r\n className=\"proton-Input__text\"\r\n aria-live=\"polite\"\r\n >\r\n {description}\r\n </div>\r\n )}\r\n <div className=\"proton-Input__container-inner\">\r\n {prefix && (\r\n <div\r\n ref={prefixRef}\r\n className={csx(\r\n \"proton-Input__descriptor\",\r\n \"proton-Input__prefix\"\r\n )}\r\n >\r\n {prefix}\r\n </div>\r\n )}\r\n\r\n <input\r\n id={inputId}\r\n name={name}\r\n type={type}\r\n value={value}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\r\n onChange?.(e.target.value);\r\n }}\r\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case \"Enter\":\r\n if (onSubmit) {\r\n e.preventDefault();\r\n onSubmit(e);\r\n }\r\n break;\r\n case \"Escape\":\r\n if (onClear) {\r\n e.preventDefault();\r\n onClear();\r\n }\r\n break;\r\n }\r\n }}\r\n onCopy={async () =>\r\n await copyTextToClipboard(inputRef.current?.value)\r\n }\r\n disabled={isDisabled}\r\n readOnly={isReadOnly}\r\n required={isRequired}\r\n autoFocus={autoFocus}\r\n autoComplete={autoComplete ? \"on\" : \"off\"}\r\n placeholder={label ? undefined : placeholder}\r\n aria-label={label || name}\r\n aria-invalid={Boolean(error)}\r\n aria-errormessage={typeof error === \"string\" ? error : errorId}\r\n aria-required={isRequired}\r\n aria-readonly={isReadOnly}\r\n aria-describedby={\r\n error ? errorId : description ? descriptionId : undefined\r\n }\r\n aria-disabled={isDisabled}\r\n data-testid={testId}\r\n ref={ref}\r\n className={csx(\r\n \"proton-Input\",\r\n error && \"proton-Input--error\",\r\n label && \"proton-Input__label-top\",\r\n className\r\n )}\r\n />\r\n\r\n <label\r\n htmlFor={inputId}\r\n className={csx(\r\n \"proton-Input__label\",\r\n value && \"proton-Input__label--filled\"\r\n )}\r\n >\r\n {label}\r\n {isRequired && <span aria-hidden=\"true\"> *</span>}\r\n </label>\r\n\r\n {suffix && (\r\n <div\r\n ref={suffixRef}\r\n className={csx(\r\n \"proton-Input__descriptor\",\r\n \"proton-Input__suffix\"\r\n )}\r\n >\r\n {suffix}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {error ? (\r\n <div\r\n role=\"alert\"\r\n className={csx(\"proton-Input__error\", \"proton-Input__text\")}\r\n id={errorId}\r\n >\r\n {error}\r\n </div>\r\n ) : description && descriptionPosition === \"bottom\" ? (\r\n <div\r\n id={descriptionId}\r\n className=\"proton-Input__text\"\r\n aria-live=\"polite\"\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"ProtonUIInput\";\r\n"],"names":["Input","forwardRef","prefix","suffix","description","descriptionPosition","isDisabled","error","onChange","label","name","placeholder","type","value","autoFocus","autoComplete","isRequired","isReadOnly","onSubmit","onClear","testId","forwardedRef","inputRef","useRef","prefixRef","suffixRef","containerRef","className","useTheme","ref","useEffect","updateSizes","containerWidth","prefixWidth","_a","suffixWidth","_b","resizeObserver","inputId","errorId","descriptionId","jsxs","jsx","csx","e","copyTextToClipboard"],"mappings":"mUAgHaA,EAAQC,EAAA,WACnB,CACE,CACE,OAAAC,EACA,OAAAC,EACA,YAAAC,EACA,oBAAAC,EAAsB,MACtB,WAAAC,EACA,MAAAC,EACA,SAAAC,EACA,MAAAC,EACA,KAAAC,EACA,YAAAC,EACA,KAAAC,EAAO,OACP,MAAAC,EACA,UAAAC,EACA,aAAAC,EACA,WAAAC,EAAa,GACb,WAAAC,EAAa,GACb,SAAAC,EACA,QAAAC,EACA,cAAeC,GAEjBC,IACG,CACG,MAAAC,EAAWC,SAAyB,IAAI,EACxCC,EAAYD,SAAuB,IAAI,EACvCE,EAAYF,SAAuB,IAAI,EACvCG,EAAeH,SAAuB,IAAI,EAC1C,CAAE,UAAAI,GAAcC,EAAAA,WAChBC,EAAMR,GAAgBC,EAG5BQ,EAAAA,UAAU,IAAM,CACV,GAAA,CAACJ,EAAa,QAAS,OAE3B,MAAMK,EAAc,IAAM,SACxB,GAAIL,EAAa,QAAS,CAClB,MAAAM,EAAiBN,EAAa,QAAQ,aAAe,IAC3DA,EAAa,QAAQ,MAAM,YACzB,oBACA,GAAGM,CAAc,IAAA,CAErB,CAEA,GAAIR,EAAU,QAAS,CACf,MAAAS,EAAcT,EAAU,QAAQ,aAAe,IACrDU,EAAAR,EAAa,UAAb,MAAAQ,EAAsB,MAAM,YAC1B,iBACA,GAAGD,CAAW,KAElB,CAEA,GAAIR,EAAU,QAAS,CACf,MAAAU,EAAcV,EAAU,QAAQ,aAAe,IACrDW,EAAAV,EAAa,UAAb,MAAAU,EAAsB,MAAM,YAC1B,iBACA,GAAGD,CAAW,KAElB,CAAA,EAGUJ,IAEN,MAAAM,EAAiB,IAAI,eAAeN,CAAW,EAErD,OAAIL,EAAa,SACAW,EAAA,QAAQX,EAAa,OAAO,EAEzCF,EAAU,SACGa,EAAA,QAAQb,EAAU,OAAO,EAEtCC,EAAU,SACGY,EAAA,QAAQZ,EAAU,OAAO,EAGnC,IAAM,CACXY,EAAe,WAAW,CAAA,CAC5B,EACC,CAACnC,EAAQC,CAAM,CAAC,EAEb,MAAAmC,EAAU,GAAG5B,CAAI,SACjB6B,EAAU,GAAG7B,CAAI,SACjB8B,EAAgB,GAAG9B,CAAI,eAE7B,OACG+B,EAAAA,kBAAAA,KAAA,MAAA,CAAI,UAAU,0BAA0B,IAAKf,EAC3C,SAAA,CAAAtB,GAAeC,IAAwB,OACtCqC,EAAA,kBAAA,IAAC,MAAA,CACC,GAAIF,EACJ,UAAU,qBACV,YAAU,SAET,SAAApC,CAAA,CACH,EAEFqC,EAAAA,kBAAAA,KAAC,MAAI,CAAA,UAAU,gCACZ,SAAA,CACCvC,GAAAwC,EAAA,kBAAA,IAAC,MAAA,CACC,IAAKlB,EACL,UAAWmB,EAAA,IACT,2BACA,sBACF,EAEC,SAAAzC,CAAA,CACH,EAGFwC,EAAA,kBAAA,IAAC,QAAA,CACC,GAAIJ,EACJ,KAAA5B,EACA,KAAAE,EACA,MAAAC,EACA,SAAW+B,GAA2C,CACzCpC,GAAA,MAAAA,EAAAoC,EAAE,OAAO,MACtB,EACA,UAAYA,GAA6C,CACvD,OAAQA,EAAE,IAAK,CACb,IAAK,QACC1B,IACF0B,EAAE,eAAe,EACjB1B,EAAS0B,CAAC,GAEZ,MACF,IAAK,SACCzB,IACFyB,EAAE,eAAe,EACTzB,KAEV,KACJ,CACF,EACA,OAAQ,SAAA,OACN,aAAM0B,EAAAA,qBAAoBX,EAAAZ,EAAS,UAAT,YAAAY,EAAkB,KAAK,GAEnD,SAAU5B,EACV,SAAUW,EACV,SAAUD,EACV,UAAAF,EACA,aAAcC,EAAe,KAAO,MACpC,YAAaN,EAAQ,OAAYE,EACjC,aAAYF,GAASC,EACrB,eAAc,EAAQH,EACtB,oBAAmB,OAAOA,GAAU,SAAWA,EAAQgC,EACvD,gBAAevB,EACf,gBAAeC,EACf,mBACEV,EAAQgC,EAAUnC,EAAcoC,EAAgB,OAElD,gBAAelC,EACf,cAAac,EACb,IAAAS,EACA,UAAWc,EAAA,IACT,eACApC,GAAS,sBACTE,GAAS,0BACTkB,CACF,CAAA,CACF,EAEAc,EAAA,kBAAA,KAAC,QAAA,CACC,QAASH,EACT,UAAWK,EAAA,IACT,sBACA9B,GAAS,6BACX,EAEC,SAAA,CAAAJ,EACAO,GAAc0B,EAAA,kBAAA,IAAC,OAAK,CAAA,cAAY,OAAO,SAAE,KAAA,CAAA,CAAA,CAC5C,EAECvC,GACCuC,EAAA,kBAAA,IAAC,MAAA,CACC,IAAKjB,EACL,UAAWkB,EAAA,IACT,2BACA,sBACF,EAEC,SAAAxC,CAAA,CACH,CAAA,EAEJ,EAECI,EACCmC,EAAA,kBAAA,IAAC,MAAA,CACC,KAAK,QACL,UAAWC,EAAAA,IAAI,sBAAuB,oBAAoB,EAC1D,GAAIJ,EAEH,SAAAhC,CAAA,CAAA,EAEDH,GAAeC,IAAwB,SACzCqC,EAAA,kBAAA,IAAC,MAAA,CACC,GAAIF,EACJ,UAAU,qBACV,YAAU,SAET,SAAApC,CAAA,CAAA,EAED,IACN,CAAA,CAAA,CAEJ,CACF,EAEAJ,EAAM,YAAc"}
1
+ {"version":3,"file":"Input.cjs.js","sources":["../../../../src/components/Input/BaseInput/Input.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { forwardRef, useEffect, useRef } from \"react\";\r\n\r\nimport { useTheme } from \"../../ThemeProvider\";\r\nimport { csx } from \"../../../utils\";\r\nimport \"./Input.css\";\r\nimport { copyTextToClipboard } from \"../../../utils/copy\";\r\n\r\nexport interface BaseInputProps {\r\n /**\r\n * onChange handler for the input\r\n */\r\n onChange?: (value: string) => void;\r\n\r\n /** Whether the input is disabled. */\r\n isDisabled?: boolean;\r\n\r\n /** Description text shown above the input. */\r\n description?: React.ReactNode | string;\r\n\r\n /**\r\n * The position of the description text.\r\n * @default \"top\"\r\n */\r\n descriptionPosition?: \"top\" | \"bottom\";\r\n\r\n /** Error state that changes the input's visual style and displays an error message. */\r\n error?: React.ReactNode | string;\r\n\r\n /**\r\n * Label for the input element.\r\n * @note When a label is provided, the input will have extra padding, and the label will float above the text input when focused or filled.\r\n */\r\n label?: string;\r\n\r\n /** Test ID for the component. */\r\n \"data-testid\"?: string;\r\n\r\n /** Content to display before the input. Typically used for icons. */\r\n prefix?: React.ReactNode;\r\n\r\n /** Content to display after the input. Typically used for icons. */\r\n suffix?: React.ReactNode;\r\n\r\n /**\r\n * Should the browser's autocomplete be enabled?\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\r\n */\r\n autoComplete?: boolean;\r\n\r\n /**\r\n * Should the input be autofocused?\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autofocus\r\n */\r\n autoFocus?: boolean;\r\n\r\n /**\r\n * The name attribute of the input element.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/name\r\n */\r\n name: string;\r\n\r\n /**\r\n * The placeholder text to display when the input is empty.\r\n * @note label takes precedence over placeholder, if both are provided.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/placeholder\r\n */\r\n placeholder?: string;\r\n\r\n /**\r\n * The type attribute of the input element.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type\r\n * @default \"text\"\r\n */\r\n type?: string;\r\n\r\n /**\r\n * The value of the input.\r\n * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value\r\n */\r\n value?: string;\r\n\r\n /**\r\n * Whether the input is required.\r\n * @default false\r\n */\r\n isRequired?: boolean;\r\n\r\n /**\r\n * Whether the input is read-only.\r\n * @default false\r\n */\r\n isReadOnly?: boolean;\r\n\r\n /**\r\n * Called when the input is submitted (e.g. by pressing Enter).\r\n */\r\n onSubmit?: React.FormEventHandler<HTMLInputElement>;\r\n\r\n /**\r\n * Called when the input is cleared (e.g. by pressing Escape).\r\n */\r\n onClear?: () => void;\r\n}\r\n\r\n/**\r\n * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.\r\n *\r\n * API:\r\n * - {@link BaseInputProps}\r\n */\r\nexport const Input = forwardRef<HTMLInputElement, BaseInputProps>(\r\n (\r\n {\r\n prefix,\r\n suffix,\r\n description,\r\n descriptionPosition = \"top\",\r\n isDisabled,\r\n error,\r\n onChange,\r\n label,\r\n name,\r\n placeholder,\r\n type = \"text\",\r\n value,\r\n autoFocus,\r\n autoComplete,\r\n isRequired = false,\r\n isReadOnly = false,\r\n onSubmit,\r\n onClear,\r\n \"data-testid\": testId,\r\n },\r\n forwardedRef: React.RefObject<HTMLInputElement>\r\n ) => {\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const prefixRef = useRef<HTMLDivElement>(null);\r\n const suffixRef = useRef<HTMLDivElement>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const { className } = useTheme();\r\n const ref = forwardedRef || inputRef;\r\n\r\n // Control dynamic prefix and suffix widths using ResizeObserver\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const updateSizes = () => {\r\n if (containerRef.current) {\r\n const containerWidth = containerRef.current.offsetWidth || 200;\r\n containerRef.current.style.setProperty(\r\n \"--container-width\",\r\n `${containerWidth}px`\r\n );\r\n }\r\n\r\n if (prefixRef.current) {\r\n const prefixWidth = prefixRef.current.offsetWidth || 32;\r\n containerRef.current?.style.setProperty(\r\n \"--prefix-width\",\r\n `${prefixWidth}px`\r\n );\r\n }\r\n\r\n if (suffixRef.current) {\r\n const suffixWidth = suffixRef.current.offsetWidth || 32;\r\n containerRef.current?.style.setProperty(\r\n \"--suffix-width\",\r\n `${suffixWidth}px`\r\n );\r\n }\r\n };\r\n\r\n updateSizes();\r\n\r\n const resizeObserver = new ResizeObserver(updateSizes);\r\n\r\n if (containerRef.current) {\r\n resizeObserver.observe(containerRef.current);\r\n }\r\n if (prefixRef.current) {\r\n resizeObserver.observe(prefixRef.current);\r\n }\r\n if (suffixRef.current) {\r\n resizeObserver.observe(suffixRef.current);\r\n }\r\n\r\n return () => {\r\n resizeObserver.disconnect();\r\n };\r\n }, [prefix, suffix]);\r\n\r\n const inputId = `${name}-input`;\r\n const errorId = `${name}-error`;\r\n const descriptionId = `${name}-description`;\r\n\r\n return (\r\n <div ref={containerRef}>\r\n {description && descriptionPosition === \"top\" && (\r\n <div\r\n id={descriptionId}\r\n className=\"proton-Input__text\"\r\n aria-live=\"polite\"\r\n >\r\n {description}\r\n </div>\r\n )}\r\n <div className={csx(\r\n \"proton-Input__container-inner\",\r\n prefix && \"proton-Input__has-prefix\",\r\n suffix && \"proton-Input__has-suffix\"\r\n )}>\r\n {prefix && (\r\n <div\r\n ref={prefixRef}\r\n className={csx(\r\n \"proton-Input__descriptor\",\r\n \"proton-Input__prefix\"\r\n )}\r\n >\r\n {prefix}\r\n </div>\r\n )}\r\n\r\n <input\r\n id={inputId}\r\n name={name}\r\n type={type}\r\n value={value}\r\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\r\n onChange?.(e.target.value);\r\n }}\r\n onKeyDown={(e: React.KeyboardEvent<HTMLInputElement>) => {\r\n switch (e.key) {\r\n case \"Enter\":\r\n if (onSubmit) {\r\n e.preventDefault();\r\n onSubmit(e);\r\n }\r\n break;\r\n case \"Escape\":\r\n if (onClear) {\r\n e.preventDefault();\r\n onClear();\r\n }\r\n break;\r\n }\r\n }}\r\n onCopy={async () =>\r\n await copyTextToClipboard(inputRef.current?.value)\r\n }\r\n disabled={isDisabled}\r\n readOnly={isReadOnly}\r\n required={isRequired}\r\n autoFocus={autoFocus}\r\n autoComplete={autoComplete ? \"on\" : \"off\"}\r\n placeholder={label ? undefined : placeholder}\r\n aria-label={label || name}\r\n aria-invalid={Boolean(error)}\r\n aria-errormessage={typeof error === \"string\" ? error : errorId}\r\n aria-required={isRequired}\r\n aria-readonly={isReadOnly}\r\n aria-describedby={\r\n error ? errorId : description ? descriptionId : undefined\r\n }\r\n aria-disabled={isDisabled}\r\n data-testid={testId}\r\n ref={ref}\r\n className={csx(\r\n \"proton-Input\",\r\n error && \"proton-Input--error\",\r\n label && \"proton-Input__label-top\",\r\n className\r\n )}\r\n />\r\n\r\n <label\r\n htmlFor={inputId}\r\n className={csx(\r\n \"proton-Input__label\",\r\n value && \"proton-Input__label--filled\"\r\n )}\r\n >\r\n {label}\r\n {isRequired && <span aria-hidden=\"true\"> *</span>}\r\n </label>\r\n\r\n {suffix && (\r\n <div\r\n ref={suffixRef}\r\n className={csx(\r\n \"proton-Input__descriptor\",\r\n \"proton-Input__suffix\"\r\n )}\r\n >\r\n {suffix}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {error ? (\r\n <div\r\n role=\"alert\"\r\n className={csx(\"proton-Input__error\", \"proton-Input__text\")}\r\n id={errorId}\r\n >\r\n {error}\r\n </div>\r\n ) : description && descriptionPosition === \"bottom\" ? (\r\n <div\r\n id={descriptionId}\r\n className=\"proton-Input__text\"\r\n aria-live=\"polite\"\r\n >\r\n {description}\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nInput.displayName = \"ProtonUIInput\";\r\n"],"names":["Input","forwardRef","prefix","suffix","description","descriptionPosition","isDisabled","error","onChange","label","name","placeholder","type","value","autoFocus","autoComplete","isRequired","isReadOnly","onSubmit","onClear","testId","forwardedRef","inputRef","useRef","prefixRef","suffixRef","containerRef","className","useTheme","ref","useEffect","updateSizes","containerWidth","prefixWidth","_a","suffixWidth","_b","resizeObserver","inputId","errorId","descriptionId","jsxs","jsx","csx","e","copyTextToClipboard"],"mappings":"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"}
@@ -1,96 +1,100 @@
1
- import { j as e } from "../../../node_modules/react/jsx-runtime.es.js";
2
- import { forwardRef as K, useRef as d, useEffect as U } from "react";
1
+ import { j as r } from "../../../node_modules/react/jsx-runtime.es.js";
2
+ import { forwardRef as K, useRef as _, useEffect as U } from "react";
3
3
  import { useTheme as g } from "../../ThemeProvider.es.js";
4
4
  /* empty css */
5
5
  import { copyTextToClipboard as q } from "../../../utils/copy.es.js";
6
- import { csx as c } from "../../../utils/string.es.js";
6
+ import { csx as o } from "../../../utils/string.es.js";
7
7
  const A = K(
8
8
  ({
9
- prefix: f,
10
- suffix: x,
11
- description: o,
9
+ prefix: u,
10
+ suffix: l,
11
+ description: s,
12
12
  descriptionPosition: v = "top",
13
13
  isDisabled: y,
14
14
  error: n,
15
- onChange: _,
16
- label: l,
17
- name: s,
15
+ onChange: x,
16
+ label: d,
17
+ name: i,
18
18
  placeholder: k,
19
19
  type: z = "text",
20
20
  value: b,
21
21
  autoFocus: P,
22
22
  autoComplete: T,
23
- isRequired: m = !1,
23
+ isRequired: h = !1,
24
24
  isReadOnly: j = !1,
25
25
  onSubmit: N,
26
26
  onClear: w,
27
27
  "data-testid": D
28
28
  }, O) => {
29
- const W = d(null), i = d(null), a = d(null), r = d(null), { className: B } = g(), F = O || W;
29
+ const W = _(null), a = _(null), p = _(null), e = _(null), { className: B } = g(), F = O || W;
30
30
  U(() => {
31
- if (!r.current) return;
31
+ if (!e.current) return;
32
32
  const t = () => {
33
33
  var R, E;
34
- if (r.current) {
35
- const p = r.current.offsetWidth || 200;
36
- r.current.style.setProperty(
34
+ if (e.current) {
35
+ const c = e.current.offsetWidth || 200;
36
+ e.current.style.setProperty(
37
37
  "--container-width",
38
- `${p}px`
38
+ `${c}px`
39
39
  );
40
40
  }
41
- if (i.current) {
42
- const p = i.current.offsetWidth || 32;
43
- (R = r.current) == null || R.style.setProperty(
41
+ if (a.current) {
42
+ const c = a.current.offsetWidth || 32;
43
+ (R = e.current) == null || R.style.setProperty(
44
44
  "--prefix-width",
45
- `${p}px`
45
+ `${c}px`
46
46
  );
47
47
  }
48
- if (a.current) {
49
- const p = a.current.offsetWidth || 32;
50
- (E = r.current) == null || E.style.setProperty(
48
+ if (p.current) {
49
+ const c = p.current.offsetWidth || 32;
50
+ (E = e.current) == null || E.style.setProperty(
51
51
  "--suffix-width",
52
- `${p}px`
52
+ `${c}px`
53
53
  );
54
54
  }
55
55
  };
56
56
  t();
57
- const u = new ResizeObserver(t);
58
- return r.current && u.observe(r.current), i.current && u.observe(i.current), a.current && u.observe(a.current), () => {
59
- u.disconnect();
57
+ const f = new ResizeObserver(t);
58
+ return e.current && f.observe(e.current), a.current && f.observe(a.current), p.current && f.observe(p.current), () => {
59
+ f.disconnect();
60
60
  };
61
- }, [f, x]);
62
- const $ = `${s}-input`, I = `${s}-error`, h = `${s}-description`;
63
- return /* @__PURE__ */ e.jsxs("div", { className: "proton-Input__container", ref: r, children: [
64
- o && v === "top" && /* @__PURE__ */ e.jsx(
61
+ }, [u, l]);
62
+ const $ = `${i}-input`, m = `${i}-error`, I = `${i}-description`;
63
+ return /* @__PURE__ */ r.jsxs("div", { ref: e, children: [
64
+ s && v === "top" && /* @__PURE__ */ r.jsx(
65
65
  "div",
66
66
  {
67
- id: h,
67
+ id: I,
68
68
  className: "proton-Input__text",
69
69
  "aria-live": "polite",
70
- children: o
70
+ children: s
71
71
  }
72
72
  ),
73
- /* @__PURE__ */ e.jsxs("div", { className: "proton-Input__container-inner", children: [
74
- f && /* @__PURE__ */ e.jsx(
73
+ /* @__PURE__ */ r.jsxs("div", { className: o(
74
+ "proton-Input__container-inner",
75
+ u && "proton-Input__has-prefix",
76
+ l && "proton-Input__has-suffix"
77
+ ), children: [
78
+ u && /* @__PURE__ */ r.jsx(
75
79
  "div",
76
80
  {
77
- ref: i,
78
- className: c(
81
+ ref: a,
82
+ className: o(
79
83
  "proton-Input__descriptor",
80
84
  "proton-Input__prefix"
81
85
  ),
82
- children: f
86
+ children: u
83
87
  }
84
88
  ),
85
- /* @__PURE__ */ e.jsx(
89
+ /* @__PURE__ */ r.jsx(
86
90
  "input",
87
91
  {
88
92
  id: $,
89
- name: s,
93
+ name: i,
90
94
  type: z,
91
95
  value: b,
92
96
  onChange: (t) => {
93
- _ == null || _(t.target.value);
97
+ x == null || x(t.target.value);
94
98
  },
95
99
  onKeyDown: (t) => {
96
100
  switch (t.key) {
@@ -108,68 +112,68 @@ const A = K(
108
112
  },
109
113
  disabled: y,
110
114
  readOnly: j,
111
- required: m,
115
+ required: h,
112
116
  autoFocus: P,
113
117
  autoComplete: T ? "on" : "off",
114
- placeholder: l ? void 0 : k,
115
- "aria-label": l || s,
118
+ placeholder: d ? void 0 : k,
119
+ "aria-label": d || i,
116
120
  "aria-invalid": !!n,
117
- "aria-errormessage": typeof n == "string" ? n : I,
118
- "aria-required": m,
121
+ "aria-errormessage": typeof n == "string" ? n : m,
122
+ "aria-required": h,
119
123
  "aria-readonly": j,
120
- "aria-describedby": n ? I : o ? h : void 0,
124
+ "aria-describedby": n ? m : s ? I : void 0,
121
125
  "aria-disabled": y,
122
126
  "data-testid": D,
123
127
  ref: F,
124
- className: c(
128
+ className: o(
125
129
  "proton-Input",
126
130
  n && "proton-Input--error",
127
- l && "proton-Input__label-top",
131
+ d && "proton-Input__label-top",
128
132
  B
129
133
  )
130
134
  }
131
135
  ),
132
- /* @__PURE__ */ e.jsxs(
136
+ /* @__PURE__ */ r.jsxs(
133
137
  "label",
134
138
  {
135
139
  htmlFor: $,
136
- className: c(
140
+ className: o(
137
141
  "proton-Input__label",
138
142
  b && "proton-Input__label--filled"
139
143
  ),
140
144
  children: [
141
- l,
142
- m && /* @__PURE__ */ e.jsx("span", { "aria-hidden": "true", children: " *" })
145
+ d,
146
+ h && /* @__PURE__ */ r.jsx("span", { "aria-hidden": "true", children: " *" })
143
147
  ]
144
148
  }
145
149
  ),
146
- x && /* @__PURE__ */ e.jsx(
150
+ l && /* @__PURE__ */ r.jsx(
147
151
  "div",
148
152
  {
149
- ref: a,
150
- className: c(
153
+ ref: p,
154
+ className: o(
151
155
  "proton-Input__descriptor",
152
156
  "proton-Input__suffix"
153
157
  ),
154
- children: x
158
+ children: l
155
159
  }
156
160
  )
157
161
  ] }),
158
- n ? /* @__PURE__ */ e.jsx(
162
+ n ? /* @__PURE__ */ r.jsx(
159
163
  "div",
160
164
  {
161
165
  role: "alert",
162
- className: c("proton-Input__error", "proton-Input__text"),
163
- id: I,
166
+ className: o("proton-Input__error", "proton-Input__text"),
167
+ id: m,
164
168
  children: n
165
169
  }
166
- ) : o && v === "bottom" ? /* @__PURE__ */ e.jsx(
170
+ ) : s && v === "bottom" ? /* @__PURE__ */ r.jsx(
167
171
  "div",
168
172
  {
169
- id: h,
173
+ id: I,
170
174
  className: "proton-Input__text",
171
175
  "aria-live": "polite",
172
- children: o
176
+ children: s
173
177
  }
174
178
  ) : null
175
179
  ] });