@1771technologies/lytenyte-pro 0.9.3 → 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.
- package/README.md +3 -2
- package/dist/+types.d.ts +5299 -0
- package/dist/+types.js +1 -0
- package/dist/cell-selection/adjust-rect-for-row-and-cell-span.d.ts +2 -0
- package/dist/cell-selection/adjust-rect-for-row-and-cell-span.js +43 -0
- package/dist/cell-selection/are-rects-equal.d.ts +2 -0
- package/dist/cell-selection/are-rects-equal.js +6 -0
- package/dist/cell-selection/bound-selection-rect.d.ts +2 -0
- package/dist/cell-selection/bound-selection-rect.js +17 -0
- package/dist/cell-selection/cell-selection-containers.d.ts +3 -0
- package/dist/cell-selection/cell-selection-containers.js +91 -0
- package/dist/cell-selection/cell-selection-driver.js +272 -0
- package/dist/{types/cell-selection → cell-selection}/cell-style-row.d.ts +2 -2
- package/dist/cell-selection/cell-style-row.js +84 -0
- package/dist/cell-selection/deselect-rect-range.d.ts +2 -0
- package/dist/cell-selection/deselect-rect-range.js +43 -0
- package/dist/cell-selection/expand-cell-selection-down.d.ts +5 -0
- package/dist/cell-selection/expand-cell-selection-down.js +39 -0
- package/dist/cell-selection/expand-cell-selection-end.d.ts +5 -0
- package/dist/cell-selection/expand-cell-selection-end.js +40 -0
- package/dist/cell-selection/expand-cell-selection-start.d.ts +5 -0
- package/dist/cell-selection/expand-cell-selection-start.js +39 -0
- package/dist/cell-selection/expand-cell-selection-up.d.ts +5 -0
- package/dist/cell-selection/expand-cell-selection-up.js +39 -0
- package/dist/cell-selection/full-width-start-end-index.d.ts +2 -0
- package/dist/cell-selection/full-width-start-end-index.js +5 -0
- package/dist/cell-selection/get-root-cell.d.ts +2 -0
- package/dist/cell-selection/get-root-cell.js +86 -0
- package/dist/cell-selection/index.d.ts +19 -0
- package/dist/cell-selection/index.js +19 -0
- package/dist/cell-selection/is-bottom-rect.d.ts +2 -0
- package/dist/cell-selection/is-bottom-rect.js +7 -0
- package/dist/cell-selection/is-center-col-rect.d.ts +5 -0
- package/dist/cell-selection/is-center-col-rect.js +5 -0
- package/dist/cell-selection/is-center-rect.d.ts +2 -0
- package/dist/cell-selection/is-center-rect.js +5 -0
- package/dist/cell-selection/is-end-rect.d.ts +5 -0
- package/dist/cell-selection/is-end-rect.js +4 -0
- package/dist/cell-selection/is-overlapping-rect.d.ts +2 -0
- package/dist/cell-selection/is-overlapping-rect.js +6 -0
- package/dist/cell-selection/is-start-rect.d.ts +5 -0
- package/dist/cell-selection/is-start-rect.js +4 -0
- package/dist/cell-selection/is-top-rect.d.ts +2 -0
- package/dist/cell-selection/is-top-rect.js +4 -0
- package/dist/cell-selection/is-within-selection-rect.d.ts +2 -0
- package/dist/cell-selection/is-within-selection-rect.js +3 -0
- package/dist/cell-selection/split-cell-selection-rect.d.ts +39 -0
- package/dist/cell-selection/split-cell-selection-rect.js +79 -0
- package/dist/cell-selection/update-additive-cell-selection.d.ts +5 -0
- package/dist/cell-selection/update-additive-cell-selection.js +25 -0
- package/dist/cell-selection/use-edge-scroll.d.ts +10 -0
- package/dist/cell-selection/use-edge-scroll.js +66 -0
- package/dist/cells/cell-default.d.ts +2 -0
- package/dist/cells/cell-default.js +8 -0
- package/dist/cells/cell-editor.d.ts +6 -0
- package/dist/cells/cell-editor.js +96 -0
- package/dist/cells/cell.d.ts +7 -0
- package/dist/cells/cell.js +37 -0
- package/dist/column-manager/branch-lookup-context.d.ts +4 -0
- package/dist/column-manager/branch-lookup-context.js +3 -0
- package/dist/column-manager/branch.d.ts +9 -0
- package/dist/column-manager/branch.js +38 -0
- package/dist/column-manager/column-manager.d.ts +15 -0
- package/dist/column-manager/column-manager.js +20 -0
- package/dist/column-manager/context.d.ts +7 -0
- package/dist/column-manager/context.js +3 -0
- package/dist/column-manager/label.d.ts +5 -0
- package/dist/column-manager/label.js +18 -0
- package/dist/column-manager/leaf.d.ts +6 -0
- package/dist/column-manager/leaf.js +40 -0
- package/dist/column-manager/move-handle.d.ts +12 -0
- package/dist/column-manager/move-handle.js +58 -0
- package/dist/column-manager/passive-scroll.d.ts +2 -0
- package/dist/column-manager/passive-scroll.js +2 -0
- package/dist/column-manager/root.d.ts +9 -0
- package/dist/column-manager/root.js +20 -0
- package/dist/column-manager/use-column-manager.d.ts +19 -0
- package/dist/column-manager/use-column-manager.js +24 -0
- package/dist/column-manager/use-columns-from-context.d.ts +3 -0
- package/dist/column-manager/use-columns-from-context.js +23 -0
- package/dist/column-manager/visibility-checkbox.d.ts +9 -0
- package/dist/column-manager/visibility-checkbox.js +30 -0
- package/dist/context.d.ts +10 -0
- package/dist/context.js +4 -0
- package/dist/filter-tree/branch.d.ts +10 -0
- package/dist/filter-tree/branch.js +21 -0
- package/dist/filter-tree/context.d.ts +27 -0
- package/dist/filter-tree/context.js +5 -0
- package/dist/filter-tree/filter-tree.d.ts +14 -0
- package/dist/filter-tree/filter-tree.js +18 -0
- package/dist/filter-tree/hooks/use-filter-tree.d.ts +37 -0
- package/dist/filter-tree/hooks/use-filter-tree.js +96 -0
- package/dist/filter-tree/hooks/use-tree-item.d.ts +8 -0
- package/dist/filter-tree/hooks/use-tree-item.js +116 -0
- package/dist/filter-tree/inclusion-checkbox.d.ts +9 -0
- package/dist/filter-tree/inclusion-checkbox.js +14 -0
- package/dist/filter-tree/label.d.ts +5 -0
- package/dist/filter-tree/label.js +18 -0
- package/dist/filter-tree/leaf.d.ts +6 -0
- package/dist/filter-tree/leaf.js +12 -0
- package/dist/filter-tree/root.d.ts +13 -0
- package/dist/filter-tree/root.js +30 -0
- package/dist/grid-box/+types.d.ts +13 -0
- package/dist/grid-box/+types.js +1 -0
- package/dist/grid-box/context.d.ts +9 -0
- package/dist/grid-box/context.js +3 -0
- package/dist/grid-box/grid-box.d.ts +12 -0
- package/dist/grid-box/grid-box.js +14 -0
- package/dist/grid-box/item.d.ts +7 -0
- package/dist/grid-box/item.js +33 -0
- package/dist/grid-box/panel.d.ts +1 -0
- package/dist/grid-box/panel.js +9 -0
- package/dist/grid-box/root.d.ts +9 -0
- package/dist/grid-box/root.js +8 -0
- package/dist/grid-box/use-aggregation-box-items.d.ts +18 -0
- package/dist/grid-box/use-aggregation-box-items.js +60 -0
- package/dist/grid-box/use-column-box-items.d.ts +31 -0
- package/dist/grid-box/use-column-box-items.js +81 -0
- package/dist/grid-box/use-row-group-box-items.d.ts +18 -0
- package/dist/grid-box/use-row-group-box-items.js +134 -0
- package/dist/grid-provider/context.d.ts +5 -0
- package/dist/grid-provider/context.js +2 -0
- package/dist/grid-provider/provider.d.ts +3 -0
- package/dist/grid-provider/provider.js +2 -0
- package/dist/grid-provider/use-grid.d.ts +3 -0
- package/dist/grid-provider/use-grid.js +3 -0
- package/dist/grid.d.ts +29 -0
- package/dist/grid.js +38 -0
- package/dist/header/header-cell.d.ts +10 -0
- package/dist/header/header-cell.js +24 -0
- package/dist/header/header-group-cell.d.ts +5 -0
- package/dist/header/header-group-cell.js +14 -0
- package/dist/header/header-row.d.ts +4 -0
- package/dist/header/header-row.js +10 -0
- package/dist/header/header.d.ts +1 -0
- package/dist/header/header.js +10 -0
- package/dist/header/resize-handler.d.ts +12 -0
- package/dist/header/resize-handler.js +128 -0
- package/dist/header/use-drag-move.d.ts +14 -0
- package/dist/header/use-drag-move.js +90 -0
- package/dist/header/use-header-cell-renderer.d.ts +4 -0
- package/dist/header/use-header-cell-renderer.js +36 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -3860
- package/dist/license.d.ts +2 -0
- package/dist/license.js +217 -0
- package/dist/listbox/context.d.ts +6 -0
- package/dist/listbox/context.js +3 -0
- package/dist/listbox/item.d.ts +1 -0
- package/dist/listbox/item.js +25 -0
- package/dist/listbox/panel.d.ts +1 -0
- package/dist/listbox/panel.js +50 -0
- package/dist/listbox/root.d.ts +6 -0
- package/dist/listbox/root.js +12 -0
- package/dist/root/dialog-driver.js +21 -0
- package/dist/root/popover-driver.js +21 -0
- package/dist/root/root.d.ts +8 -0
- package/dist/root/root.js +120 -0
- package/dist/row-data-source-client/+constants.d.ts +2 -0
- package/dist/row-data-source-client/+constants.js +2 -0
- package/dist/row-data-source-client/+types.d.ts +27 -0
- package/dist/row-data-source-client/+types.js +1 -0
- package/dist/row-data-source-client/built-ins/avg.d.ts +10 -0
- package/dist/row-data-source-client/built-ins/avg.js +16 -0
- package/dist/row-data-source-client/built-ins/built-ins.d.ts +44 -0
- package/dist/row-data-source-client/built-ins/built-ins.js +44 -0
- package/dist/row-data-source-client/built-ins/count.d.ts +10 -0
- package/dist/row-data-source-client/built-ins/count.js +16 -0
- package/dist/row-data-source-client/built-ins/first.d.ts +10 -0
- package/dist/row-data-source-client/built-ins/first.js +12 -0
- package/dist/row-data-source-client/built-ins/group.d.ts +1 -0
- package/dist/row-data-source-client/built-ins/group.js +3 -0
- package/dist/row-data-source-client/built-ins/last.d.ts +10 -0
- package/dist/row-data-source-client/built-ins/last.js +12 -0
- package/dist/row-data-source-client/built-ins/max.d.ts +11 -0
- package/dist/row-data-source-client/built-ins/max.js +25 -0
- package/dist/row-data-source-client/built-ins/min.d.ts +11 -0
- package/dist/row-data-source-client/built-ins/min.js +25 -0
- package/dist/row-data-source-client/built-ins/sum.d.ts +10 -0
- package/dist/row-data-source-client/built-ins/sum.js +21 -0
- package/dist/row-data-source-client/filter/+types.d.ts +23 -0
- package/dist/row-data-source-client/filter/+types.js +1 -0
- package/dist/row-data-source-client/filter/compute-filtered-rows.d.ts +2 -0
- package/dist/row-data-source-client/filter/compute-filtered-rows.js +109 -0
- package/dist/row-data-source-client/pivots/create-agg-model.d.ts +6 -0
- package/dist/row-data-source-client/pivots/create-agg-model.js +13 -0
- package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.d.ts +2 -0
- package/dist/row-data-source-client/pivots/create-pivot-columns-from-paths.js +50 -0
- package/dist/row-data-source-client/pivots/create-pivot-columns.d.ts +2 -0
- package/dist/row-data-source-client/pivots/create-pivot-columns.js +22 -0
- package/dist/row-data-source-client/pivots/create-pivot-tree.d.ts +2 -0
- package/dist/row-data-source-client/pivots/create-pivot-tree.js +23 -0
- package/dist/row-data-source-client/tree/client-tree.d.ts +18 -0
- package/dist/row-data-source-client/tree/client-tree.js +76 -0
- package/dist/row-data-source-client/tree/evaluator-aggregation.d.ts +2 -0
- package/dist/row-data-source-client/tree/evaluator-aggregation.js +8 -0
- package/dist/row-data-source-client/tree/evaluator-group.d.ts +2 -0
- package/dist/row-data-source-client/tree/evaluator-group.js +9 -0
- package/dist/row-data-source-client/tree/traverse.d.ts +2 -0
- package/dist/row-data-source-client/tree/traverse.js +22 -0
- package/dist/row-data-source-client/use-client-data-source-paginated.d.ts +10 -0
- package/dist/row-data-source-client/use-client-data-source-paginated.js +538 -0
- package/dist/row-data-source-client/use-client-data-source.d.ts +10 -0
- package/dist/row-data-source-client/use-client-data-source.js +667 -0
- package/dist/row-data-source-client/use-client-tree-data-source.d.ts +9 -0
- package/dist/row-data-source-client/use-client-tree-data-source.js +513 -0
- package/dist/row-data-source-server/async-tree/+constants.async-tree.d.ts +1 -0
- package/dist/row-data-source-server/async-tree/+constants.async-tree.js +1 -0
- package/dist/row-data-source-server/async-tree/+types.async-tree.d.ts +59 -0
- package/dist/row-data-source-server/async-tree/+types.async-tree.js +1 -0
- package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/apply-delete-action-to-tree.js +27 -0
- package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/apply-set-action-to-tree.js +36 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-unique.js +24 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-keys-are-valid.js +14 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-keys-fit.js +18 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/check-set-action-item-kinds.js +14 -0
- package/dist/row-data-source-server/async-tree/get-parent-node-by-path.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/get-parent-node-by-path.js +18 -0
- package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/is-set-action-a-no-op-on-node.js +3 -0
- package/dist/row-data-source-server/async-tree/make-async-tree.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/make-async-tree.js +19 -0
- package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/maybe-apply-parent-remove-self.js +8 -0
- package/dist/row-data-source-server/async-tree/maybe-apply-resize.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/maybe-apply-resize.js +17 -0
- package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.d.ts +2 -0
- package/dist/row-data-source-server/async-tree/maybe-apply-set-action-items.js +51 -0
- package/dist/row-data-source-server/range-tree/range-tree.d.ts +66 -0
- package/dist/row-data-source-server/range-tree/range-tree.js +102 -0
- package/dist/row-data-source-server/use-server-data-source.d.ts +3 -0
- package/dist/row-data-source-server/use-server-data-source.js +679 -0
- package/dist/row-data-source-server/utils/get-node-depth.d.ts +2 -0
- package/dist/row-data-source-server/utils/get-node-depth.js +9 -0
- package/dist/row-data-source-server/utils/get-node-path.d.ts +2 -0
- package/dist/row-data-source-server/utils/get-node-path.js +9 -0
- package/dist/row-data-source-server/utils/get-request-id.d.ts +1 -0
- package/dist/row-data-source-server/utils/get-request-id.js +6 -0
- package/dist/rows/row/context.d.ts +6 -0
- package/dist/rows/row/context.js +3 -0
- package/dist/rows/row/row.d.ts +7 -0
- package/dist/rows/row/row.js +16 -0
- package/dist/rows/row/use-row-context-value.d.ts +6 -0
- package/dist/rows/row/use-row-context-value.js +29 -0
- package/dist/rows/row-detail-row.d.ts +4 -0
- package/dist/rows/row-detail-row.js +131 -0
- package/dist/rows/row-full-width.d.ts +8 -0
- package/dist/rows/row-full-width.js +17 -0
- package/dist/rows/rows-container.d.ts +1 -0
- package/dist/rows/rows-container.js +9 -0
- package/dist/rows/rows-sections.d.ts +3 -0
- package/dist/rows/rows-sections.js +27 -0
- package/dist/rows/scrollers/native-scroller.d.ts +2 -0
- package/dist/rows/scrollers/native-scroller.js +18 -0
- package/dist/{types/sort-manager/use-sort-state.d.ts → sort-manager/+types.d.ts} +5 -2
- package/dist/sort-manager/+types.js +1 -0
- package/dist/sort-manager/context.d.ts +14 -0
- package/dist/sort-manager/context.js +5 -0
- package/dist/sort-manager/hooks/use-sort-manager.d.ts +15 -0
- package/dist/sort-manager/hooks/use-sort-manager.js +56 -0
- package/dist/{types/sort-manager/sort-manager-container.d.ts → sort-manager/hooks/use-sort-row-item.d.ts} +5 -7
- package/dist/sort-manager/hooks/use-sort-row-item.js +145 -0
- package/dist/sort-manager/hooks/use-sortable-column-items.d.ts +5 -0
- package/dist/sort-manager/hooks/use-sortable-column-items.js +13 -0
- package/dist/sort-manager/root.d.ts +3 -0
- package/dist/sort-manager/root.js +14 -0
- package/dist/sort-manager/sort-add.d.ts +8 -0
- package/dist/sort-manager/sort-add.js +14 -0
- package/dist/sort-manager/sort-apply.d.ts +7 -0
- package/dist/sort-manager/sort-apply.js +24 -0
- package/dist/sort-manager/sort-cancel.d.ts +7 -0
- package/dist/sort-manager/sort-cancel.js +27 -0
- package/dist/sort-manager/sort-clear.d.ts +7 -0
- package/dist/sort-manager/sort-clear.js +22 -0
- package/dist/sort-manager/sort-column-select.d.ts +10 -0
- package/dist/sort-manager/sort-column-select.js +20 -0
- package/dist/sort-manager/sort-direction-select.d.ts +10 -0
- package/dist/sort-manager/sort-direction-select.js +24 -0
- package/dist/sort-manager/sort-manager.d.ts +16 -0
- package/dist/sort-manager/sort-manager.js +26 -0
- package/dist/sort-manager/sort-remove.d.ts +7 -0
- package/dist/sort-manager/sort-remove.js +14 -0
- package/dist/sort-manager/sort-row.d.ts +5 -0
- package/dist/sort-manager/sort-row.js +7 -0
- package/dist/sort-manager/sort-rows.d.ts +1 -0
- package/dist/sort-manager/sort-rows.js +6 -0
- package/dist/sort-manager/sort-value-select.d.ts +11 -0
- package/dist/sort-manager/sort-value-select.js +25 -0
- package/dist/sort-manager/utils/sort-item-to-sort-model.d.ts +3 -0
- package/dist/sort-manager/utils/sort-item-to-sort-model.js +57 -0
- package/dist/sort-manager/utils/sort-model-to-sort-items.d.ts +3 -0
- package/dist/sort-manager/utils/sort-model-to-sort-items.js +49 -0
- package/dist/state/+types.d.ts +34 -0
- package/dist/state/+types.js +1 -0
- package/dist/state/api/column-autosize.d.ts +5 -0
- package/dist/state/api/column-autosize.js +72 -0
- package/dist/state/api/column-by-id.d.ts +2 -0
- package/dist/state/api/column-by-id.js +6 -0
- package/dist/state/api/column-field.d.ts +2 -0
- package/dist/state/api/column-field.js +23 -0
- package/dist/state/api/column-from-index.d.ts +2 -0
- package/dist/state/api/column-from-index.js +6 -0
- package/dist/state/api/column-group-toggle.d.ts +2 -0
- package/dist/state/api/column-group-toggle.js +10 -0
- package/dist/state/api/column-index.d.ts +2 -0
- package/dist/state/api/column-index.js +7 -0
- package/dist/state/api/column-move.d.ts +2 -0
- package/dist/state/api/column-move.js +49 -0
- package/dist/state/api/column-resize.d.ts +2 -0
- package/dist/state/api/column-resize.js +9 -0
- package/dist/state/api/column-update.d.ts +2 -0
- package/dist/state/api/column-update.js +13 -0
- package/dist/state/api/dialog-frame.d.ts +8 -0
- package/dist/state/api/dialog-frame.js +16 -0
- package/dist/state/api/edit-begin.d.ts +5 -0
- package/dist/state/api/edit-begin.js +91 -0
- package/dist/state/api/edit-end.d.ts +5 -0
- package/dist/state/api/edit-end.js +43 -0
- package/dist/state/api/edit-is-cell-active.d.ts +5 -0
- package/dist/state/api/edit-is-cell-active.js +27 -0
- package/dist/state/api/edit-update.d.ts +5 -0
- package/dist/state/api/edit-update.js +88 -0
- package/dist/state/api/event-listeners.d.ts +5 -0
- package/dist/state/api/event-listeners.js +19 -0
- package/dist/state/api/export-csv.d.ts +3 -0
- package/dist/state/api/export-csv.js +40 -0
- package/dist/state/api/export-data-rect.d.ts +2 -0
- package/dist/state/api/export-data-rect.js +24 -0
- package/dist/state/api/focus-cell.d.ts +5 -0
- package/dist/state/api/focus-cell.js +117 -0
- package/dist/state/api/popover-frame.d.ts +8 -0
- package/dist/state/api/popover-frame.js +16 -0
- package/dist/state/api/position-from-element.d.ts +2 -0
- package/dist/state/api/position-from-element.js +9 -0
- package/dist/state/api/row-by-id.d.ts +2 -0
- package/dist/state/api/row-by-id.js +5 -0
- package/dist/state/api/row-by-index.d.ts +2 -0
- package/dist/state/api/row-by-index.js +9 -0
- package/dist/state/api/row-detail-is-expanded.d.ts +2 -0
- package/dist/state/api/row-detail-is-expanded.js +6 -0
- package/dist/state/api/row-detail-rendered-height.d.ts +5 -0
- package/dist/state/api/row-detail-rendered-height.js +14 -0
- package/dist/state/api/row-detail-toggle.d.ts +2 -0
- package/dist/state/api/row-detail-toggle.js +32 -0
- package/dist/state/api/row-group-apply-expansions.d.ts +2 -0
- package/dist/state/api/row-group-apply-expansions.js +20 -0
- package/dist/state/api/row-group-column-index.d.ts +2 -0
- package/dist/state/api/row-group-column-index.js +14 -0
- package/dist/state/api/row-group-is-expanded.d.ts +2 -0
- package/dist/state/api/row-group-is-expanded.js +15 -0
- package/dist/state/api/row-group-toggle.d.ts +2 -0
- package/dist/state/api/row-group-toggle.js +7 -0
- package/dist/state/api/row-handle-select.d.ts +5 -0
- package/dist/state/api/row-handle-select.js +43 -0
- package/dist/state/api/row-select-all.d.ts +2 -0
- package/dist/state/api/row-select-all.js +17 -0
- package/dist/state/api/row-select.d.ts +5 -0
- package/dist/state/api/row-select.js +35 -0
- package/dist/state/api/row-selected.d.ts +2 -0
- package/dist/state/api/row-selected.js +13 -0
- package/dist/state/api/scroll-into-view.d.ts +5 -0
- package/dist/state/api/scroll-into-view.js +50 -0
- package/dist/state/api/sort-for-column.d.ts +2 -0
- package/dist/state/api/sort-for-column.js +9 -0
- package/dist/state/api/use-row-drag.d.ts +2 -0
- package/dist/state/api/use-row-drag.js +27 -0
- package/dist/state/helpers/cell-row-group.d.ts +2 -0
- package/dist/state/helpers/cell-row-group.js +19 -0
- package/dist/state/helpers/column-add-row-group.d.ts +9 -0
- package/dist/state/helpers/column-add-row-group.js +66 -0
- package/dist/state/helpers/column-layout.d.ts +3 -0
- package/dist/state/helpers/column-layout.js +65 -0
- package/dist/state/helpers/column-marker.d.ts +8 -0
- package/dist/state/helpers/column-marker.js +43 -0
- package/dist/state/helpers/column-view.d.ts +21 -0
- package/dist/state/helpers/column-view.js +33 -0
- package/dist/state/helpers/edit-on-change.d.ts +15 -0
- package/dist/state/helpers/edit-on-change.js +26 -0
- package/dist/state/helpers/empty-row-data-source.d.ts +2 -0
- package/dist/state/helpers/empty-row-data-source.js +17 -0
- package/dist/state/helpers/get-data-rect.d.ts +13 -0
- package/dist/state/helpers/get-data-rect.js +65 -0
- package/dist/state/helpers/get-full-width-callback.d.ts +2 -0
- package/dist/state/helpers/get-full-width-callback.js +8 -0
- package/dist/state/helpers/get-span-callback.d.ts +2 -0
- package/dist/state/helpers/get-span-callback.js +20 -0
- package/dist/state/helpers/resolve-column.d.ts +4 -0
- package/dist/state/helpers/resolve-column.js +22 -0
- package/dist/state/helpers/row-layout/get-focus-criteria.d.ts +17 -0
- package/dist/state/helpers/row-layout/get-focus-criteria.js +62 -0
- package/dist/state/helpers/row-layout/row-layout.d.ts +18 -0
- package/dist/state/helpers/row-layout/row-layout.js +414 -0
- package/dist/state/use-lytenyte.d.ts +3 -0
- package/dist/state/use-lytenyte.js +579 -0
- package/dist/tree-view/branch/branch.d.ts +11 -0
- package/dist/tree-view/branch/branch.js +61 -0
- package/dist/tree-view/branch/use-branch-keys.d.ts +2 -0
- package/dist/tree-view/branch/use-branch-keys.js +87 -0
- package/dist/tree-view/context.d.ts +22 -0
- package/dist/tree-view/context.js +3 -0
- package/dist/tree-view/depth-provider.d.ts +2 -0
- package/dist/tree-view/depth-provider.js +3 -0
- package/dist/tree-view/hooks/use-tree-view-paths.d.ts +2 -0
- package/dist/tree-view/hooks/use-tree-view-paths.js +9 -0
- package/dist/tree-view/index.d.ts +16 -0
- package/dist/tree-view/index.js +16 -0
- package/dist/tree-view/leaf.d.ts +4 -0
- package/dist/tree-view/leaf.js +27 -0
- package/dist/tree-view/navigation/get-all-ids.d.ts +1 -0
- package/dist/tree-view/navigation/get-all-ids.js +7 -0
- package/dist/tree-view/navigation/get-first-node.d.ts +1 -0
- package/dist/tree-view/navigation/get-first-node.js +7 -0
- package/dist/tree-view/navigation/get-last-node.d.ts +1 -0
- package/dist/tree-view/navigation/get-last-node.js +7 -0
- package/dist/tree-view/navigation/get-next-node.d.ts +1 -0
- package/dist/tree-view/navigation/get-next-node.js +13 -0
- package/dist/tree-view/navigation/get-prev-node.d.ts +1 -0
- package/dist/tree-view/navigation/get-prev-node.js +13 -0
- package/dist/tree-view/panel/make-handle-navigation.d.ts +2 -0
- package/dist/tree-view/panel/make-handle-navigation.js +39 -0
- package/dist/tree-view/panel/make-handle-selection.d.ts +2 -0
- package/dist/tree-view/panel/make-handle-selection.js +92 -0
- package/dist/tree-view/panel/make-handle-typeahead.d.ts +1 -0
- package/dist/tree-view/panel/make-handle-typeahead.js +45 -0
- package/dist/tree-view/panel/panel.d.ts +1 -0
- package/dist/tree-view/panel/panel.js +30 -0
- package/dist/tree-view/panel/use-tree-navigation.d.ts +1 -0
- package/dist/tree-view/panel/use-tree-navigation.js +63 -0
- package/dist/tree-view/root.d.ts +17 -0
- package/dist/tree-view/root.js +63 -0
- package/dist/tree-view/utils/get-focusable-nodes.d.ts +1 -0
- package/dist/tree-view/utils/get-focusable-nodes.js +5 -0
- package/dist/tree-view/utils/get-focused-node.d.ts +1 -0
- package/dist/tree-view/utils/get-focused-node.js +14 -0
- package/dist/tree-view/utils/get-ids-between-nodes.d.ts +1 -0
- package/dist/tree-view/utils/get-ids-between-nodes.js +15 -0
- package/dist/tree-view/utils/get-panel.d.ts +1 -0
- package/dist/tree-view/utils/get-panel.js +7 -0
- package/dist/tree-view/utils/get-parent-node.d.ts +1 -0
- package/dist/tree-view/utils/get-parent-node.js +10 -0
- package/dist/tree-view/utils/get-sibling-branches.d.ts +1 -0
- package/dist/tree-view/utils/get-sibling-branches.js +14 -0
- package/dist/tree-view/utils/get-tree-node-id.d.ts +1 -0
- package/dist/tree-view/utils/get-tree-node-id.js +3 -0
- package/dist/tree-view/utils/is-branch-node.d.ts +1 -0
- package/dist/tree-view/utils/is-branch-node.js +3 -0
- package/dist/tree-view/utils/is-leaf-node.d.ts +1 -0
- package/dist/tree-view/utils/is-leaf-node.js +3 -0
- package/dist/tree-view/utils/is-tree-node-disabled.d.ts +1 -0
- package/dist/tree-view/utils/is-tree-node-disabled.js +3 -0
- package/dist/tree-view/utils/select-node.d.ts +2 -0
- package/dist/tree-view/utils/select-node.js +15 -0
- package/dist/tree-view/utils/toggle-all-selections.d.ts +2 -0
- package/dist/tree-view/utils/toggle-all-selections.js +9 -0
- package/dist/tree-view/utils/toggle-selection.d.ts +2 -0
- package/dist/tree-view/utils/toggle-selection.js +21 -0
- package/dist/tree-view/virtualized/force-sync-scrolling.d.ts +2 -0
- package/dist/tree-view/virtualized/force-sync-scrolling.js +23 -0
- package/dist/tree-view/virtualized/get-virtual-tree-paths.d.ts +2 -0
- package/dist/tree-view/virtualized/get-virtual-tree-paths.js +14 -0
- package/dist/tree-view/virtualized/make-virtual-tree.d.ts +31 -0
- package/dist/tree-view/virtualized/make-virtual-tree.js +90 -0
- package/dist/tree-view/virtualized/use-flattened-tree.d.ts +9 -0
- package/dist/tree-view/virtualized/use-flattened-tree.js +36 -0
- package/dist/tree-view/virtualized/use-row-start-and-end.d.ts +2 -0
- package/dist/tree-view/virtualized/use-row-start-and-end.js +27 -0
- package/dist/tree-view/virtualized/use-virtualized-tree.d.ts +22 -0
- package/dist/tree-view/virtualized/use-virtualized-tree.js +100 -0
- package/dist/types/types.d.ts +8 -13
- package/dist/types/types.js +1 -0
- package/dist/utils/cycle-sorts.d.ts +2 -0
- package/dist/utils/cycle-sorts.js +16 -0
- package/dist/viewport/begin-editing.d.ts +5 -0
- package/dist/viewport/begin-editing.js +15 -0
- package/dist/viewport/viewport.d.ts +1 -0
- package/dist/viewport/viewport.js +77 -0
- package/main.css +315 -0
- package/package.json +31 -79
- package/dist/CompositeList-CGRaS6LQ.js +0 -149
- package/dist/DialogPortalContext-C2WZTqJ3.js +0 -47
- package/dist/DirectionContext-DIPP5cAe.js +0 -15
- package/dist/InternalBackdrop-C4RACVzs.js +0 -324
- package/dist/PopoverPortalContext-BdsDjihw.js +0 -26
- package/dist/anchor-context-Cqr_oiJt.js +0 -11
- package/dist/arrow-down-icon-B-3ldODD.js +0 -27
- package/dist/column-manager.js +0 -1228
- package/dist/column-menu-driver-cG-EZgLa.js +0 -491
- package/dist/cross-icon-CEMLAlFX.js +0 -20
- package/dist/dialog.js +0 -506
- package/dist/drag-store-BMsDBUy_.js +0 -1039
- package/dist/filter-manager.js +0 -1057
- package/dist/getPseudoElementBounds-BSHt6WYm.js +0 -26
- package/dist/grid-container.js +0 -18
- package/dist/icons.js +0 -516
- package/dist/lytenyte-pro.css +0 -2167
- package/dist/manage-columns-icon-D4CElo5H.js +0 -146
- package/dist/menu-lIx6h6Vn.js +0 -1885
- package/dist/menu.js +0 -4
- package/dist/more-dots-icon-CzAH3xHG.js +0 -26
- package/dist/pill-BHBLeJ6k.js +0 -1012
- package/dist/pill-manager.js +0 -737
- package/dist/plus-icon-ToqW5CC-.js +0 -15
- package/dist/popover.js +0 -795
- package/dist/proptypes-BjYr2nFr.js +0 -6472
- package/dist/row-group-icon-DFUMye0v.js +0 -186
- package/dist/search-icon-CcG1lqsn.js +0 -86
- package/dist/select-Db5ksjoS.js +0 -2256
- package/dist/separator-BnPPeAk8.js +0 -21
- package/dist/sort-descending-BMtfaa2L.js +0 -34
- package/dist/sort-manager.js +0 -308
- package/dist/tickmark-icon-CoogRMoO.js +0 -51
- package/dist/types/anchor-context/anchor-context.d.ts +0 -6
- package/dist/types/cell-selection/cell-selection-containers.d.ts +0 -3
- package/dist/types/column-manager/column-manager-context.d.ts +0 -12
- package/dist/types/column-manager/column-manager-drag-box-controls.d.ts +0 -1
- package/dist/types/column-manager/column-manager-drag-box-expander.d.ts +0 -1
- package/dist/types/column-manager/column-manager-drag-box-label.d.ts +0 -5
- package/dist/types/column-manager/column-manager-drag-box.d.ts +0 -13
- package/dist/types/column-manager/column-manager-drag-placeholder.d.ts +0 -5
- package/dist/types/column-manager/column-manager-drop-zone.d.ts +0 -10
- package/dist/types/column-manager/column-manager-impl.d.ts +0 -36
- package/dist/types/column-manager/column-manager-pill.d.ts +0 -4
- package/dist/types/column-manager/column-manager-pivot-mode-toggle.d.ts +0 -1
- package/dist/types/column-manager/column-manager-search.d.ts +0 -1
- package/dist/types/column-manager/column-manager-state.d.ts +0 -8
- package/dist/types/column-manager/column-manager-tree-item.d.ts +0 -6
- package/dist/types/column-manager/column-manager-tree.d.ts +0 -11
- package/dist/types/column-manager/column-manager-types.d.ts +0 -1
- package/dist/types/column-manager/column-manager.d.ts +0 -1
- package/dist/types/column-manager/utils/all-leafs.d.ts +0 -3
- package/dist/types/column-manager/utils/can-hide-item.d.ts +0 -3
- package/dist/types/column-manager/utils/handle-item-hide.d.ts +0 -3
- package/dist/types/components-internal/button/button.d.ts +0 -9
- package/dist/types/components-internal/grid-frame/grid-frame.d.ts +0 -11
- package/dist/types/components-internal/radio/radio.d.ts +0 -5
- package/dist/types/components-internal/separator/separator.d.ts +0 -8
- package/dist/types/components-internal/toggle/toggle.d.ts +0 -7
- package/dist/types/dialog/dialog-impl.d.ts +0 -6
- package/dist/types/dialog/dialog.d.ts +0 -8
- package/dist/types/dialog/use-dialog-class.d.ts +0 -1
- package/dist/types/external.d.ts +0 -2
- package/dist/types/filter-manager/combined-to-flat.d.ts +0 -3
- package/dist/types/filter-manager/components/apply-filter-button.d.ts +0 -1
- package/dist/types/filter-manager/components/clear-filter-button.d.ts +0 -1
- package/dist/types/filter-manager/components/flatten-tree-items.d.ts +0 -4
- package/dist/types/filter-manager/components/get-child-values.d.ts +0 -2
- package/dist/types/filter-manager/components/in-filter-container.d.ts +0 -1
- package/dist/types/filter-manager/components/in-filter-error.d.ts +0 -5
- package/dist/types/filter-manager/components/in-filter-loading.d.ts +0 -1
- package/dist/types/filter-manager/components/in-filter-root.d.ts +0 -11
- package/dist/types/filter-manager/components/in-filter-tree.d.ts +0 -15
- package/dist/types/filter-manager/components/simple-filter-additional-switch.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-operator/date-operator.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-operator/number-operator.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-operator/simple-filter-operator.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-operator/text-operator.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-root.d.ts +0 -9
- package/dist/types/filter-manager/components/simple-filter-value/date-value.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-value/number-value.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-value/simple-filter-value.d.ts +0 -1
- package/dist/types/filter-manager/components/simple-filter-value/text-value.d.ts +0 -1
- package/dist/types/filter-manager/components/use-date-filter-callbacks.d.ts +0 -9
- package/dist/types/filter-manager/components/use-in-filter-item-loader.d.ts +0 -7
- package/dist/types/filter-manager/components/use-number-filter-callbacks.d.ts +0 -8
- package/dist/types/filter-manager/components/use-text-filter-callbacks.d.ts +0 -8
- package/dist/types/filter-manager/filter-manager-impl.d.ts +0 -27
- package/dist/types/filter-manager/filter-manager.d.ts +0 -1
- package/dist/types/filter-manager/filter-state-context.d.ts +0 -16
- package/dist/types/filter-manager/flat-to-combined.d.ts +0 -3
- package/dist/types/filter-manager/flatten-combined-filter.d.ts +0 -3
- package/dist/types/filter-manager/is-filter-complete.d.ts +0 -2
- package/dist/types/filter-manager/types.d.ts +0 -15
- package/dist/types/filter-manager/use-in-filter.d.ts +0 -5
- package/dist/types/filter-manager/use-simple-filters.d.ts +0 -8
- package/dist/types/grid-container/grid-container-impl.d.ts +0 -6
- package/dist/types/grid-container/grid-container.d.ts +0 -2
- package/dist/types/header-cell/header-cell-default.d.ts +0 -2
- package/dist/types/icons.d.ts +0 -1
- package/dist/types/index.d.ts +0 -8
- package/dist/types/license.d.ts +0 -12
- package/dist/types/list-view/list-view-context.d.ts +0 -21
- package/dist/types/list-view/list-view.d.ts +0 -26
- package/dist/types/lytenyte-pro.d.ts +0 -7
- package/dist/types/menu/arrow-svg.d.ts +0 -1
- package/dist/types/menu/column-menu/column-menu-driver.d.ts +0 -4
- package/dist/types/menu/context-menu/context-menu-driver.d.ts +0 -1
- package/dist/types/menu/context-menu/use-context-menu-listener.d.ts +0 -6
- package/dist/types/menu/menu-impl.d.ts +0 -18
- package/dist/types/menu/menu.d.ts +0 -19
- package/dist/types/menu/use-menu-class-name.d.ts +0 -1
- package/dist/types/menu-frame/menu-frame-driver.d.ts +0 -1
- package/dist/types/overlay/load-error-overlay.d.ts +0 -1
- package/dist/types/overlay/loading-overlay.d.ts +0 -1
- package/dist/types/overlay/no-data-overlay.d.ts +0 -1
- package/dist/types/overlay/overlay-driver.d.ts +0 -1
- package/dist/types/pill/pill.d.ts +0 -5
- package/dist/types/pill-manager/pill-manager-agg-menu.d.ts +0 -7
- package/dist/types/pill-manager/pill-manager-controls.d.ts +0 -9
- package/dist/types/pill-manager/pill-manager-drag-placeholder.d.ts +0 -5
- package/dist/types/pill-manager/pill-manager-expander.d.ts +0 -1
- package/dist/types/pill-manager/pill-manager-impl.d.ts +0 -50
- package/dist/types/pill-manager/pill-manager-pill.d.ts +0 -5
- package/dist/types/pill-manager/pill-manager-pills/pill-manager-pills.d.ts +0 -2
- package/dist/types/pill-manager/pill-manager-pills/use-aggregation-source.d.ts +0 -2
- package/dist/types/pill-manager/pill-manager-pills/use-column-pivot-source.d.ts +0 -2
- package/dist/types/pill-manager/pill-manager-pills/use-column-source.d.ts +0 -2
- package/dist/types/pill-manager/pill-manager-pills/use-measures-source.d.ts +0 -2
- package/dist/types/pill-manager/pill-manager-pills/use-row-groups-source.d.ts +0 -2
- package/dist/types/pill-manager/pill-manager-pills/utils.d.ts +0 -3
- package/dist/types/pill-manager/pill-manager-row-label.d.ts +0 -22
- package/dist/types/pill-manager/pill-manager-row.d.ts +0 -12
- package/dist/types/pill-manager/pill-manager-rows.d.ts +0 -1
- package/dist/types/pill-manager/pill-manager-separator.d.ts +0 -1
- package/dist/types/pill-manager/pill-manager-types.d.ts +0 -36
- package/dist/types/pill-manager/pill-manager.d.ts +0 -1
- package/dist/types/popover/popover-impl.d.ts +0 -8
- package/dist/types/popover/popover.d.ts +0 -10
- package/dist/types/popover/use-popover-class.d.ts +0 -1
- package/dist/types/select/select.d.ts +0 -26
- package/dist/types/sort-manager/sort-adder.d.ts +0 -4
- package/dist/types/sort-manager/sort-apply.d.ts +0 -1
- package/dist/types/sort-manager/sort-cancel.d.ts +0 -1
- package/dist/types/sort-manager/sort-clear.d.ts +0 -1
- package/dist/types/sort-manager/sort-column-select.d.ts +0 -6
- package/dist/types/sort-manager/sort-direction-select.d.ts +0 -6
- package/dist/types/sort-manager/sort-items-to-sort-model.d.ts +0 -3
- package/dist/types/sort-manager/sort-manager-context.d.ts +0 -4
- package/dist/types/sort-manager/sort-manager-impl.d.ts +0 -32
- package/dist/types/sort-manager/sort-manager.d.ts +0 -1
- package/dist/types/sort-manager/sort-model-to-sort-items.d.ts +0 -4
- package/dist/types/sort-manager/sort-remove.d.ts +0 -4
- package/dist/types/sort-manager/sort-sort-select.d.ts +0 -6
- package/dist/types/sort-manager/use-sortable-column-items.d.ts +0 -9
- package/dist/types/use-client-data-source.d.ts +0 -6
- package/dist/types/use-edge-scroll.d.ts +0 -7
- package/dist/types/use-grid.d.ts +0 -6
- package/dist/types/use-lytenyte.d.ts +0 -11
- package/dist/types/use-server-data-source.d.ts +0 -3
- package/dist/types/use-tree-data-source.d.ts +0 -3
- package/dist/types/watermark.d.ts +0 -3
- package/dist/types.js +0 -1
- package/dist/useAnchorPositioning-52zK7jlD.js +0 -241
- package/dist/useButton-DWXzFgcr.js +0 -184
- package/dist/useScrollLock-D4UY33Sb.js +0 -425
- /package/dist/{types/cell-selection → cell-selection}/cell-selection-driver.d.ts +0 -0
- /package/dist/{types/dialog → root}/dialog-driver.d.ts +0 -0
- /package/dist/{types/popover → root}/popover-driver.d.ts +0 -0
package/dist/menu-lIx6h6Vn.js
DELETED
|
@@ -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
|
-
};
|