@economic/taco 1.40.2 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/components/IconButton/IconButton.d.ts +3 -3
  2. package/dist/components/RadioGroup/util.d.ts +1 -0
  3. package/dist/components/Table2/Table2.d.ts +1 -1
  4. package/dist/components/Tabs/Tabs.d.ts +2 -0
  5. package/dist/esm/packages/taco/src/components/Alert/Alert.js +1 -0
  6. package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
  7. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +1 -0
  8. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/Input/Input.js +1 -1
  11. package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js +2 -7
  13. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/RadioGroup/util.js +14 -0
  15. package/dist/esm/packages/taco/src/components/RadioGroup/util.js.map +1 -0
  16. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +4 -0
  17. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  18. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +3 -1
  19. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  20. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
  21. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +2 -2
  22. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +1 -1
  23. package/dist/esm/packages/taco/src/components/Tabs/Tabs.js +9 -1
  24. package/dist/esm/packages/taco/src/components/Tabs/Tabs.js.map +1 -1
  25. package/dist/taco.cjs.development.js +31 -12
  26. package/dist/taco.cjs.development.js.map +1 -1
  27. package/dist/taco.cjs.production.min.js +1 -1
  28. package/dist/taco.cjs.production.min.js.map +1 -1
  29. package/package.json +8 -10
  30. package/tailwind.config.js +0 -1
  31. package/types.json +16 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { EditModeButton } from './components/EditModeButton';\nimport { useLocalization } from '../Provider/Localization';\n\nexport type Table2Texts = {\n columns: {\n resize: {\n tooltip: string;\n };\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n menu: {\n hideColumn: string;\n freezeColumns: (count: number) => string;\n unfreezeColumns: string;\n };\n };\n columnSettings: {\n search: string;\n tooltip: string;\n button: string;\n noResults: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addNewFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n tooltip: string;\n total: string;\n };\n footer: {\n summary: {\n records: string;\n selected: string;\n };\n };\n rowDensity: {\n tooltip: string;\n compact: string;\n normal: string;\n comfortable: string;\n spacious: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nexport type Table2Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n toggleEditing: () => void;\n };\n};\n\nconst BaseTable2 = React.forwardRef(function BaseTable2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n onRowDrop,\n toolbarLeft,\n toolbarRight,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<Table2Ref>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n const prevScrollY = React.useRef<number>(0);\n\n // react-table\n const { rows, table, footers } = useTable(props.children, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n React.useEffect(() => {\n if (tableRef.current) {\n tableRef.current.instance = {\n resetFiltering: () => table.resetColumnFilters(),\n resetRowExpansion: () => table.resetExpanded(),\n resetRowSelection: () => table.resetRowSelection(),\n resetSorting: () => table.resetSorting(),\n toggleEditing: () => meta.editMode.toggleEditing(),\n };\n }\n }, [table, tableRef.current]);\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n virtualiser.scrollToIndex(nextIndex - 1);\n });\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n if (event.key === 'a' && table.options.enableRowSelection) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n const scrollY = event.currentTarget.scrollTop;\n const isScrollingDown = scrollY > prevScrollY.current;\n prevScrollY.current = scrollY;\n\n const scrolledPercentage = Math.round(\n (scrollY / (event.currentTarget.scrollHeight - event.currentTarget.clientHeight)) * 100\n );\n\n if (isScrollingDown && !loadingRef.current && scrolledPercentage >= 80) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } catch (error) {\n console.error(error);\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.shouldPauseHoverState) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setShouldPauseHoverState(false);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = hasInternalToolbar || !!toolbarLeft || !toolbarRight;\n\n const frozenColumnIds = table.getLeftVisibleLeafColumns().map(c => c.id);\n\n return (\n <div className=\"-m-0.5 flex h-full w-[calc(100%_+_0.25rem)] flex-col gap-4 overflow-hidden p-0.5\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbarLeft}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {toolbarRight}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n {/*<ShortcutsGuideButton table={table} />*/}\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n frozenColumnIds={frozenColumnIds}\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row\n className=\"group/row contents\"\n onRowDrop={onRowDrop}\n row={row}\n rowIndex={virtualRow.index}\n table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n frozenColumnIds={frozenColumnIds}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)?.()}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n <div className=\"contents\" data-taco=\"table2-footer\" role=\"rowgroup\">\n <div role=\"row\" className=\"contents\">\n {table.getFooterGroups().map(footerGroup =>\n footerGroup.headers.map((footer, cellIndex) => (\n <Footer\n key={footer.id}\n footer={footer}\n frozenColumnIds={frozenColumnIds}\n index={cellIndex}\n scrolled={scrolled}\n table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))\n )}\n </div>\n <Summary length={length ?? rows.length} table={table} />\n </div>\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as React.ForwardRefExoticComponent<Table2Props<any>> &\n (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nconst Summary = ({ length, table }) => {\n const { texts } = useLocalization();\n\n const selectedLength = table.getIsAllRowsSelected() ? length : table.getSelectedRowModel().rows.length;\n const label = selectedLength > 0 ? texts.table2.footer.summary.selected : texts.table2.footer.summary.records;\n const total = selectedLength > 0 ? selectedLength : length;\n\n return (\n <div\n className={cn(\n 'sticky bottom-0 left-0 z-10 -mt-10 flex h-10 w-fit items-center whitespace-nowrap bg-white px-4 !pr-3 shadow-[6px_0px_6px_theme(colors.white)]'\n )}>\n {label}&nbsp;\n <strong>{total}</strong>\n </div>\n );\n};\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n const key = React.useMemo(() => String('tableKey_' + String(props.children)), [props.children]);\n return <BaseTable2 {...props} key={key} ref={ref} />;\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionRenderer, Table2Settings } from './types';\n"],"names":["Column","_","displayName","BaseTable2","React","forwardRef","props","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","onRowDrop","toolbarLeft","toolbarRight","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","prevScrollY","rows","table","footers","useTable","children","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","current","instance","resetFiltering","resetColumnFilters","resetRowExpansion","resetExpanded","resetRowSelection","resetSorting","toggleEditing","editMode","resetFocussableColumnIndexes","isEditing","clearTimeout","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","setShouldPauseHoverState","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollY","scrollTop","isScrollingDown","scrolledPercentage","Math","round","clientHeight","isAllRowsSelected","getIsAllRowsSelected","error","console","handleMouseLeave","shouldPauseHoverState","className","cn","enableSettingsButton","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","frozenColumnIds","getLeftVisibleLeafColumns","map","c","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","Summary","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary","texts","useLocalization","selectedLength","getSelectedRowModel","label","table2","selected","records","total","Table2","useMemo","String"],"mappings":"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"}
1
+ {"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { EditModeButton } from './components/EditModeButton';\nimport { useLocalization } from '../Provider/Localization';\n\nexport type Table2Texts = {\n columns: {\n resize: {\n tooltip: string;\n };\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n menu: {\n hideColumn: string;\n freezeColumns: (count: number) => string;\n unfreezeColumns: string;\n };\n };\n columnSettings: {\n search: string;\n tooltip: string;\n button: string;\n noResults: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addNewFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n tooltip: string;\n total: string;\n };\n footer: {\n summary: {\n records: string;\n selected: string;\n };\n };\n rowDensity: {\n tooltip: string;\n compact: string;\n normal: string;\n comfortable: string;\n spacious: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nexport type Table2Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n toggleEditing: () => void;\n };\n};\n\nconst BaseTable2 = React.forwardRef(function BaseTable2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n onRowDrop,\n toolbarLeft,\n toolbarRight,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<Table2Ref>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n const prevScrollY = React.useRef<number>(0);\n\n // react-table\n const { rows, table, footers } = useTable(props.children, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n React.useEffect(() => {\n if (tableRef.current) {\n tableRef.current.instance = {\n resetFiltering: () => table.resetColumnFilters(),\n resetRowExpansion: () => table.resetExpanded(),\n resetRowSelection: () => table.resetRowSelection(),\n resetSorting: () => table.resetSorting(),\n toggleEditing: () => meta.editMode.toggleEditing(),\n };\n }\n }, [table, tableRef.current]);\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n virtualiser.scrollToIndex(nextIndex - 1);\n });\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n if (event.key === 'a' && table.options.enableRowSelection) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n const scrollY = event.currentTarget.scrollTop;\n const isScrollingDown = scrollY > prevScrollY.current;\n prevScrollY.current = scrollY;\n\n const scrolledPercentage = Math.round(\n (scrollY / (event.currentTarget.scrollHeight - event.currentTarget.clientHeight)) * 100\n );\n\n if (isScrollingDown && !loadingRef.current && scrolledPercentage >= 80) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } catch (error) {\n console.error(error);\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.shouldPauseHoverState) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setShouldPauseHoverState(false);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = hasInternalToolbar || !!toolbarLeft || !toolbarRight;\n\n const frozenColumnIds = table.getLeftVisibleLeafColumns().map(c => c.id);\n\n return (\n <div className=\"-m-0.5 flex h-full w-[calc(100%_+_0.25rem)] flex-col gap-4 overflow-hidden p-0.5\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbarLeft}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {toolbarRight}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n {/*<ShortcutsGuideButton table={table} />*/}\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n frozenColumnIds={frozenColumnIds}\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row\n className=\"group/row contents\"\n onRowDrop={onRowDrop}\n row={row}\n rowIndex={virtualRow.index}\n table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n frozenColumnIds={frozenColumnIds}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)?.()}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n <div className=\"contents\" data-taco=\"table2-footer\" role=\"rowgroup\">\n <div role=\"row\" className=\"contents\">\n {table.getFooterGroups().map(footerGroup =>\n footerGroup.headers.map((footer, cellIndex) => (\n <Footer\n key={footer.id}\n footer={footer}\n frozenColumnIds={frozenColumnIds}\n index={cellIndex}\n scrolled={scrolled}\n table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))\n )}\n </div>\n <Summary length={length ?? rows.length} table={table} />\n </div>\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as React.ForwardRefExoticComponent<Table2Props<any>> &\n (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nconst Summary = ({ length, table }) => {\n const { texts } = useLocalization();\n\n const selectedLength = table.getIsAllRowsSelected() ? length : table.getSelectedRowModel().rows.length;\n const label = selectedLength > 0 ? texts.table2.footer.summary.selected : texts.table2.footer.summary.records;\n const total = selectedLength > 0 ? selectedLength : length;\n\n return (\n <div\n className={cn(\n 'sticky bottom-0 left-0 z-10 -mt-10 flex h-10 w-fit items-center whitespace-nowrap bg-white px-4 !pr-3 shadow-[6px_0px_6px_theme(colors.white)]'\n )}>\n {label}&nbsp;\n <strong>{total}</strong>\n </div>\n );\n};\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n const key = React.useMemo(() => String('tableKey_' + String(props.children)), [props.children]);\n return <BaseTable2 {...props} key={key} ref={ref} />;\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type {\n Table2ColumnProps,\n Table2ActionProps,\n Table2RowActionRenderer,\n Table2Settings,\n Table2Filter,\n Table2FilterComparator,\n} from './types';\n"],"names":["Column","_","displayName","BaseTable2","React","forwardRef","props","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","onRowDrop","toolbarLeft","toolbarRight","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","prevScrollY","rows","table","footers","useTable","children","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","current","instance","resetFiltering","resetColumnFilters","resetRowExpansion","resetExpanded","resetRowSelection","resetSorting","toggleEditing","editMode","resetFocussableColumnIndexes","isEditing","clearTimeout","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","setShouldPauseHoverState","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollY","scrollTop","isScrollingDown","scrolledPercentage","Math","round","clientHeight","isAllRowsSelected","getIsAllRowsSelected","error","console","handleMouseLeave","shouldPauseHoverState","className","cn","enableSettingsButton","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","frozenColumnIds","getLeftVisibleLeafColumns","map","c","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","Summary","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary","texts","useLocalization","selectedLength","getSelectedRowModel","label","table2","selected","records","total","Table2","useMemo","String"],"mappings":"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"}
@@ -115,8 +115,8 @@ function useTable(children, props, ref) {
115
115
  }
116
116
  // sorting
117
117
  if (options.enableSorting) {
118
- var _settings$sorting;
119
- initialState.sorting = (_settings$sorting = settings === null || settings === void 0 ? void 0 : settings.sorting) !== null && _settings$sorting !== void 0 ? _settings$sorting : defaultSorting;
118
+ const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
119
+ initialState.sorting = settings !== null && settings !== void 0 && settings.sorting ? settings === null || settings === void 0 ? void 0 : settings.sorting.filter(sanitizeSortedColumns) : defaultSorting;
120
120
  if (manualSorting) {
121
121
  options.manualSorting = true;
122
122
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table2/hooks/useTable.ts"],"sourcesContent":["import React from 'react';\nimport {\n useReactTable,\n getCoreRowModel,\n OnChangeFn,\n getSortedRowModel,\n getFilteredRowModel,\n RowData,\n TableState,\n TableOptions,\n} from '@tanstack/react-table';\nimport { RowClickHandler, RowDensity, Table2Children, Table2Props } from '../types';\nimport { useColumnDefinitions } from './useColumnDefinitions';\nimport { useColumnOffsetStateListener } from './listeners/useColumnOffsetStateListener';\nimport { ColumnOffsetState } from '../types';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../utilities/filterFn';\nimport { ActiveRowHandler, ActiveRowMoveHandler, useActiveRow } from './useActiveRow';\nimport { useActiveRowStateListener } from './listeners/useActiveRowStateListener';\nimport { useEditMode } from './useEditMode';\nimport { useIsHoverStatePaused } from '../../../hooks/useIsHoverStatePaused';\nimport { useFilterStateListener } from './listeners/useFilterStateListener';\nimport { ensureOrdering } from '../utilities/columns';\nimport { useTableShortcuts } from './useTableShortcuts';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n // active row\n activeRowIndex: number;\n setActiveRowIndex: ActiveRowHandler;\n moveToPreviousRow: ActiveRowMoveHandler<TData>;\n moveToNextRow: ActiveRowMoveHandler<TData>;\n // offsets\n columnOffsets: ColumnOffsetState;\n // density\n enableRowDensity: boolean;\n rowDensity: RowDensity;\n setRowDensity: OnChangeFn<RowDensity>;\n // dragging\n enableRowDragging: boolean;\n dragging: Record<string, boolean>;\n setDragging: OnChangeFn<Record<string, boolean>>;\n // computed\n enableColumnFreezing: boolean;\n enableColumnReordering: boolean;\n enableColumnHiding: boolean;\n shouldPauseSortingAndFiltering: boolean;\n setShouldPauseSortingAndFiltering: OnChangeFn<boolean>;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: OnChangeFn<boolean>;\n frozenColumnsCount: number;\n setFrozenColumnsCount: OnChangeFn<number>;\n // other\n onRowClick?: RowClickHandler<TData>;\n // editing\n editMode: useEditMode;\n // used to determine first and last data column position\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n // disable table actions\n shouldDisableTableActions: boolean;\n setShouldDisableTableActions: OnChangeFn<boolean>;\n // active row column indexes\n focussableColumnIndexes: number[];\n addFocussableColumnIndex: (index: number) => void;\n resetFocussableColumnIndexes: () => void;\n // table ref\n tableRef: React.RefObject<HTMLDivElement>;\n // last sorted or filtered rows\n lastSortedOrFilteredRows: React.MutableRefObject<Array<any>>;\n }\n}\n\nconst ACTIONS_ON_ROW_LENGTH = 4;\n\nexport function useTable<TType = any>(children: Table2Children, props: Table2Props<TType>, ref: React.RefObject<HTMLDivElement>) {\n const {\n actionsForRow = [],\n actionsForRowLength = ACTIONS_ON_ROW_LENGTH,\n data,\n defaultActiveRowIndex,\n disableColumnFiltering = false,\n disableColumnHiding = false,\n disableColumnFreezing = false,\n disableColumnReordering = false,\n disableColumnResizing = false,\n disableRowDensity = false,\n disableRowExpansion = false,\n disableRowSelection = false,\n disableMultipleRowSelection = false,\n disableSearch = false,\n disableSorting = false,\n expandedRowRenderer,\n manualColumnFiltering = false,\n manualSearch = false,\n manualSorting = false,\n onChangeSettings,\n onRowClick,\n onRowDrag,\n onRowSelect,\n onSave,\n settings = {},\n shortcuts,\n // experimental\n _experimentalActionsForTable,\n } = props;\n\n const enableRowExpansion = !disableRowExpansion && !!expandedRowRenderer;\n const enableRowSelection = !disableRowSelection && (!!onRowSelect || !!_experimentalActionsForTable?.length);\n const enableMultipleRowSelection = !disableMultipleRowSelection && enableRowSelection;\n\n const { columns, internalFrozenColumnCount, defaultColumnSizing, defaultSorting, defaultColumnVisibility, footers } =\n useColumnDefinitions<TType>(\n children,\n {\n actionsForRow,\n actionsForRowLength,\n enableColumnFiltering: !disableColumnFiltering,\n enableColumnHiding: !disableColumnHiding,\n enableColumnFreezing: !disableColumnFreezing,\n enableRowExpansion,\n enableRowSelection,\n enableMultipleRowSelection,\n expandedRowRenderer,\n onRowDrag,\n },\n ref\n );\n\n const lastSortedOrFilteredRows = React.useRef<any>(null);\n const totalFrozenColumns = internalFrozenColumnCount + (settings?.frozenColumnCount ?? 0);\n const frozenColumns = columns.slice(0, totalFrozenColumns).map(column => column.id);\n\n // defaults\n const initialState: Partial<TableState> = {\n columnOrder: ensureOrdering<TType>(columns, settings?.columnOrder),\n columnPinning: {\n left: frozenColumns,\n right: [],\n },\n columnSizing: settings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: settings?.columnVisibility ?? defaultColumnVisibility,\n };\n\n // Data column index - these are needed to make sure left and right arrow key shortcuts focuses only the data columns\n const dataColumnStartOffset = [!!onRowDrag, !!enableRowExpansion, !!enableRowSelection].reduce((t, e) => t + (e ? 1 : 0), 0);\n const dataColumnEndOffset = actionsForRow.length ? 1 : 0;\n\n // custom\n const activeRow = useActiveRow<TType>(defaultActiveRowIndex);\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n const editMode = useEditMode(onSave);\n const [columnOffsets, setColumnOffsets] = React.useState({});\n const [rowDensity, setRowDensity] = React.useState<RowDensity>(settings?.rowDensity ?? 'normal');\n const [dragging, setDragging] = React.useState<Record<string, boolean>>({});\n const [shouldPauseSortingAndFiltering, setShouldPauseSortingAndFiltering] = React.useState<boolean>(false);\n const [shouldDisableTableActions, setShouldDisableTableActions] = React.useState<boolean>(false);\n // Frozen column count is the count of external columns that are frozen\n const [frozenColumnsCount, setFrozenColumnsCount] = React.useState(totalFrozenColumns - internalFrozenColumnCount);\n // For some reason, using state instead of ref didn't work as expected, that's why ref is used\n const focussableColumnIndexes = React.useRef<number[]>([]);\n\n // some options get set even if they are undefined, so we have to do it conditionally\n const options: Partial<TableOptions<any>> = {\n enableExpanding: enableRowExpansion,\n enableColumnFilters: !disableColumnFiltering,\n enableColumnResizing: !disableColumnResizing,\n enableGlobalFilter: !disableSearch,\n enableHiding: !disableColumnHiding,\n enablePinning: !disableColumnFreezing,\n enableRowSelection: enableRowSelection,\n enableMultiRowSelection: enableMultipleRowSelection,\n enableSorting: !disableSorting,\n };\n\n // resizing\n if (options.enableColumnResizing) {\n options.columnResizeMode = 'onChange';\n }\n\n // sorting\n if (options.enableSorting) {\n initialState.sorting = settings?.sorting ?? defaultSorting;\n\n if (manualSorting) {\n options.manualSorting = true;\n } else {\n options.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // filtering\n if (options.enableColumnFilters) {\n initialState.columnFilters = settings?.columnFilters ?? [];\n\n if (manualColumnFiltering) {\n options.manualFiltering = true;\n } else {\n options.filterFns = {\n tacoFilter: (row, columnId, filter) => columnFilterFn(row.getValue(columnId), filter),\n };\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (options.enableGlobalFilter) {\n if (manualSearch) {\n options.manualFiltering = true;\n } else {\n options.globalFilterFn = (row, columnId, query) => globalFilterFn(row.getValue(columnId), query);\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n const table = useReactTable({\n data,\n columns: columns as any,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...options,\n meta: {\n ...activeRow,\n editMode,\n // offsets\n columnOffsets,\n // density\n enableRowDensity: !disableRowDensity,\n rowDensity,\n setRowDensity,\n // dragging\n enableRowDragging: !!onRowDrag,\n dragging,\n setDragging,\n // computed\n enableColumnFreezing: !disableColumnFreezing,\n enableColumnReordering: !disableColumnReordering,\n enableColumnHiding: !disableColumnHiding,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n frozenColumnsCount,\n setFrozenColumnsCount,\n // resorting\n shouldPauseSortingAndFiltering,\n setShouldPauseSortingAndFiltering,\n // other\n onRowClick,\n // data column positions\n dataColumnStartOffset,\n dataColumnEndOffset,\n // disable table actions\n shouldDisableTableActions,\n setShouldDisableTableActions,\n // active row column indexes\n focussableColumnIndexes: focussableColumnIndexes.current,\n addFocussableColumnIndex: (index: number) => {\n if (!focussableColumnIndexes.current.includes(index)) {\n focussableColumnIndexes.current = [...focussableColumnIndexes.current, index].sort((a, b) => a - b);\n }\n },\n resetFocussableColumnIndexes: () => {\n focussableColumnIndexes.current = [];\n },\n // table ref\n tableRef: ref,\n // last sorted or filtered rows\n lastSortedOrFilteredRows,\n },\n });\n\n const tableRows = table.getRowModel().rows;\n\n if (!shouldPauseSortingAndFiltering) {\n lastSortedOrFilteredRows.current = tableRows;\n }\n\n const rows = shouldPauseSortingAndFiltering ? lastSortedOrFilteredRows.current : tableRows;\n\n // state listeners\n useActiveRowStateListener<TType>(table, rows, activeRow);\n useColumnOffsetStateListener(table, setColumnOffsets);\n useFilterStateListener<TType>(table, onRowSelect);\n useRowSelectionListener<TType>(table, onRowSelect);\n useSettingsStateListener(table, onChangeSettings);\n\n useTableShortcuts(shortcuts, tableRows[activeRow.activeRowIndex]?.original);\n\n return { rows, table, footers };\n}\n"],"names":["ACTIONS_ON_ROW_LENGTH","useTable","children","props","ref","actionsForRow","actionsForRowLength","data","defaultActiveRowIndex","disableColumnFiltering","disableColumnHiding","disableColumnFreezing","disableColumnReordering","disableColumnResizing","disableRowDensity","disableRowExpansion","disableRowSelection","disableMultipleRowSelection","disableSearch","disableSorting","expandedRowRenderer","manualColumnFiltering","manualSearch","manualSorting","onChangeSettings","onRowClick","onRowDrag","onRowSelect","onSave","settings","shortcuts","_experimentalActionsForTable","enableRowExpansion","enableRowSelection","length","enableMultipleRowSelection","columns","internalFrozenColumnCount","defaultColumnSizing","defaultSorting","defaultColumnVisibility","footers","useColumnDefinitions","enableColumnFiltering","enableColumnHiding","enableColumnFreezing","lastSortedOrFilteredRows","React","useRef","totalFrozenColumns","frozenColumnCount","frozenColumns","slice","map","column","id","initialState","columnOrder","ensureOrdering","columnPinning","left","right","columnSizing","columnVisibility","dataColumnStartOffset","reduce","t","e","dataColumnEndOffset","activeRow","useActiveRow","shouldPauseHoverState","setShouldPauseHoverState","useIsHoverStatePaused","editMode","useEditMode","columnOffsets","setColumnOffsets","useState","rowDensity","setRowDensity","dragging","setDragging","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","shouldDisableTableActions","setShouldDisableTableActions","frozenColumnsCount","setFrozenColumnsCount","focussableColumnIndexes","options","enableExpanding","enableColumnFilters","enableColumnResizing","enableGlobalFilter","enableHiding","enablePinning","enableMultiRowSelection","enableSorting","columnResizeMode","sorting","getSortedRowModel","columnFilters","manualFiltering","filterFns","tacoFilter","row","columnId","filter","columnFilterFn","getValue","getFilteredRowModel","globalFilterFn","query","table","useReactTable","getCoreRowModel","meta","enableRowDensity","enableRowDragging","enableColumnReordering","current","addFocussableColumnIndex","index","includes","sort","a","b","resetFocussableColumnIndexes","tableRef","tableRows","getRowModel","rows","useActiveRowStateListener","useColumnOffsetStateListener","useFilterStateListener","useRowSelectionListener","useSettingsStateListener","useTableShortcuts","activeRowIndex","original"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table2/hooks/useTable.ts"],"sourcesContent":["import React from 'react';\nimport {\n useReactTable,\n getCoreRowModel,\n OnChangeFn,\n getSortedRowModel,\n getFilteredRowModel,\n RowData,\n TableState,\n TableOptions,\n} from '@tanstack/react-table';\nimport { RowClickHandler, RowDensity, Table2Children, Table2Props } from '../types';\nimport { useColumnDefinitions } from './useColumnDefinitions';\nimport { useColumnOffsetStateListener } from './listeners/useColumnOffsetStateListener';\nimport { ColumnOffsetState } from '../types';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../utilities/filterFn';\nimport { ActiveRowHandler, ActiveRowMoveHandler, useActiveRow } from './useActiveRow';\nimport { useActiveRowStateListener } from './listeners/useActiveRowStateListener';\nimport { useEditMode } from './useEditMode';\nimport { useIsHoverStatePaused } from '../../../hooks/useIsHoverStatePaused';\nimport { useFilterStateListener } from './listeners/useFilterStateListener';\nimport { ensureOrdering } from '../utilities/columns';\nimport { useTableShortcuts } from './useTableShortcuts';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n // active row\n activeRowIndex: number;\n setActiveRowIndex: ActiveRowHandler;\n moveToPreviousRow: ActiveRowMoveHandler<TData>;\n moveToNextRow: ActiveRowMoveHandler<TData>;\n // offsets\n columnOffsets: ColumnOffsetState;\n // density\n enableRowDensity: boolean;\n rowDensity: RowDensity;\n setRowDensity: OnChangeFn<RowDensity>;\n // dragging\n enableRowDragging: boolean;\n dragging: Record<string, boolean>;\n setDragging: OnChangeFn<Record<string, boolean>>;\n // computed\n enableColumnFreezing: boolean;\n enableColumnReordering: boolean;\n enableColumnHiding: boolean;\n shouldPauseSortingAndFiltering: boolean;\n setShouldPauseSortingAndFiltering: OnChangeFn<boolean>;\n shouldPauseHoverState: boolean;\n setShouldPauseHoverState: OnChangeFn<boolean>;\n frozenColumnsCount: number;\n setFrozenColumnsCount: OnChangeFn<number>;\n // other\n onRowClick?: RowClickHandler<TData>;\n // editing\n editMode: useEditMode;\n // used to determine first and last data column position\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n // disable table actions\n shouldDisableTableActions: boolean;\n setShouldDisableTableActions: OnChangeFn<boolean>;\n // active row column indexes\n focussableColumnIndexes: number[];\n addFocussableColumnIndex: (index: number) => void;\n resetFocussableColumnIndexes: () => void;\n // table ref\n tableRef: React.RefObject<HTMLDivElement>;\n // last sorted or filtered rows\n lastSortedOrFilteredRows: React.MutableRefObject<Array<any>>;\n }\n}\n\nconst ACTIONS_ON_ROW_LENGTH = 4;\n\nexport function useTable<TType = any>(children: Table2Children, props: Table2Props<TType>, ref: React.RefObject<HTMLDivElement>) {\n const {\n actionsForRow = [],\n actionsForRowLength = ACTIONS_ON_ROW_LENGTH,\n data,\n defaultActiveRowIndex,\n disableColumnFiltering = false,\n disableColumnHiding = false,\n disableColumnFreezing = false,\n disableColumnReordering = false,\n disableColumnResizing = false,\n disableRowDensity = false,\n disableRowExpansion = false,\n disableRowSelection = false,\n disableMultipleRowSelection = false,\n disableSearch = false,\n disableSorting = false,\n expandedRowRenderer,\n manualColumnFiltering = false,\n manualSearch = false,\n manualSorting = false,\n onChangeSettings,\n onRowClick,\n onRowDrag,\n onRowSelect,\n onSave,\n settings = {},\n shortcuts,\n // experimental\n _experimentalActionsForTable,\n } = props;\n\n const enableRowExpansion = !disableRowExpansion && !!expandedRowRenderer;\n const enableRowSelection = !disableRowSelection && (!!onRowSelect || !!_experimentalActionsForTable?.length);\n const enableMultipleRowSelection = !disableMultipleRowSelection && enableRowSelection;\n\n const { columns, internalFrozenColumnCount, defaultColumnSizing, defaultSorting, defaultColumnVisibility, footers } =\n useColumnDefinitions<TType>(\n children,\n {\n actionsForRow,\n actionsForRowLength,\n enableColumnFiltering: !disableColumnFiltering,\n enableColumnHiding: !disableColumnHiding,\n enableColumnFreezing: !disableColumnFreezing,\n enableRowExpansion,\n enableRowSelection,\n enableMultipleRowSelection,\n expandedRowRenderer,\n onRowDrag,\n },\n ref\n );\n\n const lastSortedOrFilteredRows = React.useRef<any>(null);\n const totalFrozenColumns = internalFrozenColumnCount + (settings?.frozenColumnCount ?? 0);\n const frozenColumns = columns.slice(0, totalFrozenColumns).map(column => column.id);\n\n // defaults\n const initialState: Partial<TableState> = {\n columnOrder: ensureOrdering<TType>(columns, settings?.columnOrder),\n columnPinning: {\n left: frozenColumns,\n right: [],\n },\n columnSizing: settings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: settings?.columnVisibility ?? defaultColumnVisibility,\n };\n\n // Data column index - these are needed to make sure left and right arrow key shortcuts focuses only the data columns\n const dataColumnStartOffset = [!!onRowDrag, !!enableRowExpansion, !!enableRowSelection].reduce((t, e) => t + (e ? 1 : 0), 0);\n const dataColumnEndOffset = actionsForRow.length ? 1 : 0;\n\n // custom\n const activeRow = useActiveRow<TType>(defaultActiveRowIndex);\n const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();\n const editMode = useEditMode(onSave);\n const [columnOffsets, setColumnOffsets] = React.useState({});\n const [rowDensity, setRowDensity] = React.useState<RowDensity>(settings?.rowDensity ?? 'normal');\n const [dragging, setDragging] = React.useState<Record<string, boolean>>({});\n const [shouldPauseSortingAndFiltering, setShouldPauseSortingAndFiltering] = React.useState<boolean>(false);\n const [shouldDisableTableActions, setShouldDisableTableActions] = React.useState<boolean>(false);\n // Frozen column count is the count of external columns that are frozen\n const [frozenColumnsCount, setFrozenColumnsCount] = React.useState(totalFrozenColumns - internalFrozenColumnCount);\n // For some reason, using state instead of ref didn't work as expected, that's why ref is used\n const focussableColumnIndexes = React.useRef<number[]>([]);\n\n // some options get set even if they are undefined, so we have to do it conditionally\n const options: Partial<TableOptions<any>> = {\n enableExpanding: enableRowExpansion,\n enableColumnFilters: !disableColumnFiltering,\n enableColumnResizing: !disableColumnResizing,\n enableGlobalFilter: !disableSearch,\n enableHiding: !disableColumnHiding,\n enablePinning: !disableColumnFreezing,\n enableRowSelection: enableRowSelection,\n enableMultiRowSelection: enableMultipleRowSelection,\n enableSorting: !disableSorting,\n };\n\n // resizing\n if (options.enableColumnResizing) {\n options.columnResizeMode = 'onChange';\n }\n\n // sorting\n if (options.enableSorting) {\n const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n initialState.sorting = settings?.sorting ? settings?.sorting.filter(sanitizeSortedColumns) : defaultSorting;\n\n if (manualSorting) {\n options.manualSorting = true;\n } else {\n options.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // filtering\n if (options.enableColumnFilters) {\n initialState.columnFilters = settings?.columnFilters ?? [];\n\n if (manualColumnFiltering) {\n options.manualFiltering = true;\n } else {\n options.filterFns = {\n tacoFilter: (row, columnId, filter) => columnFilterFn(row.getValue(columnId), filter),\n };\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (options.enableGlobalFilter) {\n if (manualSearch) {\n options.manualFiltering = true;\n } else {\n options.globalFilterFn = (row, columnId, query) => globalFilterFn(row.getValue(columnId), query);\n options.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n const table = useReactTable({\n data,\n columns: columns as any,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...options,\n meta: {\n ...activeRow,\n editMode,\n // offsets\n columnOffsets,\n // density\n enableRowDensity: !disableRowDensity,\n rowDensity,\n setRowDensity,\n // dragging\n enableRowDragging: !!onRowDrag,\n dragging,\n setDragging,\n // computed\n enableColumnFreezing: !disableColumnFreezing,\n enableColumnReordering: !disableColumnReordering,\n enableColumnHiding: !disableColumnHiding,\n shouldPauseHoverState,\n setShouldPauseHoverState,\n frozenColumnsCount,\n setFrozenColumnsCount,\n // resorting\n shouldPauseSortingAndFiltering,\n setShouldPauseSortingAndFiltering,\n // other\n onRowClick,\n // data column positions\n dataColumnStartOffset,\n dataColumnEndOffset,\n // disable table actions\n shouldDisableTableActions,\n setShouldDisableTableActions,\n // active row column indexes\n focussableColumnIndexes: focussableColumnIndexes.current,\n addFocussableColumnIndex: (index: number) => {\n if (!focussableColumnIndexes.current.includes(index)) {\n focussableColumnIndexes.current = [...focussableColumnIndexes.current, index].sort((a, b) => a - b);\n }\n },\n resetFocussableColumnIndexes: () => {\n focussableColumnIndexes.current = [];\n },\n // table ref\n tableRef: ref,\n // last sorted or filtered rows\n lastSortedOrFilteredRows,\n },\n });\n\n const tableRows = table.getRowModel().rows;\n\n if (!shouldPauseSortingAndFiltering) {\n lastSortedOrFilteredRows.current = tableRows;\n }\n\n const rows = shouldPauseSortingAndFiltering ? lastSortedOrFilteredRows.current : tableRows;\n\n // state listeners\n useActiveRowStateListener<TType>(table, rows, activeRow);\n useColumnOffsetStateListener(table, setColumnOffsets);\n useFilterStateListener<TType>(table, onRowSelect);\n useRowSelectionListener<TType>(table, onRowSelect);\n useSettingsStateListener(table, onChangeSettings);\n\n useTableShortcuts(shortcuts, tableRows[activeRow.activeRowIndex]?.original);\n\n return { rows, table, footers };\n}\n"],"names":["ACTIONS_ON_ROW_LENGTH","useTable","children","props","ref","actionsForRow","actionsForRowLength","data","defaultActiveRowIndex","disableColumnFiltering","disableColumnHiding","disableColumnFreezing","disableColumnReordering","disableColumnResizing","disableRowDensity","disableRowExpansion","disableRowSelection","disableMultipleRowSelection","disableSearch","disableSorting","expandedRowRenderer","manualColumnFiltering","manualSearch","manualSorting","onChangeSettings","onRowClick","onRowDrag","onRowSelect","onSave","settings","shortcuts","_experimentalActionsForTable","enableRowExpansion","enableRowSelection","length","enableMultipleRowSelection","columns","internalFrozenColumnCount","defaultColumnSizing","defaultSorting","defaultColumnVisibility","footers","useColumnDefinitions","enableColumnFiltering","enableColumnHiding","enableColumnFreezing","lastSortedOrFilteredRows","React","useRef","totalFrozenColumns","frozenColumnCount","frozenColumns","slice","map","column","id","initialState","columnOrder","ensureOrdering","columnPinning","left","right","columnSizing","columnVisibility","dataColumnStartOffset","reduce","t","e","dataColumnEndOffset","activeRow","useActiveRow","shouldPauseHoverState","setShouldPauseHoverState","useIsHoverStatePaused","editMode","useEditMode","columnOffsets","setColumnOffsets","useState","rowDensity","setRowDensity","dragging","setDragging","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","shouldDisableTableActions","setShouldDisableTableActions","frozenColumnsCount","setFrozenColumnsCount","focussableColumnIndexes","options","enableExpanding","enableColumnFilters","enableColumnResizing","enableGlobalFilter","enableHiding","enablePinning","enableMultiRowSelection","enableSorting","columnResizeMode","sanitizeSortedColumns","find","definedColumn","sorting","filter","getSortedRowModel","columnFilters","manualFiltering","filterFns","tacoFilter","row","columnId","columnFilterFn","getValue","getFilteredRowModel","globalFilterFn","query","table","useReactTable","getCoreRowModel","meta","enableRowDensity","enableRowDragging","enableColumnReordering","current","addFocussableColumnIndex","index","includes","sort","a","b","resetFocussableColumnIndexes","tableRef","tableRows","getRowModel","rows","useActiveRowStateListener","useColumnOffsetStateListener","useFilterStateListener","useRowSelectionListener","useSettingsStateListener","useTableShortcuts","activeRowIndex","original"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { forwardRef, createElement } from 'react';
2
2
  import cn from 'classnames';
3
+ import { Tooltip } from '../Tooltip/Tooltip.js';
3
4
  import { getButtonClasses } from '../Button/util.js';
4
5
  import { Root, List, Trigger, Content } from '@radix-ui/react-tabs';
5
6
 
@@ -38,6 +39,7 @@ const TabTrigger = /*#__PURE__*/forwardRef(function Tab(props, ref) {
38
39
  children,
39
40
  id,
40
41
  disabled,
42
+ tooltip,
41
43
  ...otherProps
42
44
  } = props;
43
45
  const triggerClassName = cn('group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',
@@ -51,7 +53,7 @@ const TabTrigger = /*#__PURE__*/forwardRef(function Tab(props, ref) {
51
53
  '[[aria-orientation="horizontal"]_&]:rounded-t-sm [[aria-orientation="horizontal"]_&]:bottom-0 [[aria-orientation="horizontal"]_&]:left-0 [[aria-orientation="horizontal"]_&]:right-0 [[aria-orientation="horizontal"]_&]:-mb-px [[aria-orientation="horizontal"]_&]:h-0.5',
52
54
  // vertical
53
55
  '[[aria-orientation="vertical"]_&]:rounded-l-sm [[aria-orientation="vertical"]_&]:right-0 [[aria-orientation="vertical"]_&]:top-0 [[aria-orientation="vertical"]_&]:bottom-0 [[aria-orientation="vertical"]_&]:-mr-px [[aria-orientation="vertical"]_&]:w-0.5');
54
- return /*#__PURE__*/createElement(Trigger, Object.assign({}, otherProps, {
56
+ const trigger = /*#__PURE__*/createElement(Trigger, Object.assign({}, otherProps, {
55
57
  className: triggerClassName,
56
58
  disabled: disabled,
57
59
  ref: ref,
@@ -61,6 +63,12 @@ const TabTrigger = /*#__PURE__*/forwardRef(function Tab(props, ref) {
61
63
  }, children), /*#__PURE__*/createElement("span", {
62
64
  className: activeClassName
63
65
  }));
66
+ if (tooltip) {
67
+ return /*#__PURE__*/createElement(Tooltip, {
68
+ title: tooltip
69
+ }, trigger);
70
+ }
71
+ return trigger;
64
72
  });
65
73
  const TabContent = /*#__PURE__*/forwardRef(function Tab(props, ref) {
66
74
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { Orientation } from '../../types';\nimport { getButtonClasses } from '../Button/util';\n\nexport type TabsProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n};\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n};\n\nexport type ForwardedTabsWithStatics = React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n return (\n <TabsPrimitive.Root\n {...otherProps}\n className={className}\n data-taco=\"tabs\"\n defaultValue={defaultId}\n dir=\"ltr\"\n onValueChange={onChange}\n orientation={orientation}\n ref={ref}\n value={id}>\n {children}\n </TabsPrimitive.Root>\n );\n}) as ForwardedTabsWithStatics;\n\nconst TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn(\n 'border-grey-300 flex flex-row m-0 mb-4',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:border-r aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col ',\n props.className\n );\n\n return <TabsPrimitive.List {...props} className={className} ref={ref} />;\n});\n\nconst TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, ...otherProps } = props;\n\n const triggerClassName = cn(\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // horizontal\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'group-focus-visible:yt-focus-inset group-enabled:group-hover:wcag-grey-200 pointer-events-none rounded px-3'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:rounded-t-sm [[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:-mb-px [[aria-orientation=\"horizontal\"]_&]:h-0.5',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:rounded-l-sm [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:-mr-px [[aria-orientation=\"vertical\"]_&]:w-0.5'\n );\n\n return (\n <TabsPrimitive.Trigger {...otherProps} className={triggerClassName} disabled={disabled} ref={ref} value={id}>\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </TabsPrimitive.Trigger>\n );\n});\n\nconst TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, ...otherProps } = props;\n const className = cn('[&[data-orientation=\"vertical\"]]:grow outline-none', props.className);\n\n return <TabsPrimitive.Content {...otherProps} className={className} ref={ref} value={id} />;\n});\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabContent;\n"],"names":["Tabs","React","props","ref","id","defaultId","children","onChange","orientation","otherProps","className","cn","TabsPrimitive","defaultValue","dir","onValueChange","value","TabList","Tab","TabTrigger","disabled","triggerClassName","buttonClassName","getButtonClasses","activeClassName","TabContent","List","Trigger","Content"],"mappings":";;;;;MA8DaA,IAAI,gBAAGC,UAAgB,CAAC,SAASD,IAAI,CAACE,KAAgB,EAAEC,GAA8B;EAC/F,MAAM;IAAEC,EAAE;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,WAAW,GAAG,YAAY;IAAE,GAAGC;GAAY,GAAGP,KAAK;EAC9F,MAAMQ,SAAS,GAAGC,EAAE,CAChB;IACI,aAAa,EAAEH,WAAW,KAAK;GAClC,EACDN,KAAK,CAACQ,SAAS,CAClB;EAED,oBACIT,cAACW,IAAkB,oBACXH,UAAU;IACdC,SAAS,EAAEA,SAAS;iBACV,MAAM;IAChBG,YAAY,EAAER,SAAS;IACvBS,GAAG,EAAC,KAAK;IACTC,aAAa,EAAER,QAAQ;IACvBC,WAAW,EAAEA,WAAW;IACxBL,GAAG,EAAEA,GAAG;IACRa,KAAK,EAAEZ;MACNE,QAAQ,CACQ;AAE7B,CAAC;AAED,MAAMW,OAAO,gBAAGhB,UAAgB,CAAC,SAASiB,GAAG,CAAChB,KAAmB,EAAEC,GAA8B;EAC7F,MAAMO,SAAS,GAAGC,EAAE,CAChB,wCAAwC,EACxC,sCAAsC,EACtC,qIAAqI,EACrIT,KAAK,CAACQ,SAAS,CAClB;EAED,oBAAOT,cAACW,IAAkB,oBAAKV,KAAK;IAAEQ,SAAS,EAAEA,SAAS;IAAEP,GAAG,EAAEA;KAAO;AAC5E,CAAC,CAAC;AAEF,MAAMgB,UAAU,gBAAGlB,UAAgB,CAAC,SAASiB,GAAG,CAAChB,KAAsB,EAAEC,GAAiC;EACtG,MAAM;IAAEG,QAAQ;IAAEF,EAAE;IAAEgB,QAAQ;IAAE,GAAGX;GAAY,GAAGP,KAAK;EAEvD,MAAMmB,gBAAgB,GAAGV,EAAE,CACvB,sFAAsF;;EAEtF,0CAA0C;;EAE1C,wCAAwC,CAC3C;EACD,MAAMW,eAAe,GAAGX,EAAE,CACtBY,gBAAgB,EAAE,EAClB,6GAA6G,CAChH;EACD,MAAMC,eAAe,GAAGb,EAAE,CACtB,0EAA0E;;EAE1E,2QAA2Q;;EAE3Q,8PAA8P,CACjQ;EAED,oBACIV,cAACW,OAAqB,oBAAKH,UAAU;IAAEC,SAAS,EAAEW,gBAAgB;IAAED,QAAQ,EAAEA,QAAQ;IAAEjB,GAAG,EAAEA,GAAG;IAAEa,KAAK,EAAEZ;mBACrGH;IAAMS,SAAS,EAAEY;KAAkBhB,QAAQ,CAAQ,eACnDL;IAAMS,SAAS,EAAEc;IAAmB,CAChB;AAEhC,CAAC,CAAC;AAEF,MAAMC,UAAU,gBAAGxB,UAAgB,CAAC,SAASiB,GAAG,CAAChB,KAAsB,EAAEC,GAA8B;EACnG,MAAM;IAAEC,EAAE;IAAE,GAAGK;GAAY,GAAGP,KAAK;EACnC,MAAMQ,SAAS,GAAGC,EAAE,CAAC,oDAAoD,EAAET,KAAK,CAACQ,SAAS,CAAC;EAE3F,oBAAOT,cAACW,OAAqB,oBAAKH,UAAU;IAAEC,SAAS,EAAEA,SAAS;IAAEP,GAAG,EAAEA,GAAG;IAAEa,KAAK,EAAEZ;KAAM;AAC/F,CAAC,CAAC;AAEFJ,IAAI,CAAC0B,IAAI,GAAGT,OAAO;AACnBjB,IAAI,CAAC2B,OAAO,GAAGR,UAAU;AACzBnB,IAAI,CAAC4B,OAAO,GAAGH,UAAU;;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\nimport { Orientation } from '../../types';\nimport { getButtonClasses } from '../Button/util';\nimport { Tooltip } from '../Tooltip/Tooltip';\n\nexport type TabsProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\n */\n id?: string;\n /**\n * Set which tab is selected on mount.\n * This has to be one of the existing ids provided for tabs\n */\n defaultId?: string;\n /**\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\n * followed by one or an array of `Tabs.Content`.\n * *Note* that there can also be tabs that are rendered conditionally.\n */\n children: React.ReactNode;\n /**\n * Define orientation of tabs.\n * @defaultValue horizontal\n */\n orientation?: Orientation;\n /**\n * Callback that is called when tab is changed.\n */\n onChange?: (id: string) => void;\n};\n\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\n /**\n * A unique value that associates the trigger with a content.\n */\n id: string;\n /**\n * When true, prevents the user from interacting with the tab.\n */\n disabled?: boolean;\n /** A tooltip to show when hovering over the trigger */\n tooltip?: string | JSX.Element;\n};\n\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\n /**\n * A unique value that associates the content with a trigger.\n */\n id: string;\n};\n\nexport type ForwardedTabsWithStatics = React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\n /** Tab trigger component rendered in a `Tabs.List` component */\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\n /** Tab content component rendered in a `Tabs` group component */\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\n};\n\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\n const className = cn(\n {\n 'flex w-full': orientation === 'vertical',\n },\n props.className\n );\n\n return (\n <TabsPrimitive.Root\n {...otherProps}\n className={className}\n data-taco=\"tabs\"\n defaultValue={defaultId}\n dir=\"ltr\"\n onValueChange={onChange}\n orientation={orientation}\n ref={ref}\n value={id}>\n {children}\n </TabsPrimitive.Root>\n );\n}) as ForwardedTabsWithStatics;\n\nconst TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\n const className = cn(\n 'border-grey-300 flex flex-row m-0 mb-4',\n 'aria-orientation-horizontal:border-b',\n 'aria-orientation-vertical:border-r aria-orientation-vertical:m-0 aria-orientation-vertical:mr-4 aria-orientation-vertical:flex-col ',\n props.className\n );\n\n return <TabsPrimitive.List {...props} className={className} ref={ref} />;\n});\n\nconst TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, ref: React.Ref<HTMLButtonElement>) {\n const { children, id, disabled, tooltip, ...otherProps } = props;\n\n const triggerClassName = cn(\n 'group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:pb-1',\n // horizontal\n '[[aria-orientation=\"vertical\"]_&]:pr-1'\n );\n const buttonClassName = cn(\n getButtonClasses(),\n 'group-focus-visible:yt-focus-inset group-enabled:group-hover:wcag-grey-200 pointer-events-none rounded px-3'\n );\n const activeClassName = cn(\n 'pointer-events-none absolute hidden bg-blue-500 group-aria-selected:flex',\n // horizontal\n '[[aria-orientation=\"horizontal\"]_&]:rounded-t-sm [[aria-orientation=\"horizontal\"]_&]:bottom-0 [[aria-orientation=\"horizontal\"]_&]:left-0 [[aria-orientation=\"horizontal\"]_&]:right-0 [[aria-orientation=\"horizontal\"]_&]:-mb-px [[aria-orientation=\"horizontal\"]_&]:h-0.5',\n // vertical\n '[[aria-orientation=\"vertical\"]_&]:rounded-l-sm [[aria-orientation=\"vertical\"]_&]:right-0 [[aria-orientation=\"vertical\"]_&]:top-0 [[aria-orientation=\"vertical\"]_&]:bottom-0 [[aria-orientation=\"vertical\"]_&]:-mr-px [[aria-orientation=\"vertical\"]_&]:w-0.5'\n );\n\n const trigger = (\n <TabsPrimitive.Trigger {...otherProps} className={triggerClassName} disabled={disabled} ref={ref} value={id}>\n <span className={buttonClassName}>{children}</span>\n <span className={activeClassName} />\n </TabsPrimitive.Trigger>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{trigger}</Tooltip>;\n }\n\n return trigger;\n});\n\nconst TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\n const { id, ...otherProps } = props;\n const className = cn('[&[data-orientation=\"vertical\"]]:grow outline-none', props.className);\n\n return <TabsPrimitive.Content {...otherProps} className={className} ref={ref} value={id} />;\n});\n\nTabs.List = TabList;\nTabs.Trigger = TabTrigger;\nTabs.Content = TabContent;\n"],"names":["Tabs","React","props","ref","id","defaultId","children","onChange","orientation","otherProps","className","cn","TabsPrimitive","defaultValue","dir","onValueChange","value","TabList","Tab","TabTrigger","disabled","tooltip","triggerClassName","buttonClassName","getButtonClasses","activeClassName","trigger","Tooltip","title","TabContent","List","Trigger","Content"],"mappings":";;;;;;MAiEaA,IAAI,gBAAGC,UAAgB,CAAC,SAASD,IAAI,CAACE,KAAgB,EAAEC,GAA8B;EAC/F,MAAM;IAAEC,EAAE;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,WAAW,GAAG,YAAY;IAAE,GAAGC;GAAY,GAAGP,KAAK;EAC9F,MAAMQ,SAAS,GAAGC,EAAE,CAChB;IACI,aAAa,EAAEH,WAAW,KAAK;GAClC,EACDN,KAAK,CAACQ,SAAS,CAClB;EAED,oBACIT,cAACW,IAAkB,oBACXH,UAAU;IACdC,SAAS,EAAEA,SAAS;iBACV,MAAM;IAChBG,YAAY,EAAER,SAAS;IACvBS,GAAG,EAAC,KAAK;IACTC,aAAa,EAAER,QAAQ;IACvBC,WAAW,EAAEA,WAAW;IACxBL,GAAG,EAAEA,GAAG;IACRa,KAAK,EAAEZ;MACNE,QAAQ,CACQ;AAE7B,CAAC;AAED,MAAMW,OAAO,gBAAGhB,UAAgB,CAAC,SAASiB,GAAG,CAAChB,KAAmB,EAAEC,GAA8B;EAC7F,MAAMO,SAAS,GAAGC,EAAE,CAChB,wCAAwC,EACxC,sCAAsC,EACtC,qIAAqI,EACrIT,KAAK,CAACQ,SAAS,CAClB;EAED,oBAAOT,cAACW,IAAkB,oBAAKV,KAAK;IAAEQ,SAAS,EAAEA,SAAS;IAAEP,GAAG,EAAEA;KAAO;AAC5E,CAAC,CAAC;AAEF,MAAMgB,UAAU,gBAAGlB,UAAgB,CAAC,SAASiB,GAAG,CAAChB,KAAsB,EAAEC,GAAiC;EACtG,MAAM;IAAEG,QAAQ;IAAEF,EAAE;IAAEgB,QAAQ;IAAEC,OAAO;IAAE,GAAGZ;GAAY,GAAGP,KAAK;EAEhE,MAAMoB,gBAAgB,GAAGX,EAAE,CACvB,sFAAsF;;EAEtF,0CAA0C;;EAE1C,wCAAwC,CAC3C;EACD,MAAMY,eAAe,GAAGZ,EAAE,CACtBa,gBAAgB,EAAE,EAClB,6GAA6G,CAChH;EACD,MAAMC,eAAe,GAAGd,EAAE,CACtB,0EAA0E;;EAE1E,2QAA2Q;;EAE3Q,8PAA8P,CACjQ;EAED,MAAMe,OAAO,gBACTzB,cAACW,OAAqB,oBAAKH,UAAU;IAAEC,SAAS,EAAEY,gBAAgB;IAAEF,QAAQ,EAAEA,QAAQ;IAAEjB,GAAG,EAAEA,GAAG;IAAEa,KAAK,EAAEZ;mBACrGH;IAAMS,SAAS,EAAEa;KAAkBjB,QAAQ,CAAQ,eACnDL;IAAMS,SAAS,EAAEe;IAAmB,CAE3C;EAED,IAAIJ,OAAO,EAAE;IACT,oBAAOpB,cAAC0B,OAAO;MAACC,KAAK,EAAEP;OAAUK,OAAO,CAAW;;EAGvD,OAAOA,OAAO;AAClB,CAAC,CAAC;AAEF,MAAMG,UAAU,gBAAG5B,UAAgB,CAAC,SAASiB,GAAG,CAAChB,KAAsB,EAAEC,GAA8B;EACnG,MAAM;IAAEC,EAAE;IAAE,GAAGK;GAAY,GAAGP,KAAK;EACnC,MAAMQ,SAAS,GAAGC,EAAE,CAAC,oDAAoD,EAAET,KAAK,CAACQ,SAAS,CAAC;EAE3F,oBAAOT,cAACW,OAAqB,oBAAKH,UAAU;IAAEC,SAAS,EAAEA,SAAS;IAAEP,GAAG,EAAEA,GAAG;IAAEa,KAAK,EAAEZ;KAAM;AAC/F,CAAC,CAAC;AAEFJ,IAAI,CAAC8B,IAAI,GAAGb,OAAO;AACnBjB,IAAI,CAAC+B,OAAO,GAAGZ,UAAU;AACzBnB,IAAI,CAACgC,OAAO,GAAGH,UAAU;;;;"}
@@ -3370,6 +3370,7 @@ const Alert = /*#__PURE__*/React__default.forwardRef(function Alert(props, ref)
3370
3370
  return /*#__PURE__*/React__default.createElement("div", Object.assign({}, props, {
3371
3371
  ref: ref,
3372
3372
  className: className,
3373
+ "data-taco": "alert",
3373
3374
  role: "alert"
3374
3375
  }), /*#__PURE__*/React__default.createElement(BadgeIcon, {
3375
3376
  className: "flex-none",
@@ -4399,6 +4400,7 @@ const Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, ref) {
4399
4400
  }
4400
4401
  };
4401
4402
  const element = /*#__PURE__*/React.createElement(CheckboxPrimitive.Root, Object.assign({}, otherProps, labelledByProps, {
4403
+ "aria-invalid": invalid ? 'true' : undefined,
4402
4404
  "data-taco": "checkbox",
4403
4405
  checked: indeterminate ? 'indeterminate' : checked,
4404
4406
  className: className,
@@ -4532,7 +4534,7 @@ const InputWithoutDeprecatedFeatures = /*#__PURE__*/React.forwardRef(function In
4532
4534
  const prefixRef = React.useRef(null);
4533
4535
  const prefixRect = useBoundingClientRectListener(prefixRef);
4534
4536
  const postfixRef = React.useRef(null);
4535
- const postfixRect = useBoundingClientRectListener(postfixRef);
4537
+ const postfixRect = useBoundingClientRectListener(postfixRef, [postfix]);
4536
4538
  const className = cn(getInputClasses(props), {
4537
4539
  'pl-8': !!prefix,
4538
4540
  'pr-8': !!postfix
@@ -7050,6 +7052,8 @@ const Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref)
7050
7052
 
7051
7053
  const replaceWithShortform = key => {
7052
7054
  switch (key) {
7055
+ case 'Escape':
7056
+ return 'Esc';
7053
7057
  case 'Delete':
7054
7058
  return 'Del';
7055
7059
  case 'Space':
@@ -7094,7 +7098,7 @@ const Shortcut = ({
7094
7098
  className: className
7095
7099
  }), texts.map(key => /*#__PURE__*/React__default.createElement("kbd", {
7096
7100
  key: key,
7097
- className: "font-display bg-grey-300/[0.25] rounded-sm px-1 text-center font-bold text-white"
7101
+ className: "font-display text-grey-700 [[data-taco=tooltip]_&]:bg-grey-300/[0.25] rounded-sm bg-black/[0.09] px-1 text-center font-bold [[data-taco=tooltip]_&]:text-white"
7098
7102
  }, key)));
7099
7103
  };
7100
7104
 
@@ -7247,6 +7251,16 @@ const Checkbox$1 = /*#__PURE__*/React.forwardRef(function MenuCheckboxItem(props
7247
7251
  })), children);
7248
7252
  });
7249
7253
 
7254
+ const getRadioClassnames = (disabled = false, invalid = false) => {
7255
+ return cn('flex flex-shrink-0 items-center justify-center h-4 w-4 mt-[0.2rem] rounded-full bg-white border-2 focus-visible:yt-focus disabled:cursor-not-allowed hover:border-4', invalid ? {
7256
+ 'border-red-500 hover:border-red-700 aria-checked:bg-red-500 aria-checked:border-red-500 hover:aria-checked:border-red-700': !disabled,
7257
+ 'border-red-500/50 aria-checked:bg-red-500/50 aria-checked:border-red-500/50': disabled
7258
+ } : {
7259
+ 'border-grey-500 hover:border-grey-700 aria-checked:bg-blue-500 aria-checked:border-blue-500 hover:aria-checked:border-blue-700': !disabled,
7260
+ 'border-grey-500/50 aria-checked:bg-blue-500/50 aria-checked:border-blue-500/50': disabled
7261
+ });
7262
+ };
7263
+
7250
7264
  const getRadioGroupItemValueAsString = value => String(value !== null && value !== void 0 ? value : '');
7251
7265
  const findByValue$1 = (values, valueAsString) => values.find(value => getRadioGroupItemValueAsString(value) === valueAsString);
7252
7266
  const RadioGroupContext = /*#__PURE__*/React.createContext({
@@ -7261,13 +7275,7 @@ const RadioGroupItem = /*#__PURE__*/React.forwardRef(function RadioGroupItem(pro
7261
7275
  ...otherProps
7262
7276
  } = props;
7263
7277
  const isDisabled = context.disabled || props.disabled;
7264
- const className = cn('flex flex-shrink-0 self-start items-center justify-center h-4 w-4 mt-[0.2rem] rounded-full bg-white border-2 focus-visible:yt-focus disabled:cursor-not-allowed hover:border-4', context.invalid ? {
7265
- 'border-red-500 hover:border-red-700 aria-checked:bg-red-500 aria-checked:border-red-500 hover:aria-checked:border-red-700': !isDisabled,
7266
- 'border-red-500/50 aria-checked:bg-red-500/50 aria-checked:border-red-500/50': isDisabled
7267
- } : {
7268
- 'border-grey-500 hover:border-grey-700 aria-checked:bg-blue-500 aria-checked:border-blue-500 hover:aria-checked:border-blue-700': !isDisabled,
7269
- 'border-grey-500/50 aria-checked:bg-blue-500/50 aria-checked:border-blue-500/50': isDisabled
7270
- });
7278
+ const className = cn('self-start', getRadioClassnames(isDisabled, context.invalid));
7271
7279
  const labelClassName = cn('flex items-center gap-2', {
7272
7280
  'cursor-pointer': !isDisabled,
7273
7281
  'cursor-not-allowed text-grey-300': isDisabled
@@ -8527,6 +8535,10 @@ const SearchInput = /*#__PURE__*/React.forwardRef(function SearchInput({
8527
8535
  handleClick();
8528
8536
  return;
8529
8537
  }
8538
+ if (event.key === 'Escape') {
8539
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch('');
8540
+ return;
8541
+ }
8530
8542
  };
8531
8543
  return /*#__PURE__*/React.createElement(Input, Object.assign({
8532
8544
  "aria-label": texts.searchInput.placeholder,
@@ -13554,8 +13566,8 @@ function useTable$1(children, props, ref) {
13554
13566
  }
13555
13567
  // sorting
13556
13568
  if (options.enableSorting) {
13557
- var _settings$sorting;
13558
- initialState.sorting = (_settings$sorting = settings === null || settings === void 0 ? void 0 : settings.sorting) !== null && _settings$sorting !== void 0 ? _settings$sorting : defaultSorting;
13569
+ const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
13570
+ initialState.sorting = settings !== null && settings !== void 0 && settings.sorting ? settings === null || settings === void 0 ? void 0 : settings.sorting.filter(sanitizeSortedColumns) : defaultSorting;
13559
13571
  if (manualSorting) {
13560
13572
  options.manualSorting = true;
13561
13573
  } else {
@@ -15204,6 +15216,7 @@ const TabTrigger = /*#__PURE__*/React.forwardRef(function Tab(props, ref) {
15204
15216
  children,
15205
15217
  id,
15206
15218
  disabled,
15219
+ tooltip,
15207
15220
  ...otherProps
15208
15221
  } = props;
15209
15222
  const triggerClassName = cn('group relative p-0.5 outline-none disabled:cursor-not-allowed disabled:text-black/50',
@@ -15217,7 +15230,7 @@ const TabTrigger = /*#__PURE__*/React.forwardRef(function Tab(props, ref) {
15217
15230
  '[[aria-orientation="horizontal"]_&]:rounded-t-sm [[aria-orientation="horizontal"]_&]:bottom-0 [[aria-orientation="horizontal"]_&]:left-0 [[aria-orientation="horizontal"]_&]:right-0 [[aria-orientation="horizontal"]_&]:-mb-px [[aria-orientation="horizontal"]_&]:h-0.5',
15218
15231
  // vertical
15219
15232
  '[[aria-orientation="vertical"]_&]:rounded-l-sm [[aria-orientation="vertical"]_&]:right-0 [[aria-orientation="vertical"]_&]:top-0 [[aria-orientation="vertical"]_&]:bottom-0 [[aria-orientation="vertical"]_&]:-mr-px [[aria-orientation="vertical"]_&]:w-0.5');
15220
- return /*#__PURE__*/React.createElement(TabsPrimitive.Trigger, Object.assign({}, otherProps, {
15233
+ const trigger = /*#__PURE__*/React.createElement(TabsPrimitive.Trigger, Object.assign({}, otherProps, {
15221
15234
  className: triggerClassName,
15222
15235
  disabled: disabled,
15223
15236
  ref: ref,
@@ -15227,6 +15240,12 @@ const TabTrigger = /*#__PURE__*/React.forwardRef(function Tab(props, ref) {
15227
15240
  }, children), /*#__PURE__*/React.createElement("span", {
15228
15241
  className: activeClassName
15229
15242
  }));
15243
+ if (tooltip) {
15244
+ return /*#__PURE__*/React.createElement(Tooltip, {
15245
+ title: tooltip
15246
+ }, trigger);
15247
+ }
15248
+ return trigger;
15230
15249
  });
15231
15250
  const TabContent = /*#__PURE__*/React.forwardRef(function Tab(props, ref) {
15232
15251
  const {