@sparrowengg/integrations-templates-frontend 1.2.5 → 1.2.6

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 (366) hide show
  1. package/dist/cjs/_virtual/index10.js +2 -2
  2. package/dist/cjs/_virtual/index7.js +2 -2
  3. package/dist/cjs/authentication/constants/index.js +10 -0
  4. package/dist/cjs/authentication/constants/index.js.map +1 -0
  5. package/dist/cjs/authentication/index.js +40 -47
  6. package/dist/cjs/authentication/index.js.map +1 -1
  7. package/dist/cjs/commons/components/theme-wrapper.js +24 -0
  8. package/dist/cjs/commons/components/theme-wrapper.js.map +1 -0
  9. package/dist/cjs/contact-import/components/contact-import-mapping.js +6 -4
  10. package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -1
  11. package/dist/cjs/contact-import/index.js +34 -52
  12. package/dist/cjs/contact-import/index.js.map +1 -1
  13. package/dist/cjs/integration-template/index.js +1 -1
  14. package/dist/cjs/integration-template/index.js.map +1 -1
  15. package/dist/cjs/mapping/components/custom-date-menu.js +2 -2
  16. package/dist/cjs/mapping/components/custom-date-menu.js.map +1 -1
  17. package/dist/cjs/node_modules/@internationalized/date/dist/CalendarDate.js +156 -0
  18. package/dist/cjs/node_modules/@internationalized/date/dist/CalendarDate.js.map +1 -0
  19. package/dist/cjs/node_modules/@internationalized/date/dist/GregorianCalendar.js +139 -0
  20. package/dist/cjs/node_modules/@internationalized/date/dist/GregorianCalendar.js.map +1 -0
  21. package/dist/cjs/node_modules/@internationalized/date/dist/conversion.js +159 -0
  22. package/dist/cjs/node_modules/@internationalized/date/dist/conversion.js.map +1 -0
  23. package/dist/cjs/node_modules/@internationalized/date/dist/manipulation.js +229 -0
  24. package/dist/cjs/node_modules/@internationalized/date/dist/manipulation.js.map +1 -0
  25. package/dist/cjs/node_modules/@internationalized/date/dist/queries.js +22 -0
  26. package/dist/cjs/node_modules/@internationalized/date/dist/queries.js.map +1 -0
  27. package/dist/cjs/node_modules/@internationalized/date/dist/string.js +36 -0
  28. package/dist/cjs/node_modules/@internationalized/date/dist/string.js.map +1 -0
  29. package/dist/cjs/node_modules/@internationalized/date/dist/utils.js +19 -0
  30. package/dist/cjs/node_modules/@internationalized/date/dist/utils.js.map +1 -0
  31. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/calendar/calendar-utils.js.map +1 -1
  32. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/checkbox/checkbox.js.map +1 -1
  33. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js.map +1 -1
  34. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +18 -18
  35. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js.map +1 -1
  36. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/form-label/form-label.js +2 -2
  37. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/form-label/form-label.js.map +1 -1
  38. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/primitive/dist/index.js +9 -6
  39. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  40. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-arrow/dist/index.js +40 -15
  41. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -1
  42. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-checkbox/dist/index.js +156 -138
  43. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-checkbox/dist/index.js.map +1 -1
  44. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-collection/dist/index.js +60 -85
  45. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  46. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-compose-refs/dist/index.js +32 -21
  47. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  48. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-context/dist/index.js +91 -92
  49. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  50. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dialog/dist/index.js +326 -247
  51. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -1
  52. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-direction/dist/index.js +26 -5
  53. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -1
  54. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +201 -207
  55. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  56. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +303 -0
  57. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +1 -0
  58. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-guards/dist/index.js +40 -24
  59. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  60. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-scope/dist/index.js +205 -258
  61. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  62. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-id/dist/index.js +23 -26
  63. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  64. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-label/dist/index.js +47 -0
  65. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-label/dist/index.js.map +1 -0
  66. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +847 -0
  67. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js.map +1 -0
  68. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popover/dist/index.js +298 -255
  69. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -1
  70. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popper/dist/index.js +279 -265
  71. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  72. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-portal/dist/index.js +31 -9
  73. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -1
  74. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-presence/dist/index.js +125 -116
  75. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  76. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-primitive/dist/index.js +54 -80
  77. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  78. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-radio-group/dist/index.js +273 -225
  79. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-radio-group/dist/index.js.map +1 -1
  80. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-roving-focus/dist/index.js +211 -208
  81. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  82. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-slot/dist/index.js +88 -69
  83. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  84. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-switch/dist/index.js +140 -111
  85. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-switch/dist/index.js.map +1 -1
  86. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tabs/dist/index.js +186 -137
  87. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -1
  88. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tooltip/dist/index.js +480 -526
  89. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -1
  90. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +27 -14
  91. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  92. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +58 -40
  93. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  94. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +32 -16
  95. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  96. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +24 -9
  97. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -1
  98. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-previous/dist/index.js +30 -17
  99. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -1
  100. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-size/dist/index.js +54 -46
  101. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  102. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-visually-hidden/dist/index.js +48 -20
  103. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -1
  104. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/Combination.js +2 -2
  105. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  106. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +15 -4
  107. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  108. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/UI.js +2 -2
  109. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  110. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +12 -4
  111. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  112. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll-bar/dist/es2015/component.js +26 -4
  113. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  114. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/popover/popover.js.map +1 -1
  115. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/radio/radio.js +25 -5
  116. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/radio/radio.js.map +1 -1
  117. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/switch/switch.js.map +1 -1
  118. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/table/table.js +14 -9
  119. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/table/table.js.map +1 -1
  120. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/tabs/tabs.js.map +1 -1
  121. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js +12 -4
  122. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js.map +1 -1
  123. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/tooltip/tooltip.js +2 -2
  124. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/tooltip/tooltip.js.map +1 -1
  125. package/dist/cjs/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +0 -1
  126. package/dist/cjs/node_modules/@swc/helpers/esm/_check_private_redeclaration.js.map +1 -1
  127. package/dist/cjs/node_modules/@swc/helpers/esm/_class_private_field_init.js +1 -2
  128. package/dist/cjs/node_modules/@swc/helpers/esm/_class_private_field_init.js.map +1 -1
  129. package/dist/cjs/node_modules/domhandler/lib/index.js +176 -0
  130. package/dist/cjs/node_modules/domhandler/lib/index.js.map +1 -0
  131. package/dist/cjs/node_modules/domhandler/lib/node.js +485 -0
  132. package/dist/cjs/node_modules/domhandler/lib/node.js.map +1 -0
  133. package/dist/cjs/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
  134. package/dist/cjs/node_modules/html-dom-parser/lib/server/html-to-dom.js +3 -3
  135. package/dist/cjs/node_modules/html-react-parser/lib/index.js +1 -1
  136. package/dist/cjs/node_modules/htmlparser2/lib/Parser.js +531 -0
  137. package/dist/cjs/node_modules/htmlparser2/lib/Parser.js.map +1 -0
  138. package/dist/cjs/node_modules/htmlparser2/lib/Tokenizer.js +789 -0
  139. package/dist/cjs/node_modules/htmlparser2/lib/Tokenizer.js.map +1 -0
  140. package/dist/cjs/node_modules/htmlparser2/lib/index.js +131 -0
  141. package/dist/cjs/node_modules/htmlparser2/lib/index.js.map +1 -0
  142. package/dist/cjs/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js +111 -0
  143. package/dist/cjs/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js.map +1 -0
  144. package/dist/cjs/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js +240 -0
  145. package/dist/cjs/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js.map +1 -0
  146. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js +202 -0
  147. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js.map +1 -0
  148. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js +150 -0
  149. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js.map +1 -0
  150. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/index.js +56 -0
  151. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/index.js.map +1 -0
  152. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js +164 -0
  153. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js.map +1 -0
  154. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js +150 -0
  155. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js.map +1 -0
  156. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/querying.js +168 -0
  157. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/querying.js.map +1 -0
  158. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js +106 -0
  159. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js.map +1 -0
  160. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js +135 -0
  161. package/dist/cjs/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js.map +1 -0
  162. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/decode.js +549 -0
  163. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/decode.js.map +1 -0
  164. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js +82 -0
  165. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  166. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/encode.js +89 -0
  167. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/encode.js.map +1 -0
  168. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/escape.js +128 -0
  169. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/escape.js.map +1 -0
  170. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js +12 -0
  171. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  172. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js +12 -0
  173. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  174. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js +15 -0
  175. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  176. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/index.js +138 -0
  177. package/dist/cjs/node_modules/htmlparser2/node_modules/entities/lib/index.js.map +1 -0
  178. package/dist/cjs/node_modules/react-is/index.js +1 -1
  179. package/dist/cjs/node_modules/style-to-js/cjs/index.js +1 -1
  180. package/dist/cjs/node_modules/style-to-object/cjs/index.js +1 -1
  181. package/dist/es/_virtual/index10.js +2 -2
  182. package/dist/es/_virtual/index7.js +2 -2
  183. package/dist/es/authentication/constants/index.js +8 -0
  184. package/dist/es/authentication/constants/index.js.map +1 -0
  185. package/dist/es/authentication/index.js +40 -47
  186. package/dist/es/authentication/index.js.map +1 -1
  187. package/dist/es/commons/components/theme-wrapper.js +20 -0
  188. package/dist/es/commons/components/theme-wrapper.js.map +1 -0
  189. package/dist/es/contact-import/components/contact-import-mapping.js +6 -4
  190. package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -1
  191. package/dist/es/contact-import/index.js +34 -52
  192. package/dist/es/contact-import/index.js.map +1 -1
  193. package/dist/es/integration-template/index.js +1 -1
  194. package/dist/es/integration-template/index.js.map +1 -1
  195. package/dist/es/mapping/components/custom-date-menu.js +1 -1
  196. package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js +153 -0
  197. package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js.map +1 -0
  198. package/dist/es/node_modules/@internationalized/date/dist/GregorianCalendar.js +133 -0
  199. package/dist/es/node_modules/@internationalized/date/dist/GregorianCalendar.js.map +1 -0
  200. package/dist/es/node_modules/@internationalized/date/dist/conversion.js +152 -0
  201. package/dist/es/node_modules/@internationalized/date/dist/conversion.js.map +1 -0
  202. package/dist/es/node_modules/@internationalized/date/dist/manipulation.js +219 -0
  203. package/dist/es/node_modules/@internationalized/date/dist/manipulation.js.map +1 -0
  204. package/dist/es/node_modules/@internationalized/date/dist/queries.js +18 -0
  205. package/dist/es/node_modules/@internationalized/date/dist/queries.js.map +1 -0
  206. package/dist/es/node_modules/@internationalized/date/dist/string.js +31 -0
  207. package/dist/es/node_modules/@internationalized/date/dist/string.js.map +1 -0
  208. package/dist/es/node_modules/@internationalized/date/dist/utils.js +17 -0
  209. package/dist/es/node_modules/@internationalized/date/dist/utils.js.map +1 -0
  210. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/calendar/calendar-utils.js.map +1 -1
  211. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/checkbox/checkbox.js +3 -3
  212. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/checkbox/checkbox.js.map +1 -1
  213. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +7 -7
  214. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js.map +1 -1
  215. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +18 -18
  216. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js.map +1 -1
  217. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/form-label/form-label.js +2 -2
  218. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/form-label/form-label.js.map +1 -1
  219. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/primitive/dist/index.js +9 -6
  220. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  221. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-arrow/dist/index.js +22 -16
  222. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -1
  223. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-checkbox/dist/index.js +143 -144
  224. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-checkbox/dist/index.js.map +1 -1
  225. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-collection/dist/index.js +63 -88
  226. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  227. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-compose-refs/dist/index.js +13 -21
  228. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  229. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-context/dist/index.js +72 -93
  230. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  231. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dialog/dist/index.js +298 -241
  232. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -1
  233. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-direction/dist/index.js +8 -6
  234. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -1
  235. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +189 -215
  236. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  237. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +254 -0
  238. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +1 -0
  239. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-guards/dist/index.js +22 -25
  240. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  241. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-scope/dist/index.js +190 -262
  242. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  243. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-id/dist/index.js +11 -14
  244. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  245. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-label/dist/index.js +25 -0
  246. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-label/dist/index.js.map +1 -0
  247. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +796 -0
  248. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js.map +1 -0
  249. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popover/dist/index.js +268 -244
  250. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -1
  251. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popper/dist/index.js +257 -262
  252. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  253. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-portal/dist/index.js +13 -10
  254. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -1
  255. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-presence/dist/index.js +110 -121
  256. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  257. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-primitive/dist/index.js +37 -83
  258. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  259. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-radio-group/dist/index.js +250 -221
  260. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-radio-group/dist/index.js.map +1 -1
  261. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-roving-focus/dist/index.js +200 -216
  262. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  263. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-slot/dist/index.js +71 -71
  264. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  265. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-switch/dist/index.js +126 -116
  266. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-switch/dist/index.js.map +1 -1
  267. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tabs/dist/index.js +171 -141
  268. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -1
  269. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tooltip/dist/index.js +453 -518
  270. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -1
  271. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +9 -15
  272. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  273. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +42 -43
  274. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  275. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +15 -18
  276. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  277. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +5 -9
  278. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -1
  279. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-previous/dist/index.js +12 -18
  280. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-previous/dist/index.js.map +1 -1
  281. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-size/dist/index.js +37 -48
  282. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  283. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-visually-hidden/dist/index.js +30 -21
  284. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +1 -1
  285. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/Combination.js +5 -5
  286. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  287. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +15 -4
  288. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  289. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/UI.js +2 -2
  290. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  291. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +12 -4
  292. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  293. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll-bar/dist/es2015/component.js +25 -5
  294. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  295. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/popover/popover.js +5 -5
  296. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/popover/popover.js.map +1 -1
  297. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/radio/radio.js +29 -9
  298. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/radio/radio.js.map +1 -1
  299. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/switch/switch.js +3 -3
  300. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/switch/switch.js.map +1 -1
  301. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/table/table.js +14 -9
  302. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/table/table.js.map +1 -1
  303. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/tabs/tabs.js +5 -5
  304. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/tabs/tabs.js.map +1 -1
  305. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js +13 -5
  306. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js.map +1 -1
  307. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/tooltip/tooltip.js +8 -8
  308. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/tooltip/tooltip.js.map +1 -1
  309. package/dist/es/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +1 -1
  310. package/dist/es/node_modules/@swc/helpers/esm/_check_private_redeclaration.js.map +1 -1
  311. package/dist/es/node_modules/@swc/helpers/esm/_class_private_field_init.js +2 -2
  312. package/dist/es/node_modules/@swc/helpers/esm/_class_private_field_init.js.map +1 -1
  313. package/dist/es/node_modules/domhandler/lib/index.js +174 -0
  314. package/dist/es/node_modules/domhandler/lib/index.js.map +1 -0
  315. package/dist/es/node_modules/domhandler/lib/node.js +481 -0
  316. package/dist/es/node_modules/domhandler/lib/node.js.map +1 -0
  317. package/dist/es/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
  318. package/dist/es/node_modules/html-dom-parser/lib/server/html-to-dom.js +3 -3
  319. package/dist/es/node_modules/html-react-parser/lib/index.js +1 -1
  320. package/dist/es/node_modules/htmlparser2/lib/Parser.js +527 -0
  321. package/dist/es/node_modules/htmlparser2/lib/Parser.js.map +1 -0
  322. package/dist/es/node_modules/htmlparser2/lib/Tokenizer.js +787 -0
  323. package/dist/es/node_modules/htmlparser2/lib/Tokenizer.js.map +1 -0
  324. package/dist/es/node_modules/htmlparser2/lib/index.js +129 -0
  325. package/dist/es/node_modules/htmlparser2/lib/index.js.map +1 -0
  326. package/dist/es/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js +107 -0
  327. package/dist/es/node_modules/htmlparser2/node_modules/dom-serializer/lib/foreignNames.js.map +1 -0
  328. package/dist/es/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js +238 -0
  329. package/dist/es/node_modules/htmlparser2/node_modules/dom-serializer/lib/index.js.map +1 -0
  330. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js +198 -0
  331. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/feeds.js.map +1 -0
  332. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js +148 -0
  333. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/helpers.js.map +1 -0
  334. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/index.js +54 -0
  335. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/index.js.map +1 -0
  336. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js +160 -0
  337. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/legacy.js.map +1 -0
  338. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js +146 -0
  339. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/manipulation.js.map +1 -0
  340. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/querying.js +164 -0
  341. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/querying.js.map +1 -0
  342. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js +102 -0
  343. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/stringify.js.map +1 -0
  344. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js +131 -0
  345. package/dist/es/node_modules/htmlparser2/node_modules/domutils/lib/traversal.js.map +1 -0
  346. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/decode.js +547 -0
  347. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/decode.js.map +1 -0
  348. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js +80 -0
  349. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js.map +1 -0
  350. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/encode.js +85 -0
  351. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/encode.js.map +1 -0
  352. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/escape.js +126 -0
  353. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/escape.js.map +1 -0
  354. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js +10 -0
  355. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js.map +1 -0
  356. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js +10 -0
  357. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js.map +1 -0
  358. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js +13 -0
  359. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/generated/encode-html.js.map +1 -0
  360. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/index.js +136 -0
  361. package/dist/es/node_modules/htmlparser2/node_modules/entities/lib/index.js.map +1 -0
  362. package/dist/es/node_modules/react-is/index.js +1 -1
  363. package/dist/es/node_modules/style-to-js/cjs/index.js +1 -1
  364. package/dist/es/node_modules/style-to-object/cjs/index.js +1 -1
  365. package/dist/index.d.ts +44 -12
  366. package/package.json +2 -2
@@ -0,0 +1,796 @@
1
+ import * as React from 'react';
2
+ import { composeEventHandlers } from '../../primitive/dist/index.js';
3
+ import { createCollection } from '../../react-collection/dist/index.js';
4
+ import { useComposedRefs, composeRefs } from '../../react-compose-refs/dist/index.js';
5
+ import { createContextScope } from '../../react-context/dist/index.js';
6
+ import { useDirection } from '../../react-direction/dist/index.js';
7
+ import { DismissableLayer } from '../../react-dismissable-layer/dist/index.js';
8
+ import { useFocusGuards } from '../../react-focus-guards/dist/index.js';
9
+ import { FocusScope } from '../../react-focus-scope/dist/index.js';
10
+ import { createPopperScope, Anchor, Content, Arrow, Root as Root2 } from '../../react-popper/dist/index.js';
11
+ import { Portal as Portal$1 } from '../../react-portal/dist/index.js';
12
+ import { Presence } from '../../react-presence/dist/index.js';
13
+ import { Primitive, dispatchDiscreteCustomEvent } from '../../react-primitive/dist/index.js';
14
+ import { createRovingFocusGroupScope, Root, Item } from '../../react-roving-focus/dist/index.js';
15
+ import { Slot } from '../../react-slot/dist/index.js';
16
+ import { useCallbackRef } from '../../react-use-callback-ref/dist/index.js';
17
+ import { hideOthers } from '../../../aria-hidden/dist/es2015/index.js';
18
+ import RemoveScroll from '../../../react-remove-scroll/dist/es2015/Combination.js';
19
+ import { jsx } from 'react/jsx-runtime';
20
+
21
+ var SELECTION_KEYS = ["Enter", " "];
22
+ var FIRST_KEYS = ["ArrowDown", "PageUp", "Home"];
23
+ var LAST_KEYS = ["ArrowUp", "PageDown", "End"];
24
+ var FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];
25
+ var SUB_OPEN_KEYS = {
26
+ ltr: [...SELECTION_KEYS, "ArrowRight"],
27
+ rtl: [...SELECTION_KEYS, "ArrowLeft"]
28
+ };
29
+ var SUB_CLOSE_KEYS = {
30
+ ltr: ["ArrowLeft"],
31
+ rtl: ["ArrowRight"]
32
+ };
33
+ var MENU_NAME = "Menu";
34
+ var [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);
35
+ var [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [
36
+ createCollectionScope,
37
+ createPopperScope,
38
+ createRovingFocusGroupScope
39
+ ]);
40
+ var usePopperScope = createPopperScope();
41
+ var useRovingFocusGroupScope = createRovingFocusGroupScope();
42
+ var [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);
43
+ var [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);
44
+ var Menu = (props) => {
45
+ const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;
46
+ const popperScope = usePopperScope(__scopeMenu);
47
+ const [content, setContent] = React.useState(null);
48
+ const isUsingKeyboardRef = React.useRef(false);
49
+ const handleOpenChange = useCallbackRef(onOpenChange);
50
+ const direction = useDirection(dir);
51
+ React.useEffect(() => {
52
+ const handleKeyDown = () => {
53
+ isUsingKeyboardRef.current = true;
54
+ document.addEventListener("pointerdown", handlePointer, { capture: true, once: true });
55
+ document.addEventListener("pointermove", handlePointer, { capture: true, once: true });
56
+ };
57
+ const handlePointer = () => isUsingKeyboardRef.current = false;
58
+ document.addEventListener("keydown", handleKeyDown, { capture: true });
59
+ return () => {
60
+ document.removeEventListener("keydown", handleKeyDown, { capture: true });
61
+ document.removeEventListener("pointerdown", handlePointer, { capture: true });
62
+ document.removeEventListener("pointermove", handlePointer, { capture: true });
63
+ };
64
+ }, []);
65
+ return /* @__PURE__ */ jsx(Root2, { ...popperScope, children: /* @__PURE__ */ jsx(
66
+ MenuProvider,
67
+ {
68
+ scope: __scopeMenu,
69
+ open,
70
+ onOpenChange: handleOpenChange,
71
+ content,
72
+ onContentChange: setContent,
73
+ children: /* @__PURE__ */ jsx(
74
+ MenuRootProvider,
75
+ {
76
+ scope: __scopeMenu,
77
+ onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),
78
+ isUsingKeyboardRef,
79
+ dir: direction,
80
+ modal,
81
+ children
82
+ }
83
+ )
84
+ }
85
+ ) });
86
+ };
87
+ Menu.displayName = MENU_NAME;
88
+ var ANCHOR_NAME = "MenuAnchor";
89
+ var MenuAnchor = React.forwardRef(
90
+ (props, forwardedRef) => {
91
+ const { __scopeMenu, ...anchorProps } = props;
92
+ const popperScope = usePopperScope(__scopeMenu);
93
+ return /* @__PURE__ */ jsx(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
94
+ }
95
+ );
96
+ MenuAnchor.displayName = ANCHOR_NAME;
97
+ var PORTAL_NAME = "MenuPortal";
98
+ var [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {
99
+ forceMount: void 0
100
+ });
101
+ var MenuPortal = (props) => {
102
+ const { __scopeMenu, forceMount, children, container } = props;
103
+ const context = useMenuContext(PORTAL_NAME, __scopeMenu);
104
+ return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$1, { asChild: true, container, children }) }) });
105
+ };
106
+ MenuPortal.displayName = PORTAL_NAME;
107
+ var CONTENT_NAME = "MenuContent";
108
+ var [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);
109
+ var MenuContent = React.forwardRef(
110
+ (props, forwardedRef) => {
111
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);
112
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
113
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
114
+ const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);
115
+ return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });
116
+ }
117
+ );
118
+ var MenuRootContentModal = React.forwardRef(
119
+ (props, forwardedRef) => {
120
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
121
+ const ref = React.useRef(null);
122
+ const composedRefs = useComposedRefs(forwardedRef, ref);
123
+ React.useEffect(() => {
124
+ const content = ref.current;
125
+ if (content) return hideOthers(content);
126
+ }, []);
127
+ return /* @__PURE__ */ jsx(
128
+ MenuContentImpl,
129
+ {
130
+ ...props,
131
+ ref: composedRefs,
132
+ trapFocus: context.open,
133
+ disableOutsidePointerEvents: context.open,
134
+ disableOutsideScroll: true,
135
+ onFocusOutside: composeEventHandlers(
136
+ props.onFocusOutside,
137
+ (event) => event.preventDefault(),
138
+ { checkForDefaultPrevented: false }
139
+ ),
140
+ onDismiss: () => context.onOpenChange(false)
141
+ }
142
+ );
143
+ }
144
+ );
145
+ var MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {
146
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
147
+ return /* @__PURE__ */ jsx(
148
+ MenuContentImpl,
149
+ {
150
+ ...props,
151
+ ref: forwardedRef,
152
+ trapFocus: false,
153
+ disableOutsidePointerEvents: false,
154
+ disableOutsideScroll: false,
155
+ onDismiss: () => context.onOpenChange(false)
156
+ }
157
+ );
158
+ });
159
+ var MenuContentImpl = React.forwardRef(
160
+ (props, forwardedRef) => {
161
+ const {
162
+ __scopeMenu,
163
+ loop = false,
164
+ trapFocus,
165
+ onOpenAutoFocus,
166
+ onCloseAutoFocus,
167
+ disableOutsidePointerEvents,
168
+ onEntryFocus,
169
+ onEscapeKeyDown,
170
+ onPointerDownOutside,
171
+ onFocusOutside,
172
+ onInteractOutside,
173
+ onDismiss,
174
+ disableOutsideScroll,
175
+ ...contentProps
176
+ } = props;
177
+ const context = useMenuContext(CONTENT_NAME, __scopeMenu);
178
+ const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);
179
+ const popperScope = usePopperScope(__scopeMenu);
180
+ const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);
181
+ const getItems = useCollection(__scopeMenu);
182
+ const [currentItemId, setCurrentItemId] = React.useState(null);
183
+ const contentRef = React.useRef(null);
184
+ const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);
185
+ const timerRef = React.useRef(0);
186
+ const searchRef = React.useRef("");
187
+ const pointerGraceTimerRef = React.useRef(0);
188
+ const pointerGraceIntentRef = React.useRef(null);
189
+ const pointerDirRef = React.useRef("right");
190
+ const lastPointerXRef = React.useRef(0);
191
+ const ScrollLockWrapper = disableOutsideScroll ? RemoveScroll : React.Fragment;
192
+ const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;
193
+ const handleTypeaheadSearch = (key) => {
194
+ const search = searchRef.current + key;
195
+ const items = getItems().filter((item) => !item.disabled);
196
+ const currentItem = document.activeElement;
197
+ const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;
198
+ const values = items.map((item) => item.textValue);
199
+ const nextMatch = getNextMatch(values, search, currentMatch);
200
+ const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;
201
+ (function updateSearch(value) {
202
+ searchRef.current = value;
203
+ window.clearTimeout(timerRef.current);
204
+ if (value !== "") timerRef.current = window.setTimeout(() => updateSearch(""), 1e3);
205
+ })(search);
206
+ if (newItem) {
207
+ setTimeout(() => newItem.focus());
208
+ }
209
+ };
210
+ React.useEffect(() => {
211
+ return () => window.clearTimeout(timerRef.current);
212
+ }, []);
213
+ useFocusGuards();
214
+ const isPointerMovingToSubmenu = React.useCallback((event) => {
215
+ const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;
216
+ return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);
217
+ }, []);
218
+ return /* @__PURE__ */ jsx(
219
+ MenuContentProvider,
220
+ {
221
+ scope: __scopeMenu,
222
+ searchRef,
223
+ onItemEnter: React.useCallback(
224
+ (event) => {
225
+ if (isPointerMovingToSubmenu(event)) event.preventDefault();
226
+ },
227
+ [isPointerMovingToSubmenu]
228
+ ),
229
+ onItemLeave: React.useCallback(
230
+ (event) => {
231
+ if (isPointerMovingToSubmenu(event)) return;
232
+ contentRef.current?.focus();
233
+ setCurrentItemId(null);
234
+ },
235
+ [isPointerMovingToSubmenu]
236
+ ),
237
+ onTriggerLeave: React.useCallback(
238
+ (event) => {
239
+ if (isPointerMovingToSubmenu(event)) event.preventDefault();
240
+ },
241
+ [isPointerMovingToSubmenu]
242
+ ),
243
+ pointerGraceTimerRef,
244
+ onPointerGraceIntentChange: React.useCallback((intent) => {
245
+ pointerGraceIntentRef.current = intent;
246
+ }, []),
247
+ children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(
248
+ FocusScope,
249
+ {
250
+ asChild: true,
251
+ trapped: trapFocus,
252
+ onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {
253
+ event.preventDefault();
254
+ contentRef.current?.focus({ preventScroll: true });
255
+ }),
256
+ onUnmountAutoFocus: onCloseAutoFocus,
257
+ children: /* @__PURE__ */ jsx(
258
+ DismissableLayer,
259
+ {
260
+ asChild: true,
261
+ disableOutsidePointerEvents,
262
+ onEscapeKeyDown,
263
+ onPointerDownOutside,
264
+ onFocusOutside,
265
+ onInteractOutside,
266
+ onDismiss,
267
+ children: /* @__PURE__ */ jsx(
268
+ Root,
269
+ {
270
+ asChild: true,
271
+ ...rovingFocusGroupScope,
272
+ dir: rootContext.dir,
273
+ orientation: "vertical",
274
+ loop,
275
+ currentTabStopId: currentItemId,
276
+ onCurrentTabStopIdChange: setCurrentItemId,
277
+ onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {
278
+ if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();
279
+ }),
280
+ preventScrollOnEntryFocus: true,
281
+ children: /* @__PURE__ */ jsx(
282
+ Content,
283
+ {
284
+ role: "menu",
285
+ "aria-orientation": "vertical",
286
+ "data-state": getOpenState(context.open),
287
+ "data-radix-menu-content": "",
288
+ dir: rootContext.dir,
289
+ ...popperScope,
290
+ ...contentProps,
291
+ ref: composedRefs,
292
+ style: { outline: "none", ...contentProps.style },
293
+ onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {
294
+ const target = event.target;
295
+ const isKeyDownInside = target.closest("[data-radix-menu-content]") === event.currentTarget;
296
+ const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
297
+ const isCharacterKey = event.key.length === 1;
298
+ if (isKeyDownInside) {
299
+ if (event.key === "Tab") event.preventDefault();
300
+ if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);
301
+ }
302
+ const content = contentRef.current;
303
+ if (event.target !== content) return;
304
+ if (!FIRST_LAST_KEYS.includes(event.key)) return;
305
+ event.preventDefault();
306
+ const items = getItems().filter((item) => !item.disabled);
307
+ const candidateNodes = items.map((item) => item.ref.current);
308
+ if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();
309
+ focusFirst(candidateNodes);
310
+ }),
311
+ onBlur: composeEventHandlers(props.onBlur, (event) => {
312
+ if (!event.currentTarget.contains(event.target)) {
313
+ window.clearTimeout(timerRef.current);
314
+ searchRef.current = "";
315
+ }
316
+ }),
317
+ onPointerMove: composeEventHandlers(
318
+ props.onPointerMove,
319
+ whenMouse((event) => {
320
+ const target = event.target;
321
+ const pointerXHasChanged = lastPointerXRef.current !== event.clientX;
322
+ if (event.currentTarget.contains(target) && pointerXHasChanged) {
323
+ const newDir = event.clientX > lastPointerXRef.current ? "right" : "left";
324
+ pointerDirRef.current = newDir;
325
+ lastPointerXRef.current = event.clientX;
326
+ }
327
+ })
328
+ )
329
+ }
330
+ )
331
+ }
332
+ )
333
+ }
334
+ )
335
+ }
336
+ ) })
337
+ }
338
+ );
339
+ }
340
+ );
341
+ MenuContent.displayName = CONTENT_NAME;
342
+ var GROUP_NAME = "MenuGroup";
343
+ var MenuGroup = React.forwardRef(
344
+ (props, forwardedRef) => {
345
+ const { __scopeMenu, ...groupProps } = props;
346
+ return /* @__PURE__ */ jsx(Primitive.div, { role: "group", ...groupProps, ref: forwardedRef });
347
+ }
348
+ );
349
+ MenuGroup.displayName = GROUP_NAME;
350
+ var LABEL_NAME = "MenuLabel";
351
+ var MenuLabel = React.forwardRef(
352
+ (props, forwardedRef) => {
353
+ const { __scopeMenu, ...labelProps } = props;
354
+ return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });
355
+ }
356
+ );
357
+ MenuLabel.displayName = LABEL_NAME;
358
+ var ITEM_NAME = "MenuItem";
359
+ var ITEM_SELECT = "menu.itemSelect";
360
+ var MenuItem = React.forwardRef(
361
+ (props, forwardedRef) => {
362
+ const { disabled = false, onSelect, ...itemProps } = props;
363
+ const ref = React.useRef(null);
364
+ const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);
365
+ const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);
366
+ const composedRefs = useComposedRefs(forwardedRef, ref);
367
+ const isPointerDownRef = React.useRef(false);
368
+ const handleSelect = () => {
369
+ const menuItem = ref.current;
370
+ if (!disabled && menuItem) {
371
+ const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });
372
+ menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });
373
+ dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);
374
+ if (itemSelectEvent.defaultPrevented) {
375
+ isPointerDownRef.current = false;
376
+ } else {
377
+ rootContext.onClose();
378
+ }
379
+ }
380
+ };
381
+ return /* @__PURE__ */ jsx(
382
+ MenuItemImpl,
383
+ {
384
+ ...itemProps,
385
+ ref: composedRefs,
386
+ disabled,
387
+ onClick: composeEventHandlers(props.onClick, handleSelect),
388
+ onPointerDown: (event) => {
389
+ props.onPointerDown?.(event);
390
+ isPointerDownRef.current = true;
391
+ },
392
+ onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
393
+ if (!isPointerDownRef.current) event.currentTarget?.click();
394
+ }),
395
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
396
+ const isTypingAhead = contentContext.searchRef.current !== "";
397
+ if (disabled || isTypingAhead && event.key === " ") return;
398
+ if (SELECTION_KEYS.includes(event.key)) {
399
+ event.currentTarget.click();
400
+ event.preventDefault();
401
+ }
402
+ })
403
+ }
404
+ );
405
+ }
406
+ );
407
+ MenuItem.displayName = ITEM_NAME;
408
+ var MenuItemImpl = React.forwardRef(
409
+ (props, forwardedRef) => {
410
+ const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;
411
+ const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);
412
+ const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);
413
+ const ref = React.useRef(null);
414
+ const composedRefs = useComposedRefs(forwardedRef, ref);
415
+ const [isFocused, setIsFocused] = React.useState(false);
416
+ const [textContent, setTextContent] = React.useState("");
417
+ React.useEffect(() => {
418
+ const menuItem = ref.current;
419
+ if (menuItem) {
420
+ setTextContent((menuItem.textContent ?? "").trim());
421
+ }
422
+ }, [itemProps.children]);
423
+ return /* @__PURE__ */ jsx(
424
+ Collection.ItemSlot,
425
+ {
426
+ scope: __scopeMenu,
427
+ disabled,
428
+ textValue: textValue ?? textContent,
429
+ children: /* @__PURE__ */ jsx(Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(
430
+ Primitive.div,
431
+ {
432
+ role: "menuitem",
433
+ "data-highlighted": isFocused ? "" : void 0,
434
+ "aria-disabled": disabled || void 0,
435
+ "data-disabled": disabled ? "" : void 0,
436
+ ...itemProps,
437
+ ref: composedRefs,
438
+ onPointerMove: composeEventHandlers(
439
+ props.onPointerMove,
440
+ whenMouse((event) => {
441
+ if (disabled) {
442
+ contentContext.onItemLeave(event);
443
+ } else {
444
+ contentContext.onItemEnter(event);
445
+ if (!event.defaultPrevented) {
446
+ const item = event.currentTarget;
447
+ item.focus({ preventScroll: true });
448
+ }
449
+ }
450
+ })
451
+ ),
452
+ onPointerLeave: composeEventHandlers(
453
+ props.onPointerLeave,
454
+ whenMouse((event) => contentContext.onItemLeave(event))
455
+ ),
456
+ onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),
457
+ onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))
458
+ }
459
+ ) })
460
+ }
461
+ );
462
+ }
463
+ );
464
+ var CHECKBOX_ITEM_NAME = "MenuCheckboxItem";
465
+ var MenuCheckboxItem = React.forwardRef(
466
+ (props, forwardedRef) => {
467
+ const { checked = false, onCheckedChange, ...checkboxItemProps } = props;
468
+ return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(
469
+ MenuItem,
470
+ {
471
+ role: "menuitemcheckbox",
472
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
473
+ ...checkboxItemProps,
474
+ ref: forwardedRef,
475
+ "data-state": getCheckedState(checked),
476
+ onSelect: composeEventHandlers(
477
+ checkboxItemProps.onSelect,
478
+ () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),
479
+ { checkForDefaultPrevented: false }
480
+ )
481
+ }
482
+ ) });
483
+ }
484
+ );
485
+ MenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
486
+ var RADIO_GROUP_NAME = "MenuRadioGroup";
487
+ var [RadioGroupProvider, useRadioGroupContext] = createMenuContext(
488
+ RADIO_GROUP_NAME,
489
+ { value: void 0, onValueChange: () => {
490
+ } }
491
+ );
492
+ var MenuRadioGroup = React.forwardRef(
493
+ (props, forwardedRef) => {
494
+ const { value, onValueChange, ...groupProps } = props;
495
+ const handleValueChange = useCallbackRef(onValueChange);
496
+ return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });
497
+ }
498
+ );
499
+ MenuRadioGroup.displayName = RADIO_GROUP_NAME;
500
+ var RADIO_ITEM_NAME = "MenuRadioItem";
501
+ var MenuRadioItem = React.forwardRef(
502
+ (props, forwardedRef) => {
503
+ const { value, ...radioItemProps } = props;
504
+ const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);
505
+ const checked = value === context.value;
506
+ return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(
507
+ MenuItem,
508
+ {
509
+ role: "menuitemradio",
510
+ "aria-checked": checked,
511
+ ...radioItemProps,
512
+ ref: forwardedRef,
513
+ "data-state": getCheckedState(checked),
514
+ onSelect: composeEventHandlers(
515
+ radioItemProps.onSelect,
516
+ () => context.onValueChange?.(value),
517
+ { checkForDefaultPrevented: false }
518
+ )
519
+ }
520
+ ) });
521
+ }
522
+ );
523
+ MenuRadioItem.displayName = RADIO_ITEM_NAME;
524
+ var ITEM_INDICATOR_NAME = "MenuItemIndicator";
525
+ var [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(
526
+ ITEM_INDICATOR_NAME,
527
+ { checked: false }
528
+ );
529
+ var MenuItemIndicator = React.forwardRef(
530
+ (props, forwardedRef) => {
531
+ const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;
532
+ const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);
533
+ return /* @__PURE__ */ jsx(
534
+ Presence,
535
+ {
536
+ present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,
537
+ children: /* @__PURE__ */ jsx(
538
+ Primitive.span,
539
+ {
540
+ ...itemIndicatorProps,
541
+ ref: forwardedRef,
542
+ "data-state": getCheckedState(indicatorContext.checked)
543
+ }
544
+ )
545
+ }
546
+ );
547
+ }
548
+ );
549
+ MenuItemIndicator.displayName = ITEM_INDICATOR_NAME;
550
+ var SEPARATOR_NAME = "MenuSeparator";
551
+ var MenuSeparator = React.forwardRef(
552
+ (props, forwardedRef) => {
553
+ const { __scopeMenu, ...separatorProps } = props;
554
+ return /* @__PURE__ */ jsx(
555
+ Primitive.div,
556
+ {
557
+ role: "separator",
558
+ "aria-orientation": "horizontal",
559
+ ...separatorProps,
560
+ ref: forwardedRef
561
+ }
562
+ );
563
+ }
564
+ );
565
+ MenuSeparator.displayName = SEPARATOR_NAME;
566
+ var ARROW_NAME = "MenuArrow";
567
+ var MenuArrow = React.forwardRef(
568
+ (props, forwardedRef) => {
569
+ const { __scopeMenu, ...arrowProps } = props;
570
+ const popperScope = usePopperScope(__scopeMenu);
571
+ return /* @__PURE__ */ jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
572
+ }
573
+ );
574
+ MenuArrow.displayName = ARROW_NAME;
575
+ var SUB_NAME = "MenuSub";
576
+ var [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);
577
+ var SUB_TRIGGER_NAME = "MenuSubTrigger";
578
+ var MenuSubTrigger = React.forwardRef(
579
+ (props, forwardedRef) => {
580
+ const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);
581
+ const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);
582
+ const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);
583
+ const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);
584
+ const openTimerRef = React.useRef(null);
585
+ const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;
586
+ const scope = { __scopeMenu: props.__scopeMenu };
587
+ const clearOpenTimer = React.useCallback(() => {
588
+ if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
589
+ openTimerRef.current = null;
590
+ }, []);
591
+ React.useEffect(() => clearOpenTimer, [clearOpenTimer]);
592
+ React.useEffect(() => {
593
+ const pointerGraceTimer = pointerGraceTimerRef.current;
594
+ return () => {
595
+ window.clearTimeout(pointerGraceTimer);
596
+ onPointerGraceIntentChange(null);
597
+ };
598
+ }, [pointerGraceTimerRef, onPointerGraceIntentChange]);
599
+ return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(
600
+ MenuItemImpl,
601
+ {
602
+ id: subContext.triggerId,
603
+ "aria-haspopup": "menu",
604
+ "aria-expanded": context.open,
605
+ "aria-controls": subContext.contentId,
606
+ "data-state": getOpenState(context.open),
607
+ ...props,
608
+ ref: composeRefs(forwardedRef, subContext.onTriggerChange),
609
+ onClick: (event) => {
610
+ props.onClick?.(event);
611
+ if (props.disabled || event.defaultPrevented) return;
612
+ event.currentTarget.focus();
613
+ if (!context.open) context.onOpenChange(true);
614
+ },
615
+ onPointerMove: composeEventHandlers(
616
+ props.onPointerMove,
617
+ whenMouse((event) => {
618
+ contentContext.onItemEnter(event);
619
+ if (event.defaultPrevented) return;
620
+ if (!props.disabled && !context.open && !openTimerRef.current) {
621
+ contentContext.onPointerGraceIntentChange(null);
622
+ openTimerRef.current = window.setTimeout(() => {
623
+ context.onOpenChange(true);
624
+ clearOpenTimer();
625
+ }, 100);
626
+ }
627
+ })
628
+ ),
629
+ onPointerLeave: composeEventHandlers(
630
+ props.onPointerLeave,
631
+ whenMouse((event) => {
632
+ clearOpenTimer();
633
+ const contentRect = context.content?.getBoundingClientRect();
634
+ if (contentRect) {
635
+ const side = context.content?.dataset.side;
636
+ const rightSide = side === "right";
637
+ const bleed = rightSide ? -5 : 5;
638
+ const contentNearEdge = contentRect[rightSide ? "left" : "right"];
639
+ const contentFarEdge = contentRect[rightSide ? "right" : "left"];
640
+ contentContext.onPointerGraceIntentChange({
641
+ area: [
642
+ // Apply a bleed on clientX to ensure that our exit point is
643
+ // consistently within polygon bounds
644
+ { x: event.clientX + bleed, y: event.clientY },
645
+ { x: contentNearEdge, y: contentRect.top },
646
+ { x: contentFarEdge, y: contentRect.top },
647
+ { x: contentFarEdge, y: contentRect.bottom },
648
+ { x: contentNearEdge, y: contentRect.bottom }
649
+ ],
650
+ side
651
+ });
652
+ window.clearTimeout(pointerGraceTimerRef.current);
653
+ pointerGraceTimerRef.current = window.setTimeout(
654
+ () => contentContext.onPointerGraceIntentChange(null),
655
+ 300
656
+ );
657
+ } else {
658
+ contentContext.onTriggerLeave(event);
659
+ if (event.defaultPrevented) return;
660
+ contentContext.onPointerGraceIntentChange(null);
661
+ }
662
+ })
663
+ ),
664
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
665
+ const isTypingAhead = contentContext.searchRef.current !== "";
666
+ if (props.disabled || isTypingAhead && event.key === " ") return;
667
+ if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {
668
+ context.onOpenChange(true);
669
+ context.content?.focus();
670
+ event.preventDefault();
671
+ }
672
+ })
673
+ }
674
+ ) });
675
+ }
676
+ );
677
+ MenuSubTrigger.displayName = SUB_TRIGGER_NAME;
678
+ var SUB_CONTENT_NAME = "MenuSubContent";
679
+ var MenuSubContent = React.forwardRef(
680
+ (props, forwardedRef) => {
681
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);
682
+ const { forceMount = portalContext.forceMount, ...subContentProps } = props;
683
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
684
+ const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);
685
+ const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);
686
+ const ref = React.useRef(null);
687
+ const composedRefs = useComposedRefs(forwardedRef, ref);
688
+ return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(
689
+ MenuContentImpl,
690
+ {
691
+ id: subContext.contentId,
692
+ "aria-labelledby": subContext.triggerId,
693
+ ...subContentProps,
694
+ ref: composedRefs,
695
+ align: "start",
696
+ side: rootContext.dir === "rtl" ? "left" : "right",
697
+ disableOutsidePointerEvents: false,
698
+ disableOutsideScroll: false,
699
+ trapFocus: false,
700
+ onOpenAutoFocus: (event) => {
701
+ if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();
702
+ event.preventDefault();
703
+ },
704
+ onCloseAutoFocus: (event) => event.preventDefault(),
705
+ onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {
706
+ if (event.target !== subContext.trigger) context.onOpenChange(false);
707
+ }),
708
+ onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {
709
+ rootContext.onClose();
710
+ event.preventDefault();
711
+ }),
712
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
713
+ const isKeyDownInside = event.currentTarget.contains(event.target);
714
+ const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);
715
+ if (isKeyDownInside && isCloseKey) {
716
+ context.onOpenChange(false);
717
+ subContext.trigger?.focus();
718
+ event.preventDefault();
719
+ }
720
+ })
721
+ }
722
+ ) }) }) });
723
+ }
724
+ );
725
+ MenuSubContent.displayName = SUB_CONTENT_NAME;
726
+ function getOpenState(open) {
727
+ return open ? "open" : "closed";
728
+ }
729
+ function isIndeterminate(checked) {
730
+ return checked === "indeterminate";
731
+ }
732
+ function getCheckedState(checked) {
733
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
734
+ }
735
+ function focusFirst(candidates) {
736
+ const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
737
+ for (const candidate of candidates) {
738
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
739
+ candidate.focus();
740
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
741
+ }
742
+ }
743
+ function wrapArray(array, startIndex) {
744
+ return array.map((_, index) => array[(startIndex + index) % array.length]);
745
+ }
746
+ function getNextMatch(values, search, currentMatch) {
747
+ const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);
748
+ const normalizedSearch = isRepeated ? search[0] : search;
749
+ const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;
750
+ let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));
751
+ const excludeCurrentMatch = normalizedSearch.length === 1;
752
+ if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);
753
+ const nextMatch = wrappedValues.find(
754
+ (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())
755
+ );
756
+ return nextMatch !== currentMatch ? nextMatch : void 0;
757
+ }
758
+ function isPointInPolygon(point, polygon) {
759
+ const { x, y } = point;
760
+ let inside = false;
761
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
762
+ const xi = polygon[i].x;
763
+ const yi = polygon[i].y;
764
+ const xj = polygon[j].x;
765
+ const yj = polygon[j].y;
766
+ const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
767
+ if (intersect) inside = !inside;
768
+ }
769
+ return inside;
770
+ }
771
+ function isPointerInGraceArea(event, area) {
772
+ if (!area) return false;
773
+ const cursorPos = { x: event.clientX, y: event.clientY };
774
+ return isPointInPolygon(cursorPos, area);
775
+ }
776
+ function whenMouse(handler) {
777
+ return (event) => event.pointerType === "mouse" ? handler(event) : void 0;
778
+ }
779
+ var Root3 = Menu;
780
+ var Anchor2 = MenuAnchor;
781
+ var Portal = MenuPortal;
782
+ var Content2 = MenuContent;
783
+ var Group = MenuGroup;
784
+ var Label = MenuLabel;
785
+ var Item2 = MenuItem;
786
+ var CheckboxItem = MenuCheckboxItem;
787
+ var RadioGroup = MenuRadioGroup;
788
+ var RadioItem = MenuRadioItem;
789
+ var ItemIndicator = MenuItemIndicator;
790
+ var Separator = MenuSeparator;
791
+ var Arrow2 = MenuArrow;
792
+ var SubTrigger = MenuSubTrigger;
793
+ var SubContent = MenuSubContent;
794
+
795
+ export { Anchor2 as Anchor, Arrow2 as Arrow, CheckboxItem, Content2 as Content, Group, Item2 as Item, ItemIndicator, Label, Menu, MenuAnchor, MenuArrow, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuItemIndicator, MenuLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubContent, MenuSubTrigger, Portal, RadioGroup, RadioItem, Root3 as Root, Separator, SubContent, SubTrigger, createMenuScope };
796
+ //# sourceMappingURL=index.js.map