@1771technologies/lytenyte-pro 0.9.4 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/README.md +3 -2
  2. package/dist/+types.d.ts +5299 -0
  3. package/dist/+types.js +1 -0
  4. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.d.ts +2 -0
  5. package/dist/cell-selection/adjust-rect-for-row-and-cell-span.js +43 -0
  6. package/dist/cell-selection/are-rects-equal.d.ts +2 -0
  7. package/dist/cell-selection/are-rects-equal.js +6 -0
  8. package/dist/cell-selection/bound-selection-rect.d.ts +2 -0
  9. package/dist/cell-selection/bound-selection-rect.js +17 -0
  10. package/dist/cell-selection/cell-selection-containers.d.ts +3 -0
  11. package/dist/cell-selection/cell-selection-containers.js +91 -0
  12. package/dist/cell-selection/cell-selection-driver.js +272 -0
  13. package/dist/{types/cell-selection → cell-selection}/cell-style-row.d.ts +2 -2
  14. package/dist/cell-selection/cell-style-row.js +84 -0
  15. package/dist/cell-selection/deselect-rect-range.d.ts +2 -0
  16. package/dist/cell-selection/deselect-rect-range.js +43 -0
  17. package/dist/cell-selection/expand-cell-selection-down.d.ts +5 -0
  18. package/dist/cell-selection/expand-cell-selection-down.js +39 -0
  19. package/dist/cell-selection/expand-cell-selection-end.d.ts +5 -0
  20. package/dist/cell-selection/expand-cell-selection-end.js +40 -0
  21. package/dist/cell-selection/expand-cell-selection-start.d.ts +5 -0
  22. package/dist/cell-selection/expand-cell-selection-start.js +39 -0
  23. package/dist/cell-selection/expand-cell-selection-up.d.ts +5 -0
  24. package/dist/cell-selection/expand-cell-selection-up.js +39 -0
  25. package/dist/cell-selection/full-width-start-end-index.d.ts +2 -0
  26. package/dist/cell-selection/full-width-start-end-index.js +5 -0
  27. package/dist/cell-selection/get-root-cell.d.ts +2 -0
  28. package/dist/cell-selection/get-root-cell.js +86 -0
  29. package/dist/cell-selection/index.d.ts +19 -0
  30. package/dist/cell-selection/index.js +19 -0
  31. package/dist/cell-selection/is-bottom-rect.d.ts +2 -0
  32. package/dist/cell-selection/is-bottom-rect.js +7 -0
  33. package/dist/cell-selection/is-center-col-rect.d.ts +5 -0
  34. package/dist/cell-selection/is-center-col-rect.js +5 -0
  35. package/dist/cell-selection/is-center-rect.d.ts +2 -0
  36. package/dist/cell-selection/is-center-rect.js +5 -0
  37. package/dist/cell-selection/is-end-rect.d.ts +5 -0
  38. package/dist/cell-selection/is-end-rect.js +4 -0
  39. package/dist/cell-selection/is-overlapping-rect.d.ts +2 -0
  40. package/dist/cell-selection/is-overlapping-rect.js +6 -0
  41. package/dist/cell-selection/is-start-rect.d.ts +5 -0
  42. package/dist/cell-selection/is-start-rect.js +4 -0
  43. package/dist/cell-selection/is-top-rect.d.ts +2 -0
  44. package/dist/cell-selection/is-top-rect.js +4 -0
  45. package/dist/cell-selection/is-within-selection-rect.d.ts +2 -0
  46. package/dist/cell-selection/is-within-selection-rect.js +3 -0
  47. package/dist/cell-selection/split-cell-selection-rect.d.ts +39 -0
  48. package/dist/cell-selection/split-cell-selection-rect.js +79 -0
  49. package/dist/cell-selection/update-additive-cell-selection.d.ts +5 -0
  50. package/dist/cell-selection/update-additive-cell-selection.js +25 -0
  51. package/dist/cell-selection/use-edge-scroll.d.ts +10 -0
  52. package/dist/cell-selection/use-edge-scroll.js +66 -0
  53. package/dist/cells/cell-default.d.ts +2 -0
  54. package/dist/cells/cell-default.js +8 -0
  55. package/dist/cells/cell-editor.d.ts +6 -0
  56. package/dist/cells/cell-editor.js +96 -0
  57. package/dist/cells/cell.d.ts +7 -0
  58. package/dist/cells/cell.js +37 -0
  59. package/dist/column-manager/branch-lookup-context.d.ts +4 -0
  60. package/dist/column-manager/branch-lookup-context.js +3 -0
  61. package/dist/column-manager/branch.d.ts +9 -0
  62. package/dist/column-manager/branch.js +38 -0
  63. package/dist/column-manager/column-manager.d.ts +15 -0
  64. package/dist/column-manager/column-manager.js +20 -0
  65. package/dist/column-manager/context.d.ts +7 -0
  66. package/dist/column-manager/context.js +3 -0
  67. package/dist/column-manager/label.d.ts +5 -0
  68. package/dist/column-manager/label.js +18 -0
  69. package/dist/column-manager/leaf.d.ts +6 -0
  70. package/dist/column-manager/leaf.js +40 -0
  71. package/dist/column-manager/move-handle.d.ts +12 -0
  72. package/dist/column-manager/move-handle.js +58 -0
  73. package/dist/column-manager/passive-scroll.d.ts +2 -0
  74. package/dist/column-manager/passive-scroll.js +2 -0
  75. package/dist/column-manager/root.d.ts +9 -0
  76. package/dist/column-manager/root.js +20 -0
  77. package/dist/column-manager/use-column-manager.d.ts +19 -0
  78. package/dist/column-manager/use-column-manager.js +24 -0
  79. package/dist/column-manager/use-columns-from-context.d.ts +3 -0
  80. package/dist/column-manager/use-columns-from-context.js +23 -0
  81. package/dist/column-manager/visibility-checkbox.d.ts +9 -0
  82. package/dist/column-manager/visibility-checkbox.js +30 -0
  83. package/dist/context.d.ts +10 -0
  84. package/dist/context.js +4 -0
  85. package/dist/filter-tree/branch.d.ts +10 -0
  86. package/dist/filter-tree/branch.js +21 -0
  87. package/dist/filter-tree/context.d.ts +27 -0
  88. package/dist/filter-tree/context.js +5 -0
  89. package/dist/filter-tree/filter-tree.d.ts +14 -0
  90. package/dist/filter-tree/filter-tree.js +18 -0
  91. package/dist/filter-tree/hooks/use-filter-tree.d.ts +37 -0
  92. package/dist/filter-tree/hooks/use-filter-tree.js +96 -0
  93. package/dist/filter-tree/hooks/use-tree-item.d.ts +8 -0
  94. package/dist/filter-tree/hooks/use-tree-item.js +116 -0
  95. package/dist/filter-tree/inclusion-checkbox.d.ts +9 -0
  96. package/dist/filter-tree/inclusion-checkbox.js +14 -0
  97. package/dist/filter-tree/label.d.ts +5 -0
  98. package/dist/filter-tree/label.js +18 -0
  99. package/dist/filter-tree/leaf.d.ts +6 -0
  100. package/dist/filter-tree/leaf.js +12 -0
  101. package/dist/filter-tree/root.d.ts +13 -0
  102. package/dist/filter-tree/root.js +30 -0
  103. package/dist/grid-box/+types.d.ts +13 -0
  104. package/dist/grid-box/+types.js +1 -0
  105. package/dist/grid-box/context.d.ts +9 -0
  106. package/dist/grid-box/context.js +3 -0
  107. package/dist/grid-box/grid-box.d.ts +12 -0
  108. package/dist/grid-box/grid-box.js +14 -0
  109. package/dist/grid-box/item.d.ts +7 -0
  110. package/dist/grid-box/item.js +33 -0
  111. package/dist/grid-box/panel.d.ts +1 -0
  112. package/dist/grid-box/panel.js +9 -0
  113. package/dist/grid-box/root.d.ts +9 -0
  114. package/dist/grid-box/root.js +8 -0
  115. package/dist/grid-box/use-aggregation-box-items.d.ts +18 -0
  116. package/dist/grid-box/use-aggregation-box-items.js +60 -0
  117. package/dist/grid-box/use-column-box-items.d.ts +31 -0
  118. package/dist/grid-box/use-column-box-items.js +81 -0
  119. package/dist/grid-box/use-row-group-box-items.d.ts +18 -0
  120. package/dist/grid-box/use-row-group-box-items.js +134 -0
  121. package/dist/grid-provider/context.d.ts +5 -0
  122. package/dist/grid-provider/context.js +2 -0
  123. package/dist/grid-provider/provider.d.ts +3 -0
  124. package/dist/grid-provider/provider.js +2 -0
  125. package/dist/grid-provider/use-grid.d.ts +3 -0
  126. package/dist/grid-provider/use-grid.js +3 -0
  127. package/dist/grid.d.ts +29 -0
  128. package/dist/grid.js +38 -0
  129. package/dist/header/header-cell.d.ts +10 -0
  130. package/dist/header/header-cell.js +24 -0
  131. package/dist/header/header-group-cell.d.ts +5 -0
  132. package/dist/header/header-group-cell.js +14 -0
  133. package/dist/header/header-row.d.ts +4 -0
  134. package/dist/header/header-row.js +10 -0
  135. package/dist/header/header.d.ts +1 -0
  136. package/dist/header/header.js +10 -0
  137. package/dist/header/resize-handler.d.ts +12 -0
  138. package/dist/header/resize-handler.js +128 -0
  139. package/dist/header/use-drag-move.d.ts +14 -0
  140. package/dist/header/use-drag-move.js +90 -0
  141. package/dist/header/use-header-cell-renderer.d.ts +4 -0
  142. package/dist/header/use-header-cell-renderer.js +36 -0
  143. package/dist/index.d.ts +6 -0
  144. package/dist/index.js +6 -3860
  145. package/dist/license.d.ts +2 -0
  146. package/dist/license.js +217 -0
  147. package/dist/listbox/context.d.ts +6 -0
  148. package/dist/listbox/context.js +3 -0
  149. package/dist/listbox/item.d.ts +1 -0
  150. package/dist/listbox/item.js +25 -0
  151. package/dist/listbox/panel.d.ts +1 -0
  152. package/dist/listbox/panel.js +50 -0
  153. package/dist/listbox/root.d.ts +6 -0
  154. package/dist/listbox/root.js +12 -0
  155. package/dist/root/dialog-driver.js +21 -0
  156. package/dist/root/popover-driver.js +21 -0
  157. package/dist/root/root.d.ts +8 -0
  158. package/dist/root/root.js +120 -0
  159. package/dist/row-data-source-client/+constants.d.ts +2 -0
  160. package/dist/row-data-source-client/+constants.js +2 -0
  161. package/dist/row-data-source-client/+types.d.ts +27 -0
  162. package/dist/row-data-source-client/+types.js +1 -0
  163. package/dist/row-data-source-client/built-ins/avg.d.ts +10 -0
  164. package/dist/row-data-source-client/built-ins/avg.js +16 -0
  165. package/dist/row-data-source-client/built-ins/built-ins.d.ts +44 -0
  166. package/dist/row-data-source-client/built-ins/built-ins.js +44 -0
  167. package/dist/row-data-source-client/built-ins/count.d.ts +10 -0
  168. package/dist/row-data-source-client/built-ins/count.js +16 -0
  169. package/dist/row-data-source-client/built-ins/first.d.ts +10 -0
  170. package/dist/row-data-source-client/built-ins/first.js +12 -0
  171. package/dist/row-data-source-client/built-ins/group.d.ts +1 -0
  172. package/dist/row-data-source-client/built-ins/group.js +3 -0
  173. package/dist/row-data-source-client/built-ins/last.d.ts +10 -0
  174. package/dist/row-data-source-client/built-ins/last.js +12 -0
  175. package/dist/row-data-source-client/built-ins/max.d.ts +11 -0
  176. package/dist/row-data-source-client/built-ins/max.js +25 -0
  177. package/dist/row-data-source-client/built-ins/min.d.ts +11 -0
  178. package/dist/row-data-source-client/built-ins/min.js +25 -0
  179. package/dist/row-data-source-client/built-ins/sum.d.ts +10 -0
  180. package/dist/row-data-source-client/built-ins/sum.js +21 -0
  181. package/dist/row-data-source-client/filter/+types.d.ts +23 -0
  182. package/dist/row-data-source-client/filter/+types.js +1 -0
  183. package/dist/row-data-source-client/filter/compute-filtered-rows.d.ts +2 -0
  184. package/dist/row-data-source-client/filter/compute-filtered-rows.js +109 -0
  185. package/dist/row-data-source-client/pivots/create-agg-model.d.ts +6 -0
  186. package/dist/row-data-source-client/pivots/create-agg-model.js +13 -0
  187. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.d.ts +2 -0
  188. package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.js +50 -0
  189. package/dist/row-data-source-client/pivots/create-pivot-columns.d.ts +2 -0
  190. package/dist/row-data-source-client/pivots/create-pivot-columns.js +22 -0
  191. package/dist/row-data-source-client/pivots/create-pivot-tree.d.ts +2 -0
  192. package/dist/row-data-source-client/pivots/create-pivot-tree.js +23 -0
  193. package/dist/row-data-source-client/tree/client-tree.d.ts +18 -0
  194. package/dist/row-data-source-client/tree/client-tree.js +76 -0
  195. package/dist/row-data-source-client/tree/evaluator-aggregation.d.ts +2 -0
  196. package/dist/row-data-source-client/tree/evaluator-aggregation.js +8 -0
  197. package/dist/row-data-source-client/tree/evaluator-group.d.ts +2 -0
  198. package/dist/row-data-source-client/tree/evaluator-group.js +9 -0
  199. package/dist/row-data-source-client/tree/traverse.d.ts +2 -0
  200. package/dist/row-data-source-client/tree/traverse.js +22 -0
  201. package/dist/row-data-source-client/use-client-data-source-paginated.d.ts +10 -0
  202. package/dist/row-data-source-client/use-client-data-source-paginated.js +538 -0
  203. package/dist/row-data-source-client/use-client-data-source.d.ts +10 -0
  204. package/dist/row-data-source-client/use-client-data-source.js +667 -0
  205. package/dist/row-data-source-client/use-client-tree-data-source.d.ts +9 -0
  206. package/dist/row-data-source-client/use-client-tree-data-source.js +513 -0
  207. package/dist/row-data-source-server/async-tree/+constants.async-tree.d.ts +1 -0
  208. package/dist/row-data-source-server/async-tree/+constants.async-tree.js +1 -0
  209. package/dist/row-data-source-server/async-tree/+types.async-tree.d.ts +59 -0
  210. package/dist/row-data-source-server/async-tree/+types.async-tree.js +1 -0
  211. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.d.ts +2 -0
  212. package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.js +27 -0
  213. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.d.ts +2 -0
  214. package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.js +36 -0
  215. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.d.ts +2 -0
  216. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.js +24 -0
  217. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.d.ts +2 -0
  218. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.js +14 -0
  219. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.d.ts +2 -0
  220. package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.js +18 -0
  221. package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.d.ts +2 -0
  222. package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.js +14 -0
  223. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.d.ts +2 -0
  224. package/dist/row-data-source-server/async-tree/get-parent-node-by-path.js +18 -0
  225. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.d.ts +2 -0
  226. package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.js +3 -0
  227. package/dist/row-data-source-server/async-tree/make-async-tree.d.ts +2 -0
  228. package/dist/row-data-source-server/async-tree/make-async-tree.js +19 -0
  229. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.d.ts +2 -0
  230. package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.js +8 -0
  231. package/dist/row-data-source-server/async-tree/maybe-apply-resize.d.ts +2 -0
  232. package/dist/row-data-source-server/async-tree/maybe-apply-resize.js +17 -0
  233. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.d.ts +2 -0
  234. package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.js +51 -0
  235. package/dist/row-data-source-server/range-tree/range-tree.d.ts +66 -0
  236. package/dist/row-data-source-server/range-tree/range-tree.js +102 -0
  237. package/dist/row-data-source-server/use-server-data-source.d.ts +3 -0
  238. package/dist/row-data-source-server/use-server-data-source.js +679 -0
  239. package/dist/row-data-source-server/utils/get-node-depth.d.ts +2 -0
  240. package/dist/row-data-source-server/utils/get-node-depth.js +9 -0
  241. package/dist/row-data-source-server/utils/get-node-path.d.ts +2 -0
  242. package/dist/row-data-source-server/utils/get-node-path.js +9 -0
  243. package/dist/row-data-source-server/utils/get-request-id.d.ts +1 -0
  244. package/dist/row-data-source-server/utils/get-request-id.js +6 -0
  245. package/dist/rows/row/context.d.ts +6 -0
  246. package/dist/rows/row/context.js +3 -0
  247. package/dist/rows/row/row.d.ts +7 -0
  248. package/dist/rows/row/row.js +16 -0
  249. package/dist/rows/row/use-row-context-value.d.ts +6 -0
  250. package/dist/rows/row/use-row-context-value.js +29 -0
  251. package/dist/rows/row-detail-row.d.ts +4 -0
  252. package/dist/rows/row-detail-row.js +131 -0
  253. package/dist/rows/row-full-width.d.ts +8 -0
  254. package/dist/rows/row-full-width.js +17 -0
  255. package/dist/rows/rows-container.d.ts +1 -0
  256. package/dist/rows/rows-container.js +9 -0
  257. package/dist/rows/rows-sections.d.ts +3 -0
  258. package/dist/rows/rows-sections.js +27 -0
  259. package/dist/rows/scrollers/native-scroller.d.ts +2 -0
  260. package/dist/rows/scrollers/native-scroller.js +18 -0
  261. package/dist/{types/sort-manager/use-sort-state.d.ts → sort-manager/+types.d.ts} +5 -2
  262. package/dist/sort-manager/+types.js +1 -0
  263. package/dist/sort-manager/context.d.ts +14 -0
  264. package/dist/sort-manager/context.js +5 -0
  265. package/dist/sort-manager/hooks/use-sort-manager.d.ts +15 -0
  266. package/dist/sort-manager/hooks/use-sort-manager.js +56 -0
  267. package/dist/{types/sort-manager/sort-manager-container.d.ts → sort-manager/hooks/use-sort-row-item.d.ts} +5 -7
  268. package/dist/sort-manager/hooks/use-sort-row-item.js +145 -0
  269. package/dist/sort-manager/hooks/use-sortable-column-items.d.ts +5 -0
  270. package/dist/sort-manager/hooks/use-sortable-column-items.js +13 -0
  271. package/dist/sort-manager/root.d.ts +3 -0
  272. package/dist/sort-manager/root.js +14 -0
  273. package/dist/sort-manager/sort-add.d.ts +8 -0
  274. package/dist/sort-manager/sort-add.js +14 -0
  275. package/dist/sort-manager/sort-apply.d.ts +7 -0
  276. package/dist/sort-manager/sort-apply.js +24 -0
  277. package/dist/sort-manager/sort-cancel.d.ts +7 -0
  278. package/dist/sort-manager/sort-cancel.js +27 -0
  279. package/dist/sort-manager/sort-clear.d.ts +7 -0
  280. package/dist/sort-manager/sort-clear.js +22 -0
  281. package/dist/sort-manager/sort-column-select.d.ts +10 -0
  282. package/dist/sort-manager/sort-column-select.js +20 -0
  283. package/dist/sort-manager/sort-direction-select.d.ts +10 -0
  284. package/dist/sort-manager/sort-direction-select.js +24 -0
  285. package/dist/sort-manager/sort-manager.d.ts +16 -0
  286. package/dist/sort-manager/sort-manager.js +26 -0
  287. package/dist/sort-manager/sort-remove.d.ts +7 -0
  288. package/dist/sort-manager/sort-remove.js +14 -0
  289. package/dist/sort-manager/sort-row.d.ts +5 -0
  290. package/dist/sort-manager/sort-row.js +7 -0
  291. package/dist/sort-manager/sort-rows.d.ts +1 -0
  292. package/dist/sort-manager/sort-rows.js +6 -0
  293. package/dist/sort-manager/sort-value-select.d.ts +11 -0
  294. package/dist/sort-manager/sort-value-select.js +25 -0
  295. package/dist/sort-manager/utils/sort-item-to-sort-model.d.ts +3 -0
  296. package/dist/sort-manager/utils/sort-item-to-sort-model.js +57 -0
  297. package/dist/sort-manager/utils/sort-model-to-sort-items.d.ts +3 -0
  298. package/dist/sort-manager/utils/sort-model-to-sort-items.js +49 -0
  299. package/dist/state/+types.d.ts +34 -0
  300. package/dist/state/+types.js +1 -0
  301. package/dist/state/api/column-autosize.d.ts +5 -0
  302. package/dist/state/api/column-autosize.js +72 -0
  303. package/dist/state/api/column-by-id.d.ts +2 -0
  304. package/dist/state/api/column-by-id.js +6 -0
  305. package/dist/state/api/column-field.d.ts +2 -0
  306. package/dist/state/api/column-field.js +23 -0
  307. package/dist/state/api/column-from-index.d.ts +2 -0
  308. package/dist/state/api/column-from-index.js +6 -0
  309. package/dist/state/api/column-group-toggle.d.ts +2 -0
  310. package/dist/state/api/column-group-toggle.js +10 -0
  311. package/dist/state/api/column-index.d.ts +2 -0
  312. package/dist/state/api/column-index.js +7 -0
  313. package/dist/state/api/column-move.d.ts +2 -0
  314. package/dist/state/api/column-move.js +49 -0
  315. package/dist/state/api/column-resize.d.ts +2 -0
  316. package/dist/state/api/column-resize.js +9 -0
  317. package/dist/state/api/column-update.d.ts +2 -0
  318. package/dist/state/api/column-update.js +13 -0
  319. package/dist/state/api/dialog-frame.d.ts +8 -0
  320. package/dist/state/api/dialog-frame.js +16 -0
  321. package/dist/state/api/edit-begin.d.ts +5 -0
  322. package/dist/state/api/edit-begin.js +91 -0
  323. package/dist/state/api/edit-end.d.ts +5 -0
  324. package/dist/state/api/edit-end.js +43 -0
  325. package/dist/state/api/edit-is-cell-active.d.ts +5 -0
  326. package/dist/state/api/edit-is-cell-active.js +27 -0
  327. package/dist/state/api/edit-update.d.ts +5 -0
  328. package/dist/state/api/edit-update.js +88 -0
  329. package/dist/state/api/event-listeners.d.ts +5 -0
  330. package/dist/state/api/event-listeners.js +19 -0
  331. package/dist/state/api/export-csv.d.ts +3 -0
  332. package/dist/state/api/export-csv.js +40 -0
  333. package/dist/state/api/export-data-rect.d.ts +2 -0
  334. package/dist/state/api/export-data-rect.js +24 -0
  335. package/dist/state/api/focus-cell.d.ts +5 -0
  336. package/dist/state/api/focus-cell.js +117 -0
  337. package/dist/state/api/popover-frame.d.ts +8 -0
  338. package/dist/state/api/popover-frame.js +16 -0
  339. package/dist/state/api/position-from-element.d.ts +2 -0
  340. package/dist/state/api/position-from-element.js +9 -0
  341. package/dist/state/api/row-by-id.d.ts +2 -0
  342. package/dist/state/api/row-by-id.js +5 -0
  343. package/dist/state/api/row-by-index.d.ts +2 -0
  344. package/dist/state/api/row-by-index.js +9 -0
  345. package/dist/state/api/row-detail-is-expanded.d.ts +2 -0
  346. package/dist/state/api/row-detail-is-expanded.js +6 -0
  347. package/dist/state/api/row-detail-rendered-height.d.ts +5 -0
  348. package/dist/state/api/row-detail-rendered-height.js +14 -0
  349. package/dist/state/api/row-detail-toggle.d.ts +2 -0
  350. package/dist/state/api/row-detail-toggle.js +32 -0
  351. package/dist/state/api/row-group-apply-expansions.d.ts +2 -0
  352. package/dist/state/api/row-group-apply-expansions.js +20 -0
  353. package/dist/state/api/row-group-column-index.d.ts +2 -0
  354. package/dist/state/api/row-group-column-index.js +14 -0
  355. package/dist/state/api/row-group-is-expanded.d.ts +2 -0
  356. package/dist/state/api/row-group-is-expanded.js +15 -0
  357. package/dist/state/api/row-group-toggle.d.ts +2 -0
  358. package/dist/state/api/row-group-toggle.js +7 -0
  359. package/dist/state/api/row-handle-select.d.ts +5 -0
  360. package/dist/state/api/row-handle-select.js +43 -0
  361. package/dist/state/api/row-select-all.d.ts +2 -0
  362. package/dist/state/api/row-select-all.js +17 -0
  363. package/dist/state/api/row-select.d.ts +5 -0
  364. package/dist/state/api/row-select.js +35 -0
  365. package/dist/state/api/row-selected.d.ts +2 -0
  366. package/dist/state/api/row-selected.js +13 -0
  367. package/dist/state/api/scroll-into-view.d.ts +5 -0
  368. package/dist/state/api/scroll-into-view.js +50 -0
  369. package/dist/state/api/sort-for-column.d.ts +2 -0
  370. package/dist/state/api/sort-for-column.js +9 -0
  371. package/dist/state/api/use-row-drag.d.ts +2 -0
  372. package/dist/state/api/use-row-drag.js +27 -0
  373. package/dist/state/helpers/cell-row-group.d.ts +2 -0
  374. package/dist/state/helpers/cell-row-group.js +19 -0
  375. package/dist/state/helpers/column-add-row-group.d.ts +9 -0
  376. package/dist/state/helpers/column-add-row-group.js +66 -0
  377. package/dist/state/helpers/column-layout.d.ts +3 -0
  378. package/dist/state/helpers/column-layout.js +65 -0
  379. package/dist/state/helpers/column-marker.d.ts +8 -0
  380. package/dist/state/helpers/column-marker.js +43 -0
  381. package/dist/state/helpers/column-view.d.ts +21 -0
  382. package/dist/state/helpers/column-view.js +33 -0
  383. package/dist/state/helpers/edit-on-change.d.ts +15 -0
  384. package/dist/state/helpers/edit-on-change.js +26 -0
  385. package/dist/state/helpers/empty-row-data-source.d.ts +2 -0
  386. package/dist/state/helpers/empty-row-data-source.js +17 -0
  387. package/dist/state/helpers/get-data-rect.d.ts +13 -0
  388. package/dist/state/helpers/get-data-rect.js +65 -0
  389. package/dist/state/helpers/get-full-width-callback.d.ts +2 -0
  390. package/dist/state/helpers/get-full-width-callback.js +8 -0
  391. package/dist/state/helpers/get-span-callback.d.ts +2 -0
  392. package/dist/state/helpers/get-span-callback.js +20 -0
  393. package/dist/state/helpers/resolve-column.d.ts +4 -0
  394. package/dist/state/helpers/resolve-column.js +22 -0
  395. package/dist/state/helpers/row-layout/get-focus-criteria.d.ts +17 -0
  396. package/dist/state/helpers/row-layout/get-focus-criteria.js +62 -0
  397. package/dist/state/helpers/row-layout/row-layout.d.ts +18 -0
  398. package/dist/state/helpers/row-layout/row-layout.js +414 -0
  399. package/dist/state/use-lytenyte.d.ts +3 -0
  400. package/dist/state/use-lytenyte.js +579 -0
  401. package/dist/tree-view/branch/branch.d.ts +11 -0
  402. package/dist/tree-view/branch/branch.js +61 -0
  403. package/dist/tree-view/branch/use-branch-keys.d.ts +2 -0
  404. package/dist/tree-view/branch/use-branch-keys.js +87 -0
  405. package/dist/tree-view/context.d.ts +22 -0
  406. package/dist/tree-view/context.js +3 -0
  407. package/dist/tree-view/depth-provider.d.ts +2 -0
  408. package/dist/tree-view/depth-provider.js +3 -0
  409. package/dist/tree-view/hooks/use-tree-view-paths.d.ts +2 -0
  410. package/dist/tree-view/hooks/use-tree-view-paths.js +9 -0
  411. package/dist/tree-view/index.d.ts +16 -0
  412. package/dist/tree-view/index.js +16 -0
  413. package/dist/tree-view/leaf.d.ts +4 -0
  414. package/dist/tree-view/leaf.js +27 -0
  415. package/dist/tree-view/navigation/get-all-ids.d.ts +1 -0
  416. package/dist/tree-view/navigation/get-all-ids.js +7 -0
  417. package/dist/tree-view/navigation/get-first-node.d.ts +1 -0
  418. package/dist/tree-view/navigation/get-first-node.js +7 -0
  419. package/dist/tree-view/navigation/get-last-node.d.ts +1 -0
  420. package/dist/tree-view/navigation/get-last-node.js +7 -0
  421. package/dist/tree-view/navigation/get-next-node.d.ts +1 -0
  422. package/dist/tree-view/navigation/get-next-node.js +13 -0
  423. package/dist/tree-view/navigation/get-prev-node.d.ts +1 -0
  424. package/dist/tree-view/navigation/get-prev-node.js +13 -0
  425. package/dist/tree-view/panel/make-handle-navigation.d.ts +2 -0
  426. package/dist/tree-view/panel/make-handle-navigation.js +39 -0
  427. package/dist/tree-view/panel/make-handle-selection.d.ts +2 -0
  428. package/dist/tree-view/panel/make-handle-selection.js +92 -0
  429. package/dist/tree-view/panel/make-handle-typeahead.d.ts +1 -0
  430. package/dist/tree-view/panel/make-handle-typeahead.js +45 -0
  431. package/dist/tree-view/panel/panel.d.ts +1 -0
  432. package/dist/tree-view/panel/panel.js +30 -0
  433. package/dist/tree-view/panel/use-tree-navigation.d.ts +1 -0
  434. package/dist/tree-view/panel/use-tree-navigation.js +63 -0
  435. package/dist/tree-view/root.d.ts +17 -0
  436. package/dist/tree-view/root.js +63 -0
  437. package/dist/tree-view/utils/get-focusable-nodes.d.ts +1 -0
  438. package/dist/tree-view/utils/get-focusable-nodes.js +5 -0
  439. package/dist/tree-view/utils/get-focused-node.d.ts +1 -0
  440. package/dist/tree-view/utils/get-focused-node.js +14 -0
  441. package/dist/tree-view/utils/get-ids-between-nodes.d.ts +1 -0
  442. package/dist/tree-view/utils/get-ids-between-nodes.js +15 -0
  443. package/dist/tree-view/utils/get-panel.d.ts +1 -0
  444. package/dist/tree-view/utils/get-panel.js +7 -0
  445. package/dist/tree-view/utils/get-parent-node.d.ts +1 -0
  446. package/dist/tree-view/utils/get-parent-node.js +10 -0
  447. package/dist/tree-view/utils/get-sibling-branches.d.ts +1 -0
  448. package/dist/tree-view/utils/get-sibling-branches.js +14 -0
  449. package/dist/tree-view/utils/get-tree-node-id.d.ts +1 -0
  450. package/dist/tree-view/utils/get-tree-node-id.js +3 -0
  451. package/dist/tree-view/utils/is-branch-node.d.ts +1 -0
  452. package/dist/tree-view/utils/is-branch-node.js +3 -0
  453. package/dist/tree-view/utils/is-leaf-node.d.ts +1 -0
  454. package/dist/tree-view/utils/is-leaf-node.js +3 -0
  455. package/dist/tree-view/utils/is-tree-node-disabled.d.ts +1 -0
  456. package/dist/tree-view/utils/is-tree-node-disabled.js +3 -0
  457. package/dist/tree-view/utils/select-node.d.ts +2 -0
  458. package/dist/tree-view/utils/select-node.js +15 -0
  459. package/dist/tree-view/utils/toggle-all-selections.d.ts +2 -0
  460. package/dist/tree-view/utils/toggle-all-selections.js +9 -0
  461. package/dist/tree-view/utils/toggle-selection.d.ts +2 -0
  462. package/dist/tree-view/utils/toggle-selection.js +21 -0
  463. package/dist/tree-view/virtualized/force-sync-scrolling.d.ts +2 -0
  464. package/dist/tree-view/virtualized/force-sync-scrolling.js +23 -0
  465. package/dist/tree-view/virtualized/get-virtual-tree-paths.d.ts +2 -0
  466. package/dist/tree-view/virtualized/get-virtual-tree-paths.js +14 -0
  467. package/dist/tree-view/virtualized/make-virtual-tree.d.ts +31 -0
  468. package/dist/tree-view/virtualized/make-virtual-tree.js +90 -0
  469. package/dist/tree-view/virtualized/use-flattened-tree.d.ts +9 -0
  470. package/dist/tree-view/virtualized/use-flattened-tree.js +36 -0
  471. package/dist/tree-view/virtualized/use-row-start-and-end.d.ts +2 -0
  472. package/dist/tree-view/virtualized/use-row-start-and-end.js +27 -0
  473. package/dist/tree-view/virtualized/use-virtualized-tree.d.ts +22 -0
  474. package/dist/tree-view/virtualized/use-virtualized-tree.js +100 -0
  475. package/dist/types/types.d.ts +8 -13
  476. package/dist/types/types.js +1 -0
  477. package/dist/utils/cycle-sorts.d.ts +2 -0
  478. package/dist/utils/cycle-sorts.js +16 -0
  479. package/dist/viewport/begin-editing.d.ts +5 -0
  480. package/dist/viewport/begin-editing.js +15 -0
  481. package/dist/viewport/viewport.d.ts +1 -0
  482. package/dist/viewport/viewport.js +77 -0
  483. package/main.css +315 -0
  484. package/package.json +31 -79
  485. package/dist/CompositeList-CGRaS6LQ.js +0 -149
  486. package/dist/DialogPortalContext-C2WZTqJ3.js +0 -47
  487. package/dist/DirectionContext-DIPP5cAe.js +0 -15
  488. package/dist/InternalBackdrop-C4RACVzs.js +0 -324
  489. package/dist/PopoverPortalContext-BdsDjihw.js +0 -26
  490. package/dist/anchor-context-Cqr_oiJt.js +0 -11
  491. package/dist/arrow-down-icon-B-3ldODD.js +0 -27
  492. package/dist/column-manager.js +0 -1228
  493. package/dist/column-menu-driver-cG-EZgLa.js +0 -491
  494. package/dist/cross-icon-CEMLAlFX.js +0 -20
  495. package/dist/dialog.js +0 -506
  496. package/dist/drag-store-BMsDBUy_.js +0 -1039
  497. package/dist/filter-manager.js +0 -1057
  498. package/dist/getPseudoElementBounds-BSHt6WYm.js +0 -26
  499. package/dist/grid-container.js +0 -18
  500. package/dist/icons.js +0 -516
  501. package/dist/lytenyte-pro.css +0 -2167
  502. package/dist/manage-columns-icon-D4CElo5H.js +0 -146
  503. package/dist/menu-lIx6h6Vn.js +0 -1885
  504. package/dist/menu.js +0 -4
  505. package/dist/more-dots-icon-CzAH3xHG.js +0 -26
  506. package/dist/pill-BHBLeJ6k.js +0 -1012
  507. package/dist/pill-manager.js +0 -737
  508. package/dist/plus-icon-ToqW5CC-.js +0 -15
  509. package/dist/popover.js +0 -795
  510. package/dist/proptypes-BjYr2nFr.js +0 -6472
  511. package/dist/row-group-icon-DFUMye0v.js +0 -186
  512. package/dist/search-icon-CcG1lqsn.js +0 -86
  513. package/dist/select-Db5ksjoS.js +0 -2256
  514. package/dist/separator-BnPPeAk8.js +0 -21
  515. package/dist/sort-descending-BMtfaa2L.js +0 -34
  516. package/dist/sort-manager.js +0 -308
  517. package/dist/tickmark-icon-CoogRMoO.js +0 -51
  518. package/dist/types/anchor-context/anchor-context.d.ts +0 -6
  519. package/dist/types/cell-selection/cell-selection-containers.d.ts +0 -3
  520. package/dist/types/column-manager/column-manager-context.d.ts +0 -12
  521. package/dist/types/column-manager/column-manager-drag-box-controls.d.ts +0 -1
  522. package/dist/types/column-manager/column-manager-drag-box-expander.d.ts +0 -1
  523. package/dist/types/column-manager/column-manager-drag-box-label.d.ts +0 -5
  524. package/dist/types/column-manager/column-manager-drag-box.d.ts +0 -13
  525. package/dist/types/column-manager/column-manager-drag-placeholder.d.ts +0 -5
  526. package/dist/types/column-manager/column-manager-drop-zone.d.ts +0 -10
  527. package/dist/types/column-manager/column-manager-impl.d.ts +0 -36
  528. package/dist/types/column-manager/column-manager-pill.d.ts +0 -4
  529. package/dist/types/column-manager/column-manager-pivot-mode-toggle.d.ts +0 -1
  530. package/dist/types/column-manager/column-manager-search.d.ts +0 -1
  531. package/dist/types/column-manager/column-manager-state.d.ts +0 -8
  532. package/dist/types/column-manager/column-manager-tree-item.d.ts +0 -6
  533. package/dist/types/column-manager/column-manager-tree.d.ts +0 -11
  534. package/dist/types/column-manager/column-manager-types.d.ts +0 -1
  535. package/dist/types/column-manager/column-manager.d.ts +0 -1
  536. package/dist/types/column-manager/utils/all-leafs.d.ts +0 -3
  537. package/dist/types/column-manager/utils/can-hide-item.d.ts +0 -3
  538. package/dist/types/column-manager/utils/handle-item-hide.d.ts +0 -3
  539. package/dist/types/components-internal/button/button.d.ts +0 -9
  540. package/dist/types/components-internal/grid-frame/grid-frame.d.ts +0 -11
  541. package/dist/types/components-internal/radio/radio.d.ts +0 -5
  542. package/dist/types/components-internal/separator/separator.d.ts +0 -8
  543. package/dist/types/components-internal/toggle/toggle.d.ts +0 -7
  544. package/dist/types/dialog/dialog-impl.d.ts +0 -6
  545. package/dist/types/dialog/dialog.d.ts +0 -8
  546. package/dist/types/dialog/use-dialog-class.d.ts +0 -1
  547. package/dist/types/external.d.ts +0 -2
  548. package/dist/types/filter-manager/combined-to-flat.d.ts +0 -3
  549. package/dist/types/filter-manager/components/apply-filter-button.d.ts +0 -1
  550. package/dist/types/filter-manager/components/clear-filter-button.d.ts +0 -1
  551. package/dist/types/filter-manager/components/flatten-tree-items.d.ts +0 -4
  552. package/dist/types/filter-manager/components/get-child-values.d.ts +0 -2
  553. package/dist/types/filter-manager/components/in-filter-container.d.ts +0 -1
  554. package/dist/types/filter-manager/components/in-filter-error.d.ts +0 -5
  555. package/dist/types/filter-manager/components/in-filter-loading.d.ts +0 -1
  556. package/dist/types/filter-manager/components/in-filter-root.d.ts +0 -11
  557. package/dist/types/filter-manager/components/in-filter-tree.d.ts +0 -15
  558. package/dist/types/filter-manager/components/simple-filter-additional-switch.d.ts +0 -1
  559. package/dist/types/filter-manager/components/simple-filter-operator/date-operator.d.ts +0 -1
  560. package/dist/types/filter-manager/components/simple-filter-operator/number-operator.d.ts +0 -1
  561. package/dist/types/filter-manager/components/simple-filter-operator/simple-filter-operator.d.ts +0 -1
  562. package/dist/types/filter-manager/components/simple-filter-operator/text-operator.d.ts +0 -1
  563. package/dist/types/filter-manager/components/simple-filter-root.d.ts +0 -9
  564. package/dist/types/filter-manager/components/simple-filter-value/date-value.d.ts +0 -1
  565. package/dist/types/filter-manager/components/simple-filter-value/number-value.d.ts +0 -1
  566. package/dist/types/filter-manager/components/simple-filter-value/simple-filter-value.d.ts +0 -1
  567. package/dist/types/filter-manager/components/simple-filter-value/text-value.d.ts +0 -1
  568. package/dist/types/filter-manager/components/use-date-filter-callbacks.d.ts +0 -9
  569. package/dist/types/filter-manager/components/use-in-filter-item-loader.d.ts +0 -7
  570. package/dist/types/filter-manager/components/use-number-filter-callbacks.d.ts +0 -8
  571. package/dist/types/filter-manager/components/use-text-filter-callbacks.d.ts +0 -8
  572. package/dist/types/filter-manager/filter-manager-impl.d.ts +0 -27
  573. package/dist/types/filter-manager/filter-manager.d.ts +0 -1
  574. package/dist/types/filter-manager/filter-state-context.d.ts +0 -16
  575. package/dist/types/filter-manager/flat-to-combined.d.ts +0 -3
  576. package/dist/types/filter-manager/flatten-combined-filter.d.ts +0 -3
  577. package/dist/types/filter-manager/is-filter-complete.d.ts +0 -2
  578. package/dist/types/filter-manager/types.d.ts +0 -15
  579. package/dist/types/filter-manager/use-in-filter.d.ts +0 -5
  580. package/dist/types/filter-manager/use-simple-filters.d.ts +0 -8
  581. package/dist/types/grid-container/grid-container-impl.d.ts +0 -6
  582. package/dist/types/grid-container/grid-container.d.ts +0 -2
  583. package/dist/types/header-cell/header-cell-default.d.ts +0 -2
  584. package/dist/types/icons.d.ts +0 -1
  585. package/dist/types/index.d.ts +0 -8
  586. package/dist/types/license.d.ts +0 -12
  587. package/dist/types/list-view/list-view-context.d.ts +0 -21
  588. package/dist/types/list-view/list-view.d.ts +0 -26
  589. package/dist/types/lytenyte-pro.d.ts +0 -7
  590. package/dist/types/menu/arrow-svg.d.ts +0 -1
  591. package/dist/types/menu/column-menu/column-menu-driver.d.ts +0 -4
  592. package/dist/types/menu/context-menu/context-menu-driver.d.ts +0 -1
  593. package/dist/types/menu/context-menu/use-context-menu-listener.d.ts +0 -6
  594. package/dist/types/menu/menu-impl.d.ts +0 -18
  595. package/dist/types/menu/menu.d.ts +0 -19
  596. package/dist/types/menu/use-menu-class-name.d.ts +0 -1
  597. package/dist/types/menu-frame/menu-frame-driver.d.ts +0 -1
  598. package/dist/types/overlay/load-error-overlay.d.ts +0 -1
  599. package/dist/types/overlay/loading-overlay.d.ts +0 -1
  600. package/dist/types/overlay/no-data-overlay.d.ts +0 -1
  601. package/dist/types/overlay/overlay-driver.d.ts +0 -1
  602. package/dist/types/pill/pill.d.ts +0 -5
  603. package/dist/types/pill-manager/pill-manager-agg-menu.d.ts +0 -7
  604. package/dist/types/pill-manager/pill-manager-controls.d.ts +0 -9
  605. package/dist/types/pill-manager/pill-manager-drag-placeholder.d.ts +0 -5
  606. package/dist/types/pill-manager/pill-manager-expander.d.ts +0 -1
  607. package/dist/types/pill-manager/pill-manager-impl.d.ts +0 -50
  608. package/dist/types/pill-manager/pill-manager-pill.d.ts +0 -5
  609. package/dist/types/pill-manager/pill-manager-pills/pill-manager-pills.d.ts +0 -2
  610. package/dist/types/pill-manager/pill-manager-pills/use-aggregation-source.d.ts +0 -2
  611. package/dist/types/pill-manager/pill-manager-pills/use-column-pivot-source.d.ts +0 -2
  612. package/dist/types/pill-manager/pill-manager-pills/use-column-source.d.ts +0 -2
  613. package/dist/types/pill-manager/pill-manager-pills/use-measures-source.d.ts +0 -2
  614. package/dist/types/pill-manager/pill-manager-pills/use-row-groups-source.d.ts +0 -2
  615. package/dist/types/pill-manager/pill-manager-pills/utils.d.ts +0 -3
  616. package/dist/types/pill-manager/pill-manager-row-label.d.ts +0 -22
  617. package/dist/types/pill-manager/pill-manager-row.d.ts +0 -12
  618. package/dist/types/pill-manager/pill-manager-rows.d.ts +0 -1
  619. package/dist/types/pill-manager/pill-manager-separator.d.ts +0 -1
  620. package/dist/types/pill-manager/pill-manager-types.d.ts +0 -36
  621. package/dist/types/pill-manager/pill-manager.d.ts +0 -1
  622. package/dist/types/popover/popover-impl.d.ts +0 -8
  623. package/dist/types/popover/popover.d.ts +0 -10
  624. package/dist/types/popover/use-popover-class.d.ts +0 -1
  625. package/dist/types/select/select.d.ts +0 -26
  626. package/dist/types/sort-manager/sort-adder.d.ts +0 -4
  627. package/dist/types/sort-manager/sort-apply.d.ts +0 -1
  628. package/dist/types/sort-manager/sort-cancel.d.ts +0 -1
  629. package/dist/types/sort-manager/sort-clear.d.ts +0 -1
  630. package/dist/types/sort-manager/sort-column-select.d.ts +0 -6
  631. package/dist/types/sort-manager/sort-direction-select.d.ts +0 -6
  632. package/dist/types/sort-manager/sort-items-to-sort-model.d.ts +0 -3
  633. package/dist/types/sort-manager/sort-manager-context.d.ts +0 -4
  634. package/dist/types/sort-manager/sort-manager-impl.d.ts +0 -32
  635. package/dist/types/sort-manager/sort-manager.d.ts +0 -1
  636. package/dist/types/sort-manager/sort-model-to-sort-items.d.ts +0 -4
  637. package/dist/types/sort-manager/sort-remove.d.ts +0 -4
  638. package/dist/types/sort-manager/sort-sort-select.d.ts +0 -6
  639. package/dist/types/sort-manager/use-sortable-column-items.d.ts +0 -9
  640. package/dist/types/use-client-data-source.d.ts +0 -6
  641. package/dist/types/use-edge-scroll.d.ts +0 -7
  642. package/dist/types/use-grid.d.ts +0 -6
  643. package/dist/types/use-lytenyte.d.ts +0 -11
  644. package/dist/types/use-server-data-source.d.ts +0 -3
  645. package/dist/types/use-tree-data-source.d.ts +0 -3
  646. package/dist/types/watermark.d.ts +0 -3
  647. package/dist/types.js +0 -1
  648. package/dist/useAnchorPositioning-52zK7jlD.js +0 -241
  649. package/dist/useButton-DWXzFgcr.js +0 -184
  650. package/dist/useScrollLock-D4UY33Sb.js +0 -425
  651. /package/dist/{types/cell-selection → cell-selection}/cell-selection-driver.d.ts +0 -0
  652. /package/dist/{types/dialog → root}/dialog-driver.d.ts +0 -0
  653. /package/dist/{types/popover → root}/popover-driver.d.ts +0 -0
@@ -1,1885 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { useMemo, forwardRef } from "react";
4
- import { clsx } from "@1771technologies/js-utils";
5
- import { A as ArrowRightIcon, T as TickmarkIcon } from "./tickmark-icon-CoogRMoO.js";
6
- import { u as useMenuRootContext, b as useMenuPortalContext, e as emptyBB, M as MenuRoot, a as MenuPortal } from "./column-menu-driver-cG-EZgLa.js";
7
- import { u as useAnchor } from "./anchor-context-Cqr_oiJt.js";
8
- import { m as mergeProps, P as PropTypes, G as useFloatingTree, n as useOpenChangeComplete, d as useEnhancedEffect, D as FloatingFocusManager, I as useFloatingNodeId, J as useFloatingParentNodeId, K as FloatingNode, H as HTMLElementType, r as refType, j as useEventCallback } from "./proptypes-BjYr2nFr.js";
9
- import { u as useForkRef, t as transitionStatusMapping, b as useBaseUiId, a as useComponentRenderer, p as popupStateMapping, I as InternalBackdrop, d as triggerOpenStateMapping } from "./InternalBackdrop-C4RACVzs.js";
10
- import { u as useButton } from "./useButton-DWXzFgcr.js";
11
- import { u as useCompositeListItem, C as CompositeList } from "./CompositeList-CGRaS6LQ.js";
12
- import { u as useControlled, a as useTransitionStatus } from "./useScrollLock-D4UY33Sb.js";
13
- import { u as useAnchorPositioning } from "./useAnchorPositioning-52zK7jlD.js";
14
- const MenuPositionerContext = /* @__PURE__ */ React.createContext(void 0);
15
- if (process.env.NODE_ENV !== "production") {
16
- MenuPositionerContext.displayName = "MenuPositionerContext";
17
- }
18
- function useMenuPositionerContext() {
19
- const context = React.useContext(MenuPositionerContext);
20
- if (context === void 0) {
21
- throw new Error("Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.");
22
- }
23
- return context;
24
- }
25
- function useMenuItem(params) {
26
- const {
27
- closeOnClick,
28
- disabled = false,
29
- highlighted,
30
- id,
31
- menuEvents,
32
- ref: externalRef,
33
- allowMouseUpTriggerRef,
34
- typingRef
35
- } = params;
36
- const itemRef = React.useRef(null);
37
- const {
38
- getButtonProps,
39
- buttonRef: mergedRef
40
- } = useButton({
41
- disabled,
42
- focusableWhenDisabled: true,
43
- buttonRef: useForkRef(externalRef, itemRef)
44
- });
45
- const getItemProps = React.useCallback((externalProps) => {
46
- return mergeProps({
47
- id,
48
- role: "menuitem",
49
- tabIndex: highlighted ? 0 : -1,
50
- onKeyUp: (event) => {
51
- if (event.key === " " && typingRef.current) {
52
- event.preventBaseUIHandler();
53
- }
54
- },
55
- onClick: (event) => {
56
- if (closeOnClick) {
57
- menuEvents.emit("close", event);
58
- }
59
- },
60
- onMouseUp: (event) => {
61
- if (itemRef.current && allowMouseUpTriggerRef.current) {
62
- itemRef.current.click();
63
- menuEvents.emit("close", event);
64
- }
65
- }
66
- }, externalProps, getButtonProps);
67
- }, [getButtonProps, id, highlighted, typingRef, closeOnClick, menuEvents, allowMouseUpTriggerRef]);
68
- return React.useMemo(() => ({
69
- getItemProps,
70
- rootRef: mergedRef
71
- }), [getItemProps, mergedRef]);
72
- }
73
- function useMenuCheckboxItem(params) {
74
- const {
75
- checked: checkedProp,
76
- defaultChecked,
77
- onCheckedChange,
78
- ...other
79
- } = params;
80
- const [checked, setChecked] = useControlled({
81
- controlled: checkedProp,
82
- default: defaultChecked ?? false,
83
- name: "MenuCheckboxItem",
84
- state: "checked"
85
- });
86
- const {
87
- getItemProps: getMenuItemProps,
88
- ...menuItem
89
- } = useMenuItem(other);
90
- const getItemProps = React.useCallback((externalProps) => {
91
- return mergeProps({
92
- role: "menuitemcheckbox",
93
- "aria-checked": checked,
94
- onClick: (event) => {
95
- setChecked((currentlyChecked) => !currentlyChecked);
96
- onCheckedChange?.(!checked, event.nativeEvent);
97
- }
98
- }, externalProps, getMenuItemProps);
99
- }, [checked, getMenuItemProps, onCheckedChange, setChecked]);
100
- return React.useMemo(() => ({
101
- ...menuItem,
102
- getItemProps,
103
- checked
104
- }), [checked, getItemProps, menuItem]);
105
- }
106
- const MenuCheckboxItemContext = /* @__PURE__ */ React.createContext(void 0);
107
- function useMenuCheckboxItemContext() {
108
- const context = React.useContext(MenuCheckboxItemContext);
109
- if (context === void 0) {
110
- throw new Error("Base UI: MenuCheckboxItemContext is missing. MenuCheckboxItem parts must be placed within <Menu.CheckboxItem>.");
111
- }
112
- return context;
113
- }
114
- const itemMapping = {
115
- checked(value) {
116
- if (value) {
117
- return {
118
- "data-checked": ""
119
- };
120
- }
121
- return {
122
- "data-unchecked": ""
123
- };
124
- },
125
- ...transitionStatusMapping
126
- };
127
- const InnerMenuCheckboxItem = /* @__PURE__ */ React.forwardRef(function InnerMenuItem(props, forwardedRef) {
128
- const {
129
- checked: checkedProp,
130
- defaultChecked,
131
- onCheckedChange,
132
- className,
133
- closeOnClick,
134
- disabled = false,
135
- highlighted,
136
- id,
137
- menuEvents,
138
- itemProps,
139
- render,
140
- allowMouseUpTriggerRef,
141
- typingRef,
142
- ...other
143
- } = props;
144
- const {
145
- getItemProps,
146
- checked
147
- } = useMenuCheckboxItem({
148
- closeOnClick,
149
- disabled,
150
- highlighted,
151
- id,
152
- menuEvents,
153
- ref: forwardedRef,
154
- allowMouseUpTriggerRef,
155
- checked: checkedProp,
156
- defaultChecked,
157
- onCheckedChange,
158
- typingRef
159
- });
160
- const state2 = React.useMemo(() => ({
161
- disabled,
162
- highlighted,
163
- checked
164
- }), [disabled, highlighted, checked]);
165
- const {
166
- renderElement
167
- } = useComponentRenderer({
168
- render: render || "div",
169
- className,
170
- state: state2,
171
- propGetter: (externalProps) => mergeProps(itemProps, externalProps, getItemProps),
172
- customStyleHookMapping: itemMapping,
173
- extraProps: other
174
- });
175
- return /* @__PURE__ */ jsx(MenuCheckboxItemContext.Provider, {
176
- value: state2,
177
- children: renderElement()
178
- });
179
- });
180
- process.env.NODE_ENV !== "production" ? InnerMenuCheckboxItem.propTypes = {
181
- // ┌────────────────────────────── Warning ──────────────────────────────┐
182
- // │ These PropTypes are generated from the TypeScript type definitions. │
183
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
184
- // └─────────────────────────────────────────────────────────────────────┘
185
- /**
186
- * @ignore
187
- */
188
- allowMouseUpTriggerRef: PropTypes.shape({
189
- current: PropTypes.bool.isRequired
190
- }).isRequired,
191
- /**
192
- * Whether the checkbox item is currently ticked.
193
- *
194
- * To render an uncontrolled checkbox item, use the `defaultChecked` prop instead.
195
- */
196
- checked: PropTypes.bool,
197
- /**
198
- * @ignore
199
- */
200
- children: PropTypes.node,
201
- /**
202
- * CSS class applied to the element, or a function that
203
- * returns a class based on the component’s state.
204
- */
205
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
206
- /**
207
- * Whether to close the menu when the item is clicked.
208
- */
209
- closeOnClick: PropTypes.bool.isRequired,
210
- /**
211
- * Whether the checkbox item is initially ticked.
212
- *
213
- * To render a controlled checkbox item, use the `checked` prop instead.
214
- * @default false
215
- */
216
- defaultChecked: PropTypes.bool,
217
- /**
218
- * Whether the component should ignore user interaction.
219
- * @default false
220
- */
221
- disabled: PropTypes.bool,
222
- /**
223
- * @ignore
224
- */
225
- highlighted: PropTypes.bool.isRequired,
226
- /**
227
- * @ignore
228
- */
229
- id: PropTypes.string,
230
- /**
231
- * @ignore
232
- */
233
- itemProps: PropTypes.object.isRequired,
234
- /**
235
- * Overrides the text label to use when the item is matched during keyboard text navigation.
236
- */
237
- label: PropTypes.string,
238
- /**
239
- * @ignore
240
- */
241
- menuEvents: PropTypes.shape({
242
- emit: PropTypes.func.isRequired,
243
- off: PropTypes.func.isRequired,
244
- on: PropTypes.func.isRequired
245
- }).isRequired,
246
- /**
247
- * Event handler called when the checkbox item is ticked or unticked.
248
- */
249
- onCheckedChange: PropTypes.func,
250
- /**
251
- * The click handler for the menu item.
252
- */
253
- onClick: PropTypes.func,
254
- /**
255
- * Allows you to replace the component’s HTML element
256
- * with a different tag, or compose it with another component.
257
- *
258
- * Accepts a `ReactElement` or a function that returns the element to render.
259
- */
260
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
261
- /**
262
- * @ignore
263
- */
264
- typingRef: PropTypes.shape({
265
- current: PropTypes.bool.isRequired
266
- }).isRequired
267
- } : void 0;
268
- const MemoizedInnerMenuCheckboxItem = /* @__PURE__ */ React.memo(InnerMenuCheckboxItem);
269
- const MenuCheckboxItem$1 = /* @__PURE__ */ React.forwardRef(function MenuCheckboxItem(props, forwardedRef) {
270
- const {
271
- id: idProp,
272
- label,
273
- closeOnClick = false,
274
- ...other
275
- } = props;
276
- const itemRef = React.useRef(null);
277
- const listItem = useCompositeListItem({
278
- label
279
- });
280
- const mergedRef = useForkRef(forwardedRef, listItem.ref, itemRef);
281
- const {
282
- itemProps,
283
- activeIndex,
284
- allowMouseUpTriggerRef,
285
- typingRef
286
- } = useMenuRootContext();
287
- const id = useBaseUiId(idProp);
288
- const highlighted = listItem.index === activeIndex;
289
- const {
290
- events: menuEvents
291
- } = useFloatingTree();
292
- return /* @__PURE__ */ jsx(MemoizedInnerMenuCheckboxItem, {
293
- ...other,
294
- id,
295
- ref: mergedRef,
296
- highlighted,
297
- menuEvents,
298
- itemProps,
299
- allowMouseUpTriggerRef,
300
- typingRef,
301
- closeOnClick
302
- });
303
- });
304
- process.env.NODE_ENV !== "production" ? MenuCheckboxItem$1.propTypes = {
305
- // ┌────────────────────────────── Warning ──────────────────────────────┐
306
- // │ These PropTypes are generated from the TypeScript type definitions. │
307
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
308
- // └─────────────────────────────────────────────────────────────────────┘
309
- /**
310
- * Whether the checkbox item is currently ticked.
311
- *
312
- * To render an uncontrolled checkbox item, use the `defaultChecked` prop instead.
313
- */
314
- checked: PropTypes.bool,
315
- /**
316
- * @ignore
317
- */
318
- children: PropTypes.node,
319
- /**
320
- * CSS class applied to the element, or a function that
321
- * returns a class based on the component’s state.
322
- */
323
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
324
- /**
325
- * Whether to close the menu when the item is clicked.
326
- * @default false
327
- */
328
- closeOnClick: PropTypes.bool,
329
- /**
330
- * Whether the checkbox item is initially ticked.
331
- *
332
- * To render a controlled checkbox item, use the `checked` prop instead.
333
- * @default false
334
- */
335
- defaultChecked: PropTypes.bool,
336
- /**
337
- * Whether the component should ignore user interaction.
338
- * @default false
339
- */
340
- disabled: PropTypes.bool,
341
- /**
342
- * @ignore
343
- */
344
- id: PropTypes.string,
345
- /**
346
- * Overrides the text label to use when the item is matched during keyboard text navigation.
347
- */
348
- label: PropTypes.string,
349
- /**
350
- * Event handler called when the checkbox item is ticked or unticked.
351
- */
352
- onCheckedChange: PropTypes.func,
353
- /**
354
- * The click handler for the menu item.
355
- */
356
- onClick: PropTypes.func,
357
- /**
358
- * Allows you to replace the component’s HTML element
359
- * with a different tag, or compose it with another component.
360
- *
361
- * Accepts a `ReactElement` or a function that returns the element to render.
362
- */
363
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
364
- } : void 0;
365
- const MenuCheckboxItemIndicator$1 = /* @__PURE__ */ React.forwardRef(function MenuCheckboxItemIndicator(props, forwardedRef) {
366
- const {
367
- render,
368
- className,
369
- keepMounted = false,
370
- ...other
371
- } = props;
372
- const item = useMenuCheckboxItemContext();
373
- const indicatorRef = React.useRef(null);
374
- const mergedRef = useForkRef(forwardedRef, indicatorRef);
375
- const {
376
- transitionStatus,
377
- setMounted
378
- } = useTransitionStatus(item.checked);
379
- useOpenChangeComplete({
380
- open: item.checked,
381
- ref: indicatorRef,
382
- onComplete() {
383
- if (!item.checked) {
384
- setMounted(false);
385
- }
386
- }
387
- });
388
- const state2 = React.useMemo(() => ({
389
- checked: item.checked,
390
- disabled: item.disabled,
391
- highlighted: item.highlighted,
392
- transitionStatus
393
- }), [item.checked, item.disabled, item.highlighted, transitionStatus]);
394
- const {
395
- renderElement
396
- } = useComponentRenderer({
397
- render: render || "span",
398
- className,
399
- state: state2,
400
- customStyleHookMapping: itemMapping,
401
- extraProps: {
402
- "aria-hidden": true,
403
- ...other
404
- },
405
- ref: mergedRef
406
- });
407
- const shouldRender = keepMounted || item.checked;
408
- if (!shouldRender) {
409
- return null;
410
- }
411
- return renderElement();
412
- });
413
- process.env.NODE_ENV !== "production" ? MenuCheckboxItemIndicator$1.propTypes = {
414
- // ┌────────────────────────────── Warning ──────────────────────────────┐
415
- // │ These PropTypes are generated from the TypeScript type definitions. │
416
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
417
- // └─────────────────────────────────────────────────────────────────────┘
418
- /**
419
- * @ignore
420
- */
421
- children: PropTypes.node,
422
- /**
423
- * CSS class applied to the element, or a function that
424
- * returns a class based on the component’s state.
425
- */
426
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
427
- /**
428
- * Whether to keep the HTML element in the DOM when the checkbox item is not checked.
429
- * @default false
430
- */
431
- keepMounted: PropTypes.bool,
432
- /**
433
- * Allows you to replace the component’s HTML element
434
- * with a different tag, or compose it with another component.
435
- *
436
- * Accepts a `ReactElement` or a function that returns the element to render.
437
- */
438
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
439
- } : void 0;
440
- const MenuGroupContext = /* @__PURE__ */ React.createContext(void 0);
441
- if (process.env.NODE_ENV !== "production") {
442
- MenuGroupContext.displayName = "MenuGroupContext";
443
- }
444
- function useMenuGroupRootContext() {
445
- const context = React.useContext(MenuGroupContext);
446
- if (context === void 0) {
447
- throw new Error("Base UI: Missing MenuGroupRootContext provider");
448
- }
449
- return context;
450
- }
451
- const state$1 = {};
452
- const MenuGroup$1 = /* @__PURE__ */ React.forwardRef(function MenuGroup(props, forwardedRef) {
453
- const {
454
- render,
455
- className,
456
- ...other
457
- } = props;
458
- const [labelId, setLabelId] = React.useState(void 0);
459
- const context = React.useMemo(() => ({
460
- setLabelId
461
- }), [setLabelId]);
462
- const {
463
- renderElement
464
- } = useComponentRenderer({
465
- render: render || "div",
466
- className,
467
- state: state$1,
468
- extraProps: {
469
- role: "group",
470
- "aria-labelledby": labelId,
471
- ...other
472
- },
473
- ref: forwardedRef
474
- });
475
- return /* @__PURE__ */ jsx(MenuGroupContext.Provider, {
476
- value: context,
477
- children: renderElement()
478
- });
479
- });
480
- process.env.NODE_ENV !== "production" ? MenuGroup$1.propTypes = {
481
- // ┌────────────────────────────── Warning ──────────────────────────────┐
482
- // │ These PropTypes are generated from the TypeScript type definitions. │
483
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
484
- // └─────────────────────────────────────────────────────────────────────┘
485
- /**
486
- * The content of the component.
487
- */
488
- children: PropTypes.node,
489
- /**
490
- * CSS class applied to the element, or a function that
491
- * returns a class based on the component’s state.
492
- */
493
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
494
- /**
495
- * Allows you to replace the component’s HTML element
496
- * with a different tag, or compose it with another component.
497
- *
498
- * Accepts a `ReactElement` or a function that returns the element to render.
499
- */
500
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
501
- } : void 0;
502
- const state = {};
503
- const MenuGroupLabel$1 = /* @__PURE__ */ React.forwardRef(function MenuGroupLabelComponent(props, forwardedRef) {
504
- const {
505
- className,
506
- render,
507
- id: idProp,
508
- ...other
509
- } = props;
510
- const id = useBaseUiId(idProp);
511
- const {
512
- setLabelId
513
- } = useMenuGroupRootContext();
514
- useEnhancedEffect(() => {
515
- setLabelId(id);
516
- return () => {
517
- setLabelId(void 0);
518
- };
519
- }, [setLabelId, id]);
520
- const {
521
- renderElement
522
- } = useComponentRenderer({
523
- render: render ?? "div",
524
- className,
525
- state,
526
- extraProps: {
527
- role: "presentation",
528
- id,
529
- ...other
530
- },
531
- ref: forwardedRef
532
- });
533
- return renderElement();
534
- });
535
- process.env.NODE_ENV !== "production" ? MenuGroupLabel$1.propTypes = {
536
- // ┌────────────────────────────── Warning ──────────────────────────────┐
537
- // │ These PropTypes are generated from the TypeScript type definitions. │
538
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
539
- // └─────────────────────────────────────────────────────────────────────┘
540
- /**
541
- * @ignore
542
- */
543
- children: PropTypes.node,
544
- /**
545
- * CSS class applied to the element, or a function that
546
- * returns a class based on the component’s state.
547
- */
548
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
549
- /**
550
- * @ignore
551
- */
552
- id: PropTypes.string,
553
- /**
554
- * Allows you to replace the component’s HTML element
555
- * with a different tag, or compose it with another component.
556
- *
557
- * Accepts a `ReactElement` or a function that returns the element to render.
558
- */
559
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
560
- } : void 0;
561
- const InnerMenuItem2 = /* @__PURE__ */ React.forwardRef(function InnerMenuItem3(props, forwardedRef) {
562
- const {
563
- className,
564
- closeOnClick = true,
565
- disabled = false,
566
- highlighted,
567
- id,
568
- menuEvents,
569
- itemProps,
570
- render,
571
- allowMouseUpTriggerRef,
572
- typingRef,
573
- ...other
574
- } = props;
575
- const {
576
- getItemProps
577
- } = useMenuItem({
578
- closeOnClick,
579
- disabled,
580
- highlighted,
581
- id,
582
- menuEvents,
583
- ref: forwardedRef,
584
- allowMouseUpTriggerRef,
585
- typingRef
586
- });
587
- const state2 = React.useMemo(() => ({
588
- disabled,
589
- highlighted
590
- }), [disabled, highlighted]);
591
- const {
592
- renderElement
593
- } = useComponentRenderer({
594
- render: render || "div",
595
- className,
596
- state: state2,
597
- propGetter: (externalProps) => mergeProps(itemProps, externalProps, getItemProps),
598
- extraProps: other
599
- });
600
- return renderElement();
601
- });
602
- const MemoizedInnerMenuItem = /* @__PURE__ */ React.memo(InnerMenuItem2);
603
- process.env.NODE_ENV !== "production" ? InnerMenuItem2.propTypes = {
604
- // ┌────────────────────────────── Warning ──────────────────────────────┐
605
- // │ These PropTypes are generated from the TypeScript type definitions. │
606
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
607
- // └─────────────────────────────────────────────────────────────────────┘
608
- /**
609
- * @ignore
610
- */
611
- allowMouseUpTriggerRef: PropTypes.shape({
612
- current: PropTypes.bool.isRequired
613
- }).isRequired,
614
- /**
615
- * @ignore
616
- */
617
- children: PropTypes.node,
618
- /**
619
- * CSS class applied to the element, or a function that
620
- * returns a class based on the component’s state.
621
- */
622
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
623
- /**
624
- * Whether to close the menu when the item is clicked.
625
- *
626
- * @default true
627
- */
628
- closeOnClick: PropTypes.bool,
629
- /**
630
- * Whether the component should ignore user interaction.
631
- * @default false
632
- */
633
- disabled: PropTypes.bool,
634
- /**
635
- * @ignore
636
- */
637
- highlighted: PropTypes.bool.isRequired,
638
- /**
639
- * @ignore
640
- */
641
- id: PropTypes.string,
642
- /**
643
- * @ignore
644
- */
645
- itemProps: PropTypes.object.isRequired,
646
- /**
647
- * Overrides the text label to use when the item is matched during keyboard text navigation.
648
- */
649
- label: PropTypes.string,
650
- /**
651
- * @ignore
652
- */
653
- menuEvents: PropTypes.shape({
654
- emit: PropTypes.func.isRequired,
655
- off: PropTypes.func.isRequired,
656
- on: PropTypes.func.isRequired
657
- }).isRequired,
658
- /**
659
- * The click handler for the menu item.
660
- */
661
- onClick: PropTypes.func,
662
- /**
663
- * Allows you to replace the component’s HTML element
664
- * with a different tag, or compose it with another component.
665
- *
666
- * Accepts a `ReactElement` or a function that returns the element to render.
667
- */
668
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
669
- /**
670
- * @ignore
671
- */
672
- typingRef: PropTypes.shape({
673
- current: PropTypes.bool.isRequired
674
- }).isRequired
675
- } : void 0;
676
- const MenuItem$1 = /* @__PURE__ */ React.forwardRef(function MenuItem(props, forwardedRef) {
677
- const {
678
- id: idProp,
679
- label,
680
- ...other
681
- } = props;
682
- const itemRef = React.useRef(null);
683
- const listItem = useCompositeListItem({
684
- label
685
- });
686
- const mergedRef = useForkRef(forwardedRef, listItem.ref, itemRef);
687
- const {
688
- itemProps,
689
- activeIndex,
690
- allowMouseUpTriggerRef,
691
- typingRef
692
- } = useMenuRootContext();
693
- const id = useBaseUiId(idProp);
694
- const highlighted = listItem.index === activeIndex;
695
- const {
696
- events: menuEvents
697
- } = useFloatingTree();
698
- return /* @__PURE__ */ jsx(MemoizedInnerMenuItem, {
699
- ...other,
700
- id,
701
- ref: mergedRef,
702
- highlighted,
703
- menuEvents,
704
- itemProps,
705
- allowMouseUpTriggerRef,
706
- typingRef
707
- });
708
- });
709
- process.env.NODE_ENV !== "production" ? MenuItem$1.propTypes = {
710
- // ┌────────────────────────────── Warning ──────────────────────────────┐
711
- // │ These PropTypes are generated from the TypeScript type definitions. │
712
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
713
- // └─────────────────────────────────────────────────────────────────────┘
714
- /**
715
- * @ignore
716
- */
717
- children: PropTypes.node,
718
- /**
719
- * CSS class applied to the element, or a function that
720
- * returns a class based on the component’s state.
721
- */
722
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
723
- /**
724
- * Whether to close the menu when the item is clicked.
725
- *
726
- * @default true
727
- */
728
- closeOnClick: PropTypes.bool,
729
- /**
730
- * Whether the component should ignore user interaction.
731
- * @default false
732
- */
733
- disabled: PropTypes.bool,
734
- /**
735
- * @ignore
736
- */
737
- id: PropTypes.string,
738
- /**
739
- * Overrides the text label to use when the item is matched during keyboard text navigation.
740
- */
741
- label: PropTypes.string,
742
- /**
743
- * The click handler for the menu item.
744
- */
745
- onClick: PropTypes.func,
746
- /**
747
- * Allows you to replace the component’s HTML element
748
- * with a different tag, or compose it with another component.
749
- *
750
- * Accepts a `ReactElement` or a function that returns the element to render.
751
- */
752
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
753
- } : void 0;
754
- function useMenuPopup(parameters) {
755
- const {
756
- menuEvents,
757
- setOpen
758
- } = parameters;
759
- React.useEffect(() => {
760
- function handleClose(event) {
761
- setOpen(false, event);
762
- }
763
- menuEvents.on("close", handleClose);
764
- return () => {
765
- menuEvents.off("close", handleClose);
766
- };
767
- }, [menuEvents, setOpen]);
768
- }
769
- const customStyleHookMapping = {
770
- ...popupStateMapping,
771
- ...transitionStatusMapping
772
- };
773
- const DISABLED_TRANSITIONS_STYLE = {
774
- style: {
775
- transition: "none"
776
- }
777
- };
778
- const EMPTY_OBJ = {};
779
- const MenuPopup = /* @__PURE__ */ React.forwardRef(function MenuPopup2(props, forwardedRef) {
780
- const {
781
- render,
782
- className,
783
- ...other
784
- } = props;
785
- const {
786
- open,
787
- setOpen,
788
- popupRef,
789
- transitionStatus,
790
- nested,
791
- popupProps,
792
- modal,
793
- mounted,
794
- instantType,
795
- onOpenChangeComplete
796
- } = useMenuRootContext();
797
- const {
798
- side,
799
- align,
800
- floatingContext
801
- } = useMenuPositionerContext();
802
- useOpenChangeComplete({
803
- open,
804
- ref: popupRef,
805
- onComplete() {
806
- if (open) {
807
- onOpenChangeComplete?.(true);
808
- }
809
- }
810
- });
811
- const {
812
- events: menuEvents
813
- } = useFloatingTree();
814
- useMenuPopup({
815
- setOpen,
816
- menuEvents
817
- });
818
- const mergedRef = useForkRef(forwardedRef, popupRef);
819
- const state2 = React.useMemo(() => ({
820
- transitionStatus,
821
- side,
822
- align,
823
- open,
824
- nested,
825
- instant: instantType
826
- }), [transitionStatus, side, align, open, nested, instantType]);
827
- const {
828
- renderElement
829
- } = useComponentRenderer({
830
- render: render || "div",
831
- className,
832
- state: state2,
833
- extraProps: mergeProps(transitionStatus === "starting" ? DISABLED_TRANSITIONS_STYLE : EMPTY_OBJ, popupProps, other),
834
- customStyleHookMapping,
835
- ref: mergedRef
836
- });
837
- return /* @__PURE__ */ jsx(FloatingFocusManager, {
838
- context: floatingContext,
839
- modal: false,
840
- disabled: !mounted,
841
- visuallyHiddenDismiss: modal ? "Dismiss popup" : void 0,
842
- children: renderElement()
843
- });
844
- });
845
- process.env.NODE_ENV !== "production" ? MenuPopup.propTypes = {
846
- // ┌────────────────────────────── Warning ──────────────────────────────┐
847
- // │ These PropTypes are generated from the TypeScript type definitions. │
848
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
849
- // └─────────────────────────────────────────────────────────────────────┘
850
- /**
851
- * @ignore
852
- */
853
- children: PropTypes.node,
854
- /**
855
- * CSS class applied to the element, or a function that
856
- * returns a class based on the component’s state.
857
- */
858
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
859
- /**
860
- * @ignore
861
- */
862
- id: PropTypes.string,
863
- /**
864
- * Allows you to replace the component’s HTML element
865
- * with a different tag, or compose it with another component.
866
- *
867
- * Accepts a `ReactElement` or a function that returns the element to render.
868
- */
869
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
870
- } : void 0;
871
- function useMenuPositioner(params) {
872
- const {
873
- nodeId,
874
- parentNodeId
875
- } = params;
876
- const {
877
- open,
878
- setOpen,
879
- mounted,
880
- setHoverEnabled
881
- } = useMenuRootContext();
882
- const positioning = useAnchorPositioning(params);
883
- const {
884
- events: menuEvents
885
- } = useFloatingTree();
886
- const positionerProps = React.useMemo(() => {
887
- const hiddenStyles = {};
888
- if (!open) {
889
- hiddenStyles.pointerEvents = "none";
890
- }
891
- return {
892
- role: "presentation",
893
- hidden: !mounted,
894
- style: {
895
- ...positioning.positionerStyles,
896
- ...hiddenStyles
897
- }
898
- };
899
- }, [open, mounted, positioning.positionerStyles]);
900
- React.useEffect(() => {
901
- function onMenuOpenChange(event) {
902
- if (event.open) {
903
- if (event.parentNodeId === nodeId) {
904
- setHoverEnabled(false);
905
- }
906
- if (event.nodeId !== nodeId && event.parentNodeId === parentNodeId) {
907
- setOpen(false, void 0);
908
- }
909
- } else if (event.parentNodeId === nodeId) {
910
- setHoverEnabled(true);
911
- }
912
- }
913
- menuEvents.on("openchange", onMenuOpenChange);
914
- return () => {
915
- menuEvents.off("openchange", onMenuOpenChange);
916
- };
917
- }, [menuEvents, nodeId, parentNodeId, setOpen, setHoverEnabled]);
918
- React.useEffect(() => {
919
- menuEvents.emit("openchange", {
920
- open,
921
- nodeId,
922
- parentNodeId
923
- });
924
- }, [menuEvents, open, nodeId, parentNodeId]);
925
- return React.useMemo(() => ({
926
- ...positioning,
927
- positionerProps
928
- }), [positioning, positionerProps]);
929
- }
930
- const MenuPositioner$1 = /* @__PURE__ */ React.forwardRef(function MenuPositioner(props, forwardedRef) {
931
- const {
932
- anchor,
933
- positionMethod = "absolute",
934
- className,
935
- render,
936
- side,
937
- align,
938
- sideOffset = 0,
939
- alignOffset = 0,
940
- collisionBoundary = "clipping-ancestors",
941
- collisionPadding = 5,
942
- arrowPadding = 5,
943
- sticky = false,
944
- trackAnchor = true,
945
- ...otherProps
946
- } = props;
947
- const {
948
- open,
949
- floatingRootContext,
950
- setPositionerElement,
951
- itemDomElements,
952
- itemLabels,
953
- mounted,
954
- nested,
955
- modal,
956
- openReason
957
- } = useMenuRootContext();
958
- const keepMounted = useMenuPortalContext();
959
- const nodeId = useFloatingNodeId();
960
- const parentNodeId = useFloatingParentNodeId();
961
- let computedSide = side;
962
- let computedAlign = align;
963
- if (!side) {
964
- computedSide = nested ? "inline-end" : "bottom";
965
- }
966
- if (!align) {
967
- computedAlign = nested ? "start" : "center";
968
- }
969
- const positioner = useMenuPositioner({
970
- anchor,
971
- floatingRootContext,
972
- positionMethod,
973
- open,
974
- mounted,
975
- side: computedSide,
976
- sideOffset,
977
- align: computedAlign,
978
- alignOffset,
979
- arrowPadding,
980
- collisionBoundary,
981
- collisionPadding,
982
- sticky,
983
- nodeId,
984
- parentNodeId,
985
- keepMounted,
986
- trackAnchor
987
- });
988
- const state2 = React.useMemo(() => ({
989
- open,
990
- side: positioner.side,
991
- align: positioner.align,
992
- anchorHidden: positioner.anchorHidden,
993
- nested
994
- }), [open, positioner.side, positioner.align, positioner.anchorHidden, nested]);
995
- const contextValue = React.useMemo(() => ({
996
- side: positioner.side,
997
- align: positioner.align,
998
- arrowRef: positioner.arrowRef,
999
- arrowUncentered: positioner.arrowUncentered,
1000
- arrowStyles: positioner.arrowStyles,
1001
- floatingContext: positioner.context
1002
- }), [positioner.side, positioner.align, positioner.arrowRef, positioner.arrowUncentered, positioner.arrowStyles, positioner.context]);
1003
- const mergedRef = useForkRef(forwardedRef, setPositionerElement);
1004
- const {
1005
- renderElement
1006
- } = useComponentRenderer({
1007
- render: render ?? "div",
1008
- className,
1009
- state: state2,
1010
- customStyleHookMapping: popupStateMapping,
1011
- ref: mergedRef,
1012
- extraProps: {
1013
- ...positioner.positionerProps,
1014
- ...otherProps
1015
- }
1016
- });
1017
- return /* @__PURE__ */ jsxs(MenuPositionerContext.Provider, {
1018
- value: contextValue,
1019
- children: [mounted && modal && openReason !== "hover" && parentNodeId === null && /* @__PURE__ */ jsx(InternalBackdrop, {
1020
- inert: !open
1021
- }), /* @__PURE__ */ jsx(FloatingNode, {
1022
- id: nodeId,
1023
- children: /* @__PURE__ */ jsx(CompositeList, {
1024
- elementsRef: itemDomElements,
1025
- labelsRef: itemLabels,
1026
- children: renderElement()
1027
- })
1028
- })]
1029
- });
1030
- });
1031
- process.env.NODE_ENV !== "production" ? MenuPositioner$1.propTypes = {
1032
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1033
- // │ These PropTypes are generated from the TypeScript type definitions. │
1034
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1035
- // └─────────────────────────────────────────────────────────────────────┘
1036
- /**
1037
- * How to align the popup relative to the specified side.
1038
- * @default 'center'
1039
- */
1040
- align: PropTypes.oneOf(["center", "end", "start"]),
1041
- /**
1042
- * Additional offset along the alignment axis in pixels.
1043
- * Also accepts a function that returns the offset to read the dimensions of the anchor
1044
- * and positioner elements, along with its side and alignment.
1045
- *
1046
- * - `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.
1047
- * - `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.
1048
- * - `data.side`: which side of the anchor element the positioner is aligned against.
1049
- * - `data.align`: how the positioner is aligned relative to the specified side.
1050
- * @default 0
1051
- */
1052
- alignOffset: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),
1053
- /**
1054
- * An element to position the popup against.
1055
- * By default, the popup will be positioned against the trigger.
1056
- */
1057
- anchor: PropTypes.oneOfType([HTMLElementType, refType, PropTypes.object, PropTypes.func]),
1058
- /**
1059
- * Minimum distance to maintain between the arrow and the edges of the popup.
1060
- *
1061
- * Use it to prevent the arrow element from hanging out of the rounded corners of a popup.
1062
- * @default 5
1063
- */
1064
- arrowPadding: PropTypes.number,
1065
- /**
1066
- * @ignore
1067
- */
1068
- children: PropTypes.node,
1069
- /**
1070
- * CSS class applied to the element, or a function that
1071
- * returns a class based on the component’s state.
1072
- */
1073
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1074
- /**
1075
- * An element or a rectangle that delimits the area that the popup is confined to.
1076
- * @default 'clipping-ancestors'
1077
- */
1078
- collisionBoundary: PropTypes.oneOfType([HTMLElementType, PropTypes.arrayOf(HTMLElementType), PropTypes.string, PropTypes.shape({
1079
- height: PropTypes.number,
1080
- width: PropTypes.number,
1081
- x: PropTypes.number,
1082
- y: PropTypes.number
1083
- })]),
1084
- /**
1085
- * Additional space to maintain from the edge of the collision boundary.
1086
- * @default 5
1087
- */
1088
- collisionPadding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
1089
- bottom: PropTypes.number,
1090
- left: PropTypes.number,
1091
- right: PropTypes.number,
1092
- top: PropTypes.number
1093
- })]),
1094
- /**
1095
- * Determines which CSS `position` property to use.
1096
- * @default 'absolute'
1097
- */
1098
- positionMethod: PropTypes.oneOf(["absolute", "fixed"]),
1099
- /**
1100
- * Allows you to replace the component’s HTML element
1101
- * with a different tag, or compose it with another component.
1102
- *
1103
- * Accepts a `ReactElement` or a function that returns the element to render.
1104
- */
1105
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
1106
- /**
1107
- * Which side of the anchor element to align the popup against.
1108
- * May automatically change to avoid collisions.
1109
- * @default 'bottom'
1110
- */
1111
- side: PropTypes.oneOf(["bottom", "inline-end", "inline-start", "left", "right", "top"]),
1112
- /**
1113
- * Distance between the anchor and the popup in pixels.
1114
- * Also accepts a function that returns the distance to read the dimensions of the anchor
1115
- * and positioner elements, along with its side and alignment.
1116
- *
1117
- * - `data.anchor`: the dimensions of the anchor element with properties `width` and `height`.
1118
- * - `data.positioner`: the dimensions of the positioner element with properties `width` and `height`.
1119
- * - `data.side`: which side of the anchor element the positioner is aligned against.
1120
- * - `data.align`: how the positioner is aligned relative to the specified side.
1121
- * @default 0
1122
- */
1123
- sideOffset: PropTypes.oneOfType([PropTypes.func, PropTypes.number]),
1124
- /**
1125
- * Whether to maintain the popup in the viewport after
1126
- * the anchor element was scrolled out of view.
1127
- * @default false
1128
- */
1129
- sticky: PropTypes.bool,
1130
- /**
1131
- * Whether the popup tracks any layout shift of its positioning anchor.
1132
- * @default true
1133
- */
1134
- trackAnchor: PropTypes.bool
1135
- } : void 0;
1136
- const MenuRadioGroupContext = /* @__PURE__ */ React.createContext(void 0);
1137
- if (process.env.NODE_ENV !== "production") {
1138
- MenuRadioGroupContext.displayName = "MenuRadioGroupContext";
1139
- }
1140
- function useMenuRadioGroupContext() {
1141
- const context = React.useContext(MenuRadioGroupContext);
1142
- if (context === void 0) {
1143
- throw new Error("Base UI: MenuRadioGroupContext is missing. MenuRadioGroup parts must be placed within <Menu.RadioGroup>.");
1144
- }
1145
- return context;
1146
- }
1147
- const MenuRadioGroup$1 = /* @__PURE__ */ React.forwardRef(function MenuRadioGroup(props, forwardedRef) {
1148
- const {
1149
- render,
1150
- className,
1151
- value: valueProp,
1152
- defaultValue,
1153
- onValueChange: onValueChangeProp,
1154
- disabled = false,
1155
- ...other
1156
- } = props;
1157
- const [value, setValueUnwrapped] = useControlled({
1158
- controlled: valueProp,
1159
- default: defaultValue,
1160
- name: "MenuRadioGroup"
1161
- });
1162
- const onValueChange = useEventCallback(onValueChangeProp);
1163
- const setValue = React.useCallback((newValue, event) => {
1164
- setValueUnwrapped(newValue);
1165
- onValueChange?.(newValue, event);
1166
- }, [onValueChange, setValueUnwrapped]);
1167
- const state2 = React.useMemo(() => ({
1168
- disabled
1169
- }), [disabled]);
1170
- const {
1171
- renderElement
1172
- } = useComponentRenderer({
1173
- render: render || "div",
1174
- className,
1175
- state: state2,
1176
- extraProps: {
1177
- role: "group",
1178
- "aria-disabled": disabled || void 0,
1179
- ...other
1180
- },
1181
- ref: forwardedRef
1182
- });
1183
- const context = React.useMemo(() => ({
1184
- value,
1185
- setValue,
1186
- disabled
1187
- }), [value, setValue, disabled]);
1188
- return /* @__PURE__ */ jsx(MenuRadioGroupContext.Provider, {
1189
- value: context,
1190
- children: renderElement()
1191
- });
1192
- });
1193
- process.env.NODE_ENV !== "production" ? MenuRadioGroup$1.propTypes = {
1194
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1195
- // │ These PropTypes are generated from the TypeScript type definitions. │
1196
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1197
- // └─────────────────────────────────────────────────────────────────────┘
1198
- /**
1199
- * The content of the component.
1200
- */
1201
- children: PropTypes.node,
1202
- /**
1203
- * CSS class applied to the element, or a function that
1204
- * returns a class based on the component’s state.
1205
- */
1206
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1207
- /**
1208
- * The uncontrolled value of the radio item that should be initially selected.
1209
- *
1210
- * To render a controlled radio group, use the `value` prop instead.
1211
- */
1212
- defaultValue: PropTypes.any,
1213
- /**
1214
- * Whether the component should ignore user interaction.
1215
- *
1216
- * @default false
1217
- */
1218
- disabled: PropTypes.bool,
1219
- /**
1220
- * Function called when the selected value changes.
1221
- *
1222
- * @default () => {}
1223
- */
1224
- onValueChange: PropTypes.func,
1225
- /**
1226
- * Allows you to replace the component’s HTML element
1227
- * with a different tag, or compose it with another component.
1228
- *
1229
- * Accepts a `ReactElement` or a function that returns the element to render.
1230
- */
1231
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
1232
- /**
1233
- * The controlled value of the radio item that should be currently selected.
1234
- *
1235
- * To render an uncontrolled radio group, use the `defaultValue` prop instead.
1236
- */
1237
- value: PropTypes.any
1238
- } : void 0;
1239
- const MemoizedMenuRadioGroup = /* @__PURE__ */ React.memo(MenuRadioGroup$1);
1240
- function useMenuRadioItem(params) {
1241
- const {
1242
- checked,
1243
- setChecked,
1244
- ...other
1245
- } = params;
1246
- const {
1247
- getItemProps: getMenuItemProps,
1248
- ...menuItem
1249
- } = useMenuItem(other);
1250
- const getItemProps = React.useCallback((externalProps) => {
1251
- return mergeProps({
1252
- role: "menuitemradio",
1253
- "aria-checked": checked,
1254
- onClick: (event) => {
1255
- setChecked(event.nativeEvent);
1256
- }
1257
- }, externalProps, getMenuItemProps);
1258
- }, [checked, getMenuItemProps, setChecked]);
1259
- return {
1260
- ...menuItem,
1261
- getItemProps,
1262
- checked
1263
- };
1264
- }
1265
- const MenuRadioItemContext = /* @__PURE__ */ React.createContext(void 0);
1266
- if (process.env.NODE_ENV !== "production") {
1267
- MenuRadioItemContext.displayName = "MenuRadioItemContext";
1268
- }
1269
- function useMenuRadioItemContext() {
1270
- const context = React.useContext(MenuRadioItemContext);
1271
- if (context === void 0) {
1272
- throw new Error("Base UI: MenuRadioItemContext is missing. MenuRadioItem parts must be placed within <Menu.RadioItem>.");
1273
- }
1274
- return context;
1275
- }
1276
- const InnerMenuRadioItem = /* @__PURE__ */ React.forwardRef(function InnerMenuItem4(props, forwardedRef) {
1277
- const {
1278
- checked,
1279
- setChecked,
1280
- className,
1281
- closeOnClick,
1282
- disabled = false,
1283
- highlighted,
1284
- id,
1285
- menuEvents,
1286
- itemProps,
1287
- render,
1288
- allowMouseUpTriggerRef,
1289
- typingRef,
1290
- ...other
1291
- } = props;
1292
- const {
1293
- getItemProps
1294
- } = useMenuRadioItem({
1295
- checked,
1296
- setChecked,
1297
- closeOnClick,
1298
- disabled,
1299
- highlighted,
1300
- id,
1301
- menuEvents,
1302
- ref: forwardedRef,
1303
- allowMouseUpTriggerRef,
1304
- typingRef
1305
- });
1306
- const state2 = {
1307
- disabled,
1308
- highlighted,
1309
- checked
1310
- };
1311
- const {
1312
- renderElement
1313
- } = useComponentRenderer({
1314
- render: render || "div",
1315
- className,
1316
- state: state2,
1317
- propGetter: (externalProps) => mergeProps(itemProps, externalProps, getItemProps),
1318
- customStyleHookMapping: itemMapping,
1319
- extraProps: other
1320
- });
1321
- return renderElement();
1322
- });
1323
- process.env.NODE_ENV !== "production" ? InnerMenuRadioItem.propTypes = {
1324
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1325
- // │ These PropTypes are generated from the TypeScript type definitions. │
1326
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1327
- // └─────────────────────────────────────────────────────────────────────┘
1328
- /**
1329
- * @ignore
1330
- */
1331
- allowMouseUpTriggerRef: PropTypes.shape({
1332
- current: PropTypes.bool.isRequired
1333
- }).isRequired,
1334
- /**
1335
- * @ignore
1336
- */
1337
- checked: PropTypes.bool.isRequired,
1338
- /**
1339
- * @ignore
1340
- */
1341
- children: PropTypes.node,
1342
- /**
1343
- * CSS class applied to the element, or a function that
1344
- * returns a class based on the component’s state.
1345
- */
1346
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1347
- /**
1348
- * Whether to close the menu when the item is clicked.
1349
- */
1350
- closeOnClick: PropTypes.bool.isRequired,
1351
- /**
1352
- * Whether the component should ignore user interaction.
1353
- * @default false
1354
- */
1355
- disabled: PropTypes.bool,
1356
- /**
1357
- * @ignore
1358
- */
1359
- highlighted: PropTypes.bool.isRequired,
1360
- /**
1361
- * @ignore
1362
- */
1363
- id: PropTypes.string,
1364
- /**
1365
- * @ignore
1366
- */
1367
- itemProps: PropTypes.object.isRequired,
1368
- /**
1369
- * Overrides the text label to use when the item is matched during keyboard text navigation.
1370
- */
1371
- label: PropTypes.string,
1372
- /**
1373
- * @ignore
1374
- */
1375
- menuEvents: PropTypes.shape({
1376
- emit: PropTypes.func.isRequired,
1377
- off: PropTypes.func.isRequired,
1378
- on: PropTypes.func.isRequired
1379
- }).isRequired,
1380
- /**
1381
- * The click handler for the menu item.
1382
- */
1383
- onClick: PropTypes.func,
1384
- /**
1385
- * Allows you to replace the component’s HTML element
1386
- * with a different tag, or compose it with another component.
1387
- *
1388
- * Accepts a `ReactElement` or a function that returns the element to render.
1389
- */
1390
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
1391
- /**
1392
- * @ignore
1393
- */
1394
- setChecked: PropTypes.func.isRequired,
1395
- /**
1396
- * @ignore
1397
- */
1398
- typingRef: PropTypes.shape({
1399
- current: PropTypes.bool.isRequired
1400
- }).isRequired
1401
- } : void 0;
1402
- const MemoizedInnerMenuRadioItem = /* @__PURE__ */ React.memo(InnerMenuRadioItem);
1403
- const MenuRadioItem$1 = /* @__PURE__ */ React.forwardRef(function MenuRadioItem(props, forwardedRef) {
1404
- const {
1405
- id: idProp,
1406
- value,
1407
- label,
1408
- disabled: disabledProp = false,
1409
- closeOnClick = false,
1410
- ...other
1411
- } = props;
1412
- const itemRef = React.useRef(null);
1413
- const listItem = useCompositeListItem({
1414
- label
1415
- });
1416
- const mergedRef = useForkRef(forwardedRef, listItem.ref, itemRef);
1417
- const {
1418
- itemProps,
1419
- activeIndex,
1420
- allowMouseUpTriggerRef,
1421
- typingRef
1422
- } = useMenuRootContext();
1423
- const id = useBaseUiId(idProp);
1424
- const highlighted = listItem.index === activeIndex;
1425
- const {
1426
- events: menuEvents
1427
- } = useFloatingTree();
1428
- const {
1429
- value: selectedValue,
1430
- setValue: setSelectedValue,
1431
- disabled: groupDisabled
1432
- } = useMenuRadioGroupContext();
1433
- const disabled = groupDisabled || disabledProp;
1434
- const checked = selectedValue === value;
1435
- const setChecked = React.useCallback((event) => {
1436
- setSelectedValue(value, event);
1437
- }, [setSelectedValue, value]);
1438
- const contextValue = React.useMemo(() => ({
1439
- checked,
1440
- highlighted,
1441
- disabled
1442
- }), [checked, highlighted, disabled]);
1443
- return /* @__PURE__ */ jsx(MenuRadioItemContext.Provider, {
1444
- value: contextValue,
1445
- children: /* @__PURE__ */ jsx(MemoizedInnerMenuRadioItem, {
1446
- ...other,
1447
- id,
1448
- ref: mergedRef,
1449
- disabled,
1450
- highlighted,
1451
- menuEvents,
1452
- itemProps,
1453
- allowMouseUpTriggerRef,
1454
- checked: selectedValue === value,
1455
- setChecked,
1456
- typingRef,
1457
- closeOnClick
1458
- })
1459
- });
1460
- });
1461
- process.env.NODE_ENV !== "production" ? MenuRadioItem$1.propTypes = {
1462
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1463
- // │ These PropTypes are generated from the TypeScript type definitions. │
1464
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1465
- // └─────────────────────────────────────────────────────────────────────┘
1466
- /**
1467
- * @ignore
1468
- */
1469
- children: PropTypes.node,
1470
- /**
1471
- * CSS class applied to the element, or a function that
1472
- * returns a class based on the component’s state.
1473
- */
1474
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1475
- /**
1476
- * Whether to close the menu when the item is clicked.
1477
- * @default false
1478
- */
1479
- closeOnClick: PropTypes.bool,
1480
- /**
1481
- * Whether the component should ignore user interaction.
1482
- * @default false
1483
- */
1484
- disabled: PropTypes.bool,
1485
- /**
1486
- * @ignore
1487
- */
1488
- id: PropTypes.string,
1489
- /**
1490
- * Overrides the text label to use when the item is matched during keyboard text navigation.
1491
- */
1492
- label: PropTypes.string,
1493
- /**
1494
- * The click handler for the menu item.
1495
- */
1496
- onClick: PropTypes.func,
1497
- /**
1498
- * Allows you to replace the component’s HTML element
1499
- * with a different tag, or compose it with another component.
1500
- *
1501
- * Accepts a `ReactElement` or a function that returns the element to render.
1502
- */
1503
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),
1504
- /**
1505
- * Value of the radio item.
1506
- * This is the value that will be set in the MenuRadioGroup when the item is selected.
1507
- */
1508
- value: PropTypes.any.isRequired
1509
- } : void 0;
1510
- const MenuRadioItemIndicator$1 = /* @__PURE__ */ React.forwardRef(function MenuRadioItemIndicator(props, forwardedRef) {
1511
- const {
1512
- render,
1513
- className,
1514
- keepMounted = false,
1515
- ...other
1516
- } = props;
1517
- const item = useMenuRadioItemContext();
1518
- const indicatorRef = React.useRef(null);
1519
- const mergedRef = useForkRef(forwardedRef, indicatorRef);
1520
- const {
1521
- transitionStatus,
1522
- setMounted
1523
- } = useTransitionStatus(item.checked);
1524
- useOpenChangeComplete({
1525
- open: item.checked,
1526
- ref: indicatorRef,
1527
- onComplete() {
1528
- if (!item.checked) {
1529
- setMounted(false);
1530
- }
1531
- }
1532
- });
1533
- const state2 = React.useMemo(() => ({
1534
- checked: item.checked,
1535
- disabled: item.disabled,
1536
- highlighted: item.highlighted,
1537
- transitionStatus
1538
- }), [item.checked, item.disabled, item.highlighted, transitionStatus]);
1539
- const {
1540
- renderElement
1541
- } = useComponentRenderer({
1542
- render: render || "span",
1543
- className,
1544
- state: state2,
1545
- customStyleHookMapping: itemMapping,
1546
- extraProps: {
1547
- "aria-hidden": true,
1548
- ...other
1549
- },
1550
- ref: mergedRef
1551
- });
1552
- const shouldRender = keepMounted || item.checked;
1553
- if (!shouldRender) {
1554
- return null;
1555
- }
1556
- return renderElement();
1557
- });
1558
- process.env.NODE_ENV !== "production" ? MenuRadioItemIndicator$1.propTypes = {
1559
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1560
- // │ These PropTypes are generated from the TypeScript type definitions. │
1561
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1562
- // └─────────────────────────────────────────────────────────────────────┘
1563
- /**
1564
- * @ignore
1565
- */
1566
- children: PropTypes.node,
1567
- /**
1568
- * CSS class applied to the element, or a function that
1569
- * returns a class based on the component’s state.
1570
- */
1571
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1572
- /**
1573
- * Whether to keep the HTML element in the DOM when the radio item is inactive.
1574
- * @default false
1575
- */
1576
- keepMounted: PropTypes.bool,
1577
- /**
1578
- * Allows you to replace the component’s HTML element
1579
- * with a different tag, or compose it with another component.
1580
- *
1581
- * Accepts a `ReactElement` or a function that returns the element to render.
1582
- */
1583
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
1584
- } : void 0;
1585
- const Separator = /* @__PURE__ */ React.forwardRef(function SeparatorComponent(props, forwardedRef) {
1586
- const {
1587
- className,
1588
- render,
1589
- orientation = "horizontal",
1590
- ...other
1591
- } = props;
1592
- const state2 = React.useMemo(() => ({
1593
- orientation
1594
- }), [orientation]);
1595
- const getSeparatorProps = React.useCallback((externalProps = {}) => mergeProps({
1596
- "aria-orientation": orientation
1597
- }, externalProps), [orientation]);
1598
- const {
1599
- renderElement
1600
- } = useComponentRenderer({
1601
- propGetter: getSeparatorProps,
1602
- render: render ?? "div",
1603
- className,
1604
- state: state2,
1605
- extraProps: {
1606
- role: "separator",
1607
- ...other
1608
- },
1609
- ref: forwardedRef
1610
- });
1611
- return renderElement();
1612
- });
1613
- process.env.NODE_ENV !== "production" ? Separator.propTypes = {
1614
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1615
- // │ These PropTypes are generated from the TypeScript type definitions. │
1616
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1617
- // └─────────────────────────────────────────────────────────────────────┘
1618
- /**
1619
- * @ignore
1620
- */
1621
- children: PropTypes.node,
1622
- /**
1623
- * CSS class applied to the element, or a function that
1624
- * returns a class based on the component’s state.
1625
- */
1626
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1627
- /**
1628
- * The orientation of the separator.
1629
- * @default 'horizontal'
1630
- */
1631
- orientation: PropTypes.oneOf(["horizontal", "vertical"]),
1632
- /**
1633
- * Allows you to replace the component’s HTML element
1634
- * with a different tag, or compose it with another component.
1635
- *
1636
- * Accepts a `ReactElement` or a function that returns the element to render.
1637
- */
1638
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
1639
- } : void 0;
1640
- function useMenuSubmenuTrigger(parameters) {
1641
- const {
1642
- id,
1643
- highlighted,
1644
- disabled,
1645
- ref: externalRef,
1646
- menuEvents,
1647
- setTriggerElement,
1648
- allowMouseUpTriggerRef,
1649
- typingRef
1650
- } = parameters;
1651
- const {
1652
- getItemProps,
1653
- rootRef: menuItemRef
1654
- } = useMenuItem({
1655
- closeOnClick: false,
1656
- disabled,
1657
- highlighted,
1658
- id,
1659
- menuEvents,
1660
- ref: externalRef,
1661
- allowMouseUpTriggerRef,
1662
- typingRef
1663
- });
1664
- const menuTriggerRef = useForkRef(menuItemRef, setTriggerElement);
1665
- const getTriggerProps = React.useCallback((externalProps) => {
1666
- return {
1667
- ...getItemProps(externalProps),
1668
- "aria-haspopup": "menu",
1669
- ref: menuTriggerRef
1670
- };
1671
- }, [getItemProps, menuTriggerRef]);
1672
- return React.useMemo(() => ({
1673
- getTriggerProps,
1674
- rootRef: menuTriggerRef
1675
- }), [getTriggerProps, menuTriggerRef]);
1676
- }
1677
- const MenuSubmenuTrigger$1 = /* @__PURE__ */ React.forwardRef(function SubmenuTriggerComponent(props, forwardedRef) {
1678
- const {
1679
- render,
1680
- className,
1681
- label,
1682
- id: idProp,
1683
- ...other
1684
- } = props;
1685
- const id = useBaseUiId(idProp);
1686
- const {
1687
- triggerProps: rootTriggerProps,
1688
- parentContext,
1689
- setTriggerElement,
1690
- allowMouseUpTriggerRef,
1691
- open,
1692
- typingRef,
1693
- disabled
1694
- } = useMenuRootContext();
1695
- if (parentContext === void 0) {
1696
- throw new Error("Base UI: ItemTrigger must be placed in a nested Menu.");
1697
- }
1698
- const {
1699
- activeIndex,
1700
- itemProps
1701
- } = parentContext;
1702
- const item = useCompositeListItem();
1703
- const highlighted = activeIndex === item.index;
1704
- const mergedRef = useForkRef(forwardedRef, item.ref);
1705
- const {
1706
- events: menuEvents
1707
- } = useFloatingTree();
1708
- const {
1709
- getTriggerProps
1710
- } = useMenuSubmenuTrigger({
1711
- id,
1712
- highlighted,
1713
- ref: mergedRef,
1714
- disabled,
1715
- menuEvents,
1716
- setTriggerElement,
1717
- allowMouseUpTriggerRef,
1718
- typingRef
1719
- });
1720
- const state2 = React.useMemo(() => ({
1721
- disabled,
1722
- highlighted,
1723
- open
1724
- }), [disabled, highlighted, open]);
1725
- const {
1726
- renderElement
1727
- } = useComponentRenderer({
1728
- render: render || "div",
1729
- className,
1730
- state: state2,
1731
- propGetter: (externalProps) => mergeProps(rootTriggerProps, itemProps, externalProps, getTriggerProps),
1732
- customStyleHookMapping: triggerOpenStateMapping,
1733
- extraProps: other
1734
- });
1735
- return renderElement();
1736
- });
1737
- process.env.NODE_ENV !== "production" ? MenuSubmenuTrigger$1.propTypes = {
1738
- // ┌────────────────────────────── Warning ──────────────────────────────┐
1739
- // │ These PropTypes are generated from the TypeScript type definitions. │
1740
- // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │
1741
- // └─────────────────────────────────────────────────────────────────────┘
1742
- /**
1743
- * @ignore
1744
- */
1745
- children: PropTypes.node,
1746
- /**
1747
- * CSS class applied to the element, or a function that
1748
- * returns a class based on the component’s state.
1749
- */
1750
- className: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
1751
- /**
1752
- * @ignore
1753
- */
1754
- id: PropTypes.string,
1755
- /**
1756
- * Overrides the text label to use when the item is matched during keyboard text navigation.
1757
- */
1758
- label: PropTypes.string,
1759
- /**
1760
- * @ignore
1761
- */
1762
- onClick: PropTypes.func,
1763
- /**
1764
- * Allows you to replace the component’s HTML element
1765
- * with a different tag, or compose it with another component.
1766
- *
1767
- * Accepts a `ReactElement` or a function that returns the element to render.
1768
- */
1769
- render: PropTypes.oneOfType([PropTypes.element, PropTypes.func])
1770
- } : void 0;
1771
- function useMenuClassName(name, className) {
1772
- return useMemo(() => {
1773
- if (typeof className !== "function") return clsx(name, className);
1774
- return (p) => clsx(name, className(p));
1775
- }, [className, name]);
1776
- }
1777
- const MenuSubmenu = ({
1778
- children,
1779
- trigger,
1780
- ...props
1781
- }) => {
1782
- return /* @__PURE__ */ jsxs(MenuRoot, { ...props, children: [
1783
- trigger,
1784
- /* @__PURE__ */ jsx(MenuPortal, { children })
1785
- ] });
1786
- };
1787
- const MenuContainer = forwardRef(function MenuContainer2({ className, ...props }, ref) {
1788
- const cl = useMenuClassName("lng1771-menu", className);
1789
- return /* @__PURE__ */ jsx(MenuPopup, { ...props, className: cl, ref });
1790
- });
1791
- const MenuItem2 = forwardRef(function MenuItem22({ className, ...props }, ref) {
1792
- const cl = useMenuClassName("lng1771-menu__item", className);
1793
- return /* @__PURE__ */ jsx(MenuItem$1, { ...props, className: cl, ref });
1794
- });
1795
- const MenuSeparator = forwardRef(function MenuSeparator2({ className, ...props }, ref) {
1796
- const cl = useMenuClassName("lng1771-menu__separator", className);
1797
- return /* @__PURE__ */ jsx(Separator, { ...props, className: cl, ref });
1798
- });
1799
- const MenuGroup2 = forwardRef(function MenuGroup22({ className, ...props }, ref) {
1800
- const cl = useMenuClassName("lng1771-menu__group", className);
1801
- return /* @__PURE__ */ jsx(MenuGroup$1, { ...props, ref, className: cl });
1802
- });
1803
- const MenuGroupLabel = forwardRef(function MenuGroupLabel2({ className, ...props }, ref) {
1804
- const cl = useMenuClassName("lng1771-menu__group-label", className);
1805
- return /* @__PURE__ */ jsx(MenuGroupLabel$1, { ...props, ref, className: cl });
1806
- });
1807
- const MenuSubmenuTrigger = forwardRef(function SubmenuTrigger({ className, children, ...props }, ref) {
1808
- const cl = useMenuClassName("lng1771-menu__submenu-trigger", className);
1809
- console.log("i ran");
1810
- return /* @__PURE__ */ jsxs(MenuSubmenuTrigger$1, { ...props, className: cl, ref, children: [
1811
- children,
1812
- /* @__PURE__ */ jsx(ArrowRightIcon, { width: 16, height: 16 })
1813
- ] });
1814
- });
1815
- const MenuRadioGroup2 = forwardRef(function RadioGroup({ className, ...props }, ref) {
1816
- const cl = useMenuClassName("lng1771-menu__radio-group", className);
1817
- return /* @__PURE__ */ jsx(MemoizedMenuRadioGroup, { ...props, className: cl, ref });
1818
- });
1819
- const MenuRadioItemIndicator2 = forwardRef(function RadioItemIndicator({ children, className, ...props }, ref) {
1820
- const cl = useMenuClassName("lng1771-menu__radio-item-indicator", className);
1821
- return /* @__PURE__ */ jsx(MenuRadioItemIndicator$1, { ...props, ref, className: cl, children: children ?? /* @__PURE__ */ jsx(TickmarkIcon, { width: 16, height: 16 }) });
1822
- });
1823
- const MenuRadioItem2 = forwardRef(function RadioItem({ className, ...props }, ref) {
1824
- const cl = useMenuClassName("lng1771-menu__radio-item", className);
1825
- return /* @__PURE__ */ jsx(MenuRadioItem$1, { ...props, ref, className: cl });
1826
- });
1827
- const MenuCheckboxItemIndicator2 = forwardRef(function CheckboxItemIndicator({ children, className, ...props }, ref) {
1828
- const cl = useMenuClassName("lng1771-menu__checkbox-item-indicator", className);
1829
- return /* @__PURE__ */ jsx(MenuCheckboxItemIndicator$1, { ...props, ref, className: cl, children: children ?? /* @__PURE__ */ jsx(TickmarkIcon, { width: 16, height: 16 }) });
1830
- });
1831
- const MenuCheckboxItem2 = forwardRef(function CheckboxItem({ className, ...props }, ref) {
1832
- const cl = useMenuClassName("lng1771-menu__checkbox-item", className);
1833
- return /* @__PURE__ */ jsx(MenuCheckboxItem$1, { ...props, ref, className: cl });
1834
- });
1835
- const SubmenuPositioner = forwardRef(function SubMenuPositioner({ className, ...props }, ref) {
1836
- const cl = useMenuClassName("lng1771-menu__submenu-positioner", className);
1837
- return /* @__PURE__ */ jsx(MenuPositioner$1, { ...props, ref, className: cl });
1838
- });
1839
- const MenuPositioner2 = forwardRef(function MenuPositioner22({ className, ...props }, ref) {
1840
- const cl = useMenuClassName("lng1771-menu__positioner", className);
1841
- const target = useAnchor();
1842
- return /* @__PURE__ */ jsx(
1843
- MenuPositioner$1,
1844
- {
1845
- side: "bottom",
1846
- align: "start",
1847
- anchor: target ? "getBoundingClientRect" in target ? target : {
1848
- getBoundingClientRect: () => ({
1849
- x: target.x,
1850
- y: target.y,
1851
- width: target.width,
1852
- height: target.height,
1853
- top: target.y,
1854
- left: target.x,
1855
- bottom: target.y,
1856
- right: target.x,
1857
- toJSON: () => ""
1858
- })
1859
- } : emptyBB,
1860
- ...props,
1861
- ref,
1862
- className: cl
1863
- }
1864
- );
1865
- });
1866
- const Menu = {
1867
- Container: MenuContainer,
1868
- Submenu: MenuSubmenu,
1869
- SubmenuTrigger: MenuSubmenuTrigger,
1870
- SubmenuPositioner,
1871
- Item: MenuItem2,
1872
- Separator: MenuSeparator,
1873
- Group: MenuGroup2,
1874
- GroupLabel: MenuGroupLabel,
1875
- RadioGroup: MenuRadioGroup2,
1876
- Radio: MenuRadioItem2,
1877
- RadioIndicator: MenuRadioItemIndicator2,
1878
- Checkbox: MenuCheckboxItem2,
1879
- CheckboxIndicator: MenuCheckboxItemIndicator2,
1880
- Positioner: MenuPositioner2
1881
- };
1882
- export {
1883
- MenuPositioner$1 as M,
1884
- Menu as a
1885
- };