@tcn/ui 0.16.0 → 0.18.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/dist/actions/index.d.ts +0 -1
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js +6 -8
- package/dist/actions/index.js.map +1 -1
- package/dist/card.css +1 -0
- package/dist/column.css +1 -1
- package/dist/containers.css +1 -1
- package/dist/containers.module-BmICKsOK.js +5 -0
- package/dist/containers.module-BmICKsOK.js.map +1 -0
- package/dist/draggable.css +1 -1
- package/dist/draggable.module-DFYR5n3n.js +5 -0
- package/dist/draggable.module-DFYR5n3n.js.map +1 -0
- package/dist/field_set.css +1 -1
- package/dist/field_set.module-BpJTFCi4.js +5 -0
- package/dist/field_set.module-BpJTFCi4.js.map +1 -0
- package/dist/form/field/field.js +17 -13
- package/dist/form/field/field.js.map +1 -1
- package/dist/form/field_set/field_set.d.ts +6 -10
- package/dist/form/field_set/field_set.d.ts.map +1 -1
- package/dist/form/field_set/field_set.js +33 -61
- package/dist/form/field_set/field_set.js.map +1 -1
- package/dist/form/field_set/legend.d.ts +20 -0
- package/dist/form/field_set/legend.d.ts.map +1 -0
- package/dist/form/field_set/legend.js +28 -0
- package/dist/form/field_set/legend.js.map +1 -0
- package/dist/form/index.d.ts +2 -1
- package/dist/form/index.d.ts.map +1 -1
- package/dist/form/index.js +24 -22
- package/dist/form/index.js.map +1 -1
- package/dist/inputs/color_input/color_input.js +2 -3
- package/dist/inputs/color_input/color_input.js.map +1 -1
- package/dist/inputs/color_input/color_picker.js +11 -7
- package/dist/inputs/color_input/color_picker.js.map +1 -1
- package/dist/inputs/combo_box/combo_box.js +24 -20
- package/dist/inputs/combo_box/combo_box.js.map +1 -1
- package/dist/inputs/date_picker/date_picker.js +19 -15
- package/dist/inputs/date_picker/date_picker.js.map +1 -1
- package/dist/inputs/date_picker/date_picker_header.d.ts.map +1 -1
- package/dist/inputs/date_picker/date_picker_header.js +15 -14
- package/dist/inputs/date_picker/date_picker_header.js.map +1 -1
- package/dist/inputs/date_picker/date_picker_input.js +26 -23
- package/dist/inputs/date_picker/date_picker_input.js.map +1 -1
- package/dist/inputs/date_picker/date_picker_time_selector.js +2 -3
- package/dist/inputs/date_picker/date_picker_time_selector.js.map +1 -1
- package/dist/inputs/date_picker/date_picker_year_input.js +2 -3
- package/dist/inputs/date_picker/date_picker_year_input.js.map +1 -1
- package/dist/inputs/date_picker/date_picker_year_selector.js +24 -21
- package/dist/inputs/date_picker/date_picker_year_selector.js.map +1 -1
- package/dist/inputs/mask_input/key_capture_input.js +35 -31
- package/dist/inputs/mask_input/key_capture_input.js.map +1 -1
- package/dist/inputs/mask_input/mask_input.js +18 -14
- package/dist/inputs/mask_input/mask_input.js.map +1 -1
- package/dist/inputs/multiselect/multiselect.js +28 -24
- package/dist/inputs/multiselect/multiselect.js.map +1 -1
- package/dist/inputs/multiselect/multiselect_inline_values.d.ts.map +1 -1
- package/dist/inputs/multiselect/multiselect_inline_values.js +15 -15
- package/dist/inputs/multiselect/multiselect_inline_values.js.map +1 -1
- package/dist/inputs/multiselect/multiselect_values.js +16 -17
- package/dist/inputs/multiselect/multiselect_values.js.map +1 -1
- package/dist/inputs/phone_number_input/phone_number_context.js +13 -9
- package/dist/inputs/phone_number_input/phone_number_context.js.map +1 -1
- package/dist/inputs/phone_number_input/phone_number_input_adapter.js +2 -3
- package/dist/inputs/phone_number_input/phone_number_input_adapter.js.map +1 -1
- package/dist/inputs/phone_number_input/sip_input.js +8 -9
- package/dist/inputs/phone_number_input/sip_input.js.map +1 -1
- package/dist/inputs/select/select.js +11 -8
- package/dist/inputs/select/select.js.map +1 -1
- package/dist/inputs/slider/slider.js +28 -24
- package/dist/inputs/slider/slider.js.map +1 -1
- package/dist/inputs/suggestions/suggestion_list.js +11 -8
- package/dist/inputs/suggestions/suggestion_list.js.map +1 -1
- package/dist/inputs/switch/switch.js +29 -25
- package/dist/inputs/switch/switch.js.map +1 -1
- package/dist/inputs/unit_input/unit_input.js +21 -17
- package/dist/inputs/unit_input/unit_input.js.map +1 -1
- package/dist/layouts/containers/columns/columns.d.ts +6 -1
- package/dist/layouts/containers/columns/columns.d.ts.map +1 -1
- package/dist/layouts/containers/columns/columns.js +30 -7
- package/dist/layouts/containers/columns/columns.js.map +1 -1
- package/dist/layouts/containers/rail.d.ts +2 -5
- package/dist/layouts/containers/rail.d.ts.map +1 -1
- package/dist/layouts/containers/rail.js +17 -55
- package/dist/layouts/containers/rail.js.map +1 -1
- package/dist/layouts/containers/rows/index.d.ts +3 -0
- package/dist/layouts/containers/rows/index.d.ts.map +1 -0
- package/dist/layouts/containers/rows/index.js +7 -0
- package/dist/layouts/containers/rows/index.js.map +1 -0
- package/dist/layouts/containers/rows/row.d.ts +6 -0
- package/dist/layouts/containers/rows/row.d.ts.map +1 -0
- package/dist/layouts/containers/rows/row.js +20 -0
- package/dist/layouts/containers/rows/row.js.map +1 -0
- package/dist/layouts/containers/rows/rows.d.ts +11 -0
- package/dist/layouts/containers/rows/rows.d.ts.map +1 -0
- package/dist/layouts/containers/rows/rows.js +34 -0
- package/dist/layouts/containers/rows/rows.js.map +1 -0
- package/dist/layouts/containers/scaffold.d.ts +2 -5
- package/dist/layouts/containers/scaffold.d.ts.map +1 -1
- package/dist/layouts/containers/scaffold.js +17 -55
- package/dist/layouts/containers/scaffold.js.map +1 -1
- package/dist/layouts/index.d.ts +2 -0
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +26 -22
- package/dist/layouts/index.js.map +1 -1
- package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js +11 -7
- package/dist/mobile/inputs/date_picker/mobile_date_picker_header.js.map +1 -1
- package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js +11 -7
- package/dist/mobile/inputs/date_picker/mobile_date_picker_input.js.map +1 -1
- package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js +14 -10
- package/dist/mobile/inputs/date_picker/mobile_date_picker_year_selector.js.map +1 -1
- package/dist/multiselect_values.css +1 -1
- package/dist/navigation/tabs/state/link/tab_link.js +15 -11
- package/dist/navigation/tabs/state/link/tab_link.js.map +1 -1
- package/dist/overlay/frame/frame.d.ts.map +1 -1
- package/dist/overlay/frame/frame.js +117 -76
- package/dist/overlay/frame/frame.js.map +1 -1
- package/dist/overlay/menu/menu.js +21 -17
- package/dist/overlay/menu/menu.js.map +1 -1
- package/dist/overlay/popper/base/dismissal_decorator.js +3 -3
- package/dist/overlay/popper/base/dismissal_decorator.js.map +1 -1
- package/dist/overlay/popper/context_popper.js +14 -10
- package/dist/overlay/popper/context_popper.js.map +1 -1
- package/dist/overlay/popper/element_popper.js +15 -11
- package/dist/overlay/popper/element_popper.js.map +1 -1
- package/dist/overlay/popper/legacy/popper.js +32 -28
- package/dist/overlay/popper/legacy/popper.js.map +1 -1
- package/dist/overlay/popper/preview_popper.js +16 -12
- package/dist/overlay/popper/preview_popper.js.map +1 -1
- package/dist/overlay/tethered/tethered.js +17 -13
- package/dist/overlay/tethered/tethered.js.map +1 -1
- package/dist/resizable.css +1 -0
- package/dist/resizable.module-ur5FBfxo.js +5 -0
- package/dist/resizable.module-ur5FBfxo.js.map +1 -0
- package/dist/resize_handle.css +1 -0
- package/dist/row.css +1 -0
- package/dist/stacks/box/box.d.ts +14 -0
- package/dist/stacks/box/box.d.ts.map +1 -1
- package/dist/stacks/box/box.js +104 -102
- package/dist/stacks/box/box.js.map +1 -1
- package/dist/stacks/box/detect_resize_bounds.d.ts +1 -0
- package/dist/stacks/box/detect_resize_bounds.d.ts.map +1 -1
- package/dist/stacks/box/detect_resize_bounds.js +22 -20
- package/dist/stacks/box/detect_resize_bounds.js.map +1 -1
- package/dist/stacks/box/end_resize_handle.js +5 -5
- package/dist/stacks/box/end_resize_handle.js.map +1 -1
- package/dist/stacks/box/resize_handlers.d.ts.map +1 -1
- package/dist/stacks/box/resize_handlers.js +12 -12
- package/dist/stacks/box/resize_handlers.js.map +1 -1
- package/dist/stacks/box/start_resize_handle.js +7 -7
- package/dist/stacks/box/start_resize_handle.js.map +1 -1
- package/dist/stacks/box/types.d.ts +3 -2
- package/dist/stacks/box/types.d.ts.map +1 -1
- package/dist/stacks/h_collapsible_box.js +24 -20
- package/dist/stacks/h_collapsible_box.js.map +1 -1
- package/dist/stacks/v_collapsible_box.js +26 -22
- package/dist/stacks/v_collapsible_box.js.map +1 -1
- package/dist/surfaces/alert/alert.js +7 -8
- package/dist/surfaces/alert/alert.js.map +1 -1
- package/dist/surfaces/card/card.d.ts.map +1 -1
- package/dist/surfaces/card/card.js +14 -6
- package/dist/surfaces/card/card.js.map +1 -1
- package/dist/surfaces/pop_confirm/pop_confirm.js +4 -2
- package/dist/surfaces/pop_confirm/pop_confirm.js.map +1 -1
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +10 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/themes/stories/button_showcase.d.ts.map +1 -1
- package/dist/themes/stories/controls_fieldset.d.ts.map +1 -1
- package/dist/themes/stories/menu_showcase.d.ts.map +1 -1
- package/dist/themes/theme.d.ts.map +1 -1
- package/dist/themes/theme.js +17 -22
- package/dist/themes/theme.js.map +1 -1
- package/dist/themes/themes/ergo/ergo_theme.css +1 -1
- package/dist/themes/themes/ergo/ergo_theme.d.ts.map +1 -1
- package/dist/themes/themes/ergo/ergo_theme.js +653 -431
- package/dist/themes/themes/ergo/ergo_theme.js.map +1 -1
- package/dist/themes/themes/ergo/parts/actions.css +1 -0
- package/dist/themes/themes/ergo/parts/base.css +1 -0
- package/dist/themes/themes/ergo/parts/form.css +1 -0
- package/dist/themes/themes/ergo/parts/inputs.css +1 -0
- package/dist/themes/themes/ergo/parts/navigation.css +1 -0
- package/dist/themes/themes/windows_98/windows_98.css +1 -1
- package/dist/themes/themes/windows_98/windows_98_theme.js +32 -43
- package/dist/themes/themes/windows_98/windows_98_theme.js.map +1 -1
- package/dist/utils/decorators/clone_with_decorator.d.ts +21 -0
- package/dist/utils/decorators/clone_with_decorator.d.ts.map +1 -0
- package/dist/utils/decorators/clone_with_decorator.js +16 -0
- package/dist/utils/decorators/clone_with_decorator.js.map +1 -0
- package/dist/utils/decorators/draggable/context.d.ts.map +1 -0
- package/dist/utils/decorators/draggable/context.js.map +1 -0
- package/dist/utils/{dnd/handle.d.ts → decorators/draggable/drag_handle.d.ts} +1 -1
- package/dist/utils/decorators/draggable/drag_handle.d.ts.map +1 -0
- package/dist/utils/{dnd/handle.js → decorators/draggable/drag_handle.js} +2 -2
- package/dist/utils/decorators/draggable/drag_handle.js.map +1 -0
- package/dist/utils/decorators/draggable/draggable.d.ts.map +1 -0
- package/dist/utils/{dnd → decorators}/draggable/draggable.js +3 -3
- package/dist/utils/decorators/draggable/draggable.js.map +1 -0
- package/dist/utils/decorators/draggable/index.d.ts +11 -0
- package/dist/utils/decorators/draggable/index.d.ts.map +1 -0
- package/dist/utils/decorators/draggable/index.js +14 -0
- package/dist/utils/decorators/draggable/index.js.map +1 -0
- package/dist/utils/{dnd → decorators/draggable}/types.d.ts +1 -1
- package/dist/utils/decorators/draggable/types.d.ts.map +1 -0
- package/dist/utils/{dnd/hooks → decorators/draggable}/use_drag_container.d.ts +2 -2
- package/dist/utils/decorators/draggable/use_drag_container.d.ts.map +1 -0
- package/dist/utils/decorators/draggable/use_drag_container.js.map +1 -0
- package/dist/utils/decorators/draggable/use_draggable.d.ts.map +1 -0
- package/dist/utils/decorators/draggable/use_draggable.js.map +1 -0
- package/dist/utils/decorators/index.d.ts +3 -0
- package/dist/utils/decorators/index.d.ts.map +1 -0
- package/dist/utils/decorators/index.js +27 -0
- package/dist/utils/decorators/index.js.map +1 -0
- package/dist/utils/decorators/resizable/context.d.ts +4 -0
- package/dist/utils/decorators/resizable/context.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/context.js +10 -0
- package/dist/utils/decorators/resizable/context.js.map +1 -0
- package/dist/utils/decorators/resizable/handle_config.d.ts +32 -0
- package/dist/utils/decorators/resizable/handle_config.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/handle_config.js +62 -0
- package/dist/utils/decorators/resizable/handle_config.js.map +1 -0
- package/dist/utils/decorators/resizable/index.d.ts +10 -0
- package/dist/utils/decorators/resizable/index.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/index.js +16 -0
- package/dist/utils/decorators/resizable/index.js.map +1 -0
- package/dist/utils/decorators/resizable/resizable.d.ts +11 -0
- package/dist/utils/decorators/resizable/resizable.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/resizable.js +52 -0
- package/dist/utils/decorators/resizable/resizable.js.map +1 -0
- package/dist/utils/decorators/resizable/resize_handle.d.ts +7 -0
- package/dist/utils/decorators/resizable/resize_handle.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/resize_handle.js +100 -0
- package/dist/utils/decorators/resizable/resize_handle.js.map +1 -0
- package/dist/utils/decorators/resizable/resize_strategy.d.ts +47 -0
- package/dist/utils/decorators/resizable/resize_strategy.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/resize_strategy.js +108 -0
- package/dist/utils/decorators/resizable/resize_strategy.js.map +1 -0
- package/dist/utils/decorators/resizable/types.d.ts +28 -0
- package/dist/utils/decorators/resizable/types.d.ts.map +1 -0
- package/dist/utils/decorators/resizable/types.js +2 -0
- package/dist/utils/decorators/resizable/types.js.map +1 -0
- package/dist/utils/hooks/labelled_by_context.d.ts +21 -0
- package/dist/utils/hooks/labelled_by_context.d.ts.map +1 -0
- package/dist/utils/hooks/labelled_by_context.js +12 -0
- package/dist/utils/hooks/labelled_by_context.js.map +1 -0
- package/dist/utils/index.d.ts +8 -7
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +45 -28
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/listeners/click_away_listener.d.ts.map +1 -0
- package/dist/utils/{click_away_listener.js → listeners/click_away_listener.js} +1 -1
- package/dist/utils/listeners/click_away_listener.js.map +1 -0
- package/dist/utils/listeners/focus_redirect.d.ts.map +1 -0
- package/dist/utils/listeners/focus_redirect.js.map +1 -0
- package/dist/utils/listeners/index.d.ts +4 -0
- package/dist/utils/listeners/index.d.ts.map +1 -0
- package/dist/utils/listeners/index.js +10 -0
- package/dist/utils/listeners/index.js.map +1 -0
- package/dist/utils/listeners/mouse_leave_region.d.ts.map +1 -0
- package/dist/utils/listeners/mouse_leave_region.js.map +1 -0
- package/dist/utils/listeners/scroll_away_listener.d.ts.map +1 -0
- package/dist/utils/{scroll_away_listener.js → listeners/scroll_away_listener.js} +1 -1
- package/dist/utils/listeners/scroll_away_listener.js.map +1 -0
- package/dist/utils/system/index.d.ts +2 -0
- package/dist/utils/system/index.d.ts.map +1 -0
- package/dist/utils/system/index.js +2 -0
- package/dist/utils/system/index.js.map +1 -0
- package/dist/utils/system/variations.d.ts.map +1 -0
- package/dist/utils/system/variations.js +2 -0
- package/dist/utils/system/variations.js.map +1 -0
- package/dist/utils/types/sides.d.ts +3 -0
- package/dist/utils/types/sides.d.ts.map +1 -0
- package/package.json +3 -9
- package/src/actions/button/__stories__/button_group.stories.tsx +23 -24
- package/src/actions/index.ts +0 -1
- package/src/form/field/field.stories.tsx +2 -2
- package/src/form/field/h_field/h_field.stories.tsx +1 -1
- package/src/form/field/v_field/v_field.stories.tsx +1 -1
- package/src/form/field_set/field_set.module.css +0 -14
- package/src/form/field_set/field_set.stories.tsx +101 -1
- package/src/form/field_set/field_set.tsx +43 -57
- package/src/form/field_set/legend.tsx +44 -0
- package/src/form/index.ts +6 -1
- package/src/inputs/date_picker/date_picker_header.tsx +7 -5
- package/src/inputs/date_picker/date_picker_year_selector.tsx +5 -5
- package/src/inputs/multiselect/multiselect_inline_values.tsx +4 -3
- package/src/inputs/multiselect/multiselect_values.module.css +1 -0
- package/src/inputs/multiselect/multiselect_values.tsx +4 -4
- package/src/layouts/__stories__/columns.stories.tsx +31 -0
- package/src/layouts/__stories__/composed.stories.tsx +77 -8
- package/src/layouts/__stories__/rows.stories.tsx +77 -0
- package/src/layouts/__stories__/utils.tsx +2 -84
- package/src/layouts/containers/columns/column.module.css +3 -2
- package/src/layouts/containers/columns/columns.tsx +29 -3
- package/src/layouts/containers/containers.module.css +27 -29
- package/src/layouts/containers/rail.tsx +9 -51
- package/src/layouts/containers/rows/index.ts +2 -0
- package/src/layouts/containers/rows/row.module.css +15 -0
- package/src/layouts/containers/rows/row.tsx +22 -0
- package/src/layouts/containers/rows/rows.tsx +42 -0
- package/src/layouts/containers/scaffold.tsx +9 -49
- package/src/layouts/index.ts +2 -0
- package/src/overlay/frame/frame.stories.tsx +2 -1
- package/src/overlay/frame/frame.tsx +68 -20
- package/src/overlay/popper/base/dismissal_decorator.tsx +3 -3
- package/src/overlay/slide/slide.stories.tsx +1 -1
- package/src/stacks/box/box.tsx +29 -4
- package/src/stacks/box/detect_resize_bounds.ts +5 -1
- package/src/stacks/box/end_resize_handle.tsx +1 -1
- package/src/stacks/box/resize_handlers.ts +1 -1
- package/src/stacks/box/start_resize_handle.tsx +1 -1
- package/src/stacks/box/types.ts +3 -2
- package/src/stacks/collapsible_box.stories.tsx +5 -5
- package/src/stacks/demo.stories.tsx +7 -7
- package/src/surfaces/card/card.module.css +5 -0
- package/src/surfaces/card/card.stories.tsx +66 -8
- package/src/surfaces/card/card.tsx +6 -2
- package/src/surfaces/page/page.stories.tsx +84 -4
- package/src/surfaces/panel/__stories__/panel.stories.tsx +84 -9
- package/src/surfaces/window/window.stories.tsx +1 -1
- package/src/test-setup.ts +11 -0
- package/src/themes/stories/button_showcase.tsx +3 -1
- package/src/themes/stories/controls_fieldset.tsx +3 -1
- package/src/themes/stories/menu_showcase.tsx +3 -1
- package/src/themes/theme.tsx +6 -16
- package/src/themes/themes/ergo/INTERACTIVE.md +89 -0
- package/src/themes/themes/ergo/ROADMAP.md +116 -0
- package/src/themes/themes/ergo/ergo_theme.css +219 -734
- package/src/themes/themes/ergo/ergo_theme.ts +15 -1
- package/src/themes/themes/ergo/parts/actions.css +287 -0
- package/src/themes/themes/ergo/parts/base.css +62 -0
- package/src/themes/themes/ergo/parts/form.css +23 -0
- package/src/themes/themes/ergo/parts/inputs.css +252 -0
- package/src/themes/themes/ergo/parts/navigation.css +104 -0
- package/src/themes/themes/windows_98/windows_98.css +32 -43
- package/src/tokens/chip/chip.stories.tsx +5 -5
- package/src/utils/decorators/DECORATOR_PATTERN.md +86 -0
- package/src/utils/decorators/clone_with_decorator.ts +47 -0
- package/src/utils/{dnd → decorators/draggable}/__stories__/draggable.stories.tsx +7 -7
- package/src/utils/{dnd → decorators/draggable}/__stories__/use_draggable.stories.tsx +2 -2
- package/src/utils/{dnd/handle.tsx → decorators/draggable/drag_handle.tsx} +1 -1
- package/src/utils/{dnd → decorators}/draggable/draggable.tsx +2 -2
- package/src/utils/decorators/draggable/index.ts +15 -0
- package/src/utils/{dnd → decorators/draggable}/types.ts +1 -1
- package/src/utils/{dnd/hooks → decorators/draggable}/use_drag_container.ts +2 -2
- package/src/utils/decorators/index.ts +2 -0
- package/src/utils/decorators/resizable/__stories__/resizable.stories.tsx +214 -0
- package/src/utils/decorators/resizable/__stories__/resizable_stories.module.css +47 -0
- package/src/utils/decorators/resizable/__tests__/handle_config.test.ts +191 -0
- package/src/utils/decorators/resizable/__tests__/resize_strategy.test.ts +163 -0
- package/src/utils/decorators/resizable/context.ts +9 -0
- package/src/utils/decorators/resizable/handle_config.ts +118 -0
- package/src/utils/decorators/resizable/index.ts +37 -0
- package/src/utils/decorators/resizable/resizable.module.css +5 -0
- package/src/utils/decorators/resizable/resizable.tsx +97 -0
- package/src/utils/decorators/resizable/resize_handle.module.css +106 -0
- package/src/utils/decorators/resizable/resize_handle.tsx +165 -0
- package/src/utils/decorators/resizable/resize_strategy.ts +190 -0
- package/src/utils/decorators/resizable/types.ts +58 -0
- package/src/utils/hooks/labelled_by_context.ts +27 -0
- package/src/utils/index.ts +9 -7
- package/src/utils/{click_away_listener.tsx → listeners/click_away_listener.tsx} +1 -1
- package/src/utils/listeners/index.ts +3 -0
- package/src/utils/{scroll_away_listener.tsx → listeners/scroll_away_listener.tsx} +1 -1
- package/src/utils/system/index.ts +1 -0
- package/src/utils/types/sides.ts +2 -0
- package/dist/actions/button/slim_button/slim_button.d.ts +0 -9
- package/dist/actions/button/slim_button/slim_button.d.ts.map +0 -1
- package/dist/actions/button/slim_button/slim_button.js +0 -18
- package/dist/actions/button/slim_button/slim_button.js.map +0 -1
- package/dist/containers.module-DlGySre0.js +0 -5
- package/dist/containers.module-DlGySre0.js.map +0 -1
- package/dist/draggable.module-BgelQsuJ.js +0 -5
- package/dist/draggable.module-BgelQsuJ.js.map +0 -1
- package/dist/frame.css +0 -1
- package/dist/left_resize_handle.css +0 -1
- package/dist/right_resize_handle.css +0 -1
- package/dist/slim_button.css +0 -1
- package/dist/stacks/box/left_resize_handle.d.ts +0 -4
- package/dist/stacks/box/left_resize_handle.d.ts.map +0 -1
- package/dist/stacks/box/left_resize_handle.js +0 -36
- package/dist/stacks/box/left_resize_handle.js.map +0 -1
- package/dist/stacks/box/right_resize_handle.d.ts +0 -4
- package/dist/stacks/box/right_resize_handle.d.ts.map +0 -1
- package/dist/stacks/box/right_resize_handle.js +0 -36
- package/dist/stacks/box/right_resize_handle.js.map +0 -1
- package/dist/utils/click_away_listener.d.ts.map +0 -1
- package/dist/utils/click_away_listener.js.map +0 -1
- package/dist/utils/dnd/context.d.ts.map +0 -1
- package/dist/utils/dnd/context.js.map +0 -1
- package/dist/utils/dnd/draggable/draggable.d.ts.map +0 -1
- package/dist/utils/dnd/draggable/draggable.js.map +0 -1
- package/dist/utils/dnd/handle.d.ts.map +0 -1
- package/dist/utils/dnd/handle.js.map +0 -1
- package/dist/utils/dnd/hooks/use_drag_container.d.ts.map +0 -1
- package/dist/utils/dnd/hooks/use_drag_container.js.map +0 -1
- package/dist/utils/dnd/hooks/use_draggable.d.ts.map +0 -1
- package/dist/utils/dnd/hooks/use_draggable.js.map +0 -1
- package/dist/utils/dnd/types.d.ts.map +0 -1
- package/dist/utils/focus_redirect.d.ts.map +0 -1
- package/dist/utils/focus_redirect.js.map +0 -1
- package/dist/utils/mouse_leave_region.d.ts.map +0 -1
- package/dist/utils/mouse_leave_region.js.map +0 -1
- package/dist/utils/scroll_away_listener.d.ts.map +0 -1
- package/dist/utils/scroll_away_listener.js.map +0 -1
- package/dist/utils/types/variations.d.ts.map +0 -1
- package/src/actions/button/__stories__/slim_button.stories.tsx +0 -274
- package/src/actions/button/slim_button/slim_button.module.css +0 -9
- package/src/actions/button/slim_button/slim_button.tsx +0 -26
- package/src/overlay/frame/frame.module.css +0 -5
- package/src/stacks/box/left_resize_handle.module.css +0 -12
- package/src/stacks/box/left_resize_handle.tsx +0 -39
- package/src/stacks/box/right_resize_handle.module.css +0 -12
- package/src/stacks/box/right_resize_handle.tsx +0 -38
- /package/dist/utils/{dnd → decorators/draggable}/context.d.ts +0 -0
- /package/dist/utils/{dnd → decorators/draggable}/context.js +0 -0
- /package/dist/utils/{dnd → decorators}/draggable/draggable.d.ts +0 -0
- /package/dist/utils/{dnd → decorators/draggable}/types.js +0 -0
- /package/dist/utils/{dnd → decorators/draggable}/types.js.map +0 -0
- /package/dist/utils/{dnd/hooks → decorators/draggable}/use_drag_container.js +0 -0
- /package/dist/utils/{dnd/hooks → decorators/draggable}/use_draggable.d.ts +0 -0
- /package/dist/utils/{dnd/hooks → decorators/draggable}/use_draggable.js +0 -0
- /package/dist/utils/{click_away_listener.d.ts → listeners/click_away_listener.d.ts} +0 -0
- /package/dist/utils/{focus_redirect.d.ts → listeners/focus_redirect.d.ts} +0 -0
- /package/dist/utils/{focus_redirect.js → listeners/focus_redirect.js} +0 -0
- /package/dist/utils/{mouse_leave_region.d.ts → listeners/mouse_leave_region.d.ts} +0 -0
- /package/dist/utils/{mouse_leave_region.js → listeners/mouse_leave_region.js} +0 -0
- /package/dist/utils/{scroll_away_listener.d.ts → listeners/scroll_away_listener.d.ts} +0 -0
- /package/dist/utils/{types → system}/variations.d.ts +0 -0
- /package/src/utils/{dnd → decorators/draggable}/__stories__/draggable_stories.module.css +0 -0
- /package/src/utils/{dnd → decorators/draggable}/context.ts +0 -0
- /package/src/utils/{dnd → decorators}/draggable/draggable.module.css +0 -0
- /package/src/utils/{dnd/hooks → decorators/draggable}/use_draggable.ts +0 -0
- /package/src/utils/{click_away_listener.stories.tsx → listeners/click_away_listener.stories.tsx} +0 -0
- /package/src/utils/{focus_redirect.tsx → listeners/focus_redirect.tsx} +0 -0
- /package/src/utils/{mouse_leave_region.tsx → listeners/mouse_leave_region.tsx} +0 -0
- /package/src/utils/{scroll_away_listener.stories.tsx → listeners/scroll_away_listener.stories.tsx} +0 -0
- /package/src/utils/{types → system}/variations.ts +0 -0
|
@@ -4,15 +4,19 @@ import { BasePopper as A } from "./base/base_popper.js";
|
|
|
4
4
|
import { Tethered as g } from "../tethered/tethered.js";
|
|
5
5
|
import { useContextTrigger as P } from "./hooks/use_context_trigger.js";
|
|
6
6
|
import { PopperDismissal as p } from "./base/dismissal_decorator.js";
|
|
7
|
-
import "../../utils/click_away_listener.js";
|
|
8
|
-
import "../../utils/focus_redirect.js";
|
|
9
|
-
import "../../utils/scroll_away_listener.js";
|
|
7
|
+
import "../../utils/listeners/click_away_listener.js";
|
|
8
|
+
import "../../utils/listeners/focus_redirect.js";
|
|
9
|
+
import "../../utils/listeners/scroll_away_listener.js";
|
|
10
10
|
import { useForkRef as L } from "../../utils/hooks/use_fork_ref.js";
|
|
11
11
|
import "../../utils/hooks/use_resize_observer.js";
|
|
12
|
-
import "../../utils/
|
|
12
|
+
import "../../utils/hooks/labelled_by_context.js";
|
|
13
|
+
import "../../utils/decorators/draggable/context.js";
|
|
13
14
|
import "clsx";
|
|
14
|
-
import "../../draggable.module-
|
|
15
|
-
|
|
15
|
+
import "../../draggable.module-DFYR5n3n.js";
|
|
16
|
+
import "../../utils/decorators/resizable/context.js";
|
|
17
|
+
import "../../resizable.module-ur5FBfxo.js";
|
|
18
|
+
import "../../utils/decorators/resizable/resize_handle.js";
|
|
19
|
+
const z = C(function({
|
|
16
20
|
anchorElement: o,
|
|
17
21
|
restoreFocus: i,
|
|
18
22
|
children: m,
|
|
@@ -21,21 +25,21 @@ const S = C(function({
|
|
|
21
25
|
dismissals: n = [p.CLICK_AWAY, p.SCROLL_AWAY],
|
|
22
26
|
...c
|
|
23
27
|
}, l) {
|
|
24
|
-
const { isOpen: R, close: u, rectangle:
|
|
28
|
+
const { isOpen: R, close: u, rectangle: r } = P(o), e = x(null), a = L(l, e), d = [e, o, ...s];
|
|
25
29
|
return /* @__PURE__ */ t(
|
|
26
30
|
A,
|
|
27
31
|
{
|
|
28
|
-
open: R &&
|
|
32
|
+
open: R && r != null,
|
|
29
33
|
onDismissal: u,
|
|
30
34
|
restoreFocus: i,
|
|
31
35
|
dismissals: n,
|
|
32
36
|
acceptedRefs: d,
|
|
33
37
|
isException: f,
|
|
34
|
-
children: /* @__PURE__ */ t(g, { ref: a, anchor:
|
|
38
|
+
children: /* @__PURE__ */ t(g, { ref: a, anchor: r, ...c, children: m })
|
|
35
39
|
}
|
|
36
40
|
);
|
|
37
41
|
});
|
|
38
42
|
export {
|
|
39
|
-
|
|
43
|
+
z as ContextPopper
|
|
40
44
|
};
|
|
41
45
|
//# sourceMappingURL=context_popper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context_popper.js","sources":["../../../src/overlay/popper/context_popper.tsx"],"sourcesContent":["import { forwardRef, useRef, type PropsWithChildren } from 'react';\nimport { BasePopper, type BasePopperProps } from './base/base_popper.js';\nimport { Tethered, type TetheredProps } from '../tethered/tethered.js';\nimport { useContextTrigger } from './hooks/use_context_trigger.js';\nimport { PopperDismissal } from './base/dismissal_decorator.js';\nimport { useForkRef } from '../../utils/index.js';\n\nexport type ContextPopperProps = Omit<BasePopperProps, 'open' | 'onDismissal'> &\n Omit<TetheredProps, 'anchor'> & {\n anchorElement: React.RefObject<HTMLElement>;\n };\n\nexport const ContextPopper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<ContextPopperProps>\n>(function ContextPopper(\n {\n anchorElement,\n restoreFocus,\n children,\n acceptedRefs = [],\n isException,\n dismissals = [PopperDismissal.CLICK_AWAY, PopperDismissal.SCROLL_AWAY],\n ...tetheredProps\n },\n ref\n) {\n const { isOpen, close, rectangle } = useContextTrigger(anchorElement);\n const popperRef = useRef<HTMLDivElement>(null);\n const mergedRef = useForkRef(ref, popperRef);\n const effectiveAcceptedRefs = [popperRef, anchorElement, ...acceptedRefs];\n\n return (\n <BasePopper\n open={isOpen && rectangle != null}\n onDismissal={close}\n restoreFocus={restoreFocus}\n dismissals={dismissals}\n acceptedRefs={effectiveAcceptedRefs}\n isException={isException}\n >\n <Tethered ref={mergedRef} anchor={rectangle} {...tetheredProps}>\n {children}\n </Tethered>\n </BasePopper>\n );\n});\n"],"names":["ContextPopper","forwardRef","anchorElement","restoreFocus","children","acceptedRefs","isException","dismissals","PopperDismissal","tetheredProps","ref","isOpen","close","rectangle","useContextTrigger","popperRef","useRef","mergedRef","useForkRef","effectiveAcceptedRefs","jsx","BasePopper","Tethered"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context_popper.js","sources":["../../../src/overlay/popper/context_popper.tsx"],"sourcesContent":["import { forwardRef, useRef, type PropsWithChildren } from 'react';\nimport { BasePopper, type BasePopperProps } from './base/base_popper.js';\nimport { Tethered, type TetheredProps } from '../tethered/tethered.js';\nimport { useContextTrigger } from './hooks/use_context_trigger.js';\nimport { PopperDismissal } from './base/dismissal_decorator.js';\nimport { useForkRef } from '../../utils/index.js';\n\nexport type ContextPopperProps = Omit<BasePopperProps, 'open' | 'onDismissal'> &\n Omit<TetheredProps, 'anchor'> & {\n anchorElement: React.RefObject<HTMLElement>;\n };\n\nexport const ContextPopper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<ContextPopperProps>\n>(function ContextPopper(\n {\n anchorElement,\n restoreFocus,\n children,\n acceptedRefs = [],\n isException,\n dismissals = [PopperDismissal.CLICK_AWAY, PopperDismissal.SCROLL_AWAY],\n ...tetheredProps\n },\n ref\n) {\n const { isOpen, close, rectangle } = useContextTrigger(anchorElement);\n const popperRef = useRef<HTMLDivElement>(null);\n const mergedRef = useForkRef(ref, popperRef);\n const effectiveAcceptedRefs = [popperRef, anchorElement, ...acceptedRefs];\n\n return (\n <BasePopper\n open={isOpen && rectangle != null}\n onDismissal={close}\n restoreFocus={restoreFocus}\n dismissals={dismissals}\n acceptedRefs={effectiveAcceptedRefs}\n isException={isException}\n >\n <Tethered ref={mergedRef} anchor={rectangle} {...tetheredProps}>\n {children}\n </Tethered>\n </BasePopper>\n );\n});\n"],"names":["ContextPopper","forwardRef","anchorElement","restoreFocus","children","acceptedRefs","isException","dismissals","PopperDismissal","tetheredProps","ref","isOpen","close","rectangle","useContextTrigger","popperRef","useRef","mergedRef","useForkRef","effectiveAcceptedRefs","jsx","BasePopper","Tethered"],"mappings":";;;;;;;;;;;;;;;;;;AAYO,MAAMA,IAAgBC,EAG3B,SACA;AAAA,EACE,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe,CAAA;AAAA,EACf,aAAAC;AAAA,EACA,YAAAC,IAAa,CAACC,EAAgB,YAAYA,EAAgB,WAAW;AAAA,EACrE,GAAGC;AACL,GACAC,GACA;AACA,QAAM,EAAE,QAAAC,GAAQ,OAAAC,GAAO,WAAAC,EAAA,IAAcC,EAAkBZ,CAAa,GAC9Da,IAAYC,EAAuB,IAAI,GACvCC,IAAYC,EAAWR,GAAKK,CAAS,GACrCI,IAAwB,CAACJ,GAAWb,GAAe,GAAGG,CAAY;AAExE,SACE,gBAAAe;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAMV,KAAUE,KAAa;AAAA,MAC7B,aAAaD;AAAA,MACb,cAAAT;AAAA,MACA,YAAAI;AAAA,MACA,cAAcY;AAAA,MACd,aAAAb;AAAA,MAEA,UAAA,gBAAAc,EAACE,KAAS,KAAKL,GAAW,QAAQJ,GAAY,GAAGJ,GAC9C,UAAAL,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -2,34 +2,38 @@ import { jsx as o } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef as P, useRef as a } from "react";
|
|
3
3
|
import { BasePopper as x } from "./base/base_popper.js";
|
|
4
4
|
import { ElementTethered as E } from "../tethered/element_tethered.js";
|
|
5
|
-
import "../../utils/click_away_listener.js";
|
|
6
|
-
import "../../utils/focus_redirect.js";
|
|
7
|
-
import "../../utils/scroll_away_listener.js";
|
|
5
|
+
import "../../utils/listeners/click_away_listener.js";
|
|
6
|
+
import "../../utils/listeners/focus_redirect.js";
|
|
7
|
+
import "../../utils/listeners/scroll_away_listener.js";
|
|
8
8
|
import { useForkRef as g } from "../../utils/hooks/use_fork_ref.js";
|
|
9
9
|
import "../../utils/hooks/use_resize_observer.js";
|
|
10
|
-
import "../../utils/
|
|
10
|
+
import "../../utils/hooks/labelled_by_context.js";
|
|
11
|
+
import "../../utils/decorators/draggable/context.js";
|
|
11
12
|
import "clsx";
|
|
12
|
-
import "../../draggable.module-
|
|
13
|
-
|
|
13
|
+
import "../../draggable.module-DFYR5n3n.js";
|
|
14
|
+
import "../../utils/decorators/resizable/context.js";
|
|
15
|
+
import "../../resizable.module-ur5FBfxo.js";
|
|
16
|
+
import "../../utils/decorators/resizable/resize_handle.js";
|
|
17
|
+
const I = P(function({
|
|
14
18
|
restoreFocus: t,
|
|
15
19
|
open: p,
|
|
16
20
|
onDismissal: m,
|
|
17
|
-
isException:
|
|
18
|
-
acceptedRefs:
|
|
21
|
+
isException: i,
|
|
22
|
+
acceptedRefs: f = [],
|
|
19
23
|
veil: c,
|
|
20
24
|
dismissals: n,
|
|
21
25
|
children: s,
|
|
22
26
|
anchorElement: e,
|
|
23
27
|
...R
|
|
24
28
|
}, d) {
|
|
25
|
-
const r = a(null), l = g(d, r), u = [r, e, ...
|
|
29
|
+
const r = a(null), l = g(d, r), u = [r, e, ...f];
|
|
26
30
|
return /* @__PURE__ */ o(
|
|
27
31
|
x,
|
|
28
32
|
{
|
|
29
33
|
restoreFocus: t,
|
|
30
34
|
open: p,
|
|
31
35
|
onDismissal: m,
|
|
32
|
-
isException:
|
|
36
|
+
isException: i,
|
|
33
37
|
dismissals: n,
|
|
34
38
|
acceptedRefs: u,
|
|
35
39
|
veil: c,
|
|
@@ -46,6 +50,6 @@ const C = P(function({
|
|
|
46
50
|
);
|
|
47
51
|
});
|
|
48
52
|
export {
|
|
49
|
-
|
|
53
|
+
I as ElementPopper
|
|
50
54
|
};
|
|
51
55
|
//# sourceMappingURL=element_popper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element_popper.js","sources":["../../../src/overlay/popper/element_popper.tsx"],"sourcesContent":["import { forwardRef, useRef, type PropsWithChildren } from 'react';\nimport { BasePopper, type BasePopperProps } from './base/base_popper.js';\nimport {\n ElementTethered,\n type ElementTetheredProps,\n} from '../tethered/element_tethered.js';\nimport { useForkRef } from '../../utils/index.js';\n\nexport type ElementPopperProps = BasePopperProps & ElementTetheredProps;\n\nexport const ElementPopper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<ElementPopperProps>\n>(function ElementPopper(\n {\n restoreFocus,\n open,\n onDismissal,\n isException,\n acceptedRefs = [],\n veil,\n dismissals,\n children,\n anchorElement,\n ...elementTetheredProps\n },\n ref\n) {\n const popperRef = useRef<HTMLDivElement>(null);\n const mergedRef = useForkRef(ref, popperRef);\n const effectiveAcceptedRefs = [popperRef, anchorElement, ...acceptedRefs];\n\n return (\n <BasePopper\n restoreFocus={restoreFocus}\n open={open}\n onDismissal={onDismissal}\n isException={isException}\n dismissals={dismissals}\n acceptedRefs={effectiveAcceptedRefs}\n veil={veil}\n >\n <ElementTethered\n ref={mergedRef}\n anchorElement={anchorElement}\n {...elementTetheredProps}\n >\n {children}\n </ElementTethered>\n </BasePopper>\n );\n});\n"],"names":["ElementPopper","forwardRef","restoreFocus","open","onDismissal","isException","acceptedRefs","veil","dismissals","children","anchorElement","elementTetheredProps","ref","popperRef","useRef","mergedRef","useForkRef","effectiveAcceptedRefs","jsx","BasePopper","ElementTethered"],"mappings":"
|
|
1
|
+
{"version":3,"file":"element_popper.js","sources":["../../../src/overlay/popper/element_popper.tsx"],"sourcesContent":["import { forwardRef, useRef, type PropsWithChildren } from 'react';\nimport { BasePopper, type BasePopperProps } from './base/base_popper.js';\nimport {\n ElementTethered,\n type ElementTetheredProps,\n} from '../tethered/element_tethered.js';\nimport { useForkRef } from '../../utils/index.js';\n\nexport type ElementPopperProps = BasePopperProps & ElementTetheredProps;\n\nexport const ElementPopper = forwardRef<\n HTMLDivElement,\n PropsWithChildren<ElementPopperProps>\n>(function ElementPopper(\n {\n restoreFocus,\n open,\n onDismissal,\n isException,\n acceptedRefs = [],\n veil,\n dismissals,\n children,\n anchorElement,\n ...elementTetheredProps\n },\n ref\n) {\n const popperRef = useRef<HTMLDivElement>(null);\n const mergedRef = useForkRef(ref, popperRef);\n const effectiveAcceptedRefs = [popperRef, anchorElement, ...acceptedRefs];\n\n return (\n <BasePopper\n restoreFocus={restoreFocus}\n open={open}\n onDismissal={onDismissal}\n isException={isException}\n dismissals={dismissals}\n acceptedRefs={effectiveAcceptedRefs}\n veil={veil}\n >\n <ElementTethered\n ref={mergedRef}\n anchorElement={anchorElement}\n {...elementTetheredProps}\n >\n {children}\n </ElementTethered>\n </BasePopper>\n );\n});\n"],"names":["ElementPopper","forwardRef","restoreFocus","open","onDismissal","isException","acceptedRefs","veil","dismissals","children","anchorElement","elementTetheredProps","ref","popperRef","useRef","mergedRef","useForkRef","effectiveAcceptedRefs","jsx","BasePopper","ElementTethered"],"mappings":";;;;;;;;;;;;;;;;AAUO,MAAMA,IAAgBC,EAG3B,SACA;AAAA,EACE,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC,IAAe,CAAA;AAAA,EACf,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAYC,EAAuB,IAAI,GACvCC,IAAYC,EAAWJ,GAAKC,CAAS,GACrCI,IAAwB,CAACJ,GAAWH,GAAe,GAAGJ,CAAY;AAExE,SACE,gBAAAY;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAAjB;AAAA,MACA,MAAAC;AAAA,MACA,aAAAC;AAAA,MACA,aAAAC;AAAA,MACA,YAAAG;AAAA,MACA,cAAcS;AAAA,MACd,MAAAV;AAAA,MAEA,UAAA,gBAAAW;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,KAAKL;AAAA,UACL,eAAAL;AAAA,UACC,GAAGC;AAAA,UAEH,UAAAF;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,CAAC;"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { jsx as f, jsxs as G } from "react/jsx-runtime";
|
|
2
|
-
import { ClickAwayListener as I } from "../../../utils/click_away_listener.js";
|
|
3
|
-
import "../../../utils/focus_redirect.js";
|
|
4
|
-
import { ScrollAwayListener as J } from "../../../utils/scroll_away_listener.js";
|
|
2
|
+
import { ClickAwayListener as I } from "../../../utils/listeners/click_away_listener.js";
|
|
3
|
+
import "../../../utils/listeners/focus_redirect.js";
|
|
4
|
+
import { ScrollAwayListener as J } from "../../../utils/listeners/scroll_away_listener.js";
|
|
5
5
|
import { useRef as d, useState as K, useLayoutEffect as h } from "react";
|
|
6
6
|
import "../../../utils/hooks/use_resize_observer.js";
|
|
7
|
-
import "../../../utils/
|
|
7
|
+
import "../../../utils/hooks/labelled_by_context.js";
|
|
8
|
+
import "../../../utils/decorators/draggable/context.js";
|
|
8
9
|
import M from "clsx";
|
|
9
|
-
import "../../../draggable.module-
|
|
10
|
+
import "../../../draggable.module-DFYR5n3n.js";
|
|
11
|
+
import "../../../utils/decorators/resizable/context.js";
|
|
12
|
+
import "../../../resizable.module-ur5FBfxo.js";
|
|
13
|
+
import "../../../utils/decorators/resizable/resize_handle.js";
|
|
10
14
|
import { Portal as Q } from "../../portal/portal.js";
|
|
11
15
|
import '../../../popper.css';const U = "_popover_fcfb66a", V = "_popover-veil_c56df66", _ = { popover: U, "popover-veil": V };
|
|
12
|
-
function
|
|
16
|
+
function ft({
|
|
13
17
|
anchorElement: r,
|
|
14
18
|
verticalAnchor: j = "bottom",
|
|
15
19
|
verticalOrigin: E = "top",
|
|
16
20
|
verticalOffset: g = 0,
|
|
17
21
|
horizontalAnchor: a = "start",
|
|
18
|
-
horizontalOrigin:
|
|
22
|
+
horizontalOrigin: m = "start",
|
|
19
23
|
horizontalOffset: s = 0,
|
|
20
24
|
restoreFocus: y = !1,
|
|
21
25
|
veil: b = !1,
|
|
@@ -28,50 +32,50 @@ function se({
|
|
|
28
32
|
isClickAwayException: W,
|
|
29
33
|
isScrollAwayException: $
|
|
30
34
|
}) {
|
|
31
|
-
const x = d(r), [p, q] = K({ top: 0, left: 0 }), C = d(null),
|
|
35
|
+
const x = d(r), [p, q] = K({ top: 0, left: 0 }), C = d(null), u = d(null), T = c && r != null, D = H ?? [], F = !N, S = d(null);
|
|
32
36
|
function A() {
|
|
33
37
|
k && k();
|
|
34
38
|
}
|
|
35
|
-
const
|
|
36
|
-
if (!r || !
|
|
37
|
-
const
|
|
38
|
-
let
|
|
39
|
+
const w = () => {
|
|
40
|
+
if (!r || !u.current) return;
|
|
41
|
+
const t = r.getBoundingClientRect(), o = u.current.getBoundingClientRect(), L = window.innerWidth, P = window.innerHeight, v = getComputedStyle(r).direction === "rtl";
|
|
42
|
+
let e = t.top, i = t.left;
|
|
39
43
|
switch (j) {
|
|
40
44
|
case "top":
|
|
41
|
-
|
|
45
|
+
e += g;
|
|
42
46
|
break;
|
|
43
47
|
case "center":
|
|
44
|
-
|
|
48
|
+
e += t.height / 2;
|
|
45
49
|
break;
|
|
46
50
|
case "bottom":
|
|
47
|
-
|
|
51
|
+
e += t.height - g;
|
|
48
52
|
break;
|
|
49
53
|
}
|
|
50
54
|
switch (E) {
|
|
51
55
|
case "top":
|
|
52
56
|
break;
|
|
53
57
|
case "center":
|
|
54
|
-
|
|
58
|
+
e -= o.height / 2;
|
|
55
59
|
break;
|
|
56
60
|
case "bottom":
|
|
57
|
-
|
|
61
|
+
e -= o.height;
|
|
58
62
|
break;
|
|
59
63
|
}
|
|
60
|
-
a === "start" ? i += v ?
|
|
61
|
-
let n =
|
|
62
|
-
v && (
|
|
64
|
+
a === "start" ? i += v ? t.width + s : s : a === "center" ? i += t.width / 2 : a === "end" && (i += v ? -s : t.width + s);
|
|
65
|
+
let n = m;
|
|
66
|
+
v && (m === "start" ? n = "end" : m === "end" && (n = "start")), n === "start" || (n === "center" ? i -= o.width / 2 : n === "end" && (i -= o.width)), i + o.width > L && (i = L - o.width), i < 0 && (i = 0), e + o.height > P && (e = P - o.height), e < 0 && (e = 0), (e !== p.top || i !== p.left) && q({ top: e, left: i });
|
|
63
67
|
};
|
|
64
|
-
if (h(() => (window.addEventListener("resize",
|
|
65
|
-
window.removeEventListener("resize",
|
|
68
|
+
if (h(() => (window.addEventListener("resize", w), () => {
|
|
69
|
+
window.removeEventListener("resize", w);
|
|
66
70
|
})), h(() => {
|
|
67
|
-
|
|
71
|
+
w();
|
|
68
72
|
}, [c, r]), h(() => {
|
|
69
73
|
if (c)
|
|
70
74
|
C.current = window.document.activeElement;
|
|
71
75
|
else {
|
|
72
|
-
const
|
|
76
|
+
const t = C.current;
|
|
73
77
|
requestAnimationFrame(() => {
|
|
74
|
-
y &&
|
|
78
|
+
y && t?.focus();
|
|
75
79
|
});
|
|
76
80
|
}
|
|
77
81
|
}, [c, y]), !T)
|
|
@@ -80,7 +84,7 @@ function se({
|
|
|
80
84
|
let l = /* @__PURE__ */ f(J, { onScrollAway: A, isException: $, children: /* @__PURE__ */ f(
|
|
81
85
|
"div",
|
|
82
86
|
{
|
|
83
|
-
ref:
|
|
87
|
+
ref: u,
|
|
84
88
|
className: M(_.popover, "tcn-popper"),
|
|
85
89
|
style: {
|
|
86
90
|
top: `${p.top}px`,
|
|
@@ -102,7 +106,7 @@ function se({
|
|
|
102
106
|
"div",
|
|
103
107
|
{
|
|
104
108
|
ref: S,
|
|
105
|
-
onClick: (
|
|
109
|
+
onClick: (t) => S.current === t.target && R && R(t),
|
|
106
110
|
className: _["popover-veil"],
|
|
107
111
|
children: l
|
|
108
112
|
}
|
|
@@ -111,6 +115,6 @@ function se({
|
|
|
111
115
|
] });
|
|
112
116
|
}
|
|
113
117
|
export {
|
|
114
|
-
|
|
118
|
+
ft as Popper
|
|
115
119
|
};
|
|
116
120
|
//# sourceMappingURL=popper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popper.js","sources":["../../../../src/overlay/popper/legacy/popper.tsx"],"sourcesContent":["import { ClickAwayListener, ScrollAwayListener } from '../../../utils/index.js';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { Portal } from '../../portal/portal.js';\nimport styles from './popper.module.css';\nimport clsx from 'clsx';\n\nexport interface PopperProps {\n anchorElement: HTMLElement | null;\n verticalAnchor?: 'top' | 'center' | 'bottom';\n verticalOrigin?: 'top' | 'center' | 'bottom';\n verticalOffset?: number;\n horizontalAnchor?: 'start' | 'center' | 'end';\n horizontalOrigin?: 'start' | 'center' | 'end';\n horizontalOffset?: number;\n open: boolean;\n onClose: () => void;\n restoreFocus?: boolean;\n children: React.ReactNode;\n veil?: boolean;\n onVeilClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n clickAwayRefs?: React.RefObject<HTMLElement>[];\n isClickAwayException?: (target: HTMLElement) => boolean;\n isScrollAwayException?: (target: HTMLElement) => boolean;\n disableClickAway?: boolean;\n}\n\n// This component is being phased out in favor of ElementPopper - need to ensure parity beforehand.\nexport function Popper({\n anchorElement,\n verticalAnchor = 'bottom',\n verticalOrigin = 'top',\n verticalOffset = 0,\n horizontalAnchor = 'start',\n horizontalOrigin = 'start',\n horizontalOffset = 0,\n restoreFocus = false,\n veil = false,\n onVeilClick,\n clickAwayRefs = [],\n open,\n onClose,\n children,\n disableClickAway = false,\n isClickAwayException,\n isScrollAwayException,\n}: PopperProps) {\n const anchorElementRef = useRef(anchorElement);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const activeElementRef = useRef<HTMLElement | null>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const canOpen = open && anchorElement != null;\n const finalClickAwayRefs: React.RefObject<HTMLElement>[] = clickAwayRefs ?? [];\n const enableClickAway = !disableClickAway;\n const veilRef = useRef<HTMLDivElement>(null);\n function close() {\n onClose && onClose();\n }\n\n // eslint-disable-next-line complexity\n const updatePosition = () => {\n if (!anchorElement || !popoverRef.current) return;\n\n const anchorRect = anchorElement.getBoundingClientRect();\n const popoverRect = popoverRef.current.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Determine the text direction (ltr or rtl)\n const computedStyle = getComputedStyle(anchorElement);\n const isRtl = computedStyle.direction === 'rtl';\n\n let top = anchorRect.top;\n let left = anchorRect.left;\n\n // Calculate vertical position\n switch (verticalAnchor) {\n case 'top':\n top += verticalOffset;\n break;\n case 'center':\n top += anchorRect.height / 2;\n break;\n case 'bottom':\n top += anchorRect.height - verticalOffset;\n break;\n }\n\n switch (verticalOrigin) {\n case 'top':\n break;\n case 'center':\n top -= popoverRect.height / 2;\n break;\n case 'bottom':\n top -= popoverRect.height;\n break;\n }\n\n // Calculate horizontal position with direction sensitivity\n if (horizontalAnchor === 'start') {\n left += isRtl ? anchorRect.width + horizontalOffset : horizontalOffset;\n } else if (horizontalAnchor === 'center') {\n left += anchorRect.width / 2;\n } else if (horizontalAnchor === 'end') {\n left += isRtl ? -horizontalOffset : anchorRect.width + horizontalOffset;\n }\n\n // Adjust the origin based on RTL direction\n let adjustedHorizontalOrigin = horizontalOrigin;\n if (isRtl) {\n if (horizontalOrigin === 'start') {\n adjustedHorizontalOrigin = 'end';\n } else if (horizontalOrigin === 'end') {\n adjustedHorizontalOrigin = 'start';\n }\n }\n\n // Apply adjusted origin to the position calculation\n if (adjustedHorizontalOrigin === 'start') {\n // No adjustment needed\n } else if (adjustedHorizontalOrigin === 'center') {\n left -= popoverRect.width / 2;\n } else if (adjustedHorizontalOrigin === 'end') {\n left -= popoverRect.width;\n }\n\n // Ensure the popover stays within the viewport\n // Prevent overflow to the right\n if (left + popoverRect.width > viewportWidth) {\n left = viewportWidth - popoverRect.width;\n }\n\n // Prevent overflow to the left\n if (left < 0) {\n left = 0;\n }\n\n // Prevent overflow to the bottom\n if (top + popoverRect.height > viewportHeight) {\n top = viewportHeight - popoverRect.height;\n }\n\n // Prevent overflow to the top\n if (top < 0) {\n top = 0;\n }\n\n // Only update if position has changed to avoid unnecessary re-renders\n if (top !== position.top || left !== position.left) {\n setPosition({ top, left });\n }\n };\n\n useLayoutEffect(() => {\n window.addEventListener('resize', updatePosition);\n return () => {\n window.removeEventListener('resize', updatePosition);\n };\n });\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: updatePosition depends on open and anchorElement\n useLayoutEffect(() => {\n updatePosition();\n }, [open, anchorElement]);\n\n useLayoutEffect(() => {\n if (open) {\n activeElementRef.current = window.document.activeElement as HTMLElement;\n } else {\n const restoreToElement = activeElementRef.current;\n requestAnimationFrame(() => {\n restoreFocus && restoreToElement?.focus();\n });\n }\n }, [open, restoreFocus]);\n\n if (!canOpen) {\n return null;\n }\n\n anchorElementRef.current = anchorElement;\n\n let content = (\n <ScrollAwayListener onScrollAway={close} isException={isScrollAwayException}>\n <div\n ref={popoverRef}\n className={clsx(styles.popover, 'tcn-popper')}\n style={{\n top: `${position.top}px`,\n left: `${position.left}px`,\n }}\n >\n {children}\n </div>\n </ScrollAwayListener>\n );\n\n if (enableClickAway) {\n content = (\n <ClickAwayListener\n onClickAway={close}\n refs={[anchorElementRef, ...finalClickAwayRefs]}\n isException={isClickAwayException}\n >\n {content}\n </ClickAwayListener>\n );\n }\n\n return (\n <Portal>\n {veil && (\n <div\n ref={veilRef}\n onClick={e => veilRef.current === e.target && onVeilClick && onVeilClick(e)}\n className={styles['popover-veil']}\n >\n {content}\n </div>\n )}\n {!veil && content}\n </Portal>\n );\n}\n"],"names":["Popper","anchorElement","verticalAnchor","verticalOrigin","verticalOffset","horizontalAnchor","horizontalOrigin","horizontalOffset","restoreFocus","veil","onVeilClick","clickAwayRefs","open","onClose","children","disableClickAway","isClickAwayException","isScrollAwayException","anchorElementRef","useRef","position","setPosition","useState","activeElementRef","popoverRef","canOpen","finalClickAwayRefs","enableClickAway","veilRef","close","updatePosition","anchorRect","popoverRect","viewportWidth","viewportHeight","isRtl","top","left","adjustedHorizontalOrigin","useLayoutEffect","restoreToElement","content","jsx","ScrollAwayListener","clsx","styles","ClickAwayListener","Portal"],"mappings":";;;;;;;;;;;AA2BO,SAASA,GAAO;AAAA,EACrB,eAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,gBAAAC,IAAiB;AAAA,EACjB,gBAAAC,IAAiB;AAAA,EACjB,kBAAAC,IAAmB;AAAA,EACnB,kBAAAC,IAAmB;AAAA,EACnB,kBAAAC,IAAmB;AAAA,EACnB,cAAAC,IAAe;AAAA,EACf,MAAAC,IAAO;AAAA,EACP,aAAAC;AAAA,EACA,eAAAC,IAAgB,CAAA;AAAA,EAChB,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,sBAAAC;AAAA,EACA,uBAAAC;AACF,GAAgB;AACd,QAAMC,IAAmBC,EAAOlB,CAAa,GACvC,CAACmB,GAAUC,CAAW,IAAIC,EAAS,EAAE,KAAK,GAAG,MAAM,GAAG,GACtDC,IAAmBJ,EAA2B,IAAI,GAClDK,IAAaL,EAAuB,IAAI,GACxCM,IAAUb,KAAQX,KAAiB,MACnCyB,IAAqDf,KAAiB,CAAA,GACtEgB,IAAkB,CAACZ,GACnBa,IAAUT,EAAuB,IAAI;AAC3C,WAASU,IAAQ;AACf,IAAAhB,KAAWA,EAAA;AAAA,EACb;AAGA,QAAMiB,IAAiB,MAAM;AAC3B,QAAI,CAAC7B,KAAiB,CAACuB,EAAW,QAAS;AAE3C,UAAMO,IAAa9B,EAAc,sBAAA,GAC3B+B,IAAcR,EAAW,QAAQ,sBAAA,GACjCS,IAAgB,OAAO,YACvBC,IAAiB,OAAO,aAIxBC,IADgB,iBAAiBlC,CAAa,EACxB,cAAc;AAE1C,QAAImC,IAAML,EAAW,KACjBM,IAAON,EAAW;AAGtB,YAAQ7B,GAAA;AAAA,MACN,KAAK;AACH,QAAAkC,KAAOhC;AACP;AAAA,MACF,KAAK;AACH,QAAAgC,KAAOL,EAAW,SAAS;AAC3B;AAAA,MACF,KAAK;AACH,QAAAK,KAAOL,EAAW,SAAS3B;AAC3B;AAAA,IAAA;AAGJ,YAAQD,GAAA;AAAA,MACN,KAAK;AACH;AAAA,MACF,KAAK;AACH,QAAAiC,KAAOJ,EAAY,SAAS;AAC5B;AAAA,MACF,KAAK;AACH,QAAAI,KAAOJ,EAAY;AACnB;AAAA,IAAA;AAIJ,IAAI3B,MAAqB,UACvBgC,KAAQF,IAAQJ,EAAW,QAAQxB,IAAmBA,IAC7CF,MAAqB,WAC9BgC,KAAQN,EAAW,QAAQ,IAClB1B,MAAqB,UAC9BgC,KAAQF,IAAQ,CAAC5B,IAAmBwB,EAAW,QAAQxB;AAIzD,QAAI+B,IAA2BhC;AAC/B,IAAI6B,MACE7B,MAAqB,UACvBgC,IAA2B,QAClBhC,MAAqB,UAC9BgC,IAA2B,WAK3BA,MAA6B,YAEtBA,MAA6B,WACtCD,KAAQL,EAAY,QAAQ,IACnBM,MAA6B,UACtCD,KAAQL,EAAY,SAKlBK,IAAOL,EAAY,QAAQC,MAC7BI,IAAOJ,IAAgBD,EAAY,QAIjCK,IAAO,MACTA,IAAO,IAILD,IAAMJ,EAAY,SAASE,MAC7BE,IAAMF,IAAiBF,EAAY,SAIjCI,IAAM,MACRA,IAAM,KAIJA,MAAQhB,EAAS,OAAOiB,MAASjB,EAAS,SAC5CC,EAAY,EAAE,KAAAe,GAAK,MAAAC,GAAM;AAAA,EAE7B;AAyBA,MAvBAE,EAAgB,OACd,OAAO,iBAAiB,UAAUT,CAAc,GACzC,MAAM;AACX,WAAO,oBAAoB,UAAUA,CAAc;AAAA,EACrD,EACD,GAGDS,EAAgB,MAAM;AACpB,IAAAT,EAAA;AAAA,EACF,GAAG,CAAClB,GAAMX,CAAa,CAAC,GAExBsC,EAAgB,MAAM;AACpB,QAAI3B;AACF,MAAAW,EAAiB,UAAU,OAAO,SAAS;AAAA,SACtC;AACL,YAAMiB,IAAmBjB,EAAiB;AAC1C,4BAAsB,MAAM;AAC1B,QAAAf,KAAgBgC,GAAkB,MAAA;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC5B,GAAMJ,CAAY,CAAC,GAEnB,CAACiB;AACH,WAAO;AAGT,EAAAP,EAAiB,UAAUjB;AAE3B,MAAIwC,IACF,gBAAAC,EAACC,GAAA,EAAmB,cAAcd,GAAO,aAAaZ,GACpD,UAAA,gBAAAyB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKlB;AAAA,MACL,WAAWoB,EAAKC,EAAO,SAAS,YAAY;AAAA,MAC5C,OAAO;AAAA,QACL,KAAK,GAAGzB,EAAS,GAAG;AAAA,QACpB,MAAM,GAAGA,EAAS,IAAI;AAAA,MAAA;AAAA,MAGvB,UAAAN;AAAA,IAAA;AAAA,EAAA,GAEL;AAGF,SAAIa,MACFc,IACE,gBAAAC;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,aAAajB;AAAA,MACb,MAAM,CAACX,GAAkB,GAAGQ,CAAkB;AAAA,MAC9C,aAAaV;AAAA,MAEZ,UAAAyB;AAAA,IAAA;AAAA,EAAA,sBAMJM,GAAA,EACE,UAAA;AAAA,IAAAtC,KACC,gBAAAiC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAKd;AAAA,QACL,SAAS,OAAKA,EAAQ,YAAY,EAAE,UAAUlB,KAAeA,EAAY,CAAC;AAAA,QAC1E,WAAWmC,EAAO,cAAc;AAAA,QAE/B,UAAAJ;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJ,CAAChC,KAAQgC;AAAA,EAAA,GACZ;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"popper.js","sources":["../../../../src/overlay/popper/legacy/popper.tsx"],"sourcesContent":["import { ClickAwayListener, ScrollAwayListener } from '../../../utils/index.js';\nimport React, { useLayoutEffect, useRef, useState } from 'react';\nimport { Portal } from '../../portal/portal.js';\nimport styles from './popper.module.css';\nimport clsx from 'clsx';\n\nexport interface PopperProps {\n anchorElement: HTMLElement | null;\n verticalAnchor?: 'top' | 'center' | 'bottom';\n verticalOrigin?: 'top' | 'center' | 'bottom';\n verticalOffset?: number;\n horizontalAnchor?: 'start' | 'center' | 'end';\n horizontalOrigin?: 'start' | 'center' | 'end';\n horizontalOffset?: number;\n open: boolean;\n onClose: () => void;\n restoreFocus?: boolean;\n children: React.ReactNode;\n veil?: boolean;\n onVeilClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n clickAwayRefs?: React.RefObject<HTMLElement>[];\n isClickAwayException?: (target: HTMLElement) => boolean;\n isScrollAwayException?: (target: HTMLElement) => boolean;\n disableClickAway?: boolean;\n}\n\n// This component is being phased out in favor of ElementPopper - need to ensure parity beforehand.\nexport function Popper({\n anchorElement,\n verticalAnchor = 'bottom',\n verticalOrigin = 'top',\n verticalOffset = 0,\n horizontalAnchor = 'start',\n horizontalOrigin = 'start',\n horizontalOffset = 0,\n restoreFocus = false,\n veil = false,\n onVeilClick,\n clickAwayRefs = [],\n open,\n onClose,\n children,\n disableClickAway = false,\n isClickAwayException,\n isScrollAwayException,\n}: PopperProps) {\n const anchorElementRef = useRef(anchorElement);\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const activeElementRef = useRef<HTMLElement | null>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const canOpen = open && anchorElement != null;\n const finalClickAwayRefs: React.RefObject<HTMLElement>[] = clickAwayRefs ?? [];\n const enableClickAway = !disableClickAway;\n const veilRef = useRef<HTMLDivElement>(null);\n function close() {\n onClose && onClose();\n }\n\n // eslint-disable-next-line complexity\n const updatePosition = () => {\n if (!anchorElement || !popoverRef.current) return;\n\n const anchorRect = anchorElement.getBoundingClientRect();\n const popoverRect = popoverRef.current.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Determine the text direction (ltr or rtl)\n const computedStyle = getComputedStyle(anchorElement);\n const isRtl = computedStyle.direction === 'rtl';\n\n let top = anchorRect.top;\n let left = anchorRect.left;\n\n // Calculate vertical position\n switch (verticalAnchor) {\n case 'top':\n top += verticalOffset;\n break;\n case 'center':\n top += anchorRect.height / 2;\n break;\n case 'bottom':\n top += anchorRect.height - verticalOffset;\n break;\n }\n\n switch (verticalOrigin) {\n case 'top':\n break;\n case 'center':\n top -= popoverRect.height / 2;\n break;\n case 'bottom':\n top -= popoverRect.height;\n break;\n }\n\n // Calculate horizontal position with direction sensitivity\n if (horizontalAnchor === 'start') {\n left += isRtl ? anchorRect.width + horizontalOffset : horizontalOffset;\n } else if (horizontalAnchor === 'center') {\n left += anchorRect.width / 2;\n } else if (horizontalAnchor === 'end') {\n left += isRtl ? -horizontalOffset : anchorRect.width + horizontalOffset;\n }\n\n // Adjust the origin based on RTL direction\n let adjustedHorizontalOrigin = horizontalOrigin;\n if (isRtl) {\n if (horizontalOrigin === 'start') {\n adjustedHorizontalOrigin = 'end';\n } else if (horizontalOrigin === 'end') {\n adjustedHorizontalOrigin = 'start';\n }\n }\n\n // Apply adjusted origin to the position calculation\n if (adjustedHorizontalOrigin === 'start') {\n // No adjustment needed\n } else if (adjustedHorizontalOrigin === 'center') {\n left -= popoverRect.width / 2;\n } else if (adjustedHorizontalOrigin === 'end') {\n left -= popoverRect.width;\n }\n\n // Ensure the popover stays within the viewport\n // Prevent overflow to the right\n if (left + popoverRect.width > viewportWidth) {\n left = viewportWidth - popoverRect.width;\n }\n\n // Prevent overflow to the left\n if (left < 0) {\n left = 0;\n }\n\n // Prevent overflow to the bottom\n if (top + popoverRect.height > viewportHeight) {\n top = viewportHeight - popoverRect.height;\n }\n\n // Prevent overflow to the top\n if (top < 0) {\n top = 0;\n }\n\n // Only update if position has changed to avoid unnecessary re-renders\n if (top !== position.top || left !== position.left) {\n setPosition({ top, left });\n }\n };\n\n useLayoutEffect(() => {\n window.addEventListener('resize', updatePosition);\n return () => {\n window.removeEventListener('resize', updatePosition);\n };\n });\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: updatePosition depends on open and anchorElement\n useLayoutEffect(() => {\n updatePosition();\n }, [open, anchorElement]);\n\n useLayoutEffect(() => {\n if (open) {\n activeElementRef.current = window.document.activeElement as HTMLElement;\n } else {\n const restoreToElement = activeElementRef.current;\n requestAnimationFrame(() => {\n restoreFocus && restoreToElement?.focus();\n });\n }\n }, [open, restoreFocus]);\n\n if (!canOpen) {\n return null;\n }\n\n anchorElementRef.current = anchorElement;\n\n let content = (\n <ScrollAwayListener onScrollAway={close} isException={isScrollAwayException}>\n <div\n ref={popoverRef}\n className={clsx(styles.popover, 'tcn-popper')}\n style={{\n top: `${position.top}px`,\n left: `${position.left}px`,\n }}\n >\n {children}\n </div>\n </ScrollAwayListener>\n );\n\n if (enableClickAway) {\n content = (\n <ClickAwayListener\n onClickAway={close}\n refs={[anchorElementRef, ...finalClickAwayRefs]}\n isException={isClickAwayException}\n >\n {content}\n </ClickAwayListener>\n );\n }\n\n return (\n <Portal>\n {veil && (\n <div\n ref={veilRef}\n onClick={e => veilRef.current === e.target && onVeilClick && onVeilClick(e)}\n className={styles['popover-veil']}\n >\n {content}\n </div>\n )}\n {!veil && content}\n </Portal>\n );\n}\n"],"names":["Popper","anchorElement","verticalAnchor","verticalOrigin","verticalOffset","horizontalAnchor","horizontalOrigin","horizontalOffset","restoreFocus","veil","onVeilClick","clickAwayRefs","open","onClose","children","disableClickAway","isClickAwayException","isScrollAwayException","anchorElementRef","useRef","position","setPosition","useState","activeElementRef","popoverRef","canOpen","finalClickAwayRefs","enableClickAway","veilRef","close","updatePosition","anchorRect","popoverRect","viewportWidth","viewportHeight","isRtl","top","left","adjustedHorizontalOrigin","useLayoutEffect","restoreToElement","content","jsx","ScrollAwayListener","clsx","styles","ClickAwayListener","Portal","e"],"mappings":"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"}
|
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as o, Fragment as d } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as u, useRef as R } from "react";
|
|
3
3
|
import { BasePopper as a } from "./base/base_popper.js";
|
|
4
|
-
import "../../utils/click_away_listener.js";
|
|
5
|
-
import "../../utils/focus_redirect.js";
|
|
6
|
-
import "../../utils/scroll_away_listener.js";
|
|
4
|
+
import "../../utils/listeners/click_away_listener.js";
|
|
5
|
+
import "../../utils/listeners/focus_redirect.js";
|
|
6
|
+
import "../../utils/listeners/scroll_away_listener.js";
|
|
7
7
|
import { useForkRef as w } from "../../utils/hooks/use_fork_ref.js";
|
|
8
8
|
import "../../utils/hooks/use_resize_observer.js";
|
|
9
|
-
import "../../utils/
|
|
9
|
+
import "../../utils/hooks/labelled_by_context.js";
|
|
10
|
+
import "../../utils/decorators/draggable/context.js";
|
|
10
11
|
import "clsx";
|
|
11
|
-
import "../../draggable.module-
|
|
12
|
+
import "../../draggable.module-DFYR5n3n.js";
|
|
13
|
+
import "../../utils/decorators/resizable/context.js";
|
|
14
|
+
import "../../resizable.module-ur5FBfxo.js";
|
|
15
|
+
import "../../utils/decorators/resizable/resize_handle.js";
|
|
12
16
|
import { ElementTethered as v } from "../tethered/element_tethered.js";
|
|
13
17
|
import { usePreviewElement as E } from "./hooks/use_hover_trigger.js";
|
|
14
18
|
import { PopperDismissal as g } from "./base/dismissal_decorator.js";
|
|
15
|
-
const
|
|
19
|
+
const z = u(function({
|
|
16
20
|
anchorElement: r,
|
|
17
21
|
restoreFocus: p,
|
|
18
22
|
children: i,
|
|
@@ -21,8 +25,8 @@ const _ = u(function({
|
|
|
21
25
|
dismissals: s = [g.MOUSE_LEAVE],
|
|
22
26
|
...f
|
|
23
27
|
}, n) {
|
|
24
|
-
const
|
|
25
|
-
return /* @__PURE__ */
|
|
28
|
+
const e = R(null), c = w(n, e), { isOpen: l, close: P } = E(r);
|
|
29
|
+
return /* @__PURE__ */ o(d, { children: /* @__PURE__ */ o(
|
|
26
30
|
a,
|
|
27
31
|
{
|
|
28
32
|
restoreFocus: p,
|
|
@@ -30,8 +34,8 @@ const _ = u(function({
|
|
|
30
34
|
onDismissal: P,
|
|
31
35
|
isException: t,
|
|
32
36
|
dismissals: s,
|
|
33
|
-
acceptedRefs: [
|
|
34
|
-
children: /* @__PURE__ */
|
|
37
|
+
acceptedRefs: [e, r, ...m],
|
|
38
|
+
children: /* @__PURE__ */ o(
|
|
35
39
|
v,
|
|
36
40
|
{
|
|
37
41
|
ref: c,
|
|
@@ -44,6 +48,6 @@ const _ = u(function({
|
|
|
44
48
|
) });
|
|
45
49
|
});
|
|
46
50
|
export {
|
|
47
|
-
|
|
51
|
+
z as PreviewPopper
|
|
48
52
|
};
|
|
49
53
|
//# sourceMappingURL=preview_popper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preview_popper.js","sources":["../../../src/overlay/popper/preview_popper.tsx"],"sourcesContent":["import { forwardRef, useRef, type PropsWithChildren } from 'react';\nimport { BasePopper, type BasePopperProps } from './base/base_popper.js';\nimport { useForkRef } from '../../utils/index.js';\nimport {\n ElementTethered,\n type ElementTetheredProps,\n} from '../tethered/element_tethered.js';\nimport { usePreviewElement } from './hooks/use_hover_trigger.js';\nimport { PopperDismissal } from './base/dismissal_decorator.js';\n\nexport type PreviewPopperProps = Omit<BasePopperProps, 'open' | 'onDismissal'> &\n ElementTetheredProps;\n\nexport const PreviewPopper = forwardRef<\n HTMLElement,\n PropsWithChildren<PreviewPopperProps>\n>(function PreviewPopper(\n {\n anchorElement,\n restoreFocus,\n children,\n acceptedRefs = [],\n isException,\n dismissals = [PopperDismissal.MOUSE_LEAVE],\n ...elementTetheredProps\n },\n ref\n) {\n const popperRef = useRef<HTMLElement>(null);\n const merged = useForkRef(ref, popperRef);\n\n const { isOpen, close } = usePreviewElement(anchorElement);\n\n return (\n <>\n <BasePopper\n restoreFocus={restoreFocus}\n open={isOpen}\n onDismissal={close}\n isException={isException}\n dismissals={dismissals}\n acceptedRefs={[popperRef, anchorElement, ...acceptedRefs]}\n >\n <ElementTethered\n ref={merged}\n anchorElement={anchorElement}\n {...elementTetheredProps}\n >\n {children}\n </ElementTethered>\n </BasePopper>\n </>\n );\n});\n"],"names":["PreviewPopper","forwardRef","anchorElement","restoreFocus","children","acceptedRefs","isException","dismissals","PopperDismissal","elementTetheredProps","ref","popperRef","useRef","merged","useForkRef","isOpen","close","usePreviewElement","jsx","Fragment","BasePopper","ElementTethered"],"mappings":"
|
|
1
|
+
{"version":3,"file":"preview_popper.js","sources":["../../../src/overlay/popper/preview_popper.tsx"],"sourcesContent":["import { forwardRef, useRef, type PropsWithChildren } from 'react';\nimport { BasePopper, type BasePopperProps } from './base/base_popper.js';\nimport { useForkRef } from '../../utils/index.js';\nimport {\n ElementTethered,\n type ElementTetheredProps,\n} from '../tethered/element_tethered.js';\nimport { usePreviewElement } from './hooks/use_hover_trigger.js';\nimport { PopperDismissal } from './base/dismissal_decorator.js';\n\nexport type PreviewPopperProps = Omit<BasePopperProps, 'open' | 'onDismissal'> &\n ElementTetheredProps;\n\nexport const PreviewPopper = forwardRef<\n HTMLElement,\n PropsWithChildren<PreviewPopperProps>\n>(function PreviewPopper(\n {\n anchorElement,\n restoreFocus,\n children,\n acceptedRefs = [],\n isException,\n dismissals = [PopperDismissal.MOUSE_LEAVE],\n ...elementTetheredProps\n },\n ref\n) {\n const popperRef = useRef<HTMLElement>(null);\n const merged = useForkRef(ref, popperRef);\n\n const { isOpen, close } = usePreviewElement(anchorElement);\n\n return (\n <>\n <BasePopper\n restoreFocus={restoreFocus}\n open={isOpen}\n onDismissal={close}\n isException={isException}\n dismissals={dismissals}\n acceptedRefs={[popperRef, anchorElement, ...acceptedRefs]}\n >\n <ElementTethered\n ref={merged}\n anchorElement={anchorElement}\n {...elementTetheredProps}\n >\n {children}\n </ElementTethered>\n </BasePopper>\n </>\n );\n});\n"],"names":["PreviewPopper","forwardRef","anchorElement","restoreFocus","children","acceptedRefs","isException","dismissals","PopperDismissal","elementTetheredProps","ref","popperRef","useRef","merged","useForkRef","isOpen","close","usePreviewElement","jsx","Fragment","BasePopper","ElementTethered"],"mappings":";;;;;;;;;;;;;;;;;;AAaO,MAAMA,IAAgBC,EAG3B,SACA;AAAA,EACE,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe,CAAA;AAAA,EACf,aAAAC;AAAA,EACA,YAAAC,IAAa,CAACC,EAAgB,WAAW;AAAA,EACzC,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAYC,EAAoB,IAAI,GACpCC,IAASC,EAAWJ,GAAKC,CAAS,GAElC,EAAE,QAAAI,GAAQ,OAAAC,MAAUC,EAAkBf,CAAa;AAEzD,SACE,gBAAAgB,EAAAC,GAAA,EACE,UAAA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,cAAAjB;AAAA,MACA,MAAMY;AAAA,MACN,aAAaC;AAAA,MACb,aAAAV;AAAA,MACA,YAAAC;AAAA,MACA,cAAc,CAACI,GAAWT,GAAe,GAAGG,CAAY;AAAA,MAExD,UAAA,gBAAAa;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,KAAKR;AAAA,UACL,eAAAX;AAAA,UACC,GAAGO;AAAA,UAEH,UAAAL;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA,GAEJ;AAEJ,CAAC;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { clsx as
|
|
1
|
+
import { jsx as m, jsxs as T } from "react/jsx-runtime";
|
|
2
|
+
import { clsx as s } from "clsx";
|
|
3
3
|
import { forwardRef as _ } from "react";
|
|
4
4
|
import "../../stacks/box/box.js";
|
|
5
5
|
import "../../stacks/h_collapsible_box.js";
|
|
@@ -8,18 +8,22 @@ import "../../stacks/spacer.js";
|
|
|
8
8
|
import "../../stacks/v_collapsible_box.js";
|
|
9
9
|
import "../../stacks/v_stack.js";
|
|
10
10
|
import { ZStack as b } from "../../stacks/z_stack.js";
|
|
11
|
-
import "../../utils/click_away_listener.js";
|
|
12
|
-
import "../../utils/focus_redirect.js";
|
|
13
|
-
import "../../utils/scroll_away_listener.js";
|
|
11
|
+
import "../../utils/listeners/click_away_listener.js";
|
|
12
|
+
import "../../utils/listeners/focus_redirect.js";
|
|
13
|
+
import "../../utils/listeners/scroll_away_listener.js";
|
|
14
14
|
import { useForkRef as k } from "../../utils/hooks/use_fork_ref.js";
|
|
15
15
|
import "../../utils/hooks/use_resize_observer.js";
|
|
16
|
-
import "../../utils/
|
|
17
|
-
import "../../draggable.
|
|
16
|
+
import "../../utils/hooks/labelled_by_context.js";
|
|
17
|
+
import "../../utils/decorators/draggable/context.js";
|
|
18
|
+
import "../../draggable.module-DFYR5n3n.js";
|
|
19
|
+
import "../../utils/decorators/resizable/context.js";
|
|
20
|
+
import "../../resizable.module-ur5FBfxo.js";
|
|
21
|
+
import "../../utils/decorators/resizable/resize_handle.js";
|
|
18
22
|
import { Caret as j } from "../caret/caret.js";
|
|
19
23
|
import { Portal as N } from "../portal/portal.js";
|
|
20
24
|
import { useTether as C } from "./hooks/use_tether.js";
|
|
21
25
|
import { useTetherOrigin as F } from "./hooks/use_tether_origin.js";
|
|
22
|
-
import '../../tethered.css';const I = "_origin-indicator_cbc16ea", P = "_tethered_44058d8", p = { "origin-indicator": I, tethered: P },
|
|
26
|
+
import '../../tethered.css';const I = "_origin-indicator_cbc16ea", P = "_tethered_44058d8", p = { "origin-indicator": I, tethered: P }, rt = _(
|
|
23
27
|
function({
|
|
24
28
|
anchor: a,
|
|
25
29
|
verticalAnchor: r = "bottom",
|
|
@@ -57,11 +61,11 @@ import '../../tethered.css';const I = "_origin-indicator_cbc16ea", P = "_tethere
|
|
|
57
61
|
"--origin-indicator-dimensions-width": `${t.rectangle.dimensions.width}px`,
|
|
58
62
|
"--origin-indicator-dimensions-height": `${t.rectangle.dimensions.height}px`
|
|
59
63
|
};
|
|
60
|
-
return /* @__PURE__ */
|
|
64
|
+
return /* @__PURE__ */ m(N, { children: /* @__PURE__ */ T(
|
|
61
65
|
b,
|
|
62
66
|
{
|
|
63
67
|
ref: R,
|
|
64
|
-
className:
|
|
68
|
+
className: s(p.tethered, "tcn-tethered", x),
|
|
65
69
|
style: { ...w, ...g },
|
|
66
70
|
"data-v-anchor": r,
|
|
67
71
|
"data-h-anchor": n,
|
|
@@ -71,12 +75,12 @@ import '../../tethered.css';const I = "_origin-indicator_cbc16ea", P = "_tethere
|
|
|
71
75
|
...l,
|
|
72
76
|
children: [
|
|
73
77
|
f,
|
|
74
|
-
d === "high" && t.direction !== "none" && /* @__PURE__ */
|
|
78
|
+
d === "high" && t.direction !== "none" && /* @__PURE__ */ m(
|
|
75
79
|
j,
|
|
76
80
|
{
|
|
77
81
|
ref: u,
|
|
78
82
|
direction: t.direction,
|
|
79
|
-
className:
|
|
83
|
+
className: s(
|
|
80
84
|
p["origin-indicator"],
|
|
81
85
|
"tcn-tethered-origin-indicator"
|
|
82
86
|
)
|
|
@@ -88,6 +92,6 @@ import '../../tethered.css';const I = "_origin-indicator_cbc16ea", P = "_tethere
|
|
|
88
92
|
}
|
|
89
93
|
);
|
|
90
94
|
export {
|
|
91
|
-
|
|
95
|
+
rt as Tethered
|
|
92
96
|
};
|
|
93
97
|
//# sourceMappingURL=tethered.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tethered.js","sources":["../../../src/overlay/tethered/tethered.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef, type PropsWithChildren } from 'react';\nimport { ZStack, type ZStackProps } from '../../stacks/index.js';\nimport { useForkRef, type Rectangle } from '../../utils/index.js';\nimport { Caret } from '../caret/caret.js';\nimport { Portal } from '../portal/portal.js';\nimport { useTether } from './hooks/use_tether.js';\nimport { useTetherOrigin } from './hooks/use_tether_origin.js';\nimport type { HorizontalTether, VerticalTether } from './types.js';\n\n// Styles\nimport styles from './tethered.module.css';\n\nexport interface BaseTetheredOwnProps {\n verticalAnchor?: VerticalTether;\n verticalOrigin?: VerticalTether;\n horizontalOrigin?: HorizontalTether;\n horizontalAnchor?: HorizontalTether;\n verticalOffset?: number;\n horizontalOffset?: number;\n}\n\nexport interface TetheredOwnProp extends BaseTetheredOwnProps {\n anchor: Rectangle | null;\n precision?: 'high' | 'low';\n}\n\nexport interface TetheredProps extends TetheredOwnProp, ZStackProps {}\n\nexport const Tethered = forwardRef<HTMLElement, PropsWithChildren<TetheredProps>>(\n function Tethered(\n {\n anchor,\n verticalAnchor = 'bottom',\n verticalOrigin = 'top',\n horizontalAnchor = 'start',\n horizontalOrigin = 'start',\n verticalOffset = 0,\n horizontalOffset = 0,\n precision = 'low',\n children,\n style,\n className,\n ...rest\n },\n ref\n ) {\n const { rectangle, tetherRef } = useTether({\n anchor,\n verticalAnchor,\n verticalOrigin,\n horizontalAnchor,\n horizontalOrigin,\n verticalOffset,\n horizontalOffset,\n });\n\n const [origin, originRef] = useTetherOrigin(\n rectangle,\n horizontalOrigin,\n verticalOrigin,\n precision\n );\n\n const forkedRef = useForkRef(ref, tetherRef);\n\n const cssVariables = {\n '--tethered-top': `${rectangle.position.y}px`,\n '--tethered-left': `${rectangle.position.x}px`,\n '--tethered-origin-y': `${origin.rectangle.position.y}px`,\n '--tethered-origin-x': `${origin.rectangle.position.x}px`,\n '--tethered-origin-delta-y': `${origin.offset.y}px`,\n '--tethered-origin-delta-x': `${origin.offset.x}px`,\n '--origin-indicator-dimensions-width': `${origin.rectangle.dimensions.width}px`,\n '--origin-indicator-dimensions-height': `${origin.rectangle.dimensions.height}px`,\n };\n\n return (\n <Portal>\n <ZStack\n ref={forkedRef}\n className={clsx(styles.tethered, 'tcn-tethered', className)}\n style={{ ...cssVariables, ...style }}\n data-v-anchor={verticalAnchor}\n data-h-anchor={horizontalAnchor}\n data-v-origin={verticalOrigin}\n data-h-origin={horizontalOrigin}\n data-anchor-direction={origin.direction}\n {...rest}\n >\n {children}\n {precision === 'high' && origin.direction !== 'none' && (\n <Caret\n ref={originRef}\n direction={origin.direction}\n className={clsx(\n styles['origin-indicator'],\n 'tcn-tethered-origin-indicator'\n )}\n />\n )}\n </ZStack>\n </Portal>\n );\n }\n);\n"],"names":["Tethered","forwardRef","anchor","verticalAnchor","verticalOrigin","horizontalAnchor","horizontalOrigin","verticalOffset","horizontalOffset","precision","children","style","className","rest","ref","rectangle","tetherRef","useTether","origin","originRef","useTetherOrigin","forkedRef","useForkRef","cssVariables","Portal","jsxs","ZStack","clsx","styles","jsx","Caret"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tethered.js","sources":["../../../src/overlay/tethered/tethered.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef, type PropsWithChildren } from 'react';\nimport { ZStack, type ZStackProps } from '../../stacks/index.js';\nimport { useForkRef, type Rectangle } from '../../utils/index.js';\nimport { Caret } from '../caret/caret.js';\nimport { Portal } from '../portal/portal.js';\nimport { useTether } from './hooks/use_tether.js';\nimport { useTetherOrigin } from './hooks/use_tether_origin.js';\nimport type { HorizontalTether, VerticalTether } from './types.js';\n\n// Styles\nimport styles from './tethered.module.css';\n\nexport interface BaseTetheredOwnProps {\n verticalAnchor?: VerticalTether;\n verticalOrigin?: VerticalTether;\n horizontalOrigin?: HorizontalTether;\n horizontalAnchor?: HorizontalTether;\n verticalOffset?: number;\n horizontalOffset?: number;\n}\n\nexport interface TetheredOwnProp extends BaseTetheredOwnProps {\n anchor: Rectangle | null;\n precision?: 'high' | 'low';\n}\n\nexport interface TetheredProps extends TetheredOwnProp, ZStackProps {}\n\nexport const Tethered = forwardRef<HTMLElement, PropsWithChildren<TetheredProps>>(\n function Tethered(\n {\n anchor,\n verticalAnchor = 'bottom',\n verticalOrigin = 'top',\n horizontalAnchor = 'start',\n horizontalOrigin = 'start',\n verticalOffset = 0,\n horizontalOffset = 0,\n precision = 'low',\n children,\n style,\n className,\n ...rest\n },\n ref\n ) {\n const { rectangle, tetherRef } = useTether({\n anchor,\n verticalAnchor,\n verticalOrigin,\n horizontalAnchor,\n horizontalOrigin,\n verticalOffset,\n horizontalOffset,\n });\n\n const [origin, originRef] = useTetherOrigin(\n rectangle,\n horizontalOrigin,\n verticalOrigin,\n precision\n );\n\n const forkedRef = useForkRef(ref, tetherRef);\n\n const cssVariables = {\n '--tethered-top': `${rectangle.position.y}px`,\n '--tethered-left': `${rectangle.position.x}px`,\n '--tethered-origin-y': `${origin.rectangle.position.y}px`,\n '--tethered-origin-x': `${origin.rectangle.position.x}px`,\n '--tethered-origin-delta-y': `${origin.offset.y}px`,\n '--tethered-origin-delta-x': `${origin.offset.x}px`,\n '--origin-indicator-dimensions-width': `${origin.rectangle.dimensions.width}px`,\n '--origin-indicator-dimensions-height': `${origin.rectangle.dimensions.height}px`,\n };\n\n return (\n <Portal>\n <ZStack\n ref={forkedRef}\n className={clsx(styles.tethered, 'tcn-tethered', className)}\n style={{ ...cssVariables, ...style }}\n data-v-anchor={verticalAnchor}\n data-h-anchor={horizontalAnchor}\n data-v-origin={verticalOrigin}\n data-h-origin={horizontalOrigin}\n data-anchor-direction={origin.direction}\n {...rest}\n >\n {children}\n {precision === 'high' && origin.direction !== 'none' && (\n <Caret\n ref={originRef}\n direction={origin.direction}\n className={clsx(\n styles['origin-indicator'],\n 'tcn-tethered-origin-indicator'\n )}\n />\n )}\n </ZStack>\n </Portal>\n );\n }\n);\n"],"names":["Tethered","forwardRef","anchor","verticalAnchor","verticalOrigin","horizontalAnchor","horizontalOrigin","verticalOffset","horizontalOffset","precision","children","style","className","rest","ref","rectangle","tetherRef","useTether","origin","originRef","useTetherOrigin","forkedRef","useForkRef","cssVariables","Portal","jsxs","ZStack","clsx","styles","jsx","Caret"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;4GA6BaA,KAAWC;AAAA,EACtB,SACE;AAAA,IACE,QAAAC;AAAA,IACA,gBAAAC,IAAiB;AAAA,IACjB,gBAAAC,IAAiB;AAAA,IACjB,kBAAAC,IAAmB;AAAA,IACnB,kBAAAC,IAAmB;AAAA,IACnB,gBAAAC,IAAiB;AAAA,IACjB,kBAAAC,IAAmB;AAAA,IACnB,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,GACA;AACA,UAAM,EAAE,WAAAC,GAAW,WAAAC,EAAA,IAAcC,EAAU;AAAA,MACzC,QAAAf;AAAA,MACA,gBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,kBAAAC;AAAA,MACA,gBAAAC;AAAA,MACA,kBAAAC;AAAA,IAAA,CACD,GAEK,CAACU,GAAQC,CAAS,IAAIC;AAAA,MAC1BL;AAAA,MACAT;AAAA,MACAF;AAAA,MACAK;AAAA,IAAA,GAGIY,IAAYC,EAAWR,GAAKE,CAAS,GAErCO,IAAe;AAAA,MACnB,kBAAkB,GAAGR,EAAU,SAAS,CAAC;AAAA,MACzC,mBAAmB,GAAGA,EAAU,SAAS,CAAC;AAAA,MAC1C,uBAAuB,GAAGG,EAAO,UAAU,SAAS,CAAC;AAAA,MACrD,uBAAuB,GAAGA,EAAO,UAAU,SAAS,CAAC;AAAA,MACrD,6BAA6B,GAAGA,EAAO,OAAO,CAAC;AAAA,MAC/C,6BAA6B,GAAGA,EAAO,OAAO,CAAC;AAAA,MAC/C,uCAAuC,GAAGA,EAAO,UAAU,WAAW,KAAK;AAAA,MAC3E,wCAAwC,GAAGA,EAAO,UAAU,WAAW,MAAM;AAAA,IAAA;AAG/E,6BACGM,GAAA,EACC,UAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKL;AAAA,QACL,WAAWM,EAAKC,EAAO,UAAU,gBAAgBhB,CAAS;AAAA,QAC1D,OAAO,EAAE,GAAGW,GAAc,GAAGZ,EAAA;AAAA,QAC7B,iBAAeR;AAAA,QACf,iBAAeE;AAAA,QACf,iBAAeD;AAAA,QACf,iBAAeE;AAAA,QACf,yBAAuBY,EAAO;AAAA,QAC7B,GAAGL;AAAA,QAEH,UAAA;AAAA,UAAAH;AAAA,UACAD,MAAc,UAAUS,EAAO,cAAc,UAC5C,gBAAAW;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,KAAKX;AAAA,cACL,WAAWD,EAAO;AAAA,cAClB,WAAWS;AAAA,gBACTC,EAAO,kBAAkB;AAAA,gBACzB;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA,GAGN;AAAA,EAEJ;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer tcn-system{:where(._resizable-target_72647e2){position:relative}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resizable.module-ur5FBfxo.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer tcn-system{._resize-handle_5b556d5{position:absolute;z-index:1;pointer-events:auto}:where(._resize-handle_5b556d5[data-position=start]),:where(._resize-handle_5b556d5[data-position=end]){top:0;height:100%;width:16px;cursor:ew-resize}:where(._resize-handle_5b556d5[data-position=start]:dir(ltr)){left:var(--resize-offset, 0px)}:where(._resize-handle_5b556d5[data-position=start]:dir(rtl)){right:var(--resize-offset, 0px)}:where(._resize-handle_5b556d5[data-position=end]:dir(ltr)){right:var(--resize-offset, 0px)}:where(._resize-handle_5b556d5[data-position=end]:dir(rtl)){left:var(--resize-offset, 0px)}:where(._resize-handle_5b556d5[data-position=top]),:where(._resize-handle_5b556d5[data-position=bottom]){left:0;width:100%;height:16px;cursor:ns-resize}:where(._resize-handle_5b556d5[data-position=top]){top:var(--resize-offset, 0px)}:where(._resize-handle_5b556d5[data-position=bottom]){bottom:var(--resize-offset, 0px)}:where(._resize-handle_5b556d5[data-position=top-start]),:where(._resize-handle_5b556d5[data-position=top-end]),:where(._resize-handle_5b556d5[data-position=bottom-start]),:where(._resize-handle_5b556d5[data-position=bottom-end]){width:16px;height:16px}:where(._resize-handle_5b556d5[data-position=top-start]:dir(ltr)){top:var(--resize-offset, 0px);left:var(--resize-offset, 0px);cursor:nwse-resize}:where(._resize-handle_5b556d5[data-position=top-start]:dir(rtl)){top:var(--resize-offset, 0px);right:var(--resize-offset, 0px);cursor:nesw-resize}:where(._resize-handle_5b556d5[data-position=top-end]:dir(ltr)){top:var(--resize-offset, 0px);right:var(--resize-offset, 0px);cursor:nesw-resize}:where(._resize-handle_5b556d5[data-position=top-end]:dir(rtl)){top:var(--resize-offset, 0px);left:var(--resize-offset, 0px);cursor:nwse-resize}:where(._resize-handle_5b556d5[data-position=bottom-start]:dir(ltr)){bottom:var(--resize-offset, 0px);left:var(--resize-offset, 0px);cursor:nesw-resize}:where(._resize-handle_5b556d5[data-position=bottom-start]:dir(rtl)){bottom:var(--resize-offset, 0px);right:var(--resize-offset, 0px);cursor:nwse-resize}:where(._resize-handle_5b556d5[data-position=bottom-end]:dir(ltr)){bottom:var(--resize-offset, 0px);right:var(--resize-offset, 0px);cursor:nwse-resize}:where(._resize-handle_5b556d5[data-position=bottom-end]:dir(rtl)){bottom:var(--resize-offset, 0px);left:var(--resize-offset, 0px);cursor:nesw-resize}}
|
package/dist/row.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer tcn-system{:where(._row_121bbbf){width:100%;min-width:0;height:var(--rows-height, auto);min-height:var(--rows-min-height, 0);max-height:var(--rows-max-height, none);flex-grow:0}:where(._row_121bbbf[data-height=fill]){flex-grow:1;height:0}}
|
package/dist/stacks/box/box.d.ts
CHANGED
|
@@ -26,18 +26,32 @@ export interface BoxProps<T extends HTMLElement = HTMLElement> extends HTMLAttri
|
|
|
26
26
|
overflow?: React.CSSProperties['overflow'];
|
|
27
27
|
overflowX?: React.CSSProperties['overflowX'];
|
|
28
28
|
overflowY?: React.CSSProperties['overflowY'];
|
|
29
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
29
30
|
enableResizeOnTop?: boolean;
|
|
31
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
30
32
|
enableResizeOnEnd?: boolean;
|
|
33
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
31
34
|
enableResizeOnBottom?: boolean;
|
|
35
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
32
36
|
enableResizeOnStart?: boolean;
|
|
37
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
33
38
|
enableResizeOnLeft?: boolean;
|
|
39
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
34
40
|
enableResizeOnRight?: boolean;
|
|
41
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
35
42
|
horizontalHandleProps?: HandleProps;
|
|
43
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
36
44
|
verticalHandleProps?: HandleProps;
|
|
45
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
37
46
|
onWidthResize?: OnWidthResize;
|
|
47
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
38
48
|
onHeightResize?: OnHeightResize;
|
|
49
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
39
50
|
onWidthResizeEnd?: OnWidthResizeEnd;
|
|
51
|
+
/** @deprecated Use Resizable + ResizeHandle instead */
|
|
40
52
|
onHeightResizeEnd?: OnHeightResizeEnd;
|
|
41
53
|
}
|
|
54
|
+
/** Union of deprecated resize-related prop names on BoxProps. Useful for Omit<BoxProps, DeprecatedBoxResizeProps>. */
|
|
55
|
+
export type DeprecatedBoxResizeProps = 'enableResizeOnTop' | 'enableResizeOnEnd' | 'enableResizeOnBottom' | 'enableResizeOnStart' | 'enableResizeOnLeft' | 'enableResizeOnRight' | 'horizontalHandleProps' | 'verticalHandleProps' | 'onWidthResize' | 'onHeightResize' | 'onWidthResizeEnd' | 'onHeightResizeEnd';
|
|
42
56
|
export declare const Box: React.ForwardRefExoticComponent<BoxProps<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
43
57
|
//# sourceMappingURL=box.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../../src/stacks/box/box.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,cAAc,EAAU,MAAM,OAAO,CAAC;AAOrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../../src/stacks/box/box.tsx"],"names":[],"mappings":"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"}
|