@economic/taco 13.0.0 → 14.0.0-tanstack-virtual-update.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/charts/components/Area/AreaChart.cjs.map +1 -1
- package/dist/charts/components/Area/AreaChart.js.map +1 -1
- package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
- package/dist/charts/components/Bar/BarChart.js.map +1 -1
- package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
- package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
- package/dist/charts/components/Donut/DonutChart.cjs +1 -1
- package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
- package/dist/charts/components/Donut/DonutChart.js +1 -1
- package/dist/charts/components/Donut/DonutChart.js.map +1 -1
- package/dist/charts/components/LegacyDonut/ActiveShape.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/ActiveShape.js.map +1 -1
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/LegacyDonutChart.js.map +1 -1
- package/dist/charts/components/LegacyDonut/Legend.cjs.map +1 -1
- package/dist/charts/components/LegacyDonut/Legend.js.map +1 -1
- package/dist/charts/components/Legend.cjs +3 -3
- package/dist/charts/components/Legend.cjs.map +1 -1
- package/dist/charts/components/Legend.js +3 -3
- package/dist/charts/components/Legend.js.map +1 -1
- package/dist/charts/components/Line/LineChart.cjs.map +1 -1
- package/dist/charts/components/Line/LineChart.js.map +1 -1
- package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
- package/dist/charts/components/Pie/PieChart.js.map +1 -1
- package/dist/charts/components/useChartData.cjs +1 -1
- package/dist/charts/components/useChartData.cjs.map +1 -1
- package/dist/charts/components/useChartData.js +1 -1
- package/dist/charts/components/useChartData.js.map +1 -1
- package/dist/charts/utils/color.cjs.map +1 -1
- package/dist/charts/utils/color.js.map +1 -1
- package/dist/charts/utils/common.cjs.map +1 -1
- package/dist/charts/utils/common.d.ts +1 -1
- package/dist/charts/utils/common.js.map +1 -1
- package/dist/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Actions/Button/Button.cjs +2 -2
- package/dist/components/Actions/Button/Button.cjs.map +1 -1
- package/dist/components/Actions/Button/Button.d.ts +2 -2
- package/dist/components/Actions/Button/Button.js +2 -2
- package/dist/components/Actions/Button/Button.js.map +1 -1
- package/dist/components/Actions/Link/Link.cjs.map +1 -1
- package/dist/components/Actions/Link/Link.js.map +1 -1
- package/dist/components/Actions/LinkButton/LinkButton.cjs +1 -1
- package/dist/components/Actions/LinkButton/LinkButton.cjs.map +1 -1
- package/dist/components/Actions/LinkButton/LinkButton.d.ts +2 -2
- package/dist/components/Actions/LinkButton/LinkButton.js +1 -1
- package/dist/components/Actions/LinkButton/LinkButton.js.map +1 -1
- package/dist/components/Alert/Alert.cjs.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AlertDialog/components/Content.cjs +2 -2
- package/dist/components/AlertDialog/components/Content.cjs.map +1 -1
- package/dist/components/AlertDialog/components/Content.js +2 -2
- package/dist/components/AlertDialog/components/Content.js.map +1 -1
- package/dist/components/AlertDialog/components/Trigger.cjs.map +1 -1
- package/dist/components/AlertDialog/components/Trigger.js.map +1 -1
- package/dist/components/Backdrop/Backdrop.cjs.map +1 -1
- package/dist/components/Backdrop/Backdrop.js.map +1 -1
- package/dist/components/Badge/Badge.cjs +1 -1
- package/dist/components/Badge/Badge.cjs.map +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/BadgeIcon/BadgeIcon.cjs.map +1 -1
- package/dist/components/BadgeIcon/BadgeIcon.d.ts +1 -1
- package/dist/components/BadgeIcon/BadgeIcon.js.map +1 -1
- package/dist/components/Banner/Banner.cjs +2 -2
- package/dist/components/Banner/Banner.cjs.map +1 -1
- package/dist/components/Banner/Banner.js +2 -2
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Banner/util.cjs.map +1 -1
- package/dist/components/Banner/util.js.map +1 -1
- package/dist/components/Calendar/Calendar.cjs +2 -2
- package/dist/components/Calendar/Calendar.cjs.map +1 -1
- package/dist/components/Calendar/Calendar.js +2 -2
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/Card/Card.cjs +2 -2
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js +2 -2
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Combobox/Combobox.cjs +4 -4
- package/dist/components/Combobox/Combobox.cjs.map +1 -1
- package/dist/components/Combobox/Combobox.d.ts +1 -2
- package/dist/components/Combobox/Combobox.js +4 -4
- package/dist/components/Combobox/Combobox.js.map +1 -1
- package/dist/components/Combobox/useCombobox.cjs +3 -3
- package/dist/components/Combobox/useCombobox.cjs.map +1 -1
- package/dist/components/Combobox/useCombobox.d.ts +1 -1
- package/dist/components/Combobox/useCombobox.js +3 -3
- package/dist/components/Combobox/useCombobox.js.map +1 -1
- package/dist/components/Datepicker/Datepicker.cjs +3 -3
- package/dist/components/Datepicker/Datepicker.cjs.map +1 -1
- package/dist/components/Datepicker/Datepicker.d.ts +1 -2
- package/dist/components/Datepicker/Datepicker.js +3 -3
- package/dist/components/Datepicker/Datepicker.js.map +1 -1
- package/dist/components/Datepicker/useDatepicker.cjs.map +1 -1
- package/dist/components/Datepicker/useDatepicker.d.ts +1 -2
- package/dist/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/components/Dialog/components/Content.cjs +3 -3
- package/dist/components/Dialog/components/Content.cjs.map +1 -1
- package/dist/components/Dialog/components/Content.js +3 -3
- package/dist/components/Dialog/components/Content.js.map +1 -1
- package/dist/components/Dialog/components/Trigger.cjs.map +1 -1
- package/dist/components/Dialog/components/Trigger.js.map +1 -1
- package/dist/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts +1 -1
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/components/Content.cjs +3 -3
- package/dist/components/Drawer/components/Content.cjs.map +1 -1
- package/dist/components/Drawer/components/Content.js +3 -3
- package/dist/components/Drawer/components/Content.js.map +1 -1
- package/dist/components/Field/Field.cjs +1 -1
- package/dist/components/Field/Field.cjs.map +1 -1
- package/dist/components/Field/Field.js +1 -1
- package/dist/components/Field/Field.js.map +1 -1
- package/dist/components/Form/Form.cjs.map +1 -1
- package/dist/components/Form/Form.d.ts +1 -1
- package/dist/components/Form/Form.js.map +1 -1
- package/dist/components/Group/Group.cjs.map +1 -1
- package/dist/components/Group/Group.d.ts +2 -1
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Hanger/Hanger.cjs +2 -2
- package/dist/components/Hanger/Hanger.cjs.map +1 -1
- package/dist/components/Hanger/Hanger.d.ts +1 -1
- package/dist/components/Hanger/Hanger.js +2 -2
- package/dist/components/Hanger/Hanger.js.map +1 -1
- package/dist/components/Header/components/Agreement/Badge.cjs.map +1 -1
- package/dist/components/Header/components/Agreement/Badge.js.map +1 -1
- package/dist/components/Header/components/Agreement/Display.cjs.map +1 -1
- package/dist/components/Header/components/Agreement/Display.js.map +1 -1
- package/dist/components/Header/components/Agreement/Item.cjs +1 -1
- package/dist/components/Header/components/Agreement/Item.cjs.map +1 -1
- package/dist/components/Header/components/Agreement/Item.js +1 -1
- package/dist/components/Header/components/Agreement/Item.js.map +1 -1
- package/dist/components/Header/components/AgreementSelector.cjs +3 -3
- package/dist/components/Header/components/AgreementSelector.cjs.map +1 -1
- package/dist/components/Header/components/AgreementSelector.js +3 -3
- package/dist/components/Header/components/AgreementSelector.js.map +1 -1
- package/dist/components/Header/components/Button.cjs.map +1 -1
- package/dist/components/Header/components/Button.d.ts +1 -1
- package/dist/components/Header/components/Button.js.map +1 -1
- package/dist/components/Header/components/Link.cjs +2 -2
- package/dist/components/Header/components/Link.cjs.map +1 -1
- package/dist/components/Header/components/Link.d.ts +1 -1
- package/dist/components/Header/components/Link.js +2 -2
- package/dist/components/Header/components/Link.js.map +1 -1
- package/dist/components/Header/components/MenuButton.cjs +1 -1
- package/dist/components/Header/components/MenuButton.cjs.map +1 -1
- package/dist/components/Header/components/MenuButton.js +1 -1
- package/dist/components/Header/components/MenuButton.js.map +1 -1
- package/dist/components/Header/components/PrimaryNavigation.cjs +3 -3
- package/dist/components/Header/components/PrimaryNavigation.cjs.map +1 -1
- package/dist/components/Header/components/PrimaryNavigation.js +3 -3
- package/dist/components/Header/components/PrimaryNavigation.js.map +1 -1
- package/dist/components/HoverCard/HoverCard.cjs.map +1 -1
- package/dist/components/HoverCard/HoverCard.d.ts +1 -1
- package/dist/components/HoverCard/HoverCard.js.map +1 -1
- package/dist/components/Inline/Inline.cjs +2 -6
- package/dist/components/Inline/Inline.cjs.map +1 -1
- package/dist/components/Inline/Inline.d.ts +1 -1
- package/dist/components/Inline/Inline.js +2 -6
- package/dist/components/Inline/Inline.js.map +1 -1
- package/dist/components/Input/Input.cjs +1 -1
- package/dist/components/Input/Input.cjs.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Layout/components/Sidebar.cjs.map +1 -1
- package/dist/components/Layout/components/Sidebar.js.map +1 -1
- package/dist/components/LegacyComponents/Button/Button.cjs +1 -1
- package/dist/components/LegacyComponents/Button/Button.cjs.map +1 -1
- package/dist/components/LegacyComponents/Button/Button.d.ts +3 -7
- package/dist/components/LegacyComponents/Button/Button.js +1 -1
- package/dist/components/LegacyComponents/Button/Button.js.map +1 -1
- package/dist/components/LegacyComponents/Button/util.cjs.map +1 -1
- package/dist/components/LegacyComponents/Button/util.js.map +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.cjs +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.d.ts +4 -8
- package/dist/components/LegacyComponents/IconButton/IconButton.js +1 -1
- package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
- package/dist/components/List/components/Collapsible.cjs +1 -1
- package/dist/components/List/components/Collapsible.cjs.map +1 -1
- package/dist/components/List/components/Collapsible.js +1 -1
- package/dist/components/List/components/Collapsible.js.map +1 -1
- package/dist/components/List/components/Item.cjs.map +1 -1
- package/dist/components/List/components/Item.d.ts +1 -1
- package/dist/components/List/components/Item.js.map +1 -1
- package/dist/components/List/components/Link.cjs +1 -1
- package/dist/components/List/components/Link.cjs.map +1 -1
- package/dist/components/List/components/Link.js +1 -1
- package/dist/components/List/components/Link.js.map +1 -1
- package/dist/components/List/components/Toggle.cjs +2 -2
- package/dist/components/List/components/Toggle.cjs.map +1 -1
- package/dist/components/List/components/Toggle.d.ts +1 -2
- package/dist/components/List/components/Toggle.js +2 -2
- package/dist/components/List/components/Toggle.js.map +1 -1
- package/dist/components/Listbox/Listbox.d.ts +2 -2
- package/dist/components/Listbox/ScrollableList.cjs +3 -3
- package/dist/components/Listbox/ScrollableList.cjs.map +1 -1
- package/dist/components/Listbox/ScrollableList.d.ts +1 -1
- package/dist/components/Listbox/ScrollableList.js +3 -3
- package/dist/components/Listbox/ScrollableList.js.map +1 -1
- package/dist/components/Listbox/useListbox.cjs.map +1 -1
- package/dist/components/Listbox/useListbox.js.map +1 -1
- package/dist/components/Listbox/useMultiListbox.cjs +1 -1
- package/dist/components/Listbox/useMultiListbox.cjs.map +1 -1
- package/dist/components/Listbox/useMultiListbox.js +1 -1
- package/dist/components/Listbox/useMultiListbox.js.map +1 -1
- package/dist/components/Listbox/useTypeahead.cjs.map +1 -1
- package/dist/components/Listbox/useTypeahead.js.map +1 -1
- package/dist/components/Listbox/util.cjs.map +1 -1
- package/dist/components/Listbox/util.js.map +1 -1
- package/dist/components/Menu/Menu.cjs.map +1 -1
- package/dist/components/Menu/Menu.js.map +1 -1
- package/dist/components/Menu/components/Checkbox.cjs +1 -1
- package/dist/components/Menu/components/Checkbox.cjs.map +1 -1
- package/dist/components/Menu/components/Checkbox.js +1 -1
- package/dist/components/Menu/components/Checkbox.js.map +1 -1
- package/dist/components/Menu/components/Content.cjs.map +1 -1
- package/dist/components/Menu/components/Content.js.map +1 -1
- package/dist/components/Menu/components/Item.cjs +1 -1
- package/dist/components/Menu/components/Item.cjs.map +1 -1
- package/dist/components/Menu/components/Item.d.ts +1 -2
- package/dist/components/Menu/components/Item.js +1 -1
- package/dist/components/Menu/components/Item.js.map +1 -1
- package/dist/components/Menu/components/Link.cjs.map +1 -1
- package/dist/components/Menu/components/Link.d.ts +1 -1
- package/dist/components/Menu/components/Link.js.map +1 -1
- package/dist/components/Menu/components/RadioGroup.cjs.map +1 -1
- package/dist/components/Menu/components/RadioGroup.d.ts +1 -1
- package/dist/components/Menu/components/RadioGroup.js.map +1 -1
- package/dist/components/Menu/components/SubMenu.cjs.map +1 -1
- package/dist/components/Menu/components/SubMenu.js.map +1 -1
- package/dist/components/Menu/components/Trigger.cjs.map +1 -1
- package/dist/components/Menu/components/Trigger.js.map +1 -1
- package/dist/components/Navigation2/components/Group.cjs.map +1 -1
- package/dist/components/Navigation2/components/Group.js.map +1 -1
- package/dist/components/Navigation2/components/Link.cjs +2 -2
- package/dist/components/Navigation2/components/Link.cjs.map +1 -1
- package/dist/components/Navigation2/components/Link.d.ts +1 -2
- package/dist/components/Navigation2/components/Link.js +2 -2
- package/dist/components/Navigation2/components/Link.js.map +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.cjs +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.cjs.map +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.d.ts +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.js +1 -1
- package/dist/components/OverflowGroup/OverflowGroup.js.map +1 -1
- package/dist/components/Pagination/PageNumbers.cjs +1 -1
- package/dist/components/Pagination/PageNumbers.cjs.map +1 -1
- package/dist/components/Pagination/PageNumbers.js +1 -1
- package/dist/components/Pagination/PageNumbers.js.map +1 -1
- package/dist/components/Pagination/Pagination.cjs +4 -4
- package/dist/components/Pagination/Pagination.cjs.map +1 -1
- package/dist/components/Pagination/Pagination.js +4 -4
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Popover/Popover.cjs.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Provider/Localization.cjs.map +1 -1
- package/dist/components/Provider/Localization.d.ts +1 -1
- package/dist/components/Provider/Localization.js.map +1 -1
- package/dist/components/Provider/Provider.cjs +1 -1
- package/dist/components/Provider/Provider.cjs.map +1 -1
- package/dist/components/Provider/Provider.js +1 -1
- package/dist/components/Provider/Provider.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.cjs +1 -1
- package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/Report/Report.cjs.map +1 -1
- package/dist/components/Report/Report.js.map +1 -1
- package/dist/components/Report/useReport.cjs.map +1 -1
- package/dist/components/Report/useReport.js.map +1 -1
- package/dist/components/SearchInput/SearchInput.cjs +1 -1
- package/dist/components/SearchInput/SearchInput.cjs.map +1 -1
- package/dist/components/SearchInput/SearchInput.d.ts +5 -5
- package/dist/components/SearchInput/SearchInput.js +1 -1
- package/dist/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/SearchInput2/SearchInput2.cjs +3 -3
- package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
- package/dist/components/SearchInput2/SearchInput2.js +3 -3
- package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/components/Select/Select.cjs +4 -4
- package/dist/components/Select/Select.cjs.map +1 -1
- package/dist/components/Select/Select.d.ts +5 -5
- package/dist/components/Select/Select.js +4 -4
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/useSelect.cjs +1 -1
- package/dist/components/Select/useSelect.cjs.map +1 -1
- package/dist/components/Select/useSelect.js +1 -1
- package/dist/components/Select/useSelect.js.map +1 -1
- package/dist/components/Select2/Select2.cjs +4 -4
- package/dist/components/Select2/Select2.cjs.map +1 -1
- package/dist/components/Select2/Select2.d.ts +2 -2
- package/dist/components/Select2/Select2.js +4 -4
- package/dist/components/Select2/Select2.js.map +1 -1
- package/dist/components/Select2/components/Collection.cjs.map +1 -1
- package/dist/components/Select2/components/Collection.js.map +1 -1
- package/dist/components/Select2/components/Context.cjs.map +1 -1
- package/dist/components/Select2/components/Context.js.map +1 -1
- package/dist/components/Select2/components/Create.cjs +4 -4
- package/dist/components/Select2/components/Create.cjs.map +1 -1
- package/dist/components/Select2/components/Create.js +4 -4
- package/dist/components/Select2/components/Create.js.map +1 -1
- package/dist/components/Select2/components/Edit.cjs +5 -5
- package/dist/components/Select2/components/Edit.cjs.map +1 -1
- package/dist/components/Select2/components/Edit.d.ts +1 -1
- package/dist/components/Select2/components/Edit.js +5 -5
- package/dist/components/Select2/components/Edit.js.map +1 -1
- package/dist/components/Select2/components/Group.cjs +1 -1
- package/dist/components/Select2/components/Group.cjs.map +1 -1
- package/dist/components/Select2/components/Group.js +1 -1
- package/dist/components/Select2/components/Group.js.map +1 -1
- package/dist/components/Select2/components/Option.cjs +4 -4
- package/dist/components/Select2/components/Option.cjs.map +1 -1
- package/dist/components/Select2/components/Option.d.ts +1 -1
- package/dist/components/Select2/components/Option.js +4 -4
- package/dist/components/Select2/components/Option.js.map +1 -1
- package/dist/components/Select2/components/Search.cjs +1 -1
- package/dist/components/Select2/components/Search.cjs.map +1 -1
- package/dist/components/Select2/components/Search.js +1 -1
- package/dist/components/Select2/components/Search.js.map +1 -1
- package/dist/components/Select2/components/Title.cjs.map +1 -1
- package/dist/components/Select2/components/Title.js.map +1 -1
- package/dist/components/Select2/components/Trigger.cjs +6 -6
- package/dist/components/Select2/components/Trigger.cjs.map +1 -1
- package/dist/components/Select2/components/Trigger.d.ts +1 -1
- package/dist/components/Select2/components/Trigger.js +6 -6
- package/dist/components/Select2/components/Trigger.js.map +1 -1
- package/dist/components/Select2/types.d.ts +1 -1
- package/dist/components/Select2/utilities.cjs.map +1 -1
- package/dist/components/Select2/utilities.js.map +1 -1
- package/dist/components/Shortcut/Shortcut.cjs.map +1 -1
- package/dist/components/Shortcut/Shortcut.js.map +1 -1
- package/dist/components/Stack/Stack.cjs +2 -6
- package/dist/components/Stack/Stack.cjs.map +1 -1
- package/dist/components/Stack/Stack.d.ts +1 -1
- package/dist/components/Stack/Stack.js +2 -6
- package/dist/components/Stack/Stack.js.map +1 -1
- package/dist/components/Switch/Switch.cjs.map +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Table3/Table3.cjs +1 -3
- package/dist/components/Table3/Table3.cjs.map +1 -1
- package/dist/components/Table3/Table3.d.ts +1 -4
- package/dist/components/Table3/Table3.js +1 -3
- package/dist/components/Table3/Table3.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Cell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Cell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/Editing/TextareaWithAutosizing.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +6 -6
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +6 -6
- package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.js.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.cjs +3 -3
- package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
- package/dist/components/Table3/components/Editing/Alert.d.ts +1 -1
- package/dist/components/Table3/components/Editing/Alert.js +3 -3
- package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.cjs +3 -3
- package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.cjs.map +1 -1
- package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.d.ts +1 -1
- package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js +3 -3
- package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js.map +1 -1
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.cjs +2 -2
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.js +2 -2
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
- package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs +2 -2
- package/dist/components/Table3/components/Row/Editing/SaveStatus.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Editing/SaveStatus.js +2 -2
- package/dist/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -1
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
- package/dist/components/Table3/components/Row/Row.cjs.map +1 -1
- package/dist/components/Table3/components/Row/Row.js.map +1 -1
- package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs +2 -2
- package/dist/components/Table3/components/Toolbar/Editing/Editing.cjs.map +1 -1
- package/dist/components/Table3/components/Toolbar/Editing/Editing.js +2 -2
- package/dist/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -1
- package/dist/components/Table3/features/useEditingState.cjs +1 -1
- package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
- package/dist/components/Table3/features/useEditingState.js +1 -1
- package/dist/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/components/Table3/features/useTableEditing.cjs +1 -1
- package/dist/components/Table3/features/useTableEditing.cjs.map +1 -1
- package/dist/components/Table3/features/useTableEditing.js +1 -1
- package/dist/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/components/Table3/listeners/useTableEditingListener.cjs +1 -1
- package/dist/components/Table3/listeners/useTableEditingListener.cjs.map +1 -1
- package/dist/components/Table3/listeners/useTableEditingListener.js +1 -1
- package/dist/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/components/Table3/useTable3.cjs +2 -2
- package/dist/components/Table3/useTable3.cjs.map +1 -1
- package/dist/components/Table3/useTable3.js +2 -2
- package/dist/components/Table3/useTable3.js.map +1 -1
- package/dist/components/Table3/util/editing.cjs.map +1 -1
- package/dist/components/Table3/util/editing.d.ts +2 -2
- package/dist/components/Table3/util/editing.js.map +1 -1
- package/dist/components/Tabs/Context.cjs.map +1 -1
- package/dist/components/Tabs/Context.js.map +1 -1
- package/dist/components/Tabs/Tabs.cjs.map +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/components/TabList.cjs +2 -2
- package/dist/components/Tabs/components/TabList.cjs.map +1 -1
- package/dist/components/Tabs/components/TabList.js +2 -2
- package/dist/components/Tabs/components/TabList.js.map +1 -1
- package/dist/components/Tabs/components/Trigger.cjs +3 -3
- package/dist/components/Tabs/components/Trigger.cjs.map +1 -1
- package/dist/components/Tabs/components/Trigger.js +3 -3
- package/dist/components/Tabs/components/Trigger.js.map +1 -1
- package/dist/components/Tag/Tag.cjs.map +1 -1
- package/dist/components/Tag/Tag.d.ts +1 -1
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/components/Textarea/Textarea.cjs +1 -1
- package/dist/components/Textarea/Textarea.cjs.map +1 -1
- package/dist/components/Textarea/Textarea.js +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Toast/Toast.cjs +2 -2
- package/dist/components/Toast/Toast.cjs.map +1 -1
- package/dist/components/Toast/Toast.js +2 -2
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/util.cjs +1 -1
- package/dist/components/Toast/util.cjs.map +1 -1
- package/dist/components/Toast/util.js +1 -1
- package/dist/components/Toast/util.js.map +1 -1
- package/dist/components/Tour/Tour.cjs +2 -2
- package/dist/components/Tour/Tour.cjs.map +1 -1
- package/dist/components/Tour/Tour.js +2 -2
- package/dist/components/Tour/Tour.js.map +1 -1
- package/dist/components/Truncate/Truncate.cjs.map +1 -1
- package/dist/components/Truncate/Truncate.js.map +1 -1
- package/dist/components/Typography/Heading.cjs.map +1 -1
- package/dist/components/Typography/Heading.d.ts +1 -1
- package/dist/components/Typography/Heading.js.map +1 -1
- package/dist/components/Typography/Text.cjs.map +1 -1
- package/dist/components/Typography/Text.d.ts +1 -1
- package/dist/components/Typography/Text.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/hooks/useBoundaryOverflowDetection.cjs.map +1 -1
- package/dist/hooks/useBoundaryOverflowDetection.js.map +1 -1
- package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
- package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/hooks/useGlobalKeyDown.cjs.map +1 -1
- package/dist/hooks/useGlobalKeyDown.js.map +1 -1
- package/dist/hooks/useTacoSettings.cjs.map +1 -1
- package/dist/hooks/useTacoSettings.d.ts +1 -1
- package/dist/hooks/useTacoSettings.js.map +1 -1
- package/dist/index.cjs +0 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/primitives/BubbleSelect.cjs.map +1 -1
- package/dist/primitives/BubbleSelect.js.map +1 -1
- package/dist/primitives/Button.cjs.map +1 -1
- package/dist/primitives/Button.js.map +1 -1
- package/dist/primitives/Collection/components/Root.cjs.map +1 -1
- package/dist/primitives/Collection/components/Root.js.map +1 -1
- package/dist/primitives/Listbox2/components/Option.cjs.map +1 -1
- package/dist/primitives/Listbox2/components/Option.js.map +1 -1
- package/dist/primitives/Listbox2/components/Root.cjs.map +1 -1
- package/dist/primitives/Listbox2/components/Root.js.map +1 -1
- package/dist/primitives/Listbox2/components/Title.cjs.map +1 -1
- package/dist/primitives/Listbox2/components/Title.js.map +1 -1
- package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
- package/dist/primitives/Table/Core/components/Body/EmptyStateBody.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
- package/dist/primitives/Table/Core/components/Body/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Body/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js +1 -1
- package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs +3 -3
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js +3 -3
- package/dist/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Drag.cjs +2 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Drag.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Drag.js +2 -2
- package/dist/primitives/Table/Core/components/Columns/Internal/Drag.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs +3 -3
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js +3 -3
- package/dist/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs +4 -4
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js +4 -4
- package/dist/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.cjs +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.js +1 -1
- package/dist/primitives/Table/Core/components/Header/Header.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Goto.cjs +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Goto.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Goto.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Goto.js +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Goto.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Menu.cjs +4 -6
- package/dist/primitives/Table/Core/components/Header/components/Menu.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Menu.js +4 -6
- package/dist/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Resizer.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/Resizer.js.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/SortIndicator.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Header/components/SortIndicator.js.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs +3 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +3 -1
- package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs +5 -5
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +5 -5
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +4 -4
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +4 -4
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs +2 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +2 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.cjs +3 -3
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +3 -3
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.cjs +2 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js +2 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterComparator.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.cjs +5 -5
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +5 -5
- package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +4 -4
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +4 -4
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.cjs +6 -6
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.d.ts +1 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js +6 -6
- package/dist/primitives/Table/Core/components/Toolbar/components/Print/PrintDialog.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs +2 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js +2 -2
- package/dist/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs +7 -7
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js +7 -7
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/HideOrOrderPopover.js.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs +3 -3
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.cjs.map +1 -1
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js +3 -3
- package/dist/primitives/Table/Core/components/Toolbar/components/Settings/Settings.js.map +1 -1
- package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.cjs.map +1 -1
- package/dist/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
- package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
- package/dist/primitives/Table/Core/useTable.cjs.map +1 -1
- package/dist/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/primitives/Table/types.cjs.map +1 -1
- package/dist/primitives/Table/types.d.ts +1 -1
- package/dist/primitives/Table/types.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableFontSize.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableFontSize.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTablePrinting.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTablePrinting.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableSettings.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/features/useTableSettings.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableDataListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFilterListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowHeightListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableShortcutsListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSortingListener.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSortingListener.js.map +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.cjs +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.js +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/columns.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/columns.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/columns.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/dataTypes.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/filtering.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/filtering.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/filtering.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/search.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/primitives/Table/useTableManager/util/setup.cjs +11 -1
- package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
- package/dist/primitives/Table/useTableManager/util/setup.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/setup.js +12 -2
- package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/utils/dom.cjs.map +1 -1
- package/dist/utils/dom.js.map +1 -1
- package/dist/utils/flattenChildren.cjs +12 -0
- package/dist/utils/flattenChildren.cjs.map +1 -0
- package/dist/utils/flattenChildren.d.ts +6 -0
- package/dist/utils/flattenChildren.js +12 -0
- package/dist/utils/flattenChildren.js.map +1 -0
- package/dist/utils/hooks/useListKeyboardNavigation.cjs.map +1 -1
- package/dist/utils/hooks/useListKeyboardNavigation.js.map +1 -1
- package/dist/utils/storyutils.d.ts +1 -1
- package/dist/utils/tailwind.cjs.map +1 -1
- package/dist/utils/tailwind.js.map +1 -1
- package/package.json +6 -5
- package/dist/components/Treeview/Treeview.cjs +0 -52
- package/dist/components/Treeview/Treeview.cjs.map +0 -1
- package/dist/components/Treeview/Treeview.d.ts +0 -25
- package/dist/components/Treeview/Treeview.js +0 -52
- package/dist/components/Treeview/Treeview.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.cjs","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '
|
|
1
|
+
{"version":3,"file":"Button.cjs","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '@/hooks/useGlobalKeyDown';\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\n// React 19 added the native `popover` attribute to HTML props. Consumers of this primitive use\n// `popover` as a render prop for an associated Popover, so the native one is dropped to keep that.\ntype ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'popover'> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag === 'a' ? undefined : type}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["React","Button","useMergedRef","useGlobalKeyDown"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,SAASA,iBAAM,WAAW,SAASC,QAAO,OAAoB,KAAuD;AACvH,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,UAAU,GAAG,eAAe;AACvE,QAAM,cAAcC,aAAAA,aAAoD,GAAG;AAE3EC,oCAAiB,UAAU,CAAA,UAAS;AAChC,WAAO,eAAA;AACP,UAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,QAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,IACJ;AAEA,gBAAY,SAAS,MAAA;AAAA,EACzB,CAAC;AAED,QAAM,MAAM,MAAM,OAAO,MAAM;AAE/B,SACIH,iCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,MAAM,WAAW,SAAY,MAAM;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,QAAQ,QAAQ,MAAM,SAAS;AAAA,MAC/B,MAAM,QAAQ,MAAM,SAAY;AAAA,MAChC,KAAK;AAAA,IAAA;AAAA,IACJA,iBAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,IAClCA,iBAAM,SAAS,IAAI,MAAM,UAAU,CAAA,UAAU,OAAO,UAAU,WAAWA,iCAAA,cAAC,cAAM,KAAM,IAAU,KAAM,IACtG,MAAM;AAAA,EAAA;AAGxB,CAAC;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useGlobalKeyDown } from '@/hooks/useGlobalKeyDown';\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport type { KeyDownHandlerOptions } from '@/utils/keyboard';\n\n// React 19 added the native `popover` attribute to HTML props. Consumers of this primitive use\n// `popover` as a render prop for an associated Popover, so the native one is dropped to keep that.\ntype ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement>, 'popover'> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag === 'a' ? undefined : type}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button"],"mappings":";;;AAkBA,MAAM,SAAS,MAAM,WAAW,SAASA,QAAO,OAAoB,KAAuD;AACvH,QAAM,EAAE,UAAU,UAAU,QAAQ,OAAO,UAAU,GAAG,eAAe;AACvE,QAAM,cAAc,aAAoD,GAAG;AAE3E,mBAAiB,UAAU,CAAA,UAAS;AAChC,WAAO,eAAA;AACP,UAAM,SAAS,SAAS,cAAc,iBAAiB;AAGvD,QAAI,UAAU,CAAC,QAAQ,SAAS,YAAY,OAAO,GAAG;AAClD;AAAA,IACJ;AAEA,gBAAY,SAAS,MAAA;AAAA,EACzB,CAAC;AAED,QAAM,MAAM,MAAM,OAAO,MAAM;AAE/B,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,MAAM,WAAW,SAAY,MAAM;AAAA,MACnC,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,QAAQ,QAAQ,MAAM,SAAS;AAAA,MAC/B,MAAM,QAAQ,MAAM,SAAY;AAAA,MAChC,KAAK;AAAA,IAAA;AAAA,IACJ,MAAM,SAAS,MAAM,MAAM,QAAQ,IAAI,IAClC,MAAM,SAAS,IAAI,MAAM,UAAU,CAAA,UAAU,OAAO,UAAU,WAAW,sBAAA,cAAC,cAAM,KAAM,IAAU,KAAM,IACtG,MAAM;AAAA,EAAA;AAGxB,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { isAriaDirectionKey } from '../../../utils/aria';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["useMergedRef","isAriaDirectionKey","createCustomKeyboardEvent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport { isAriaDirectionKey } from '@/utils/aria';\nimport { createCustomKeyboardEvent } from '@/utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["useMergedRef","isAriaDirectionKey","createCustomKeyboardEvent"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '../../../hooks/useMergedRef';\nimport { isAriaDirectionKey } from '../../../utils/aria';\nimport { createCustomKeyboardEvent } from '../../../utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Root.js","sources":["../../../../src/primitives/Collection/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useMergedRef } from '@/hooks/useMergedRef';\nimport { isAriaDirectionKey } from '@/utils/aria';\nimport { createCustomKeyboardEvent } from '@/utils/input';\n\n/* This component provides a keyboard navigable collection primitive for use in lists\n * It is unlikely you need to edit this component\n */\n\nexport type CollectionProps = React.HTMLAttributes<HTMLDivElement> & {\n querySelector: string;\n resetOnChange?: unknown;\n};\n\nexport type CollectionRef = HTMLDivElement & {\n setActiveIndexByElement: (option: HTMLDivElement) => void;\n};\n\nconst getOptionsFromCollection = (collection: HTMLDivElement, selector: string): NodeListOf<Element> =>\n collection.querySelectorAll(selector);\n\n// we use javascript to set attributes (rather than cloning children and adding them)\n// so that we can support nesting (e.g. groups) - child elements that aren't options.\n// without doing this we would have to unwrap and flatten all groups\nexport const Root = React.forwardRef<CollectionRef, CollectionProps>(function CollectionRoot(props, ref) {\n const { querySelector, resetOnChange, tabIndex = 0, ...otherProps } = props;\n const internalRef = useMergedRef<CollectionRef>(ref);\n const [activeIndex, setActiveIndex] = React.useState<number | undefined>();\n const isMultiselectable = props['aria-multiselectable'];\n\n const setActiveOption = (index: number, collection: HTMLDivElement, option: Element) => {\n collection.querySelector('[aria-current]')?.removeAttribute('aria-current');\n option.setAttribute('aria-current', 'true');\n\n option.scrollIntoView({ block: 'nearest' });\n setActiveIndex(index);\n };\n\n const setActiveIndexByElement = React.useCallback(\n (option: HTMLDivElement) => {\n if (internalRef.current && option.matches(querySelector)) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, internalRef.current, option);\n }\n }\n },\n [internalRef.current, querySelector]\n );\n\n React.useEffect(() => {\n if (internalRef.current) {\n internalRef.current.setActiveIndexByElement = setActiveIndexByElement;\n }\n }, [internalRef.current]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length && !isMultiselectable) {\n const firstSelected = internalRef.current.querySelector('[aria-selected]');\n\n if (firstSelected) {\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1 && selectedIndex !== activeIndex) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n }\n }\n }, [resetOnChange, isMultiselectable]);\n\n React.useEffect(() => {\n if (internalRef.current) {\n const options = getOptionsFromCollection(internalRef.current, querySelector);\n\n if (options.length) {\n let selected = internalRef.current.querySelectorAll('[aria-current=\"true\"]');\n\n // if nothing is current (keyboard visible), look for selected items\n if (selected.length === 0) {\n selected = internalRef.current.querySelectorAll('[aria-selected]');\n }\n\n // if one item is selected, make sure it's current\n if (selected.length === 1) {\n if (options) {\n const firstSelected = selected.item(0);\n const selectedIndex = Array.from(options).indexOf(firstSelected);\n\n if (selectedIndex > -1) {\n setActiveOption(selectedIndex, internalRef.current, firstSelected);\n }\n }\n } else {\n // multiple selected or none selected should go to 0\n setActiveOption(0, internalRef.current, options.item(0));\n }\n }\n }\n }, [props.children]);\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n // after we allowed complex content in options (like prefix/postfix in Select2), the click target can be a child of the option\n // so in this case we need to find the closest option\n const option = target.matches(querySelector) ? target : target.closest(querySelector);\n\n if (option) {\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n const nextActiveIndex = Array.from(options).indexOf(option);\n\n if (nextActiveIndex > -1) {\n setActiveOption(nextActiveIndex, event.currentTarget, option);\n }\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n // this stops the event dispatched to the option rebounding back and starting an infinite loop\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (otherProps.onKeyDown) {\n otherProps.onKeyDown(event);\n }\n\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const options = getOptionsFromCollection(event.currentTarget, querySelector);\n\n if (options) {\n if (isAriaDirectionKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n const nextActiveIndex = getNextEnabledItem(event, options, activeIndex);\n\n if (nextActiveIndex !== undefined && nextActiveIndex !== activeIndex) {\n setActiveOption(nextActiveIndex, event.currentTarget, options.item(nextActiveIndex));\n }\n } else if (activeIndex !== undefined && !!options.item(activeIndex)) {\n // forward events onto the underlying option - this lets consumers place onKeyDown handlers on their own components\n options.item(activeIndex)?.dispatchEvent(createCustomKeyboardEvent(event));\n }\n }\n };\n\n return <div {...otherProps} onClick={handleClick} onKeyDown={handleKeyDown} ref={internalRef} tabIndex={tabIndex} />;\n});\n\nexport const getNextIndexFromKeycode = (\n event: React.KeyboardEvent,\n length: number,\n activeIndex: number | undefined\n): number | undefined => {\n switch (event.key) {\n case 'ArrowUp':\n return activeIndex === undefined ? length - 1 : activeIndex > 0 ? activeIndex - 1 : activeIndex;\n\n case 'ArrowDown':\n return activeIndex === undefined ? 0 : activeIndex < length - 1 ? activeIndex + 1 : activeIndex;\n\n case 'Home':\n return 0;\n\n case 'End':\n return length - 1;\n\n default:\n return;\n }\n};\n\nexport const getNextEnabledItem = (\n event: React.KeyboardEvent<HTMLElement>,\n options: NodeListOf<Element>,\n activeIndex: number | undefined,\n recurse = true\n): number | undefined => {\n const nextIndex = getNextIndexFromKeycode(event, options.length, activeIndex);\n\n if (nextIndex !== undefined) {\n if (nextIndex === activeIndex) {\n return activeIndex;\n }\n if (options.item(nextIndex) && isSkippableItem(options.item(nextIndex))) {\n // check in the other direction if the first or last item is disabled,\n // but prevent infinite loops if all elements are disabled by disabling recursion\n if (recurse && nextIndex === 0) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowDown' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n if (recurse && nextIndex === options.length - 1) {\n return getNextEnabledItem(\n new KeyboardEvent(event.type, { ...(event as any), key: 'ArrowUp' }) as any,\n options,\n nextIndex,\n false\n );\n }\n\n return getNextEnabledItem(event, options, nextIndex, recurse);\n }\n }\n\n return nextIndex;\n};\n\nconst isSkippableItem = (element: Element) => {\n return (\n element.getAttribute('role') === 'presentation' ||\n !!element.hasAttribute('disabled') ||\n !!element.getAttribute('aria-disabled') ||\n !!element.getAttribute('aria-hidden')\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.cjs","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '
|
|
1
|
+
{"version":3,"file":"Option.cjs","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport { fixedForwardRef } from '@/types';\nimport { isAriaSelectionKey } from '@/utils/aria';\n\nimport type { Listbox2OptionValue } from '../types';\n\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps<T extends Listbox2OptionValue = Listbox2OptionValue> = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: T;\n};\n\nexport const Option = fixedForwardRef(function Listbox2Option<T extends Listbox2OptionValue>(\n props: Listbox2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { disabled, id: nativeId, title: _1, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n setValue(value);\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n"],"names":["fixedForwardRef","useListbox2Context","useId","isAriaSelectionKey"],"mappings":";;;;;;;AAeO,MAAM,SAASA,MAAAA,gBAAgB,SAAS,eAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,IAAI,UAAU,OAAO,IAAI,OAAO,GAAG,WAAA,IAAe;AACpE,QAAM,EAAE,UAAU,iBAAiB,UAAU,iBAAiB,UAAU,OAAO,aAAA,IAAiBC,2BAAA;AAGhG,QAAM,KAAK,YAAYC,MAAAA,MAAM,QAAQ;AACrC,QAAM,WAAW,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS,KAAK,IAAI,iBAAiB;AAE/F,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,aAAS,KAAK;AAEd,QAAI,OAAO,MAAM,YAAY,YAAY;AACrC,YAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+C;AAClE,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,QAAIC,KAAAA,mBAAmB,KAAK,GAAG;AAC3B,eAAS,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,MAAM,cAAc,YAAY;AACvC,YAAM,UAAU,KAAK;AAAA,IACzB;AAAA,EACJ;AAEA,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,mBAAmB,WAAW,SAAS;AAAA,MACtD,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,WAAW;AAAA,MACX;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,EAAA;AAGjB,CAAC;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Option.js","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '
|
|
1
|
+
{"version":3,"file":"Option.js","sources":["../../../../src/primitives/Listbox2/components/Option.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport { fixedForwardRef } from '@/types';\nimport { isAriaSelectionKey } from '@/utils/aria';\n\nimport type { Listbox2OptionValue } from '../types';\n\nimport { useListbox2Context } from './Context';\n\nexport type Listbox2OptionProps<T extends Listbox2OptionValue = Listbox2OptionValue> = React.HTMLAttributes<HTMLDivElement> & {\n disabled?: boolean;\n value: T;\n};\n\nexport const Option = fixedForwardRef(function Listbox2Option<T extends Listbox2OptionValue>(\n props: Listbox2OptionProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const { disabled, id: nativeId, title: _1, value, ...otherProps } = props;\n const { disabled: listboxDisabled, readOnly: listboxReadOnly, setValue, value: currentValue } = useListbox2Context();\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'option-' + useId(nativeId);\n const selected = Array.isArray(currentValue) ? currentValue.includes(value) : currentValue === value;\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n setValue(value);\n\n if (typeof props.onClick === 'function') {\n props.onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled || listboxDisabled || listboxReadOnly) {\n event.stopPropagation();\n return;\n }\n if (isAriaSelectionKey(event)) {\n setValue(value);\n }\n\n if (typeof props.onKeyDown === 'function') {\n props.onKeyDown(event);\n }\n };\n\n return (\n <div\n {...otherProps}\n aria-disabled={listboxDisabled || disabled ? 'true' : undefined}\n aria-selected={selected ? 'true' : undefined}\n id={id}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"option\"\n />\n );\n});\n"],"names":["React"],"mappings":";;;;;AAeO,MAAM,SAAS,gBAAgB,SAAS,eAC3C,OACA,KACF;AACE,QAAM,EAAE,UAAU,IAAI,UAAU,OAAO,IAAI,OAAO,GAAG,WAAA,IAAe;AACpE,QAAM,EAAE,UAAU,iBAAiB,UAAU,iBAAiB,UAAU,OAAO,aAAA,IAAiB,mBAAA;AAGhG,QAAM,KAAK,YAAY,MAAM,QAAQ;AACrC,QAAM,WAAW,MAAM,QAAQ,YAAY,IAAI,aAAa,SAAS,KAAK,IAAI,iBAAiB;AAE/F,QAAM,cAAc,CAAC,UAA4C;AAC7D,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,aAAS,KAAK;AAEd,QAAI,OAAO,MAAM,YAAY,YAAY;AACrC,YAAM,QAAQ,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,QAAM,gBAAgB,CAAC,UAA+C;AAClE,QAAI,YAAY,mBAAmB,iBAAiB;AAChD,YAAM,gBAAA;AACN;AAAA,IACJ;AACA,QAAI,mBAAmB,KAAK,GAAG;AAC3B,eAAS,KAAK;AAAA,IAClB;AAEA,QAAI,OAAO,MAAM,cAAc,YAAY;AACvC,YAAM,UAAU,KAAK;AAAA,IACzB;AAAA,EACJ;AAEA,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,iBAAe,mBAAmB,WAAW,SAAS;AAAA,MACtD,iBAAe,WAAW,SAAS;AAAA,MACnC;AAAA,MACA,SAAS;AAAA,MACT,WAAW;AAAA,MACX;AAAA,MACA,MAAK;AAAA,IAAA;AAAA,EAAA;AAGjB,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '
|
|
1
|
+
{"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["useId","Listbox2Context","CollectionPrimitive.Root"],"mappings":";;;;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAO,MAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAcA,MAAAA,MAAM,QAAQ;AAEvC,QAAM,UAAU,MAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACI,sBAAA,cAACC,QAAAA,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7B,sBAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACX,sBAAA;AAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Root.js","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '
|
|
1
|
+
{"version":3,"file":"Root.js","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["React","CollectionPrimitive.Root"],"mappings":";;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAOA,eAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAc,MAAM,QAAQ;AAEvC,QAAM,UAAUA,eAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACIA,+BAAA,cAAC,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7BA,+BAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACXA,+BAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Title.cjs","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '
|
|
1
|
+
{"version":3,"file":"Title.cjs","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\n\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n"],"names":["useListbox2GroupContext","useId"],"mappings":";;;;;AAQO,MAAM,QAAQ,MAAM,WAA+C,SAAS,cAAc,OAAO,KAAK;AACzG,QAAM,EAAE,IAAI,UAAU,GAAG,eAAe;AACxC,QAAM,EAAE,gBAAA,IAAoBA,8BAAA;AAC5B,QAAM,KAAKC,MAAAA,MAAM,QAAQ;AAEzB,QAAM,UAAU,MAAM;AAClB,oBAAgB,EAAE;AAAA,EACtB,GAAG,CAAC,EAAE,CAAC;AAEP,6CAAQ,OAAA,EAAK,GAAG,YAAY,IAAQ,KAAU,MAAK,gBAAe;AACtE,CAAC;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Title.js","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '
|
|
1
|
+
{"version":3,"file":"Title.js","sources":["../../../../src/primitives/Listbox2/components/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\n\nimport { useListbox2GroupContext } from './Group';\n\nexport type Listbox2TitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const Title = React.forwardRef<HTMLDivElement, Listbox2TitleProps>(function Listbox2Group(props, ref) {\n const { id: nativeId, ...otherProps } = props;\n const { setLabelledById } = useListbox2GroupContext();\n const id = useId(nativeId);\n\n React.useEffect(() => {\n setLabelledById(id);\n }, [id]);\n\n return <div {...otherProps} id={id} ref={ref} role=\"presentation\" />;\n});\n"],"names":["React"],"mappings":";;;AAQO,MAAM,QAAQA,eAAM,WAA+C,SAAS,cAAc,OAAO,KAAK;AACzG,QAAM,EAAE,IAAI,UAAU,GAAG,eAAe;AACxC,QAAM,EAAE,gBAAA,IAAoB,wBAAA;AAC5B,QAAM,KAAK,MAAM,QAAQ;AAEzBA,iBAAM,UAAU,MAAM;AAClB,oBAAgB,EAAE;AAAA,EACtB,GAAG,CAAC,EAAE,CAAC;AAEP,sDAAQ,OAAA,EAAK,GAAG,YAAY,IAAQ,KAAU,MAAK,gBAAe;AACtE,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Body.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '
|
|
1
|
+
{"version":3,"file":"Body.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["useAugmentedFocusManager","getReachableRowCount","hasFocusableElement","isPressingMetaKey"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Body.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '
|
|
1
|
+
{"version":3,"file":"Body.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["React"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyStateBody.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '
|
|
1
|
+
{"version":3,"file":"EmptyStateBody.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '@/hooks/useBoundingClientRectListener';\n\nimport type { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n const rect = useBoundingClientRectListener({ current: ref.current?.parentNode as HTMLElement });\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr\">\n <td style={{ maxWidth: rect?.width }} className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["useBoundingClientRectListener"],"mappings":";;;;AAYO,SAAS,eAAe,OAAwB;AACnD,QAAM,EAAE,YAAY,aAAa,SAAS,QAAQ,GAAG,eAAe;AACpE,QAAM,MAAM,MAAM,OAAgC,IAAI;AAEtD,QAAM,OAAOA,8BAAAA,8BAA8B,EAAE,SAAS,IAAI,SAAS,YAA2B;AAE9F,MAAI,CAAC,SAAS;AACV,WAAO,sBAAA,cAAC,SAAA,EAAO,GAAG,YAAY,WAAU,iBAAgB;AAAA,EAC5D;AAEA,SACI,sBAAA,cAAC,SAAA,EAAO,GAAG,YAAY,KAAU,WAAU,iBAAgB,aAAU,cAAA,GACjE,sBAAA,cAAC,MAAA,EAAG,WAAU,mBACV,sBAAA,cAAC,MAAA,EAAG,OAAO,EAAE,UAAU,MAAM,MAAA,GAAS,WAAU,+CAAA,GAC3C,cAAc,sBAAA,cAAC,aAAA,EAAY,QAAgB,IAAK,MACrD,CACJ,CACJ;AAER;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmptyStateBody.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '
|
|
1
|
+
{"version":3,"file":"EmptyStateBody.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/EmptyStateBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useBoundingClientRectListener } from '@/hooks/useBoundingClientRectListener';\n\nimport type { TableEmptyStateReason, TableEmptyStateRenderer } from '../../../types';\n\ntype EmptyStateProps = React.HTMLAttributes<HTMLTableSectionElement> & {\n emptyState?: TableEmptyStateRenderer;\n isReady: boolean;\n reason: TableEmptyStateReason;\n};\n\nexport function EmptyStateBody(props: EmptyStateProps) {\n const { emptyState: Placeholder, isReady, reason, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n\n const rect = useBoundingClientRectListener({ current: ref.current?.parentNode as HTMLElement });\n\n if (!isReady) {\n return <tbody {...attributes} className=\"!auto-rows-fr\" />;\n }\n\n return (\n <tbody {...attributes} ref={ref} className=\"!auto-rows-fr\" data-taco=\"empty-state\">\n <tr className=\"!auto-rows-fr\">\n <td style={{ maxWidth: rect?.width }} className=\"col-span-full !border-0 !p-0 hover:!bg-white\">\n {Placeholder ? <Placeholder reason={reason} /> : undefined}\n </td>\n </tr>\n </tbody>\n );\n}\n"],"names":["React"],"mappings":";;AAYO,SAAS,eAAe,OAAwB;AACnD,QAAM,EAAE,YAAY,aAAa,SAAS,QAAQ,GAAG,eAAe;AACpE,QAAM,MAAMA,eAAM,OAAgC,IAAI;AAEtD,QAAM,OAAO,8BAA8B,EAAE,SAAS,IAAI,SAAS,YAA2B;AAE9F,MAAI,CAAC,SAAS;AACV,WAAOA,+BAAA,cAAC,SAAA,EAAO,GAAG,YAAY,WAAU,iBAAgB;AAAA,EAC5D;AAEA,SACIA,+BAAA,cAAC,SAAA,EAAO,GAAG,YAAY,KAAU,WAAU,iBAAgB,aAAU,cAAA,GACjEA,+BAAA,cAAC,MAAA,EAAG,WAAU,mBACVA,+BAAA,cAAC,MAAA,EAAG,OAAO,EAAE,UAAU,MAAM,MAAA,GAAS,WAAU,+CAAA,GAC3C,cAAcA,+BAAA,cAAC,aAAA,EAAY,QAAgB,IAAK,MACrD,CACJ,CACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '
|
|
1
|
+
{"version":3,"file":"util.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '@/utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager?.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n const focusNext = (arrowNavigation = false) =>\n focusManager?.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n // focusFirst should focus on editing controls\n const focusFirst = () => {\n return focusManager?.focusFirst({\n ...FOCUS_MANAGER_OPTIONS_TAB,\n accept: (element: Element) => {\n if (!FOCUS_MANAGER_OPTIONS_TAB.accept(element)) {\n return false;\n }\n\n // Check if this element or its parent has the cell-control attribute\n if (element.closest('[data-taco=\"cell-control\"]')) {\n return true;\n }\n\n return false;\n },\n });\n };\n\n const focusLast = () => focusManager?.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n"],"names":["isElementInteractive","hasFocusableElement","useFocusManager"],"mappings":";;;;AAIA,MAAM,4BAA4B;AAAA,EAC9B,QAAQ,CAAC,YAAqB,CAAC,CAAC,QAAQ,QAAQ,4BAA4B;AAAA,EAC5E,UAAU;AACd;AAEA,MAAM,mCAAmC;AAAA,EACrC,QAAQ,CAAC,YAAqB;AAC1B,UAAM,iBAAiBA,IAAAA,qBAAqB,OAAO,IAAI,QAAQ,aAAa,UAAU,MAAM,OAAO;AACnG,WAAO,CAAC,CAAC,QAAQ,QAAQ,4BAA4B,KAAK,CAACC,IAAAA,oBAAoB,OAAsB,KAAK;AAAA,EAC9G;AACJ;AAEO,SAAS,2BAA2B;AACvC,QAAM,eAAeC,MAAAA,gBAAA;AAErB,QAAM,gBAAgB,CAAC,kBAAkB,UACrC,cAAc,cAAc,kBAAkB,mCAAmC,yBAAyB;AAE9G,QAAM,YAAY,CAAC,kBAAkB,UACjC,cAAc,UAAU,kBAAkB,mCAAmC,yBAAyB;AAG1G,QAAM,aAAa,MAAM;AACrB,WAAO,cAAc,WAAW;AAAA,MAC5B,GAAG;AAAA,MACH,QAAQ,CAAC,YAAqB;AAC1B,YAAI,CAAC,0BAA0B,OAAO,OAAO,GAAG;AAC5C,iBAAO;AAAA,QACX;AAGA,YAAI,QAAQ,QAAQ,4BAA4B,GAAG;AAC/C,iBAAO;AAAA,QACX;AAEA,eAAO;AAAA,MACX;AAAA,IAAA,CACH;AAAA,EACL;AAEA,QAAM,YAAY,MAAM,cAAc,UAAU,yBAAyB;AAEzE,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/util.ts"],"sourcesContent":["import { useFocusManager } from '@react-aria/focus';\n\nimport { hasFocusableElement, isElementInteractive } from '@/utils/dom';\n\nconst FOCUS_MANAGER_OPTIONS_TAB = {\n accept: (element: Element) => !!element.closest('tr[data-row-active=\"true\"]'),\n tabbable: true,\n};\n\nconst FOCUS_MANAGER_OPTIONS_ARROW_KEYS = {\n accept: (element: Element) => {\n const acceptTabbable = isElementInteractive(element) ? element.getAttribute('tabindex') !== '-1' : true;\n return !!element.closest('tr[data-row-active=\"true\"]') && !hasFocusableElement(element as HTMLElement) && acceptTabbable;\n },\n};\n\nexport function useAugmentedFocusManager() {\n const focusManager = useFocusManager();\n\n const focusPrevious = (arrowNavigation = false) =>\n focusManager?.focusPrevious(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n const focusNext = (arrowNavigation = false) =>\n focusManager?.focusNext(arrowNavigation ? FOCUS_MANAGER_OPTIONS_ARROW_KEYS : FOCUS_MANAGER_OPTIONS_TAB);\n\n // focusFirst should focus on editing controls\n const focusFirst = () => {\n return focusManager?.focusFirst({\n ...FOCUS_MANAGER_OPTIONS_TAB,\n accept: (element: Element) => {\n if (!FOCUS_MANAGER_OPTIONS_TAB.accept(element)) {\n return false;\n }\n\n // Check if this element or its parent has the cell-control attribute\n if (element.closest('[data-taco=\"cell-control\"]')) {\n return true;\n }\n\n return false;\n },\n });\n };\n\n const focusLast = () => focusManager?.focusLast(FOCUS_MANAGER_OPTIONS_TAB);\n\n return {\n focusPrevious,\n focusNext,\n focusFirst,\n focusLast,\n };\n}\n"],"names":[],"mappings":";;AAIA,MAAM,4BAA4B;AAAA,EAC9B,QAAQ,CAAC,YAAqB,CAAC,CAAC,QAAQ,QAAQ,4BAA4B;AAAA,EAC5E,UAAU;AACd;AAEA,MAAM,mCAAmC;AAAA,EACrC,QAAQ,CAAC,YAAqB;AAC1B,UAAM,iBAAiB,qBAAqB,OAAO,IAAI,QAAQ,aAAa,UAAU,MAAM,OAAO;AACnG,WAAO,CAAC,CAAC,QAAQ,QAAQ,4BAA4B,KAAK,CAAC,oBAAoB,OAAsB,KAAK;AAAA,EAC9G;AACJ;AAEO,SAAS,2BAA2B;AACvC,QAAM,eAAe,gBAAA;AAErB,QAAM,gBAAgB,CAAC,kBAAkB,UACrC,cAAc,cAAc,kBAAkB,mCAAmC,yBAAyB;AAE9G,QAAM,YAAY,CAAC,kBAAkB,UACjC,cAAc,UAAU,kBAAkB,mCAAmC,yBAAyB;AAG1G,QAAM,aAAa,MAAM;AACrB,WAAO,cAAc,WAAW;AAAA,MAC5B,GAAG;AAAA,MACH,QAAQ,CAAC,YAAqB;AAC1B,YAAI,CAAC,0BAA0B,OAAO,OAAO,GAAG;AAC5C,iBAAO;AAAA,QACX;AAGA,YAAI,QAAQ,QAAQ,4BAA4B,GAAG;AAC/C,iBAAO;AAAA,QACX;AAEA,eAAO;AAAA,MACX;AAAA,IAAA,CACH;AAAA,EACL;AAEA,QAAM,YAAY,MAAM,cAAc,UAAU,yBAAyB;AAEzE,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const React = require("react");
|
|
4
|
-
const Localization = require("../../../../../../components/Provider/Localization.cjs");
|
|
5
4
|
const columns = require("../../../../useTableManager/util/columns.cjs");
|
|
6
5
|
const RowContext = require("../../Row/RowContext.cjs");
|
|
6
|
+
const Localization = require("../../../../../../components/Provider/Localization.cjs");
|
|
7
7
|
function getCellAttributes(cell, index, isHighlighted) {
|
|
8
8
|
const columnMeta = cell.column.columnDef.meta;
|
|
9
9
|
const isPinned = cell.column.getIsPinned();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '
|
|
1
|
+
{"version":3,"file":"util.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement | null>\n) {\n const localization = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(\n context.table.getState().globalFilter,\n cell.getValue(),\n cell.row.original,\n columnMeta.dataType,\n columnMeta.dataTypeOptions,\n localization\n );\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex] ?? [];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (ref.current && isHighlighted === 'current') {\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n }\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["useLocalization","RowContext","isInternalColumn","isHighlighted","isCellHighlighted"],"mappings":";;;;;;AAiBO,SAAS,kBACZ,MACA,OACA,eACF;AACE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,WAAW,KAAK,OAAO,YAAA;AAG7B,SAAO;AAAA,IACH,mBAAmB,YAAY;AAAA,IAC/B,yBAAyB;AAAA,IACzB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,mBAAmB;AAAA,IACnB,oBAAoB,WAAW,OAAO;AAAA,IACtC,sBAAsB,WAAW,iBAAiB,OAAO;AAAA,IACzD,WAAW,OAAO,WAAW,cAAc,aAAa,WAAW,UAAU,KAAK,IAAI,QAAQ,IAAI,WAAW;AAAA,EAAA;AAErH;AAEO,SAAS,sBACZ,MACA,WACA,KACF;AACE,QAAM,eAAeA,aAAAA,gBAAA;AACrB,QAAM,EAAE,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAChD,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAM,aAAa,KAAK,OAAO,UAAU;AAEzC,QAAM,gBAAiD,MAAM,QAAQ,MAAM;AACvE,QACI,CAAC,KAAK,OAAO,UAAU,sBACvBC,QAAAA,iBAAiB,KAAK,OAAO,EAAE,KAC/B,KAAK,gBAAA,KACL,KAAK,oBACP;AACE,aAAO;AAAA,IACX;AAEA,QAAIC,iBAAgB;AAEpB,QAAI,QAAQ,MAAM,SAAA,EAAW,cAAc;AACvCA,uBAAgBC,QAAAA;AAAAA,QACZ,QAAQ,MAAM,SAAA,EAAW;AAAA,QACzB,KAAK,SAAA;AAAA,QACL,KAAK,IAAI;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,CAACD,kBAAiB,UAAU,OAAO,gCAAgC,QAAW;AAC9E,aAAO;AAAA,IACX;AAEA,UAAM,CAAC,gBAAgB,kBAAkB,IACrC,UAAU,OAAO,yBAAyB,UAAU,OAAO,2BAA2B,KAAK,CAAA;AAE/F,QAAI,mBAAmB,YAAY,uBAAuB,WAAW;AACjE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC,KAAK,SAAA;AAAA,IACL,QAAQ,MAAM,SAAA,EAAW;AAAA,IACzB,UAAU,OAAO,yBAAyB;AAAA,IAC1C,UAAU,OAAO;AAAA,EAAA,CACpB;AAED,QAAM,UAAU,MAAM;AAClB,QAAI,IAAI,WAAW,kBAAkB,WAAW;AAC5C,UAAI,QAAQ,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAElE,iBAAW,MAAM;AACb,YAAI,IAAI,SAAS;AACb,gBAAM,UAAU,IAAI,QAAQ,QAAQ,2BAA2B;AAE/D,qBAAW,MAAM;AACb,kBAAM,gBAAgB,SAAS,iBAAiB,iDAAiD;AAEjG,gBAAI,eAAe,QAAQ;AACvB,oBAAM,iBAAiB,cAAc,KAAK,cAAc,SAAS,CAAC,GAAG,sBAAA;AAErE,kBAAI,kBAAkB,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO;AACjE,yBAAS,SAAS,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO,QAAQ,SAAS;AAAA,cACtF;AAAA,YACJ;AAAA,UACJ,GAAG,CAAC;AAAA,QACR;AAAA,MACJ,GAAG,CAAC;AAAA,IACR;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default from "react";
|
|
2
|
-
import { useLocalization } from "../../../../../../components/Provider/Localization.js";
|
|
3
2
|
import { isInternalColumn, isCellHighlighted } from "../../../../useTableManager/util/columns.js";
|
|
4
3
|
import { RowContext } from "../../Row/RowContext.js";
|
|
4
|
+
import { useLocalization } from "../../../../../../components/Provider/Localization.js";
|
|
5
5
|
function getCellAttributes(cell, index, isHighlighted) {
|
|
6
6
|
const columnMeta = cell.column.columnDef.meta;
|
|
7
7
|
const isPinned = cell.column.getIsPinned();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement | null>\n) {\n const localization = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(\n context.table.getState().globalFilter,\n cell.getValue(),\n cell.row.original,\n columnMeta.dataType,\n columnMeta.dataTypeOptions,\n localization\n );\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex] ?? [];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (ref.current && isHighlighted === 'current') {\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n }\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["React","isHighlighted"],"mappings":";;;;AAiBO,SAAS,kBACZ,MACA,OACA,eACF;AACE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,WAAW,KAAK,OAAO,YAAA;AAG7B,SAAO;AAAA,IACH,mBAAmB,YAAY;AAAA,IAC/B,yBAAyB;AAAA,IACzB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,mBAAmB;AAAA,IACnB,oBAAoB,WAAW,OAAO;AAAA,IACtC,sBAAsB,WAAW,iBAAiB,OAAO;AAAA,IACzD,WAAW,OAAO,WAAW,cAAc,aAAa,WAAW,UAAU,KAAK,IAAI,QAAQ,IAAI,WAAW;AAAA,EAAA;AAErH;AAEO,SAAS,sBACZ,MACA,WACA,KACF;AACE,QAAM,eAAe,gBAAA;AACrB,QAAM,EAAE,SAAA,IAAaA,eAAM,WAAW,UAAU;AAChD,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAM,aAAa,KAAK,OAAO,UAAU;AAEzC,QAAM,gBAAiDA,eAAM,QAAQ,MAAM;AACvE,QACI,CAAC,KAAK,OAAO,UAAU,sBACvB,iBAAiB,KAAK,OAAO,EAAE,KAC/B,KAAK,gBAAA,KACL,KAAK,oBACP;AACE,aAAO;AAAA,IACX;AAEA,QAAIC,iBAAgB;AAEpB,QAAI,QAAQ,MAAM,SAAA,EAAW,cAAc;AACvCA,uBAAgB;AAAA,QACZ,QAAQ,MAAM,SAAA,EAAW;AAAA,QACzB,KAAK,SAAA;AAAA,QACL,KAAK,IAAI;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,CAACA,kBAAiB,UAAU,OAAO,gCAAgC,QAAW;AAC9E,aAAO;AAAA,IACX;AAEA,UAAM,CAAC,gBAAgB,kBAAkB,IACrC,UAAU,OAAO,yBAAyB,UAAU,OAAO,2BAA2B,KAAK,CAAA;AAE/F,QAAI,mBAAmB,YAAY,uBAAuB,WAAW;AACjE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC,KAAK,SAAA;AAAA,IACL,QAAQ,MAAM,SAAA,EAAW;AAAA,IACzB,UAAU,OAAO,yBAAyB;AAAA,IAC1C,UAAU,OAAO;AAAA,EAAA,CACpB;AAEDD,iBAAM,UAAU,MAAM;AAClB,QAAI,IAAI,WAAW,kBAAkB,WAAW;AAC5C,UAAI,QAAQ,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAElE,iBAAW,MAAM;AACb,YAAI,IAAI,SAAS;AACb,gBAAM,UAAU,IAAI,QAAQ,QAAQ,2BAA2B;AAE/D,qBAAW,MAAM;AACb,kBAAM,gBAAgB,SAAS,iBAAiB,iDAAiD;AAEjG,gBAAI,eAAe,QAAQ;AACvB,oBAAM,iBAAiB,cAAc,KAAK,cAAc,SAAS,CAAC,GAAG,sBAAA;AAErE,kBAAI,kBAAkB,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO;AACjE,yBAAS,SAAS,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO,QAAQ,SAAS;AAAA,cACtF;AAAA,YACJ;AAAA,UACJ,GAAG,CAAC;AAAA,QACR;AAAA,MACJ,GAAG,CAAC;AAAA,IACR;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const cn = require("clsx");
|
|
4
4
|
const React = require("react");
|
|
5
|
-
const
|
|
6
|
-
const Menu = require("../../../../../../components/Menu/Menu.cjs");
|
|
5
|
+
const RowContext = require("../../Row/RowContext.cjs");
|
|
7
6
|
const Localization = require("../../../../../../components/Provider/Localization.cjs");
|
|
8
7
|
const Shortcut = require("../../../../../../components/Shortcut/Shortcut.cjs");
|
|
9
|
-
const
|
|
8
|
+
const IconButton = require("../../../../../../components/LegacyComponents/IconButton/IconButton.cjs");
|
|
9
|
+
const Menu = require("../../../../../../components/Menu/Menu.cjs");
|
|
10
10
|
function Actions(props) {
|
|
11
11
|
const { actions, actionsLength, data, isActiveRow, rowId, table } = props;
|
|
12
12
|
const { texts } = Localization.useLocalization();
|