@clickhouse/click-ui 0.6.2-rc2 → 0.7.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 (212) hide show
  1. package/dist/cjs/click-ui.css +1872 -59
  2. package/dist/cjs/components/Alert/index.cjs +2 -2
  3. package/dist/cjs/components/Alert/index.cjs.map +1 -1
  4. package/dist/cjs/components/Assets/Logos/Polaris.cjs +22 -0
  5. package/dist/cjs/components/Assets/Logos/Polaris.cjs.map +1 -0
  6. package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs +2 -0
  7. package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs.map +1 -1
  8. package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs +2 -0
  9. package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs.map +1 -1
  10. package/dist/cjs/components/BigStat/BigStat.css +77 -0
  11. package/dist/cjs/components/BigStat/BigStat.module.css.cjs +22 -0
  12. package/dist/cjs/components/BigStat/BigStat.module.css.cjs.map +1 -0
  13. package/dist/cjs/components/BigStat/index.cjs +60 -52
  14. package/dist/cjs/components/BigStat/index.cjs.map +1 -1
  15. package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
  16. package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
  17. package/dist/cjs/components/CardPromotion/index.cjs +1 -1
  18. package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
  19. package/dist/cjs/components/CardSecondary/CardSecondary.css +99 -0
  20. package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs +39 -0
  21. package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs.map +1 -0
  22. package/dist/cjs/components/CardSecondary/index.cjs +35 -84
  23. package/dist/cjs/components/CardSecondary/index.cjs.map +1 -1
  24. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
  25. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs +15 -0
  26. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs.map +1 -0
  27. package/dist/cjs/components/ConfirmationDialog/index.cjs +6 -11
  28. package/dist/cjs/components/ConfirmationDialog/index.cjs.map +1 -1
  29. package/dist/cjs/components/ContextMenu/ContextMenu.css +28 -0
  30. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs +10 -0
  31. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -0
  32. package/dist/cjs/components/ContextMenu/index.cjs +27 -29
  33. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
  34. package/dist/cjs/components/CrossButton/index.cjs +5 -1
  35. package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
  36. package/dist/cjs/components/DatePicker/Common.cjs +1 -1
  37. package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
  38. package/dist/cjs/components/Dropdown/Dropdown.css +13 -0
  39. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs +11 -0
  40. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -0
  41. package/dist/cjs/components/Dropdown/index.cjs +19 -13
  42. package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
  43. package/dist/cjs/components/FileTabs/index.cjs +1 -1
  44. package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
  45. package/dist/cjs/components/Flyout/Flyout.css +231 -0
  46. package/dist/cjs/components/Flyout/Flyout.module.css.cjs +93 -0
  47. package/dist/cjs/components/Flyout/Flyout.module.css.cjs.map +1 -0
  48. package/dist/cjs/components/Flyout/index.cjs +148 -124
  49. package/dist/cjs/components/Flyout/index.cjs.map +1 -1
  50. package/dist/cjs/components/GenericMenu/GenericMenu.css +176 -0
  51. package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs +23 -0
  52. package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs.map +1 -0
  53. package/dist/cjs/components/GenericMenu/index.cjs +93 -99
  54. package/dist/cjs/components/GenericMenu/index.cjs.map +1 -1
  55. package/dist/cjs/components/HoverCard/index.cjs +1 -1
  56. package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
  57. package/dist/cjs/components/IconButton/index.cjs +2 -1
  58. package/dist/cjs/components/IconButton/index.cjs.map +1 -1
  59. package/dist/cjs/components/InputWrapper/InputWrapper.css +221 -0
  60. package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs +39 -0
  61. package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs.map +1 -0
  62. package/dist/cjs/components/InputWrapper/index.cjs +84 -185
  63. package/dist/cjs/components/InputWrapper/index.cjs.map +1 -1
  64. package/dist/cjs/components/Popover/Popover.css +12 -0
  65. package/dist/cjs/components/Popover/Popover.module.css.cjs +11 -0
  66. package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -0
  67. package/dist/cjs/components/Popover/index.cjs +26 -19
  68. package/dist/cjs/components/Popover/index.cjs.map +1 -1
  69. package/dist/cjs/components/RadioGroup/RadioGroup.css +99 -0
  70. package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs +18 -0
  71. package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
  72. package/dist/cjs/components/RadioGroup/index.cjs +28 -77
  73. package/dist/cjs/components/RadioGroup/index.cjs.map +1 -1
  74. package/dist/cjs/components/Select/common/InternalSelect.cjs +1 -1
  75. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  76. package/dist/cjs/components/SplitButton/index.cjs +2 -1
  77. package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
  78. package/dist/cjs/components/Table/Table.css +376 -0
  79. package/dist/cjs/components/Table/Table.module.css.cjs +86 -0
  80. package/dist/cjs/components/Table/Table.module.css.cjs.map +1 -0
  81. package/dist/cjs/components/Table/index.cjs +132 -214
  82. package/dist/cjs/components/Table/index.cjs.map +1 -1
  83. package/dist/cjs/components/Toast/Toast.css +142 -0
  84. package/dist/cjs/components/Toast/Toast.module.css.cjs +38 -0
  85. package/dist/cjs/components/Toast/Toast.module.css.cjs.map +1 -0
  86. package/dist/cjs/components/Toast/index.cjs +43 -96
  87. package/dist/cjs/components/Toast/index.cjs.map +1 -1
  88. package/dist/cjs/components/Tooltip/Tooltip.css +17 -0
  89. package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs +15 -0
  90. package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs.map +1 -0
  91. package/dist/cjs/components/Tooltip/index.cjs +12 -24
  92. package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
  93. package/dist/cjs/components/VerticalStepper/VerticalStepper.css +302 -0
  94. package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs +84 -0
  95. package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs.map +1 -0
  96. package/dist/cjs/components/VerticalStepper/index.cjs +85 -110
  97. package/dist/cjs/components/VerticalStepper/index.cjs.map +1 -1
  98. package/dist/esm/click-ui.css +1872 -59
  99. package/dist/esm/components/Alert/index.js +2 -2
  100. package/dist/esm/components/Alert/index.js.map +1 -1
  101. package/dist/esm/components/Assets/Logos/Polaris.js +18 -0
  102. package/dist/esm/components/Assets/Logos/Polaris.js.map +1 -0
  103. package/dist/esm/components/Assets/Logos/system/LogosDark.js +2 -0
  104. package/dist/esm/components/Assets/Logos/system/LogosDark.js.map +1 -1
  105. package/dist/esm/components/Assets/Logos/system/LogosLight.js +2 -0
  106. package/dist/esm/components/Assets/Logos/system/LogosLight.js.map +1 -1
  107. package/dist/esm/components/BigStat/BigStat.css +77 -0
  108. package/dist/esm/components/BigStat/BigStat.module.css.js +18 -0
  109. package/dist/esm/components/BigStat/BigStat.module.css.js.map +1 -0
  110. package/dist/esm/components/BigStat/index.js +60 -52
  111. package/dist/esm/components/BigStat/index.js.map +1 -1
  112. package/dist/esm/components/ButtonGroup/index.js +1 -1
  113. package/dist/esm/components/ButtonGroup/index.js.map +1 -1
  114. package/dist/esm/components/CardPromotion/index.js +1 -1
  115. package/dist/esm/components/CardPromotion/index.js.map +1 -1
  116. package/dist/esm/components/CardSecondary/CardSecondary.css +99 -0
  117. package/dist/esm/components/CardSecondary/CardSecondary.module.css.js +25 -0
  118. package/dist/esm/components/CardSecondary/CardSecondary.module.css.js.map +1 -0
  119. package/dist/esm/components/CardSecondary/index.js +35 -84
  120. package/dist/esm/components/CardSecondary/index.js.map +1 -1
  121. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
  122. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js +9 -0
  123. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js.map +1 -0
  124. package/dist/esm/components/ConfirmationDialog/index.js +6 -11
  125. package/dist/esm/components/ConfirmationDialog/index.js.map +1 -1
  126. package/dist/esm/components/ContextMenu/ContextMenu.css +28 -0
  127. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js +6 -0
  128. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -0
  129. package/dist/esm/components/ContextMenu/index.js +28 -30
  130. package/dist/esm/components/ContextMenu/index.js.map +1 -1
  131. package/dist/esm/components/CrossButton/index.js +5 -1
  132. package/dist/esm/components/CrossButton/index.js.map +1 -1
  133. package/dist/esm/components/DatePicker/Common.js +1 -1
  134. package/dist/esm/components/DatePicker/Common.js.map +1 -1
  135. package/dist/esm/components/Dropdown/Dropdown.css +13 -0
  136. package/dist/esm/components/Dropdown/Dropdown.module.css.js +7 -0
  137. package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -0
  138. package/dist/esm/components/Dropdown/index.js +19 -13
  139. package/dist/esm/components/Dropdown/index.js.map +1 -1
  140. package/dist/esm/components/FileTabs/index.js +1 -1
  141. package/dist/esm/components/FileTabs/index.js.map +1 -1
  142. package/dist/esm/components/Flyout/Flyout.css +231 -0
  143. package/dist/esm/components/Flyout/Flyout.module.css.js +62 -0
  144. package/dist/esm/components/Flyout/Flyout.module.css.js.map +1 -0
  145. package/dist/esm/components/Flyout/index.js +149 -125
  146. package/dist/esm/components/Flyout/index.js.map +1 -1
  147. package/dist/esm/components/GenericMenu/GenericMenu.css +176 -0
  148. package/dist/esm/components/GenericMenu/GenericMenu.module.css.js +18 -0
  149. package/dist/esm/components/GenericMenu/GenericMenu.module.css.js.map +1 -0
  150. package/dist/esm/components/GenericMenu/index.js +93 -99
  151. package/dist/esm/components/GenericMenu/index.js.map +1 -1
  152. package/dist/esm/components/HoverCard/index.js +1 -1
  153. package/dist/esm/components/HoverCard/index.js.map +1 -1
  154. package/dist/esm/components/IconButton/index.js +2 -1
  155. package/dist/esm/components/IconButton/index.js.map +1 -1
  156. package/dist/esm/components/InputWrapper/InputWrapper.css +221 -0
  157. package/dist/esm/components/InputWrapper/InputWrapper.module.css.js +27 -0
  158. package/dist/esm/components/InputWrapper/InputWrapper.module.css.js.map +1 -0
  159. package/dist/esm/components/InputWrapper/index.js +84 -185
  160. package/dist/esm/components/InputWrapper/index.js.map +1 -1
  161. package/dist/esm/components/Popover/Popover.css +12 -0
  162. package/dist/esm/components/Popover/Popover.module.css.js +7 -0
  163. package/dist/esm/components/Popover/Popover.module.css.js.map +1 -0
  164. package/dist/esm/components/Popover/index.js +26 -19
  165. package/dist/esm/components/Popover/index.js.map +1 -1
  166. package/dist/esm/components/RadioGroup/RadioGroup.css +99 -0
  167. package/dist/esm/components/RadioGroup/RadioGroup.module.css.js +13 -0
  168. package/dist/esm/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
  169. package/dist/esm/components/RadioGroup/index.js +28 -77
  170. package/dist/esm/components/RadioGroup/index.js.map +1 -1
  171. package/dist/esm/components/Select/common/InternalSelect.js +1 -1
  172. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  173. package/dist/esm/components/SplitButton/index.js +2 -1
  174. package/dist/esm/components/SplitButton/index.js.map +1 -1
  175. package/dist/esm/components/Table/Table.css +376 -0
  176. package/dist/esm/components/Table/Table.module.css.js +63 -0
  177. package/dist/esm/components/Table/Table.module.css.js.map +1 -0
  178. package/dist/esm/components/Table/index.js +132 -214
  179. package/dist/esm/components/Table/index.js.map +1 -1
  180. package/dist/esm/components/Toast/Toast.css +142 -0
  181. package/dist/esm/components/Toast/Toast.module.css.js +26 -0
  182. package/dist/esm/components/Toast/Toast.module.css.js.map +1 -0
  183. package/dist/esm/components/Toast/index.js +43 -96
  184. package/dist/esm/components/Toast/index.js.map +1 -1
  185. package/dist/esm/components/Tooltip/Tooltip.css +17 -0
  186. package/dist/esm/components/Tooltip/Tooltip.module.css.js +9 -0
  187. package/dist/esm/components/Tooltip/Tooltip.module.css.js.map +1 -0
  188. package/dist/esm/components/Tooltip/index.js +12 -24
  189. package/dist/esm/components/Tooltip/index.js.map +1 -1
  190. package/dist/esm/components/VerticalStepper/VerticalStepper.css +302 -0
  191. package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js +55 -0
  192. package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js.map +1 -0
  193. package/dist/esm/components/VerticalStepper/index.js +85 -110
  194. package/dist/esm/components/VerticalStepper/index.js.map +1 -1
  195. package/dist/types/components/Assets/Logos/Polaris.d.ts +3 -0
  196. package/dist/types/components/Assets/Logos/system/types.d.ts +1 -1
  197. package/dist/types/components/BigStat/BigStat.d.ts +1 -1
  198. package/dist/types/components/CardSecondary/CardSecondary.d.ts +1 -1
  199. package/dist/types/components/ConfirmationDialog/ConfirmationDialog.d.ts +1 -1
  200. package/dist/types/components/CrossButton/CrossButton.d.ts +6 -2
  201. package/dist/types/components/Flyout/Flyout.d.ts +8 -6
  202. package/dist/types/components/Flyout/Flyout.types.d.ts +3 -0
  203. package/dist/types/components/GenericMenu/GenericMenu.d.ts +29 -12
  204. package/dist/types/components/IconButton/IconButton.types.d.ts +3 -0
  205. package/dist/types/components/InputWrapper/InputWrapper.d.ts +17 -13
  206. package/dist/types/components/RadioGroup/RadioGroup.d.ts +2 -2
  207. package/dist/types/components/SplitButton/SplitButton.d.ts +1 -1
  208. package/dist/types/components/SplitButton/SplitButton.types.d.ts +3 -0
  209. package/dist/types/components/Toast/Toast.d.ts +1 -1
  210. package/dist/types/components/Tooltip/Tooltip.d.ts +1 -1
  211. package/dist/types/components/VerticalStepper/VerticalStepper.d.ts +2 -2
  212. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import {\n FC,\n HTMLAttributes,\n MouseEvent,\n ReactNode,\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from 'react';\nimport { styled } from 'styled-components';\n\nimport { CheckedState } from '@radix-ui/react-checkbox';\n\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport { Text } from '@/components/Text';\nimport { HorizontalDirection } from '@/types';\nimport { EllipsisContent } from '@/components/EllipsisContent';\nimport { Checkbox, CheckboxProps } from '@/components/Checkbox';\nimport { MiddleTruncator } from '@/components/MiddleTruncator';\n\ntype SortDir = 'asc' | 'desc';\ntype SortFn = (sortDir: SortDir, header: TableColumnConfigProps, index: number) => void;\ntype TableSize = 'sm' | 'md';\n\n// wrap: text breaks into multiple lines\n// truncated: text cuts at end with an ellipsis (...)\n// truncate-middle: text cuts in middle, shows start and end\ntype OverflowMode = 'truncated' | 'truncate-middle' | 'wrap';\n\nexport interface TableColumnConfigProps extends HTMLAttributes<HTMLTableCellElement> {\n label: ReactNode;\n isSortable?: boolean;\n sortDir?: SortDir;\n sortPosition?: HorizontalDirection;\n width?: string;\n overflowMode?: OverflowMode;\n resizable?: boolean;\n}\n\n// TODO: Delete `TableHeaderType` (deprecation warn at v0.0.251-test.67)\n/** @deprecated The TableHeaderType field have been deprecated to favour TableColumnConfigProps */\nexport type TableHeaderType = TableColumnConfigProps;\n\nconst StyledHeader = styled.th<{ $size: TableSize; $resizable?: boolean }>`\n ${({ theme, $size }) => `\n padding: ${theme.click.table.header.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};\n font: ${theme.click.table.header.title.default};\n color: ${theme.click.table.header.color.title.default};\n `}\n text-align: left;\n\n ${({ $resizable }) =>\n $resizable &&\n `\n position: relative;\n `}\n`;\n\nconst Resizer = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n width: 24px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n z-index: 1;\n transition: opacity 0.2s;\n border-radius: 0.5rem;\n transform: translateX(50%);\n\n &:hover {\n opacity: 0.6;\n }\n\n &::before {\n content: ' ';\n background: ${({ theme }) => theme.click.table.header.color.checkbox.border.default};\n display: inline-block;\n top: 25%;\n width: 2px;\n height: 20px;\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.click.global.color.outline.default};\n outline-offset: 2px;\n opacity: 1;\n }\n`;\n\nconst HeaderContentWrapper = styled.div<{ $interactive: boolean }>`\n display: flex;\n align-items: center;\n justify-content: start;\n gap: inherit;\n\n ${({ $interactive }) => $interactive && 'cursor: pointer;'}\n`;\n\nconst SortIcon = styled(Icon)<{ $sortDir: SortDir }>`\n transition: all 200ms;\n transform: rotate(${({ $sortDir }) => ($sortDir === 'desc' ? '180deg' : '0deg')});\n`;\n\ntype OnKeyboardResizerDirection = 'left' | 'right';\n\ninterface TableHeaderProps extends Omit<TableColumnConfigProps, 'width'> {\n onSort?: () => void;\n size: TableSize;\n showResizer?: boolean;\n onResizeStart?: (e: MouseEvent) => void;\n onKeyboardResize?: (\n e: React.KeyboardEvent,\n direction: OnKeyboardResizerDirection\n ) => void;\n}\n\nconst TableHeader = ({\n label,\n sortDir,\n sortPosition = 'end',\n isSortable,\n onSort,\n onClick,\n size,\n resizable,\n showResizer,\n onResizeStart,\n onKeyboardResize,\n overflowMode,\n ...props\n}: TableHeaderProps) => {\n if (overflowMode === 'wrap' && resizable) {\n console.warn(\n '\"Wrap\" overflow mode doesn\\'t work well with resizable table columns. Consider using truncation instead, please!'\n );\n }\n\n const isSorted = typeof sortDir === 'string';\n const isInteractive = Boolean(\n typeof onClick === 'function' || (isSortable && typeof onSort === 'function')\n );\n const resizerRef = useRef<HTMLDivElement>(null);\n\n const onHeaderClick = (e: MouseEvent<HTMLTableCellElement>): void => {\n if (typeof onClick === 'function') {\n onClick(e);\n }\n if (typeof onSort === 'function') {\n onSort();\n }\n };\n\n const onResizerKeyDown = (e: React.KeyboardEvent) => {\n if (!onKeyboardResize) {\n return;\n }\n\n if (['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n e.preventDefault();\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n onKeyboardResize(e, 'left');\n break;\n case 'ArrowRight':\n onKeyboardResize(e, 'right');\n break;\n case 'Escape':\n resizerRef.current?.blur();\n break;\n }\n };\n\n return (\n <StyledHeader\n $size={size}\n $resizable={resizable}\n {...props}\n >\n <HeaderContentWrapper\n onClick={onHeaderClick}\n $interactive={isInteractive}\n >\n {isSorted && isSortable && sortPosition == 'start' && (\n <SortIcon\n $sortDir={sortDir}\n name=\"arrow-down\"\n size=\"sm\"\n />\n )}\n {label}\n {isSorted && isSortable && sortPosition == 'end' && (\n <SortIcon\n $sortDir={sortDir}\n name=\"arrow-down\"\n size=\"sm\"\n />\n )}\n </HeaderContentWrapper>\n {showResizer && (\n <Resizer\n ref={resizerRef}\n onMouseDown={onResizeStart}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={`Resize ${typeof label === 'string' ? label : 'column'}`}\n tabIndex={0}\n onKeyDown={onResizerKeyDown}\n />\n )}\n </StyledHeader>\n );\n};\ninterface TheadProps {\n headers: TableColumnConfigProps[];\n isSelectable?: boolean;\n onSelectAll?: (selectedValues: SelectReturnValue[]) => void;\n actionsList: string[];\n onSort?: SortFn;\n size: TableSize;\n rows: TableRowType[];\n selectedIds: (number | string)[];\n resizableColumns?: boolean;\n columnWidths?: Map<string, number> | null;\n onResizeStart?: (columnIndex: number) => (e: MouseEvent) => void;\n onKeyboardResize?: (\n columnIndex: number\n ) => (e: React.KeyboardEvent, direction: OnKeyboardResizerDirection) => void;\n theadRef?: RefObject<HTMLTableSectionElement>;\n}\n\nconst Thead = ({\n headers,\n isSelectable,\n onSelectAll,\n actionsList,\n onSort: onSortProp,\n size,\n rows,\n selectedIds,\n resizableColumns,\n columnWidths,\n onResizeStart,\n theadRef,\n onKeyboardResize,\n}: TheadProps) => {\n const onSort = (header: TableColumnConfigProps, headerIndex: number) => () => {\n if (typeof onSortProp === 'function' && header.isSortable) {\n onSortProp(header.sortDir === 'asc' ? 'desc' : 'asc', header, headerIndex);\n }\n };\n return (\n <>\n <StyledColGroup>\n {isSelectable && <col width={48} />}\n {headers.map((headerProps, index) => {\n const headerLabel =\n typeof headerProps.label === 'string'\n ? headerProps.label\n : `__index_${index}`;\n const widthFromMap = columnWidths?.get(headerLabel);\n return (\n <col\n key={`header-col-${index}`}\n width={\n resizableColumns && widthFromMap && index < headers.length - 1\n ? `${widthFromMap}px`\n : headerProps.width\n }\n />\n );\n })}\n {actionsList.length > 0 && <col width={(actionsList.length + 1) * 32 + 10} />}\n </StyledColGroup>\n <StyledThead ref={theadRef}>\n <tr>\n {isSelectable && (\n <StyledHeader\n $size={size}\n aria-label=\"Select column\"\n >\n <SelectAllCheckbox\n onCheckedChange={onSelectAll}\n rows={rows}\n selectedIds={selectedIds}\n />\n </StyledHeader>\n )}\n {headers.map((headerProps, index) => (\n <TableHeader\n key={`table-header-${index}`}\n onSort={onSort(headerProps, index)}\n size={size}\n resizable={resizableColumns}\n showResizer={resizableColumns && index < headers.length - 1}\n onResizeStart={onResizeStart?.(index)}\n onKeyboardResize={onKeyboardResize?.(index)}\n {...headerProps}\n />\n ))}\n {actionsList.length > 0 && (\n <StyledHeader\n aria-label=\"Actions\"\n $size={size}\n />\n )}\n </tr>\n </StyledThead>\n </>\n );\n};\ninterface TableRowProps {\n $isSelectable?: boolean;\n $isDeleted?: boolean;\n $isDisabled?: boolean;\n $isActive?: boolean;\n $showActions?: boolean;\n $rowHeight?: string;\n}\n\nconst TableRow = styled.tr<TableRowProps>`\n overflow: hidden;\n ${({ theme, $isDeleted, $isDisabled, $isActive, $rowHeight }) => `\n ${$rowHeight ? `height: ${$rowHeight};` : ''}\n background-color: ${theme.click.table.row.color.background.default};\n border-bottom: ${theme.click.table.cell.stroke} solid ${\n theme.click.table.row.color.stroke.default\n };\n\n ${$isActive && `background-color: ${theme.click.table.row.color.background.active};`}\n\n &:active {\n background-color: ${theme.click.table.row.color.background.active};\n }\n &:hover {\n background-color: ${theme.click.table.row.color.background.hover};\n }\n opacity: ${$isDeleted || $isDisabled ? 0.5 : 1};\n cursor: ${$isDeleted || $isDisabled ? 'not-allowed' : 'default'}\n `}\n\n &:last-of-type, &:last-child {\n border-bottom: none;\n }\n\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n ${({ theme, $isSelectable = false, $showActions = false }) => `\n border: ${theme.click.table.cell.stroke} solid ${\n theme.click.table.row.color.stroke.default\n };\n border-radius: ${theme.click.table.radii.all};\n ${\n $isSelectable\n ? `padding-left: calc(${theme.click.table.body.cell.space.sm.x} + ${theme.click.table.body.cell.space.sm.x} + ${theme.click.checkbox.size.all});`\n : ''\n }\n ${\n $showActions\n ? `padding-right: calc(${theme.click.table.body.cell.space.sm.x} + ${theme.click.table.body.cell.space.sm.x} + ${theme.click.image.sm.size.width} + ${theme.click.button.iconButton.default.space.x} + ${theme.click.button.iconButton.default.space.x});`\n : ''\n }\n `}\n }\n }\n`;\n\nconst TableData = styled.td<{ $size: TableSize }>`\n overflow: hidden;\n ${({ theme, $size }) => `\n color: ${theme.click.table.row.color.text.default};\n font: ${theme.click.table.cell.text.default};\n padding: ${theme.click.table.body.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};\n `}\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n width: auto;\n min-width: 40%;\n ${({ theme }) => `\n padding: ${theme.click.table.body.cell.space.sm.y} ${theme.click.table.body.cell.space.sm.x};\n `}\n }\n }\n`;\n\nconst StyledColGroup = styled.colgroup`\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n display: none;\n }\n }\n`;\nconst StyledThead = styled.thead`\n tr {\n overflow: hidden;\n background-color: ${({ theme }) => theme.click.table.header.color.background.default};\n ${({\n theme,\n }) => ` border-bottom: ${theme.click.table.cell.stroke} solid ${theme.click.table.row.color.stroke.default};\n `}\n }\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n display: none;\n }\n }\n`;\n\nconst MobileHeader = styled.div`\n display: none;\n ${({ theme }) => `\n color: ${theme.click.table.row.color.label.default};\n font: ${theme.click.table.cell.label.default};\n `}\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n display: block;\n }\n }\n`;\nconst Tbody = styled.tbody`\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n }\n`;\n\nconst SelectData = styled.td<{ $size: TableSize }>`\n overflow: hidden;\n ${({ theme, $size }) => `\n color: ${theme.click.table.row.color.text.default};\n font: ${theme.click.table.cell.text.default};\n padding: ${theme.click.table.body.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};\n `}\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n width: auto;\n align-self: stretch;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n ${({ theme }) => `\n padding: ${theme.click.table.body.cell.space.sm.y} ${theme.click.table.body.cell.space.sm.x};\n border-right: ${theme.click.table.cell.stroke} solid ${theme.click.table.row.color.stroke.default};\n `}\n }\n }\n`;\nconst ActionsList = styled.td<{ $size: TableSize }>`\n overflow: hidden;\n ${({ theme, $size }) => `\n color: ${theme.click.table.row.color.text.default};\n font: ${theme.click.table.cell.text.default};\n padding: ${theme.click.table.body.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};\n `}\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n width: auto;\n align-self: stretch;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n ${({ theme }) => `\n padding: ${theme.click.table.body.cell.space.sm.y} ${theme.click.table.body.cell.space.sm.x};\n border-left: 1px solid ${theme.click.table.row.color.stroke.default};\n `}\n }\n }\n`;\n\nconst ActionsContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n overflow: hidden;\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n flex-direction: column;\n overflow: auto;\n flex-wrap: nowrap;\n }\n }\n`;\n\nconst TableWrapper = styled.div`\n width: 100%;\n height: 100%;\n overflow-x: auto;\n ${({ theme }) => `\n border: ${theme.click.table.cell.stroke} solid ${theme.click.table.global.color.stroke.default};\n border-radius: ${theme.click.table.radii.all}\n `}\n`;\n\nconst TableOuterContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 1rem;\n width: 100%;\n`;\n\nconst MobileActions = styled.div`\n display: none;\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 ${({ theme }) => theme.click.table.body.cell.space.sm.x};\n }\n }\n`;\nconst EditButton = styled.button`\n &:disabled {\n background: transparent;\n }\n`;\ninterface TableRowCloseButtonProps {\n $isDeleted?: boolean;\n}\n\nconst TableRowCloseButton = styled.button<TableRowCloseButtonProps>`\n svg {\n transition: transform 200ms;\n ${({ $isDeleted }) => `\n ${$isDeleted ? 'transform: rotate(45deg)' : ''};\n `}\n }\n &:disabled {\n background: transparent;\n }\n`;\n\ninterface TableCellType extends HTMLAttributes<HTMLTableCellElement> {\n label: ReactNode;\n overflowMode?: OverflowMode;\n}\nexport interface TableRowType extends Omit<\n HTMLAttributes<HTMLTableRowElement>,\n 'onSelect' | 'id'\n> {\n id: string | number;\n items: TableCellType[];\n isDisabled?: boolean;\n isDeleted?: boolean;\n isActive?: boolean;\n /** only works with <Table isSelectable={true} /> */\n isIndeterminate?: boolean;\n}\n\nexport type MobileLayoutProp = 'list' | 'scroll';\n\ninterface CommonTableProps extends Omit<\n HTMLAttributes<HTMLTableElement>,\n 'children' | 'onSelect'\n> {\n headers: TableColumnConfigProps[];\n rows: TableRowType[];\n onDelete?: (item: TableRowType, index: number) => void;\n onEdit?: (item: TableRowType, index: number) => void;\n onSort?: SortFn;\n loading?: boolean;\n noDataMessage?: ReactNode;\n size?: TableSize;\n showHeader?: boolean;\n rowHeight?: string;\n resizableColumns?: boolean;\n mobileLayout?: MobileLayoutProp;\n}\n\ntype SelectReturnValue = {\n index: number;\n item: TableRowType;\n};\n\ninterface SelectionType {\n isSelectable?: boolean;\n selectedIds?: (number | string)[];\n onSelect?: (selectedValues: SelectReturnValue[]) => void;\n}\n\ninterface NoSelectionType {\n isSelectable?: never;\n selectedIds?: never;\n onSelect?: never;\n}\n\nexport type TableProps = CommonTableProps & (SelectionType | NoSelectionType);\n\ninterface TableBodyRowProps extends Omit<TableRowType, 'id'> {\n headers: TableColumnConfigProps[];\n onSelect: (checked: boolean) => void;\n isSelectable?: boolean;\n isSelected: boolean;\n onDelete?: () => void;\n onEdit?: () => void;\n actionsList: string[];\n size: TableSize;\n rowHeight?: string;\n}\n\nconst TableBodyRow = ({\n headers,\n items,\n onSelect,\n isSelectable,\n isSelected,\n isIndeterminate,\n onDelete,\n onEdit,\n isDeleted,\n isActive,\n isDisabled,\n size,\n actionsList,\n rowHeight,\n ...rowProps\n}: TableBodyRowProps) => {\n const isDeletable = typeof onDelete === 'function';\n const isEditable = typeof onEdit === 'function';\n return (\n <TableRow\n $isSelectable={isSelectable}\n $isDeleted={isDeleted}\n $isDisabled={isDisabled}\n $isActive={isActive}\n $showActions={isDeletable || isEditable}\n $rowHeight={rowHeight}\n {...rowProps}\n >\n {isSelectable && (\n <SelectData $size={size}>\n <Checkbox\n checked={isIndeterminate ? 'indeterminate' : isSelected}\n onCheckedChange={onSelect}\n disabled={isDisabled || isDeleted}\n />\n </SelectData>\n )}\n {items.map(({ label, overflowMode, ...cellProps }, cellIndex) => (\n <TableData\n $size={size}\n key={`table-cell-${cellIndex}`}\n {...cellProps}\n >\n {headers[cellIndex] && <MobileHeader>{headers[cellIndex].label}</MobileHeader>}\n <Cell\n label={label}\n overflowMode={overflowMode ?? headers[cellIndex]?.overflowMode}\n />\n </TableData>\n ))}\n {actionsList.length > 0 && (\n <ActionsList $size={size}>\n <ActionsContainer>\n {actionsList.includes('editAction') && (\n <EditButton\n as={IconButton}\n type=\"ghost\"\n disabled={isDisabled || isDeleted || !isEditable}\n icon=\"pencil\"\n onClick={onEdit}\n data-testid=\"table-row-edit\"\n />\n )}\n {actionsList.includes('deleteAction') && (\n <TableRowCloseButton\n as={IconButton}\n disabled={isDisabled || !isDeletable}\n $isDeleted={isDeleted}\n type=\"ghost\"\n icon=\"cross\"\n onClick={onDelete}\n data-testid=\"table-row-delete\"\n />\n )}\n </ActionsContainer>\n </ActionsList>\n )}\n </TableRow>\n );\n};\n\nconst SpanedTableData = styled(TableData)`\n text-align: center;\n`;\nconst CustomTableDataMessage = styled.div`\n display: flex;\n gap: 0.5rem;\n justify-content: center;\n`;\nconst LoadingData = () => {\n return (\n <>\n <Icon\n name=\"loading-animated\"\n size=\"sm\"\n />\n <Text size=\"sm\">Loading data</Text>\n </>\n );\n};\ninterface CustomTableRowProps {\n loading?: boolean;\n noDataMessage?: ReactNode;\n colSpan: number;\n size: TableSize;\n}\nconst CustomTableRow = ({\n loading,\n noDataMessage,\n colSpan,\n size,\n}: CustomTableRowProps) => {\n return (\n <TableRow>\n <SpanedTableData\n $size={size}\n colSpan={colSpan}\n >\n <CustomTableDataMessage>\n {loading ? <LoadingData /> : (noDataMessage ?? 'No Data available')}\n </CustomTableDataMessage>\n </SpanedTableData>\n </TableRow>\n );\n};\ninterface ResizeState {\n isResizing: boolean;\n columnLabel: string | null;\n nextColumnLabel: string | null;\n startX: number;\n startWidth: number;\n nextStartWidth: number;\n}\n\n// TODO: What is an acceptable minimum column width?\nconst MIN_COLUMN_WIDTH = 120;\n\nconst Table = forwardRef<HTMLTableElement, TableProps>(\n (\n {\n headers,\n rows,\n isSelectable,\n selectedIds = [],\n onSelect,\n onDelete,\n onEdit,\n onSort,\n loading,\n noDataMessage,\n size = 'sm',\n showHeader = true,\n rowHeight,\n resizableColumns,\n mobileLayout = 'list',\n ...props\n },\n ref\n ) => {\n const isDeletable = typeof onDelete === 'function';\n const isEditable = typeof onEdit === 'function';\n\n const [columnWidths, setColumnWidths] = useState<Map<string, number> | null>(null);\n const theadRef = useRef<HTMLTableSectionElement>(null);\n\n useLayoutEffect(() => {\n if (!resizableColumns || columnWidths !== null || !theadRef.current) {\n return;\n }\n\n const headerCells = theadRef.current.querySelectorAll('th');\n const widths = new Map<string, number>();\n\n // Skip select column (index 0 if isSelectable) and actions column (last if present)\n const startIndex = isSelectable ? 1 : 0;\n const endIndex = headerCells.length - (isDeletable || isEditable ? 1 : 0);\n\n let headerIndex = 0;\n for (let i = startIndex; i < endIndex; i++) {\n const header = headers[headerIndex];\n if (header) {\n const key =\n typeof header.label === 'string' ? header.label : `__index_${headerIndex}`;\n widths.set(key, headerCells[i].getBoundingClientRect().width);\n }\n headerIndex++;\n }\n\n if (widths.size === headers.length) {\n setColumnWidths(widths);\n }\n }, [resizableColumns, columnWidths, isSelectable, isDeletable, isEditable]);\n\n const headerKey = useMemo(\n () =>\n headers\n .map((h, i) => (typeof h.label === 'string' ? h.label : `__index_${i}`))\n .join(','),\n [headers]\n );\n useEffect(() => {\n setColumnWidths(null);\n }, [headerKey]);\n\n const resizeStateRef = useRef<ResizeState>({\n isResizing: false,\n columnLabel: null,\n nextColumnLabel: null,\n startX: 0,\n startWidth: 0,\n nextStartWidth: 0,\n });\n\n const onMouseMove = useCallback((e: globalThis.MouseEvent) => {\n if (!resizeStateRef.current.isResizing) {\n return;\n }\n\n const { columnLabel, nextColumnLabel, startX, startWidth, nextStartWidth } =\n resizeStateRef.current;\n\n if (!columnLabel || !nextColumnLabel) {\n return;\n }\n\n const diff = e.clientX - startX;\n const newWidth = startWidth + diff;\n const newNextWidth = nextStartWidth - diff;\n\n if (Number.isNaN(newWidth) || Number.isNaN(newNextWidth)) {\n console.warn('Unexpected computed values for resize width', {\n newWidth,\n newNextWidth,\n });\n return;\n }\n\n if (newWidth >= MIN_COLUMN_WIDTH && newNextWidth >= MIN_COLUMN_WIDTH) {\n setColumnWidths(prev => {\n if (!prev) {\n return prev;\n }\n const updated = new Map(prev);\n updated.set(columnLabel, newWidth);\n updated.set(nextColumnLabel, newNextWidth);\n return updated;\n });\n }\n }, []);\n\n const onMouseUp = useCallback(() => {\n resizeStateRef.current.isResizing = false;\n }, []);\n\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n }, [resizableColumns, onMouseMove, onMouseUp]);\n\n const handleResizeStart = useCallback(\n (columnIndex: number) => (e: MouseEvent) => {\n e.preventDefault();\n\n if (!columnWidths) {\n return;\n }\n\n const currentHeader = headers[columnIndex];\n const nextHeader = headers[columnIndex + 1];\n\n if (!currentHeader || !nextHeader) {\n return;\n }\n\n const currentLabel =\n typeof currentHeader.label === 'string'\n ? currentHeader.label\n : `__index_${columnIndex}`;\n const nextLabel =\n typeof nextHeader.label === 'string'\n ? nextHeader.label\n : `__index_${columnIndex + 1}`;\n\n const startWidth = columnWidths.get(currentLabel);\n const nextStartWidth = columnWidths.get(nextLabel);\n\n if (startWidth === undefined || nextStartWidth === undefined) {\n return;\n }\n\n resizeStateRef.current = {\n isResizing: true,\n columnLabel: currentLabel,\n nextColumnLabel: nextLabel,\n startX: e.clientX,\n startWidth,\n nextStartWidth,\n };\n },\n [headers, columnWidths]\n );\n\n const onRowSelect =\n (id: number | string) =>\n (checked: boolean): void => {\n if (typeof onSelect == 'function') {\n const selectedItems = rows.flatMap((row, index) => {\n if (\n (id === row.id && checked) ||\n (selectedIds.includes(row.id) && id !== row.id)\n ) {\n return {\n item: row,\n index,\n };\n }\n\n return [];\n });\n onSelect(selectedItems);\n }\n };\n const hasRows = rows.length > 0;\n const actionsList: string[] = [];\n if (isDeletable) {\n actionsList.push('deleteAction');\n }\n if (isEditable) {\n actionsList.push('editAction');\n }\n\n const onKeyboardResize = useCallback(\n (columnIndex: number) =>\n (_e: React.KeyboardEvent, direction: OnKeyboardResizerDirection) => {\n if (!columnWidths) {\n return;\n }\n\n const currentHeader = headers[columnIndex];\n const nextHeader = headers[columnIndex + 1];\n\n if (!currentHeader || !nextHeader) {\n return;\n }\n\n const currentLabel =\n typeof currentHeader.label === 'string'\n ? currentHeader.label\n : `__index_${columnIndex}`;\n const nextLabel =\n typeof nextHeader.label === 'string'\n ? nextHeader.label\n : `__index_${columnIndex + 1}`;\n\n const increment = 2;\n const multiplier = direction === 'right' ? 1 : -1;\n const diff = increment * multiplier;\n\n const currentWidth = columnWidths.get(currentLabel);\n const nextWidth = columnWidths.get(nextLabel);\n\n if (currentWidth === undefined || nextWidth === undefined) {\n return;\n }\n\n const newWidth = currentWidth + diff;\n const newNextWidth = nextWidth - diff;\n const shouldUpdateColumnWidth =\n newWidth >= MIN_COLUMN_WIDTH && newNextWidth >= MIN_COLUMN_WIDTH;\n\n if (!shouldUpdateColumnWidth) {\n return;\n }\n\n setColumnWidths(prev => {\n if (!prev) {\n return prev;\n }\n const updated = new Map(prev);\n updated.set(currentLabel, newWidth);\n updated.set(nextLabel, newNextWidth);\n return updated;\n });\n },\n [columnWidths, headers]\n );\n\n return (\n <TableOuterContainer data-mobile-layout={mobileLayout}>\n {hasRows && showHeader && (\n <MobileActions>\n {isSelectable && (\n <SelectAllCheckbox\n label=\"Select All\"\n onCheckedChange={onSelect}\n rows={rows}\n selectedIds={selectedIds}\n />\n )}\n </MobileActions>\n )}\n <TableWrapper>\n <StyledTable\n ref={ref}\n {...props}\n >\n {showHeader && (\n <Thead\n headers={headers}\n isSelectable={isSelectable}\n onSelectAll={onSelect}\n actionsList={actionsList}\n onSort={onSort}\n size={size}\n rows={rows}\n selectedIds={selectedIds}\n resizableColumns={resizableColumns}\n columnWidths={resizableColumns ? columnWidths : undefined}\n onResizeStart={resizableColumns ? handleResizeStart : undefined}\n theadRef={theadRef}\n onKeyboardResize={resizableColumns ? onKeyboardResize : undefined}\n />\n )}\n <Tbody>\n {(loading || !hasRows) && (\n <CustomTableRow\n colSpan={\n headers.length +\n (isEditable || isDeletable ? 1 : 0) +\n (isSelectable ? 1 : 0)\n }\n loading={loading}\n noDataMessage={noDataMessage}\n size={size}\n />\n )}\n {rows.map(({ id, ...rowProps }, rowIndex) => (\n <TableBodyRow\n key={`table-body-row-${rowIndex}`}\n headers={headers}\n isSelectable={isSelectable}\n isSelected={selectedIds?.includes(id)}\n onSelect={onRowSelect(id)}\n actionsList={actionsList}\n onDelete={\n isDeletable\n ? () =>\n onDelete(\n { id, ...rowProps, isDeleted: !rowProps.isDeleted },\n rowIndex\n )\n : undefined\n }\n onEdit={\n isEditable ? () => onEdit({ id, ...rowProps }, rowIndex) : undefined\n }\n size={size}\n rowHeight={rowHeight}\n {...rowProps}\n />\n ))}\n </Tbody>\n </StyledTable>\n </TableWrapper>\n </TableOuterContainer>\n );\n }\n);\n\ninterface SelectAllCheckboxProps extends Omit<CheckboxProps, 'onCheckedChange'> {\n onCheckedChange?: (selectedValues: SelectReturnValue[]) => void;\n selectedIds: (number | string)[];\n rows: TableRowType[];\n}\n\nconst SelectAllCheckbox: FC<SelectAllCheckboxProps> = ({\n rows,\n selectedIds,\n onCheckedChange,\n ...checkboxProps\n}) => {\n const selectedIdSet = useMemo(() => new Set(selectedIds), [selectedIds]);\n\n const { checked, disabled } = useMemo(() => {\n let areAllChecked = true;\n let maybeIndeterminate: CheckedState = false;\n let disabled = true;\n\n for (const row of rows) {\n if (row.isDisabled || row.isDeleted) {\n continue;\n } else {\n disabled = false;\n }\n\n if (selectedIdSet.has(row.id)) {\n maybeIndeterminate = 'indeterminate';\n } else {\n areAllChecked = false;\n }\n }\n\n return {\n checked: disabled ? false : areAllChecked || maybeIndeterminate,\n disabled,\n };\n }, [rows, selectedIdSet]);\n\n const handleCheckedChange = (checked: boolean) => {\n if (typeof onCheckedChange !== 'function') {\n return;\n }\n\n // disabled items should not change their selected state because of user interaction\n\n const newSelectedRows = rows.reduce((acc: SelectReturnValue[], row, index) => {\n const isDisabled = row.isDisabled || row.isDeleted;\n\n const shouldBeSelected = checked\n ? !isDisabled || selectedIdSet.has(row.id)\n : isDisabled && selectedIdSet.has(row.id);\n\n if (shouldBeSelected) {\n acc.push({\n item: row,\n index,\n });\n }\n\n return acc;\n }, []);\n\n onCheckedChange(newSelectedRows);\n };\n\n return (\n <Checkbox\n checked={checked}\n disabled={disabled}\n onCheckedChange={handleCheckedChange}\n {...checkboxProps}\n />\n );\n};\n\nconst TextWrapped = styled.span`\n overflow-wrap: break-word;\n word-break: break-all;\n display: inline-block;\n max-width: 100%;\n`;\n\nconst Cell = ({\n label,\n overflowMode = 'truncated',\n}: {\n label: ReactNode;\n overflowMode?: OverflowMode;\n}) => {\n const isText = typeof label === 'string';\n\n if (!isText) {\n return <>{label}</>;\n }\n\n if (overflowMode === 'truncate-middle') {\n return <MiddleTruncator text={label} />;\n }\n\n if (overflowMode === 'wrap') {\n return <TextWrapped>{label}</TextWrapped>;\n }\n\n return <EllipsisContent component=\"div\">{label}</EllipsisContent>;\n};\n\nconst StyledTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n overflow: visible;\n table-layout: fixed;\n\n [data-mobile-layout='list'] & {\n @media (max-width: ${({ theme }) => theme.breakpoint.sizes.md}) {\n border: none;\n table-layout: auto;\n }\n }\n`;\n\nexport { Table };\n"],"names":["StyledHeader","styled","th","withConfig","componentId","theme","$size","click","table","header","cell","space","y","body","x","title","default","color","$resizable","Resizer","div","checkbox","border","global","outline","HeaderContentWrapper","$interactive","SortIcon","Icon","$sortDir","TableHeader","label","sortDir","sortPosition","isSortable","onSort","onClick","size","resizable","showResizer","onResizeStart","onKeyboardResize","overflowMode","props","console","warn","isSorted","isInteractive","Boolean","resizerRef","useRef","onHeaderClick","e","onResizerKeyDown","includes","key","preventDefault","current","blur","Thead","headers","isSelectable","onSelectAll","actionsList","onSortProp","rows","selectedIds","resizableColumns","columnWidths","theadRef","headerIndex","map","headerProps","index","headerLabel","widthFromMap","get","length","width","TableRow","tr","$isDeleted","$isDisabled","$isActive","$rowHeight","row","background","stroke","active","hover","breakpoint","sizes","md","$isSelectable","$showActions","radii","all","sm","image","button","iconButton","TableData","td","text","StyledColGroup","colgroup","StyledThead","thead","MobileHeader","Tbody","tbody","SelectData","ActionsList","ActionsContainer","TableWrapper","TableOuterContainer","MobileActions","EditButton","TableRowCloseButton","TableBodyRow","items","onSelect","isSelected","isIndeterminate","onDelete","onEdit","isDeleted","isActive","isDisabled","rowHeight","rowProps","isDeletable","isEditable","cellProps","cellIndex","IconButton","SpanedTableData","CustomTableDataMessage","LoadingData","CustomTableRow","loading","noDataMessage","colSpan","MIN_COLUMN_WIDTH","Table","forwardRef","showHeader","mobileLayout","ref","setColumnWidths","useState","useLayoutEffect","headerCells","querySelectorAll","widths","Map","startIndex","endIndex","i","set","getBoundingClientRect","headerKey","useMemo","h","join","useEffect","resizeStateRef","isResizing","columnLabel","nextColumnLabel","startX","startWidth","nextStartWidth","onMouseMove","useCallback","diff","clientX","newWidth","newNextWidth","Number","isNaN","prev","updated","onMouseUp","document","addEventListener","removeEventListener","handleResizeStart","columnIndex","currentHeader","nextHeader","currentLabel","nextLabel","undefined","onRowSelect","id","checked","selectedItems","flatMap","item","hasRows","push","_e","direction","increment","multiplier","currentWidth","nextWidth","shouldUpdateColumnWidth","rowIndex","SelectAllCheckbox","onCheckedChange","checkboxProps","selectedIdSet","Set","disabled","areAllChecked","maybeIndeterminate","has","handleCheckedChange","newSelectedRows","reduce","acc","shouldBeSelected","TextWrapped","span","Cell","isText","StyledTable"],"mappings":";;;;;;;;;;AAiDA,MAAMA,YAAAA,GAAeC,MAAAA,CAAOC,EAAAA,CAAEC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,GAC1B,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC;AAAM,CAAA,KAAM;AAAA,aAAA,EACXD,MAAME,KAAAA,CAAMC,KAAAA,CAAMC,OAAOC,IAAAA,CAAKC,KAAAA,CAAML,KAAK,CAAA,CAAEM,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,KAAKC,KAAAA,CAAML,KAAK,EAAEQ,CAAC,CAAA;AAAA,UAAA,EAC7FT,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAMC,MAAAA,CAAOM,MAAMC,OAAO,CAAA;AAAA,WAAA,EACrCX,MAAME,KAAAA,CAAMC,KAAAA,CAAMC,MAAAA,CAAOQ,KAAAA,CAAMF,MAAMC,OAAO,CAAA;AAAA,EAAA,CAAA,EAIrD,CAAC;AAAA,EAAEE;AAAW,CAAA,KACdA,UAAAA,IACA;AAAA;AAAA,EAAA,CAED,CAAA;AAGH,MAAMC,OAAAA,GAAUlB,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,mOAAA,EAAA,+IAAA,EAAA,iCAAA,GAmBR,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,KAAAA,CAAME,MAAMC,KAAAA,CAAMC,MAAAA,CAAOQ,MAAMI,QAAAA,CAASC,MAAAA,CAAON,SAWvD,CAAC;AAAA,EAAEX;AAAM,CAAA,KAAMA,KAAAA,CAAME,KAAAA,CAAMgB,MAAAA,CAAON,KAAAA,CAAMO,QAAQR,OAAO,CAAA;AAMhF,MAAMS,oBAAAA,GAAuBxB,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oEAAA,EAAA,EAAA,GAMnC,CAAC;AAAA,EAAEsB;AAAa,CAAA,KAAMA,gBAAgB,kBAAkB,CAAA;AAG5D,MAAMC,QAAAA,GAAW1B,MAAAA,CAAO2B,QAAI,CAAA,CAACzB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,wCAAA,EAAA,IAAA,GAEP,CAAC;AAAA,EAAEyB;AAAS,CAAA,KAAOA,QAAAA,KAAa,MAAA,GAAS,QAAA,GAAW,MAAO,CAAA;AAgBjF,MAAMC,cAAcA,CAAC;AAAA,EACnBC,KAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA,GAAe,KAAA;AAAA,EACfC,UAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACA,GAAGC;AACa,CAAA,KAAM;AACtB,EAAA,IAAID,YAAAA,KAAiB,UAAUJ,SAAAA,EAAW;AACxCM,IAAAA,OAAAA,CAAQC,KACN,CAAA,+GAAA,CACF,CAAA;AAAA,EACF;AAEA,EAAA,MAAMC,QAAAA,GAAW,OAAOd,OAAAA,KAAY,QAAA;AACpC,EAAA,MAAMe,aAAAA,GAAgBC,QACpB,OAAOZ,OAAAA,KAAY,cAAeF,UAAAA,IAAc,OAAOC,WAAW,UACpE,CAAA;AACA,EAAA,MAAMc,UAAAA,GAAaC,OAAuB,IAAI,CAAA;AAE9C,EAAA,MAAMC,aAAAA,GAAgBA,CAACC,CAAAA,KAA8C;AACnE,IAAA,IAAI,OAAOhB,YAAY,UAAA,EAAY;AACjCA,MAAAA,OAAAA,CAAQgB,CAAC,CAAA;AAAA,IACX;AACA,IAAA,IAAI,OAAOjB,WAAW,UAAA,EAAY;AAChCA,MAAAA,MAAAA,EAAO;AAAA,IACT;AAAA,EACF,CAAA;AAEA,EAAA,MAAMkB,gBAAAA,GAAmBA,CAACD,CAAAA,KAA2B;AACnD,IAAA,IAAI,CAACX,gBAAAA,EAAkB;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,WAAA,EAAa,YAAY,EAAEa,QAAAA,CAASF,CAAAA,CAAEG,GAAG,CAAA,EAAG;AAC/CH,MAAAA,CAAAA,CAAEI,cAAAA,EAAe;AAAA,IACnB;AAEA,IAAA,QAAQJ,EAAEG,GAAAA;AAAG,MACX,KAAK,WAAA;AACHd,QAAAA,gBAAAA,CAAiBW,GAAG,MAAM,CAAA;AAC1B,QAAA;AAAA,MACF,KAAK,YAAA;AACHX,QAAAA,gBAAAA,CAAiBW,GAAG,OAAO,CAAA;AAC3B,QAAA;AAAA,MACF,KAAK,QAAA;AACHH,QAAAA,UAAAA,CAAWQ,SAASC,IAAAA,EAAK;AACzB,QAAA;AAAA;AACJ,EACF,CAAA;AAEA,EAAA,4BACG,YAAA,EAAA,EACC,KAAA,EAAOrB,MACP,UAAA,EAAYC,SAAAA,EACZ,GAAIK,KAAAA,EAEJ,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,oBAAA,EAAA,EACC,OAAA,EAASQ,aAAAA,EACT,YAAA,EAAcJ,aAAAA,EAEbD,QAAAA,EAAAA;AAAAA,MAAAA,QAAAA,IAAYZ,UAAAA,IAAcD,YAAAA,IAAgB,OAAA,oBACzC,GAAA,CAAC,QAAA,EAAA,EACC,UAAUD,OAAAA,EACV,IAAA,EAAK,YAAA,EACL,IAAA,EAAK,IAAA,EAAI,CAAA;AAAA,MAGZD,KAAAA;AAAAA,MACAe,QAAAA,IAAYZ,UAAAA,IAAcD,YAAAA,IAAgB,KAAA,oBACzC,GAAA,CAAC,QAAA,EAAA,EACC,QAAA,EAAUD,OAAAA,EACV,IAAA,EAAK,YAAA,EACL,IAAA,EAAK,IAAA,EAAI;AAAA,KAAA,EAGf,CAAA;AAAA,IACCO,WAAAA,wBACE,OAAA,EAAA,EACC,GAAA,EAAKU,YACL,WAAA,EAAaT,aAAAA,EACb,IAAA,EAAK,WAAA,EACL,kBAAA,EAAiB,UAAA,EACjB,cAAY,CAAA,OAAA,EAAU,OAAOT,UAAU,QAAA,GAAWA,KAAAA,GAAQ,QAAQ,CAAA,CAAA,EAClE,QAAA,EAAU,CAAA,EACV,SAAA,EAAWsB,gBAAAA,EAAiB;AAAA,GAAA,EAGlC,CAAA;AAEJ,CAAA;AAmBA,MAAMM,QAAQA,CAAC;AAAA,EACbC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACA5B,MAAAA,EAAQ6B,UAAAA;AAAAA,EACR3B,IAAAA;AAAAA,EACA4B,IAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACA5B,aAAAA;AAAAA,EACA6B,QAAAA;AAAAA,EACA5B;AACU,CAAA,KAAM;AAChB,EAAA,MAAMN,MAAAA,GAASA,CAAC1B,MAAAA,EAAgC6D,WAAAA,KAAwB,MAAM;AAC5E,IAAA,IAAI,OAAON,UAAAA,KAAe,UAAA,IAAcvD,MAAAA,CAAOyB,UAAAA,EAAY;AACzD8B,MAAAA,UAAAA,CAAWvD,OAAOuB,OAAAA,KAAY,KAAA,GAAQ,MAAA,GAAS,KAAA,EAAOvB,QAAQ6D,WAAW,CAAA;AAAA,IAC3E;AAAA,EACF,CAAA;AACA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,cAAA,EAAA,EACET,QAAAA,EAAAA;AAAAA,MAAAA,YAAAA,oBAAgB,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAA,EAAG,CAAA;AAAA,MAC/BD,OAAAA,CAAQW,GAAAA,CAAI,CAACC,WAAAA,EAAaC,KAAAA,KAAU;AACnC,QAAA,MAAMC,WAAAA,GACJ,OAAOF,WAAAA,CAAYzC,KAAAA,KAAU,WACzByC,WAAAA,CAAYzC,KAAAA,GACZ,WAAW0C,KAAK,CAAA,CAAA;AACtB,QAAA,MAAME,YAAAA,GAAeP,YAAAA,EAAcQ,GAAAA,CAAIF,WAAW,CAAA;AAClD,QAAA,2BACG,KAAA,EAAA,EAEC,KAAA,EACEP,gBAAAA,IAAoBQ,YAAAA,IAAgBF,QAAQb,OAAAA,CAAQiB,MAAAA,GAAS,CAAA,GACzD,CAAA,EAAGF,YAAY,CAAA,EAAA,CAAA,GACfH,WAAAA,CAAYM,KAAAA,EAAAA,EAJb,CAAA,WAAA,EAAcL,KAAK,CAAA,CAKvB,CAAA;AAAA,MAGP,CAAC,CAAA;AAAA,MACAV,WAAAA,CAAYc,MAAAA,GAAS,CAAA,oBAAK,GAAA,CAAC,KAAA,EAAA,EAAI,QAAQd,WAAAA,CAAYc,MAAAA,GAAS,CAAA,IAAK,EAAA,GAAK,EAAA,EAAG;AAAA,KAAA,EAC5E,CAAA;AAAA,oBACA,GAAA,CAAC,WAAA,EAAA,EAAY,GAAA,EAAKR,QAAAA,EAChB,+BAAC,IAAA,EAAA,EACER,QAAAA,EAAAA;AAAAA,MAAAA,YAAAA,oBACC,GAAA,CAAC,YAAA,EAAA,EACC,KAAA,EAAOxB,IAAAA,EACP,YAAA,EAAW,eAAA,EAEX,QAAA,kBAAA,GAAA,CAAC,iBAAA,EAAA,EACC,eAAA,EAAiByB,WAAAA,EACjB,IAAA,EACA,WAAA,EAAyB,CAAA,EAE7B,CAAA;AAAA,MAEDF,OAAAA,CAAQW,GAAAA,CAAI,CAACC,WAAAA,EAAaC,0BACzB,GAAA,CAAC,WAAA,EAAA,EAEC,MAAA,EAAQtC,MAAAA,CAAOqC,aAAaC,KAAK,CAAA,EACjC,IAAA,EACA,SAAA,EAAWN,kBACX,WAAA,EAAaA,gBAAAA,IAAoBM,KAAAA,GAAQb,OAAAA,CAAQiB,MAAAA,GAAS,CAAA,EAC1D,aAAA,EAAerC,aAAAA,GAAgBiC,KAAK,CAAA,EACpC,gBAAA,EAAkBhC,gBAAAA,GAAmBgC,KAAK,MACtCD,WAAAA,EAAAA,EAPC,CAAA,aAAA,EAAgBC,KAAK,GAS7B,CAAA;AAAA,MACAV,WAAAA,CAAYc,SAAS,CAAA,oBACpB,GAAA,CAAC,gBACC,YAAA,EAAW,SAAA,EACX,OAAOxC,IAAAA,EAAK;AAAA,KAAA,EAGlB,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AAUA,MAAM0C,QAAAA,GAAW9E,MAAAA,CAAO+E,EAAAA,CAAE7E,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,qGAAA,kDAAA,EAAA,IAAA,GAEtB,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAO4E,UAAAA;AAAAA,EAAYC,WAAAA;AAAAA,EAAaC,SAAAA;AAAAA,EAAWC;AAAW,CAAA,KAAM;AAAA,IAAA,EAC7DA,UAAAA,GAAa,CAAA,QAAA,EAAWA,UAAU,CAAA,CAAA,CAAA,GAAM,EAAE;AAAA,sBAAA,EACxB/E,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMqE,WAAWtE,OAAO,CAAA;AAAA,mBAAA,EACjDX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6E,MAAM,CAAA,OAAA,EAC5ClF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsE,MAAAA,CAAOvE,OAAO,CAAA;;AAAA,IAAA,EAG1CmE,SAAAA,IAAa,qBAAqB9E,KAAAA,CAAME,KAAAA,CAAMC,MAAM6E,GAAAA,CAAIpE,KAAAA,CAAMqE,UAAAA,CAAWE,MAAM,CAAA,CAAA,CAAG;;AAAA;AAAA,wBAAA,EAG9DnF,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMqE,WAAWE,MAAM,CAAA;AAAA;AAAA;AAAA,wBAAA,EAG7CnF,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMqE,WAAWG,KAAK,CAAA;AAAA;AAAA,aAAA,EAEvDR,UAAAA,IAAcC,WAAAA,GAAc,GAAA,GAAM,CAAC,CAAA;AAAA,YAAA,EACpCD,UAAAA,IAAcC,WAAAA,GAAc,aAAA,GAAgB,SAAS;AAAA,EAAA,CAAA,EAQ1C,CAAC;AAAA,EAAE7E;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAAA,EAIvD,CAAC;AAAA,EAAEvF,KAAAA;AAAAA,EAAOwF,aAAAA,GAAgB,KAAA;AAAA,EAAOC,YAAAA,GAAe;AAAM,CAAA,KAAM;AAAA,gBAAA,EAClDzF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6E,MAAM,CAAA,OAAA,EACrClF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsE,MAAAA,CAAOvE,OAAO,CAAA;AAAA,uBAAA,EAE3BX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAMuF,KAAAA,CAAMC,GAAG,CAAA;AAAA,QAAA,EAE1CH,aAAAA,GACI,CAAA,mBAAA,EAAsBxF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,KAAAA,CAAMsF,EAAAA,CAAGnF,CAAC,CAAA,GAAA,EAAMT,KAAAA,CAAME,KAAAA,CAAMC,MAAMK,IAAAA,CAAKH,IAAAA,CAAKC,KAAAA,CAAMsF,EAAAA,CAAGnF,CAAC,CAAA,GAAA,EAAMT,KAAAA,CAAME,KAAAA,CAAMc,QAAAA,CAASgB,IAAAA,CAAK2D,GAAG,CAAA,EAAA,CAAA,GAC3I,EAAE;AAAA,QAAA,EAGNF,eACI,CAAA,oBAAA,EAAuBzF,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,KAAKC,KAAAA,CAAMsF,EAAAA,CAAGnF,CAAC,CAAA,GAAA,EAAMT,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,KAAKC,KAAAA,CAAMsF,EAAAA,CAAGnF,CAAC,CAAA,GAAA,EAAMT,KAAAA,CAAME,MAAM2F,KAAAA,CAAMD,EAAAA,CAAG5D,KAAKyC,KAAK,CAAA,GAAA,EAAMzE,MAAME,KAAAA,CAAM4F,MAAAA,CAAOC,WAAWpF,OAAAA,CAAQL,KAAAA,CAAMG,CAAC,CAAA,GAAA,EAAMT,KAAAA,CAAME,MAAM4F,MAAAA,CAAOC,UAAAA,CAAWpF,QAAQL,KAAAA,CAAMG,CAAC,OACpP,EAAE;AAAA,MAAA,CAET,CAAA;AAKP,MAAMuF,SAAAA,GAAYpG,MAAAA,CAAOqG,EAAAA,CAAEnG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,qDAAA,6BAAA,EAAA,IAAA,GAEvB,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC;AAAM,CAAA,KAAM;AAAA,WAAA,EACbD,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsF,KAAKvF,OAAO,CAAA;AAAA,UAAA,EACzCX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6F,KAAKvF,OAAO,CAAA;AAAA,aAAA,EAChCX,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,KAAKH,IAAAA,CAAKC,KAAAA,CAAML,KAAK,CAAA,CAAEM,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,KAAKC,KAAAA,CAAML,KAAK,EAAEQ,CAAC,CAAA;AAAA,EAAA,CAAA,EAG9E,CAAC;AAAA,EAAET;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAAA,EAGvD,CAAC;AAAA,EAAEvF;AAAM,CAAA,KAAM;AAAA,iBAAA,EACJA,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,MAAMsF,EAAAA,CAAGrF,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,KAAAA,CAAMsF,GAAGnF,CAAC,CAAA;AAAA,MAAA,CAC5F,CAAA;AAKP,MAAM0F,cAAAA,GAAiBvG,MAAAA,CAAOwG,QAAAA,CAAQtG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,kDAAA,EAAA,mBAAA,GAEb,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAE,CAAA;AAKjE,MAAMc,WAAAA,GAAczG,MAAAA,CAAO0G,KAAAA,CAAKxG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,sCAAA,EAAA,KAAA,mDAAA,EAAA,mBAAA,GAGR,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,MAAME,KAAAA,CAAMC,KAAAA,CAAMC,OAAOQ,KAAAA,CAAMqE,UAAAA,CAAWtE,SAC3E,CAAC;AAAA,EACDX;AACF,CAAA,KAAM,CAAA,gBAAA,EAAmBA,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6E,MAAM,CAAA,OAAA,EAAUlF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsE,OAAOvE,OAAO,CAAA;AAAA,EAAA,CAAA,EAIrF,CAAC;AAAA,EAAEX;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAE,CAAA;AAMjE,MAAMgB,YAAAA,GAAe3G,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,eAAA,EAAA,mDAAA,EAAA,oBAAA,GAE3B,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAM;AAAA,WAAA,EACNA,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMc,MAAMf,OAAO,CAAA;AAAA,WAAA,EACzCX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAKqB,MAAMf,OAAO,CAAA;AAAA,EAAA,CAAA,EAGxB,CAAC;AAAA,EAAEX;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAE,CAAA;AAKjE,MAAMiB,KAAAA,GAAQ5G,MAAAA,CAAO6G,KAAAA,CAAK3G,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,kDAAA,EAAA,qDAAA,GAED,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAE,CAAA;AAQjE,MAAMmB,UAAAA,GAAa9G,MAAAA,CAAOqG,EAAAA,CAAEnG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,qDAAA,0EAAA,EAAA,IAAA,GAExB,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC;AAAM,CAAA,KAAM;AAAA,WAAA,EACbD,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsF,KAAKvF,OAAO,CAAA;AAAA,UAAA,EACzCX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6F,KAAKvF,OAAO,CAAA;AAAA,aAAA,EAChCX,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,KAAKH,IAAAA,CAAKC,KAAAA,CAAML,KAAK,CAAA,CAAEM,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,KAAKC,KAAAA,CAAML,KAAK,EAAEQ,CAAC,CAAA;AAAA,EAAA,CAAA,EAG9E,CAAC;AAAA,EAAET;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAAA,EAOvD,CAAC;AAAA,EAAEvF;AAAM,CAAA,KAAM;AAAA,iBAAA,EACJA,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,MAAMsF,EAAAA,CAAGrF,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,KAAAA,CAAMsF,GAAGnF,CAAC,CAAA;AAAA,sBAAA,EAC3ET,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6E,MAAM,CAAA,OAAA,EAAUlF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsE,MAAAA,CAAOvE,OAAO,CAAA;AAAA,MAAA,CAClG,CAAA;AAIP,MAAMgG,WAAAA,GAAc/G,MAAAA,CAAOqG,EAAAA,CAAEnG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,kBAAA,EAAA,qDAAA,2EAAA,EAAA,IAAA,GAEzB,CAAC;AAAA,EAAEC,KAAAA;AAAAA,EAAOC;AAAM,CAAA,KAAM;AAAA,WAAA,EACbD,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsF,KAAKvF,OAAO,CAAA;AAAA,UAAA,EACzCX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6F,KAAKvF,OAAO,CAAA;AAAA,aAAA,EAChCX,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,KAAKH,IAAAA,CAAKC,KAAAA,CAAML,KAAK,CAAA,CAAEM,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,KAAKC,KAAAA,CAAML,KAAK,EAAEQ,CAAC,CAAA;AAAA,EAAA,CAAA,EAG9E,CAAC;AAAA,EAAET;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAAA,EAOvD,CAAC;AAAA,EAAEvF;AAAM,CAAA,KAAM;AAAA,iBAAA,EACJA,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,MAAMsF,EAAAA,CAAGrF,CAAC,CAAA,CAAA,EAAIP,KAAAA,CAAME,MAAMC,KAAAA,CAAMK,IAAAA,CAAKH,IAAAA,CAAKC,KAAAA,CAAMsF,GAAGnF,CAAC,CAAA;AAAA,+BAAA,EAClET,MAAME,KAAAA,CAAMC,KAAAA,CAAM6E,GAAAA,CAAIpE,KAAAA,CAAMsE,OAAOvE,OAAO,CAAA;AAAA,MAAA,CACpE,CAAA;AAKP,MAAMiG,gBAAAA,GAAmBhH,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yGAAA,EAAA,2DAAA,GAMV,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAE,CAAA;AAQjE,MAAMsB,YAAAA,GAAejH,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yCAAA,EAAA,EAAA,GAI3B,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAM;AAAA,UAAA,EACPA,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAME,IAAAA,CAAK6E,MAAM,CAAA,OAAA,EAAUlF,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAMe,MAAAA,CAAON,KAAAA,CAAMsE,MAAAA,CAAOvE,OAAO,CAAA;AAAA,iBAAA,EAC7EX,KAAAA,CAAME,KAAAA,CAAMC,KAAAA,CAAMuF,KAAAA,CAAMC,GAAG;AAAA,EAAA,CAC3C,CAAA;AAGH,MAAMmB,mBAAAA,GAAsBlH,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,yDAAA,CAAA,CAAA;AAOtC,MAAMgH,aAAAA,GAAgBnH,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,EAAA,CAAA,+DAAA,EAAA,4EAAA,EAAA,KAAA,GAGP,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAAA,EAI5C,CAAC;AAAA,EAAEvF;AAAM,CAAA,KAAMA,MAAME,KAAAA,CAAMC,KAAAA,CAAMK,KAAKH,IAAAA,CAAKC,KAAAA,CAAMsF,GAAGnF,CAAC,CAAA;AAIxE,MAAMuG,UAAAA,GAAapH,MAAAA,CAAOkG,MAAAA,CAAMhG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,qCAAA,CAAA,CAAA;AAShC,MAAMkH,mBAAAA,GAAsBrH,MAAAA,CAAOkG,MAAAA,CAAMhG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iCAAA,EAAA,sCAAA,GAGnC,CAAC;AAAA,EAAE6E;AAAW,CAAA,KAAM;AAAA,IAAA,EACpBA,UAAAA,GAAa,6BAA6B,EAAE,CAAA;AAAA,IAAA,CAC7C,CAAA;AA2EL,MAAMsC,eAAeA,CAAC;AAAA,EACpB3D,OAAAA;AAAAA,EACA4D,KAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACA5D,YAAAA;AAAAA,EACA6D,UAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACA3F,IAAAA;AAAAA,EACA0B,WAAAA;AAAAA,EACAkE,SAAAA;AAAAA,EACA,GAAGC;AACc,CAAA,KAAM;AACvB,EAAA,MAAMC,WAAAA,GAAc,OAAOP,QAAAA,KAAa,UAAA;AACxC,EAAA,MAAMQ,UAAAA,GAAa,OAAOP,MAAAA,KAAW,UAAA;AACrC,EAAA,4BACG,QAAA,EAAA,EACC,aAAA,EAAehE,YAAAA,EACf,UAAA,EAAYiE,WACZ,WAAA,EAAaE,UAAAA,EACb,SAAA,EAAWD,QAAAA,EACX,cAAcI,WAAAA,IAAeC,UAAAA,EAC7B,UAAA,EAAYH,SAAAA,EACZ,GAAIC,QAAAA,EAEHrE,QAAAA,EAAAA;AAAAA,IAAAA,YAAAA,oBACC,GAAA,CAAC,UAAA,EAAA,EAAW,KAAA,EAAOxB,IAAAA,EACjB,8BAAC,QAAA,EAAA,EACC,OAAA,EAASsF,eAAAA,GAAkB,eAAA,GAAkBD,YAC7C,eAAA,EAAiBD,QAAAA,EACjB,QAAA,EAAUO,UAAAA,IAAcF,WAAU,CAAA,EAEtC,CAAA;AAAA,IAEDN,KAAAA,CAAMjD,IAAI,CAAC;AAAA,MAAExC,KAAAA;AAAAA,MAAOW,YAAAA;AAAAA,MAAc,GAAG2F;AAAAA,OAAaC,SAAAA,qBACjD,IAAA,CAAC,aACC,KAAA,EAAOjG,IAAAA,EAEP,GAAIgG,SAAAA,EAEHzE,QAAAA,EAAAA;AAAAA,MAAAA,OAAAA,CAAQ0E,SAAS,CAAA,oBAAK,GAAA,CAAC,gBAAc1E,QAAAA,EAAAA,OAAAA,CAAQ0E,SAAS,EAAEvG,KAAAA,EAAM,CAAA;AAAA,sBAC/D,GAAA,CAAC,QACC,KAAA,EACA,YAAA,EAAcW,gBAAgBkB,OAAAA,CAAQ0E,SAAS,GAAG5F,YAAAA,EAAa;AAAA,KAAA,EAAA,EAN5D,CAAA,WAAA,EAAc4F,SAAS,CAAA,CAQ9B,CACD,CAAA;AAAA,IACAvE,WAAAA,CAAYc,SAAS,CAAA,oBACpB,GAAA,CAAC,eAAY,KAAA,EAAOxC,IAAAA,EAClB,+BAAC,gBAAA,EAAA,EACE0B,QAAAA,EAAAA;AAAAA,MAAAA,WAAAA,CAAYT,SAAS,YAAY,CAAA,wBAC/B,UAAA,EAAA,EACC,EAAA,EAAIiF,YACJ,IAAA,EAAK,OAAA,EACL,UAAUP,UAAAA,IAAcF,SAAAA,IAAa,CAACM,UAAAA,EACtC,IAAA,EAAK,UACL,OAAA,EAASP,MAAAA,EACT,eAAY,gBAAA,EAAgB,CAAA;AAAA,MAG/B9D,WAAAA,CAAYT,SAAS,cAAc,CAAA,wBACjC,mBAAA,EAAA,EACC,EAAA,EAAIiF,YACJ,QAAA,EAAUP,UAAAA,IAAc,CAACG,WAAAA,EACzB,UAAA,EAAYL,WACZ,IAAA,EAAK,OAAA,EACL,MAAK,OAAA,EACL,OAAA,EAASF,QAAAA,EACT,aAAA,EAAY,kBAAA,EAAkB;AAAA,KAAA,EAGpC,CAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,MAAMY,eAAAA,GAAkBvI,MAAAA,CAAOoG,SAAS,CAAA,CAAClG,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA;AAGzC,MAAMqI,sBAAAA,GAAyBxI,MAAAA,CAAOmB,GAAAA,CAAGjB,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,iDAAA,CAAA,CAAA;AAKzC,MAAMsI,cAAcA,MAAM;AACxB,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC9G,QAAA,EAAA,EACC,IAAA,EAAK,kBAAA,EACL,IAAA,EAAK,IAAA,EAAI,CAAA;AAAA,oBAEX,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,IAAA,EAAK,QAAA,EAAA,cAAA,EAAY;AAAA,GAAA,EAC9B,CAAA;AAEJ,CAAA;AAOA,MAAM+G,iBAAiBA,CAAC;AAAA,EACtBC,OAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAzG;AACmB,CAAA,KAAM;AACzB,EAAA,2BACG,QAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,eAAA,EAAA,EACC,KAAA,EAAOA,MACP,OAAA,EAEA,QAAA,kBAAA,GAAA,CAAC,sBAAA,EAAA,EACEuG,QAAAA,EAAAA,OAAAA,uBAAW,WAAA,EAAA,EAAW,CAAA,GAAOC,aAAAA,IAAiB,mBAAA,EACjD,GACF,CAAA,EACF,CAAA;AAEJ,CAAA;AAWA,MAAME,gBAAAA,GAAmB,GAAA;AAEzB,MAAMC,KAAAA,GAAQC,WACZ,CACE;AAAA,EACErF,OAAAA;AAAAA,EACAK,IAAAA;AAAAA,EACAJ,YAAAA;AAAAA,EACAK,cAAc,EAAA;AAAA,EACduD,QAAAA;AAAAA,EACAG,QAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACA1F,MAAAA;AAAAA,EACAyG,OAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAxG,IAAAA,GAAO,IAAA;AAAA,EACP6G,UAAAA,GAAa,IAAA;AAAA,EACbjB,SAAAA;AAAAA,EACA9D,gBAAAA;AAAAA,EACAgF,YAAAA,GAAe,MAAA;AAAA,EACf,GAAGxG;AACL,CAAA,EACAyG,GAAAA,KACG;AACH,EAAA,MAAMjB,WAAAA,GAAc,OAAOP,QAAAA,KAAa,UAAA;AACxC,EAAA,MAAMQ,UAAAA,GAAa,OAAOP,MAAAA,KAAW,UAAA;AAErC,EAAA,MAAM,CAACzD,YAAAA,EAAciF,eAAe,CAAA,GAAIC,SAAqC,IAAI,CAAA;AACjF,EAAA,MAAMjF,QAAAA,GAAWnB,OAAgC,IAAI,CAAA;AAErDqG,EAAAA,eAAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAACpF,gBAAAA,IAAoBC,YAAAA,KAAiB,IAAA,IAAQ,CAACC,SAASZ,OAAAA,EAAS;AACnE,MAAA;AAAA,IACF;AAEA,IAAA,MAAM+F,WAAAA,GAAcnF,QAAAA,CAASZ,OAAAA,CAAQgG,gBAAAA,CAAiB,IAAI,CAAA;AAC1D,IAAA,MAAMC,MAAAA,uBAAaC,GAAAA,EAAoB;AAGvC,IAAA,MAAMC,UAAAA,GAAa/F,eAAe,CAAA,GAAI,CAAA;AACtC,IAAA,MAAMgG,QAAAA,GAAWL,WAAAA,CAAY3E,MAAAA,IAAUsD,WAAAA,IAAeC,aAAa,CAAA,GAAI,CAAA,CAAA;AAEvE,IAAA,IAAI9D,WAAAA,GAAc,CAAA;AAClB,IAAA,KAAA,IAASwF,CAAAA,GAAIF,UAAAA,EAAYE,CAAAA,GAAID,QAAAA,EAAUC,CAAAA,EAAAA,EAAK;AAC1C,MAAA,MAAMrJ,MAAAA,GAASmD,QAAQU,WAAW,CAAA;AAClC,MAAA,IAAI7D,MAAAA,EAAQ;AACV,QAAA,MAAM8C,GAAAA,GACJ,OAAO9C,MAAAA,CAAOsB,KAAAA,KAAU,WAAWtB,MAAAA,CAAOsB,KAAAA,GAAQ,WAAWuC,WAAW,CAAA,CAAA;AAC1EoF,QAAAA,MAAAA,CAAOK,IAAIxG,GAAAA,EAAKiG,WAAAA,CAAYM,CAAC,CAAA,CAAEE,qBAAAA,GAAwBlF,KAAK,CAAA;AAAA,MAC9D;AACAR,MAAAA,WAAAA,EAAAA;AAAAA,IACF;AAEA,IAAA,IAAIoF,MAAAA,CAAOrH,IAAAA,KAASuB,OAAAA,CAAQiB,MAAAA,EAAQ;AAClCwE,MAAAA,eAAAA,CAAgBK,MAAM,CAAA;AAAA,IACxB;AAAA,EACF,GAAG,CAACvF,gBAAAA,EAAkBC,cAAcP,YAAAA,EAAcsE,WAAAA,EAAaC,UAAU,CAAC,CAAA;AAE1E,EAAA,MAAM6B,SAAAA,GAAYC,QAChB,MACEtG,OAAAA,CACGW,IAAI,CAAC4F,CAAAA,EAAGL,CAAAA,KAAO,OAAOK,CAAAA,CAAEpI,KAAAA,KAAU,WAAWoI,CAAAA,CAAEpI,KAAAA,GAAQ,CAAA,QAAA,EAAW+H,CAAC,CAAA,CAAG,CAAA,CACtEM,KAAK,GAAG,CAAA,EACb,CAACxG,OAAO,CACV,CAAA;AACAyG,EAAAA,SAAAA,CAAU,MAAM;AACdhB,IAAAA,eAAAA,CAAgB,IAAI,CAAA;AAAA,EACtB,CAAA,EAAG,CAACY,SAAS,CAAC,CAAA;AAEd,EAAA,MAAMK,iBAAiBpH,MAAAA,CAAoB;AAAA,IACzCqH,UAAAA,EAAY,KAAA;AAAA,IACZC,WAAAA,EAAa,IAAA;AAAA,IACbC,eAAAA,EAAiB,IAAA;AAAA,IACjBC,MAAAA,EAAQ,CAAA;AAAA,IACRC,UAAAA,EAAY,CAAA;AAAA,IACZC,cAAAA,EAAgB;AAAA,GACjB,CAAA;AAED,EAAA,MAAMC,WAAAA,GAAcC,WAAAA,CAAY,CAAC1H,CAAAA,KAA6B;AAC5D,IAAA,IAAI,CAACkH,cAAAA,CAAe7G,OAAAA,CAAQ8G,UAAAA,EAAY;AACtC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM;AAAA,MAAEC,WAAAA;AAAAA,MAAaC,eAAAA;AAAAA,MAAiBC,MAAAA;AAAAA,MAAQC,UAAAA;AAAAA,MAAYC;AAAAA,QACxDN,cAAAA,CAAe7G,OAAAA;AAEjB,IAAA,IAAI,CAAC+G,WAAAA,IAAe,CAACC,eAAAA,EAAiB;AACpC,MAAA;AAAA,IACF;AAEA,IAAA,MAAMM,IAAAA,GAAO3H,EAAE4H,OAAAA,GAAUN,MAAAA;AACzB,IAAA,MAAMO,WAAWN,UAAAA,GAAaI,IAAAA;AAC9B,IAAA,MAAMG,eAAeN,cAAAA,GAAiBG,IAAAA;AAEtC,IAAA,IAAII,OAAOC,KAAAA,CAAMH,QAAQ,KAAKE,MAAAA,CAAOC,KAAAA,CAAMF,YAAY,CAAA,EAAG;AACxDtI,MAAAA,OAAAA,CAAQC,KAAK,6CAAA,EAA+C;AAAA,QAC1DoI,QAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,IAAID,QAAAA,IAAYlC,gBAAAA,IAAoBmC,YAAAA,IAAgBnC,gBAAAA,EAAkB;AACpEM,MAAAA,eAAAA,CAAgBgC,CAAAA,IAAAA,KAAQ;AACtB,QAAA,IAAI,CAACA,IAAAA,EAAM;AACT,UAAA,OAAOA,IAAAA;AAAAA,QACT;AACA,QAAA,MAAMC,OAAAA,GAAU,IAAI3B,GAAAA,CAAI0B,IAAI,CAAA;AAC5BC,QAAAA,OAAAA,CAAQvB,GAAAA,CAAIS,aAAaS,QAAQ,CAAA;AACjCK,QAAAA,OAAAA,CAAQvB,GAAAA,CAAIU,iBAAiBS,YAAY,CAAA;AACzC,QAAA,OAAOI,OAAAA;AAAAA,MACT,CAAC,CAAA;AAAA,IACH;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAMC,SAAAA,GAAYT,YAAY,MAAM;AAClCR,IAAAA,cAAAA,CAAe7G,QAAQ8G,UAAAA,GAAa,KAAA;AAAA,EACtC,CAAA,EAAG,EAAE,CAAA;AAELF,EAAAA,SAAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAClG,gBAAAA,EAAkB;AACrB,MAAA;AAAA,IACF;AAEAqH,IAAAA,QAAAA,CAASC,gBAAAA,CAAiB,aAAaZ,WAAW,CAAA;AAClDW,IAAAA,QAAAA,CAASC,gBAAAA,CAAiB,WAAWF,SAAS,CAAA;AAE9C,IAAA,OAAO,MAAM;AACXC,MAAAA,QAAAA,CAASE,mBAAAA,CAAoB,aAAab,WAAW,CAAA;AACrDW,MAAAA,QAAAA,CAASE,mBAAAA,CAAoB,WAAWH,SAAS,CAAA;AAAA,IACnD,CAAA;AAAA,EACF,CAAA,EAAG,CAACpH,gBAAAA,EAAkB0G,WAAAA,EAAaU,SAAS,CAAC,CAAA;AAE7C,EAAA,MAAMI,iBAAAA,GAAoBb,WAAAA,CACxB,CAACc,WAAAA,KAAwB,CAACxI,CAAAA,KAAkB;AAC1CA,IAAAA,CAAAA,CAAEI,cAAAA,EAAe;AAEjB,IAAA,IAAI,CAACY,YAAAA,EAAc;AACjB,MAAA;AAAA,IACF;AAEA,IAAA,MAAMyH,aAAAA,GAAgBjI,QAAQgI,WAAW,CAAA;AACzC,IAAA,MAAME,UAAAA,GAAalI,OAAAA,CAAQgI,WAAAA,GAAc,CAAC,CAAA;AAE1C,IAAA,IAAI,CAACC,aAAAA,IAAiB,CAACC,UAAAA,EAAY;AACjC,MAAA;AAAA,IACF;AAEA,IAAA,MAAMC,YAAAA,GACJ,OAAOF,aAAAA,CAAc9J,KAAAA,KAAU,WAC3B8J,aAAAA,CAAc9J,KAAAA,GACd,WAAW6J,WAAW,CAAA,CAAA;AAC5B,IAAA,MAAMI,SAAAA,GACJ,OAAOF,UAAAA,CAAW/J,KAAAA,KAAU,WACxB+J,UAAAA,CAAW/J,KAAAA,GACX,CAAA,QAAA,EAAW6J,WAAAA,GAAc,CAAC,CAAA,CAAA;AAEhC,IAAA,MAAMjB,UAAAA,GAAavG,YAAAA,CAAaQ,GAAAA,CAAImH,YAAY,CAAA;AAChD,IAAA,MAAMnB,cAAAA,GAAiBxG,YAAAA,CAAaQ,GAAAA,CAAIoH,SAAS,CAAA;AAEjD,IAAA,IAAIrB,UAAAA,KAAesB,MAAAA,IAAarB,cAAAA,KAAmBqB,MAAAA,EAAW;AAC5D,MAAA;AAAA,IACF;AAEA3B,IAAAA,cAAAA,CAAe7G,OAAAA,GAAU;AAAA,MACvB8G,UAAAA,EAAY,IAAA;AAAA,MACZC,WAAAA,EAAauB,YAAAA;AAAAA,MACbtB,eAAAA,EAAiBuB,SAAAA;AAAAA,MACjBtB,QAAQtH,CAAAA,CAAE4H,OAAAA;AAAAA,MACVL,UAAAA;AAAAA,MACAC;AAAAA,KACF;AAAA,EACF,CAAA,EACA,CAAChH,OAAAA,EAASQ,YAAY,CACxB,CAAA;AAEA,EAAA,MAAM8H,WAAAA,GACJA,CAACC,EAAAA,KACD,CAACC,OAAAA,KAA2B;AAC1B,IAAA,IAAI,OAAO3E,YAAY,UAAA,EAAY;AACjC,MAAA,MAAM4E,aAAAA,GAAgBpI,IAAAA,CAAKqI,OAAAA,CAAQ,CAACjH,KAAKZ,KAAAA,KAAU;AACjD,QAAA,IACG0H,EAAAA,KAAO9G,GAAAA,CAAI8G,EAAAA,IAAMC,OAAAA,IACjBlI,WAAAA,CAAYZ,QAAAA,CAAS+B,GAAAA,CAAI8G,EAAE,CAAA,IAAKA,EAAAA,KAAO9G,GAAAA,CAAI8G,EAAAA,EAC5C;AACA,UAAA,OAAO;AAAA,YACLI,IAAAA,EAAMlH,GAAAA;AAAAA,YACNZ;AAAAA,WACF;AAAA,QACF;AAEA,QAAA,OAAO,EAAA;AAAA,MACT,CAAC,CAAA;AACDgD,MAAAA,QAAAA,CAAS4E,aAAa,CAAA;AAAA,IACxB;AAAA,EACF,CAAA;AACF,EAAA,MAAMG,OAAAA,GAAUvI,KAAKY,MAAAA,GAAS,CAAA;AAC9B,EAAA,MAAMd,cAAwB,EAAA;AAC9B,EAAA,IAAIoE,WAAAA,EAAa;AACfpE,IAAAA,WAAAA,CAAY0I,KAAK,cAAc,CAAA;AAAA,EACjC;AACA,EAAA,IAAIrE,UAAAA,EAAY;AACdrE,IAAAA,WAAAA,CAAY0I,KAAK,YAAY,CAAA;AAAA,EAC/B;AAEA,EAAA,MAAMhK,mBAAmBqI,WAAAA,CACvB,CAACc,WAAAA,KACC,CAACc,IAAyBC,SAAAA,KAA0C;AAClE,IAAA,IAAI,CAACvI,YAAAA,EAAc;AACjB,MAAA;AAAA,IACF;AAEA,IAAA,MAAMyH,aAAAA,GAAgBjI,QAAQgI,WAAW,CAAA;AACzC,IAAA,MAAME,UAAAA,GAAalI,OAAAA,CAAQgI,WAAAA,GAAc,CAAC,CAAA;AAE1C,IAAA,IAAI,CAACC,aAAAA,IAAiB,CAACC,UAAAA,EAAY;AACjC,MAAA;AAAA,IACF;AAEA,IAAA,MAAMC,YAAAA,GACJ,OAAOF,aAAAA,CAAc9J,KAAAA,KAAU,WAC3B8J,aAAAA,CAAc9J,KAAAA,GACd,WAAW6J,WAAW,CAAA,CAAA;AAC5B,IAAA,MAAMI,SAAAA,GACJ,OAAOF,UAAAA,CAAW/J,KAAAA,KAAU,WACxB+J,UAAAA,CAAW/J,KAAAA,GACX,CAAA,QAAA,EAAW6J,WAAAA,GAAc,CAAC,CAAA,CAAA;AAEhC,IAAA,MAAMgB,SAAAA,GAAY,CAAA;AAClB,IAAA,MAAMC,UAAAA,GAAaF,SAAAA,KAAc,OAAA,GAAU,CAAA,GAAI,EAAA;AAC/C,IAAA,MAAM5B,OAAO6B,SAAAA,GAAYC,UAAAA;AAEzB,IAAA,MAAMC,YAAAA,GAAe1I,YAAAA,CAAaQ,GAAAA,CAAImH,YAAY,CAAA;AAClD,IAAA,MAAMgB,SAAAA,GAAY3I,YAAAA,CAAaQ,GAAAA,CAAIoH,SAAS,CAAA;AAE5C,IAAA,IAAIc,YAAAA,KAAiBb,MAAAA,IAAac,SAAAA,KAAcd,MAAAA,EAAW;AACzD,MAAA;AAAA,IACF;AAEA,IAAA,MAAMhB,WAAW6B,YAAAA,GAAe/B,IAAAA;AAChC,IAAA,MAAMG,eAAe6B,SAAAA,GAAYhC,IAAAA;AACjC,IAAA,MAAMiC,uBAAAA,GACJ/B,QAAAA,IAAYlC,gBAAAA,IAAoBmC,YAAAA,IAAgBnC,gBAAAA;AAElD,IAAA,IAAI,CAACiE,uBAAAA,EAAyB;AAC5B,MAAA;AAAA,IACF;AAEA3D,IAAAA,eAAAA,CAAgBgC,CAAAA,IAAAA,KAAQ;AACtB,MAAA,IAAI,CAACA,IAAAA,EAAM;AACT,QAAA,OAAOA,IAAAA;AAAAA,MACT;AACA,MAAA,MAAMC,OAAAA,GAAU,IAAI3B,GAAAA,CAAI0B,IAAI,CAAA;AAC5BC,MAAAA,OAAAA,CAAQvB,GAAAA,CAAIgC,cAAcd,QAAQ,CAAA;AAClCK,MAAAA,OAAAA,CAAQvB,GAAAA,CAAIiC,WAAWd,YAAY,CAAA;AACnC,MAAA,OAAOI,OAAAA;AAAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EACF,CAAClH,YAAAA,EAAcR,OAAO,CACxB,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,mBAAA,EAAA,EAAoB,oBAAA,EAAoBuF,YAAAA,EACtCqD,QAAAA,EAAAA;AAAAA,IAAAA,OAAAA,IAAWtD,UAAAA,oBACV,GAAA,CAAC,aAAA,EAAA,EACErF,QAAAA,EAAAA,YAAAA,oBACC,GAAA,CAAC,iBAAA,EAAA,EACC,KAAA,EAAM,YAAA,EACN,eAAA,EAAiB4D,QAAAA,EACjB,IAAA,EACA,WAAA,EAAyB,CAAA,EAG/B,CAAA;AAAA,wBAED,YAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,WAAA,EAAA,EACC,GAAA,EACA,GAAI9E,KAAAA,EAEHuG,QAAAA,EAAAA;AAAAA,MAAAA,UAAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EACC,OAAA,EACA,YAAA,EACA,WAAA,EAAazB,UACb,WAAA,EACA,MAAA,EACA,IAAA,EACA,IAAA,EACA,WAAA,EACA,gBAAA,EACA,cAActD,gBAAAA,GAAmBC,YAAAA,GAAe6H,MAAAA,EAChD,aAAA,EAAe9H,gBAAAA,GAAmBwH,iBAAAA,GAAoBM,QACtD,QAAA,EACA,gBAAA,EAAkB9H,gBAAAA,GAAmB1B,gBAAAA,GAAmBwJ,MAAAA,EAAU,CAAA;AAAA,2BAGrE,KAAA,EAAA,EACGrD,QAAAA,EAAAA;AAAAA,QAAAA,CAAAA,OAAAA,IAAW,CAAC4D,OAAAA,qBACZ,GAAA,CAAC,cAAA,EAAA,EACC,OAAA,EACE5I,QAAQiB,MAAAA,IACPuD,UAAAA,IAAcD,WAAAA,GAAc,CAAA,GAAI,MAChCtE,YAAAA,GAAe,CAAA,GAAI,CAAA,CAAA,EAEtB,OAAA,EACA,eACA,IAAA,EAAW,CAAA;AAAA,QAGdI,IAAAA,CAAKM,IAAI,CAAC;AAAA,UAAE4H,EAAAA;AAAAA,UAAI,GAAGjE;AAAAA,WAAY+E,QAAAA,qBAC9B,GAAA,CAAC,gBAEC,OAAA,EACA,YAAA,EACA,YAAY/I,WAAAA,EAAaZ,QAAAA,CAAS6I,EAAE,CAAA,EACpC,QAAA,EAAUD,YAAYC,EAAE,CAAA,EACxB,aACA,QAAA,EACEhE,WAAAA,GACI,MACEP,QAAAA,CACE;AAAA,UAAEuE,EAAAA;AAAAA,UAAI,GAAGjE,QAAAA;AAAAA,UAAUJ,SAAAA,EAAW,CAACI,QAAAA,CAASJ;AAAAA,WACxCmF,QACF,CAAA,GACFhB,QAEN,MAAA,EACE7D,UAAAA,GAAa,MAAMP,MAAAA,CAAO;AAAA,UAAEsE,EAAAA;AAAAA,UAAI,GAAGjE;AAAAA,SAAS,EAAG+E,QAAQ,CAAA,GAAIhB,MAAAA,EAE7D,IAAA,EACA,SAAA,EACA,GAAI/D,QAAAA,EAAAA,EApBC,CAAA,eAAA,EAAkB+E,QAAQ,CAAA,CAoBlB,CAEhB;AAAA,OAAA,EACH;AAAA,KAAA,EACF,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CACF;AAQA,MAAMC,oBAAgDA,CAAC;AAAA,EACrDjJ,IAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAiJ,eAAAA;AAAAA,EACA,GAAGC;AACL,CAAA,KAAM;AACJ,EAAA,MAAMC,aAAAA,GAAgBnD,QAAQ,MAAM,IAAIoD,IAAIpJ,WAAW,CAAA,EAAG,CAACA,WAAW,CAAC,CAAA;AAEvE,EAAA,MAAM;AAAA,IAAEkI,OAAAA;AAAAA,IAASmB;AAAAA,GAAS,GAAIrD,QAAQ,MAAM;AAC1C,IAAA,IAAIsD,aAAAA,GAAgB,IAAA;AACpB,IAAA,IAAIC,kBAAAA,GAAmC,KAAA;AACvC,IAAA,IAAIF,SAAAA,GAAW,IAAA;AAEf,IAAA,KAAA,MAAWlI,OAAOpB,IAAAA,EAAM;AACtB,MAAA,IAAIoB,GAAAA,CAAI2C,UAAAA,IAAc3C,GAAAA,CAAIyC,SAAAA,EAAW;AACnC,QAAA;AAAA,MACF,CAAA,MAAO;AACLyF,QAAAA,SAAAA,GAAW,KAAA;AAAA,MACb;AAEA,MAAA,IAAIF,aAAAA,CAAcK,GAAAA,CAAIrI,GAAAA,CAAI8G,EAAE,CAAA,EAAG;AAC7BsB,QAAAA,kBAAAA,GAAqB,eAAA;AAAA,MACvB,CAAA,MAAO;AACLD,QAAAA,aAAAA,GAAgB,KAAA;AAAA,MAClB;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACLpB,OAAAA,EAASmB,SAAAA,GAAW,KAAA,GAAQC,aAAAA,IAAiBC,kBAAAA;AAAAA,MAC7CF,QAAAA,EAAAA;AAAAA,KACF;AAAA,EACF,CAAA,EAAG,CAACtJ,IAAAA,EAAMoJ,aAAa,CAAC,CAAA;AAExB,EAAA,MAAMM,mBAAAA,GAAsBA,CAACvB,QAAAA,KAAqB;AAChD,IAAA,IAAI,OAAOe,oBAAoB,UAAA,EAAY;AACzC,MAAA;AAAA,IACF;AAIA,IAAA,MAAMS,kBAAkB3J,IAAAA,CAAK4J,MAAAA,CAAO,CAACC,GAAAA,EAA0BzI,KAAKZ,KAAAA,KAAU;AAC5E,MAAA,MAAMuD,UAAAA,GAAa3C,GAAAA,CAAI2C,UAAAA,IAAc3C,GAAAA,CAAIyC,SAAAA;AAEzC,MAAA,MAAMiG,gBAAAA,GAAmB3B,QAAAA,GACrB,CAACpE,UAAAA,IAAcqF,aAAAA,CAAcK,GAAAA,CAAIrI,GAAAA,CAAI8G,EAAE,CAAA,GACvCnE,UAAAA,IAAcqF,aAAAA,CAAcK,GAAAA,CAAIrI,IAAI8G,EAAE,CAAA;AAE1C,MAAA,IAAI4B,gBAAAA,EAAkB;AACpBD,QAAAA,GAAAA,CAAIrB,IAAAA,CAAK;AAAA,UACPF,IAAAA,EAAMlH,GAAAA;AAAAA,UACNZ;AAAAA,SACD,CAAA;AAAA,MACH;AAEA,MAAA,OAAOqJ,GAAAA;AAAAA,IACT,CAAA,EAAG,EAAE,CAAA;AAELX,IAAAA,eAAAA,CAAgBS,eAAe,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,2BACG,QAAA,EAAA,EACC,OAAA,EACA,UACA,eAAA,EAAiBD,mBAAAA,EACjB,GAAIP,aAAAA,EAAc,CAAA;AAGxB,CAAA;AAEA,MAAMY,WAAAA,GAAc/N,MAAAA,CAAOgO,IAAAA,CAAI9N,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,oFAAA,CAAA,CAAA;AAO/B,MAAM8N,OAAOA,CAAC;AAAA,EACZnM,KAAAA;AAAAA,EACAW,YAAAA,GAAe;AAIjB,CAAA,KAAM;AACJ,EAAA,MAAMyL,MAAAA,GAAS,OAAOpM,KAAAA,KAAU,QAAA;AAEhC,EAAA,IAAI,CAACoM,MAAAA,EAAQ;AACX,IAAA,uCAAUpM,QAAAA,EAAAA,KAAAA,EAAM,CAAA;AAAA,EAClB;AAEA,EAAA,IAAIW,iBAAiB,iBAAA,EAAmB;AACtC,IAAA,uBAAO,GAAA,CAAC,eAAA,EAAA,EAAgB,IAAA,EAAMX,KAAAA,EAAM,CAAA;AAAA,EACtC;AAEA,EAAA,IAAIW,iBAAiB,MAAA,EAAQ;AAC3B,IAAA,uBAAO,GAAA,CAAC,eAAaX,QAAAA,EAAAA,KAAAA,EAAM,CAAA;AAAA,EAC7B;AAEA,EAAA,uBAAO,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,KAAA,EAAOA,QAAAA,EAAAA,KAAAA,EAAM,CAAA;AACjD,CAAA;AAEA,MAAMqM,WAAAA,GAAcnO,MAAAA,CAAOO,KAAAA,CAAKL,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,0HAAA,EAAA,oCAAA,GAOP,CAAC;AAAA,EAAEC;AAAM,CAAA,KAAMA,KAAAA,CAAMqF,UAAAA,CAAWC,KAAAA,CAAMC,EAAE,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Table/Table.tsx"],"sourcesContent":["import {\n CSSProperties,\n FC,\n HTMLAttributes,\n MouseEvent,\n ReactNode,\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from 'react';\n\nimport { CheckedState } from '@radix-ui/react-checkbox';\n\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport { Text } from '@/components/Text';\nimport { HorizontalDirection } from '@/types';\nimport { EllipsisContent } from '@/components/EllipsisContent';\nimport { Checkbox, CheckboxProps } from '@/components/Checkbox';\nimport { MiddleTruncator } from '@/components/MiddleTruncator';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './Table.module.css';\n\ntype SortDir = 'asc' | 'desc';\ntype SortFn = (sortDir: SortDir, header: TableColumnConfigProps, index: number) => void;\ntype TableSize = 'sm' | 'md';\n\n// wrap: text breaks into multiple lines\n// truncated: text cuts at end with an ellipsis (...)\n// truncate-middle: text cuts in middle, shows start and end\ntype OverflowMode = 'truncated' | 'truncate-middle' | 'wrap';\n\nexport interface TableColumnConfigProps extends HTMLAttributes<HTMLTableCellElement> {\n label: ReactNode;\n isSortable?: boolean;\n sortDir?: SortDir;\n sortPosition?: HorizontalDirection;\n width?: string;\n overflowMode?: OverflowMode;\n resizable?: boolean;\n}\n\n// TODO: Delete `TableHeaderType` (deprecation warn at v0.0.251-test.67)\n/** @deprecated The TableHeaderType field have been deprecated to favour TableColumnConfigProps */\nexport type TableHeaderType = TableColumnConfigProps;\n\nconst headerVariants = cva(styles.table__header, {\n variants: {\n size: {\n sm: styles.table__header_size_sm,\n md: styles.table__header_size_md,\n },\n resizable: {\n true: styles.table__header_resizable,\n false: '',\n },\n },\n defaultVariants: {\n resizable: false,\n },\n});\n\nconst sortIconVariants = cva(styles['table__sort-icon'], {\n variants: {\n dir: {\n asc: styles['table__sort-icon_dir_asc'],\n desc: styles['table__sort-icon_dir_desc'],\n },\n },\n});\n\ntype OnKeyboardResizerDirection = 'left' | 'right';\n\ninterface TableHeaderProps extends Omit<TableColumnConfigProps, 'width'> {\n onSort?: () => void;\n size: TableSize;\n showResizer?: boolean;\n onResizeStart?: (e: MouseEvent) => void;\n onKeyboardResize?: (\n e: React.KeyboardEvent,\n direction: OnKeyboardResizerDirection\n ) => void;\n}\n\nconst TableHeader = ({\n label,\n sortDir,\n sortPosition = 'end',\n isSortable,\n onSort,\n onClick,\n size,\n resizable,\n showResizer,\n onResizeStart,\n onKeyboardResize,\n overflowMode,\n className,\n ...props\n}: TableHeaderProps) => {\n if (overflowMode === 'wrap' && resizable) {\n console.warn(\n '\"Wrap\" overflow mode doesn\\'t work well with resizable table columns. Consider using truncation instead, please!'\n );\n }\n\n const isSorted = typeof sortDir === 'string';\n const isInteractive = Boolean(\n typeof onClick === 'function' || (isSortable && typeof onSort === 'function')\n );\n const resizerRef = useRef<HTMLDivElement>(null);\n\n const onHeaderClick = (e: MouseEvent<HTMLTableCellElement>): void => {\n if (typeof onClick === 'function') {\n onClick(e);\n }\n if (typeof onSort === 'function') {\n onSort();\n }\n };\n\n const onResizerKeyDown = (e: React.KeyboardEvent) => {\n if (!onKeyboardResize) {\n return;\n }\n\n if (['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n e.preventDefault();\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n onKeyboardResize(e, 'left');\n break;\n case 'ArrowRight':\n onKeyboardResize(e, 'right');\n break;\n case 'Escape':\n resizerRef.current?.blur();\n break;\n }\n };\n\n return (\n <th\n {...props}\n className={cn(headerVariants({ size, resizable }), className)}\n >\n <div\n onClick={onHeaderClick}\n className={cn(\n styles['table__header-content'],\n isInteractive && styles['table__header-content_interactive']\n )}\n >\n {isSorted && isSortable && sortPosition == 'start' && (\n <Icon\n name=\"arrow-down\"\n size=\"sm\"\n className={cn(sortIconVariants({ dir: sortDir }))}\n />\n )}\n {label}\n {isSorted && isSortable && sortPosition == 'end' && (\n <Icon\n name=\"arrow-down\"\n size=\"sm\"\n className={cn(sortIconVariants({ dir: sortDir }))}\n />\n )}\n </div>\n {showResizer && (\n <div\n ref={resizerRef}\n onMouseDown={onResizeStart}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label={`Resize ${typeof label === 'string' ? label : 'column'}`}\n tabIndex={0}\n onKeyDown={onResizerKeyDown}\n className={cn(styles.table__resizer)}\n />\n )}\n </th>\n );\n};\ninterface TheadProps {\n headers: TableColumnConfigProps[];\n isSelectable?: boolean;\n onSelectAll?: (selectedValues: SelectReturnValue[]) => void;\n actionsList: string[];\n onSort?: SortFn;\n size: TableSize;\n rows: TableRowType[];\n selectedIds: (number | string)[];\n resizableColumns?: boolean;\n columnWidths?: Map<string, number> | null;\n onResizeStart?: (columnIndex: number) => (e: MouseEvent) => void;\n onKeyboardResize?: (\n columnIndex: number\n ) => (e: React.KeyboardEvent, direction: OnKeyboardResizerDirection) => void;\n theadRef?: RefObject<HTMLTableSectionElement>;\n}\n\nconst Thead = ({\n headers,\n isSelectable,\n onSelectAll,\n actionsList,\n onSort: onSortProp,\n size,\n rows,\n selectedIds,\n resizableColumns,\n columnWidths,\n onResizeStart,\n theadRef,\n onKeyboardResize,\n}: TheadProps) => {\n const onSort = (header: TableColumnConfigProps, headerIndex: number) => () => {\n if (typeof onSortProp === 'function' && header.isSortable) {\n onSortProp(header.sortDir === 'asc' ? 'desc' : 'asc', header, headerIndex);\n }\n };\n return (\n <>\n <colgroup className={cn(styles.table__colgroup)}>\n {isSelectable && <col width={48} />}\n {headers.map((headerProps, index) => {\n const headerLabel =\n typeof headerProps.label === 'string'\n ? headerProps.label\n : `__index_${index}`;\n const widthFromMap = columnWidths?.get(headerLabel);\n return (\n <col\n key={`header-col-${index}`}\n width={\n resizableColumns && widthFromMap && index < headers.length - 1\n ? `${widthFromMap}px`\n : headerProps.width\n }\n />\n );\n })}\n {actionsList.length > 0 && <col width={(actionsList.length + 1) * 32 + 10} />}\n </colgroup>\n <thead\n ref={theadRef}\n className={cn(styles.table__thead)}\n >\n <tr>\n {isSelectable && (\n <th\n aria-label=\"Select column\"\n className={cn(headerVariants({ size }))}\n >\n <SelectAllCheckbox\n onCheckedChange={onSelectAll}\n rows={rows}\n selectedIds={selectedIds}\n />\n </th>\n )}\n {headers.map((headerProps, index) => (\n <TableHeader\n key={`table-header-${index}`}\n onSort={onSort(headerProps, index)}\n size={size}\n resizable={resizableColumns}\n showResizer={resizableColumns && index < headers.length - 1}\n onResizeStart={onResizeStart?.(index)}\n onKeyboardResize={onKeyboardResize?.(index)}\n {...headerProps}\n />\n ))}\n {actionsList.length > 0 && (\n <th\n aria-label=\"Actions\"\n className={cn(headerVariants({ size }))}\n />\n )}\n </tr>\n </thead>\n </>\n );\n};\n\nconst rowVariants = cva(styles.table__row, {\n variants: {\n isSelectable: {\n true: styles.table__row_selectable,\n false: '',\n },\n isActive: {\n true: styles.table__row_active,\n false: '',\n },\n isDisabled: {\n true: styles.table__row_disabled,\n false: '',\n },\n showActions: {\n true: styles['table__row_show-actions'],\n false: '',\n },\n },\n defaultVariants: {\n isSelectable: false,\n isActive: false,\n isDisabled: false,\n showActions: false,\n },\n});\n\nconst cellVariants = cva(styles.table__data, {\n variants: {\n size: {\n sm: styles.table__data_size_sm,\n md: styles.table__data_size_md,\n },\n },\n});\n\nconst selectDataVariants = cva(styles['table__select-data'], {\n variants: {\n size: {\n sm: styles['table__select-data_size_sm'],\n md: styles['table__select-data_size_md'],\n },\n },\n});\n\nconst actionsCellVariants = cva(styles['table__actions-cell'], {\n variants: {\n size: {\n sm: styles['table__actions-cell_size_sm'],\n md: styles['table__actions-cell_size_md'],\n },\n },\n});\n\ninterface TableCellType extends HTMLAttributes<HTMLTableCellElement> {\n label: ReactNode;\n overflowMode?: OverflowMode;\n}\nexport interface TableRowType extends Omit<\n HTMLAttributes<HTMLTableRowElement>,\n 'onSelect' | 'id'\n> {\n id: string | number;\n items: TableCellType[];\n isDisabled?: boolean;\n isDeleted?: boolean;\n isActive?: boolean;\n /** only works with <Table isSelectable={true} /> */\n isIndeterminate?: boolean;\n}\n\nexport type MobileLayoutProp = 'list' | 'scroll';\n\ninterface CommonTableProps extends Omit<\n HTMLAttributes<HTMLTableElement>,\n 'children' | 'onSelect'\n> {\n headers: TableColumnConfigProps[];\n rows: TableRowType[];\n onDelete?: (item: TableRowType, index: number) => void;\n onEdit?: (item: TableRowType, index: number) => void;\n onSort?: SortFn;\n loading?: boolean;\n noDataMessage?: ReactNode;\n size?: TableSize;\n showHeader?: boolean;\n rowHeight?: string;\n resizableColumns?: boolean;\n mobileLayout?: MobileLayoutProp;\n}\n\ntype SelectReturnValue = {\n index: number;\n item: TableRowType;\n};\n\ninterface SelectionType {\n isSelectable?: boolean;\n selectedIds?: (number | string)[];\n onSelect?: (selectedValues: SelectReturnValue[]) => void;\n}\n\ninterface NoSelectionType {\n isSelectable?: never;\n selectedIds?: never;\n onSelect?: never;\n}\n\nexport type TableProps = CommonTableProps & (SelectionType | NoSelectionType);\n\ninterface TableBodyRowProps extends Omit<TableRowType, 'id'> {\n headers: TableColumnConfigProps[];\n onSelect: (checked: boolean) => void;\n isSelectable?: boolean;\n isSelected: boolean;\n onDelete?: () => void;\n onEdit?: () => void;\n actionsList: string[];\n size: TableSize;\n rowHeight?: string;\n}\n\nconst TableBodyRow = ({\n headers,\n items,\n onSelect,\n isSelectable,\n isSelected,\n isIndeterminate,\n onDelete,\n onEdit,\n isDeleted,\n isActive,\n isDisabled,\n size,\n actionsList,\n rowHeight,\n className,\n style,\n ...rowProps\n}: TableBodyRowProps) => {\n const isDeletable = typeof onDelete === 'function';\n const isEditable = typeof onEdit === 'function';\n const rowStyle = useMemo(\n () =>\n ({\n ...(rowHeight ? { '--table-row-height': rowHeight } : {}),\n ...style,\n }) as CSSProperties,\n [rowHeight, style]\n );\n return (\n <tr\n style={rowStyle}\n {...rowProps}\n className={cn(\n rowVariants({\n isSelectable,\n isActive,\n isDisabled: isDeleted || isDisabled,\n showActions: isDeletable || isEditable,\n }),\n className\n )}\n >\n {isSelectable && (\n <td className={cn(selectDataVariants({ size }))}>\n <Checkbox\n checked={isIndeterminate ? 'indeterminate' : isSelected}\n onCheckedChange={onSelect}\n disabled={isDisabled || isDeleted}\n />\n </td>\n )}\n {items.map(\n ({ label, overflowMode, className: cellClassName, ...cellProps }, cellIndex) => (\n <td\n key={`table-cell-${cellIndex}`}\n {...cellProps}\n className={cn(cellVariants({ size }), cellClassName)}\n >\n {headers[cellIndex] && (\n <div className={cn(styles['table__mobile-header'])}>\n {headers[cellIndex].label}\n </div>\n )}\n <Cell\n label={label}\n overflowMode={overflowMode ?? headers[cellIndex]?.overflowMode}\n />\n </td>\n )\n )}\n {actionsList.length > 0 && (\n <td className={cn(actionsCellVariants({ size }))}>\n <div className={cn(styles.table__actions)}>\n {actionsList.includes('editAction') && (\n <IconButton\n type=\"ghost\"\n htmlType=\"button\"\n disabled={isDisabled || isDeleted || !isEditable}\n icon=\"pencil\"\n onClick={onEdit}\n data-testid=\"table-row-edit\"\n className={cn(styles['table__edit-button'])}\n />\n )}\n {actionsList.includes('deleteAction') && (\n <IconButton\n disabled={isDisabled || !isDeletable}\n type=\"ghost\"\n htmlType=\"button\"\n icon=\"cross\"\n onClick={onDelete}\n data-testid=\"table-row-delete\"\n className={cn(\n styles['table__close-button'],\n isDeleted && styles['table__close-button_deleted']\n )}\n />\n )}\n </div>\n </td>\n )}\n </tr>\n );\n};\n\nconst LoadingData = () => {\n return (\n <>\n <Icon\n name=\"loading-animated\"\n size=\"sm\"\n />\n <Text size=\"sm\">Loading data</Text>\n </>\n );\n};\ninterface CustomTableRowProps {\n loading?: boolean;\n noDataMessage?: ReactNode;\n colSpan: number;\n size: TableSize;\n}\nconst CustomTableRow = ({\n loading,\n noDataMessage,\n colSpan,\n size,\n}: CustomTableRowProps) => {\n return (\n <tr className={cn(rowVariants({}))}>\n <td\n colSpan={colSpan}\n className={cn(cellVariants({ size }), styles['table__spanned-data'])}\n >\n <div className={cn(styles['table__custom-message'])}>\n {loading ? <LoadingData /> : (noDataMessage ?? 'No Data available')}\n </div>\n </td>\n </tr>\n );\n};\ninterface ResizeState {\n isResizing: boolean;\n columnLabel: string | null;\n nextColumnLabel: string | null;\n startX: number;\n startWidth: number;\n nextStartWidth: number;\n}\n\n// TODO: What is an acceptable minimum column width?\nconst MIN_COLUMN_WIDTH = 120;\n\nconst Table = forwardRef<HTMLTableElement, TableProps>(\n (\n {\n headers,\n rows,\n isSelectable,\n selectedIds = [],\n onSelect,\n onDelete,\n onEdit,\n onSort,\n loading,\n noDataMessage,\n size = 'sm',\n showHeader = true,\n rowHeight,\n resizableColumns,\n mobileLayout = 'list',\n className,\n ...props\n },\n ref\n ) => {\n const isDeletable = typeof onDelete === 'function';\n const isEditable = typeof onEdit === 'function';\n\n const [columnWidths, setColumnWidths] = useState<Map<string, number> | null>(null);\n const theadRef = useRef<HTMLTableSectionElement>(null);\n\n useLayoutEffect(() => {\n if (!resizableColumns || columnWidths !== null || !theadRef.current) {\n return;\n }\n\n const headerCells = theadRef.current.querySelectorAll('th');\n const widths = new Map<string, number>();\n\n // Skip select column (index 0 if isSelectable) and actions column (last if present)\n const startIndex = isSelectable ? 1 : 0;\n const endIndex = headerCells.length - (isDeletable || isEditable ? 1 : 0);\n\n let headerIndex = 0;\n for (let i = startIndex; i < endIndex; i++) {\n const header = headers[headerIndex];\n if (header) {\n const key =\n typeof header.label === 'string' ? header.label : `__index_${headerIndex}`;\n widths.set(key, headerCells[i].getBoundingClientRect().width);\n }\n headerIndex++;\n }\n\n if (widths.size === headers.length) {\n setColumnWidths(widths);\n }\n }, [resizableColumns, columnWidths, isSelectable, isDeletable, isEditable]);\n\n const headerKey = useMemo(\n () =>\n headers\n .map((h, i) => (typeof h.label === 'string' ? h.label : `__index_${i}`))\n .join(','),\n [headers]\n );\n useEffect(() => {\n setColumnWidths(null);\n }, [headerKey]);\n\n const resizeStateRef = useRef<ResizeState>({\n isResizing: false,\n columnLabel: null,\n nextColumnLabel: null,\n startX: 0,\n startWidth: 0,\n nextStartWidth: 0,\n });\n\n const onMouseMove = useCallback((e: globalThis.MouseEvent) => {\n if (!resizeStateRef.current.isResizing) {\n return;\n }\n\n const { columnLabel, nextColumnLabel, startX, startWidth, nextStartWidth } =\n resizeStateRef.current;\n\n if (!columnLabel || !nextColumnLabel) {\n return;\n }\n\n const diff = e.clientX - startX;\n const newWidth = startWidth + diff;\n const newNextWidth = nextStartWidth - diff;\n\n if (Number.isNaN(newWidth) || Number.isNaN(newNextWidth)) {\n console.warn('Unexpected computed values for resize width', {\n newWidth,\n newNextWidth,\n });\n return;\n }\n\n if (newWidth >= MIN_COLUMN_WIDTH && newNextWidth >= MIN_COLUMN_WIDTH) {\n setColumnWidths(prev => {\n if (!prev) {\n return prev;\n }\n const updated = new Map(prev);\n updated.set(columnLabel, newWidth);\n updated.set(nextColumnLabel, newNextWidth);\n return updated;\n });\n }\n }, []);\n\n const onMouseUp = useCallback(() => {\n resizeStateRef.current.isResizing = false;\n }, []);\n\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n }, [resizableColumns, onMouseMove, onMouseUp]);\n\n const handleResizeStart = useCallback(\n (columnIndex: number) => (e: MouseEvent) => {\n e.preventDefault();\n\n if (!columnWidths) {\n return;\n }\n\n const currentHeader = headers[columnIndex];\n const nextHeader = headers[columnIndex + 1];\n\n if (!currentHeader || !nextHeader) {\n return;\n }\n\n const currentLabel =\n typeof currentHeader.label === 'string'\n ? currentHeader.label\n : `__index_${columnIndex}`;\n const nextLabel =\n typeof nextHeader.label === 'string'\n ? nextHeader.label\n : `__index_${columnIndex + 1}`;\n\n const startWidth = columnWidths.get(currentLabel);\n const nextStartWidth = columnWidths.get(nextLabel);\n\n if (startWidth === undefined || nextStartWidth === undefined) {\n return;\n }\n\n resizeStateRef.current = {\n isResizing: true,\n columnLabel: currentLabel,\n nextColumnLabel: nextLabel,\n startX: e.clientX,\n startWidth,\n nextStartWidth,\n };\n },\n [headers, columnWidths]\n );\n\n const onRowSelect =\n (id: number | string) =>\n (checked: boolean): void => {\n if (typeof onSelect == 'function') {\n const selectedItems = rows.flatMap((row, index) => {\n if (\n (id === row.id && checked) ||\n (selectedIds.includes(row.id) && id !== row.id)\n ) {\n return {\n item: row,\n index,\n };\n }\n\n return [];\n });\n onSelect(selectedItems);\n }\n };\n const hasRows = rows.length > 0;\n const actionsList: string[] = [];\n if (isDeletable) {\n actionsList.push('deleteAction');\n }\n if (isEditable) {\n actionsList.push('editAction');\n }\n\n const onKeyboardResize = useCallback(\n (columnIndex: number) =>\n (_e: React.KeyboardEvent, direction: OnKeyboardResizerDirection) => {\n if (!columnWidths) {\n return;\n }\n\n const currentHeader = headers[columnIndex];\n const nextHeader = headers[columnIndex + 1];\n\n if (!currentHeader || !nextHeader) {\n return;\n }\n\n const currentLabel =\n typeof currentHeader.label === 'string'\n ? currentHeader.label\n : `__index_${columnIndex}`;\n const nextLabel =\n typeof nextHeader.label === 'string'\n ? nextHeader.label\n : `__index_${columnIndex + 1}`;\n\n const increment = 2;\n const multiplier = direction === 'right' ? 1 : -1;\n const diff = increment * multiplier;\n\n const currentWidth = columnWidths.get(currentLabel);\n const nextWidth = columnWidths.get(nextLabel);\n\n if (currentWidth === undefined || nextWidth === undefined) {\n return;\n }\n\n const newWidth = currentWidth + diff;\n const newNextWidth = nextWidth - diff;\n const shouldUpdateColumnWidth =\n newWidth >= MIN_COLUMN_WIDTH && newNextWidth >= MIN_COLUMN_WIDTH;\n\n if (!shouldUpdateColumnWidth) {\n return;\n }\n\n setColumnWidths(prev => {\n if (!prev) {\n return prev;\n }\n const updated = new Map(prev);\n updated.set(currentLabel, newWidth);\n updated.set(nextLabel, newNextWidth);\n return updated;\n });\n },\n [columnWidths, headers]\n );\n\n return (\n <div\n data-mobile-layout={mobileLayout}\n className={cn(styles.table)}\n >\n {hasRows && showHeader && (\n <div className={cn(styles['table__mobile-actions'])}>\n {isSelectable && (\n <SelectAllCheckbox\n label=\"Select All\"\n onCheckedChange={onSelect}\n rows={rows}\n selectedIds={selectedIds}\n />\n )}\n </div>\n )}\n <div className={cn(styles.table__wrapper)}>\n <table\n ref={ref}\n {...props}\n className={cn(styles['table__table'], className)}\n >\n {showHeader && (\n <Thead\n headers={headers}\n isSelectable={isSelectable}\n onSelectAll={onSelect}\n actionsList={actionsList}\n onSort={onSort}\n size={size}\n rows={rows}\n selectedIds={selectedIds}\n resizableColumns={resizableColumns}\n columnWidths={resizableColumns ? columnWidths : undefined}\n onResizeStart={resizableColumns ? handleResizeStart : undefined}\n theadRef={theadRef}\n onKeyboardResize={resizableColumns ? onKeyboardResize : undefined}\n />\n )}\n <tbody className={cn(styles.table__tbody)}>\n {(loading || !hasRows) && (\n <CustomTableRow\n colSpan={\n headers.length +\n (isEditable || isDeletable ? 1 : 0) +\n (isSelectable ? 1 : 0)\n }\n loading={loading}\n noDataMessage={noDataMessage}\n size={size}\n />\n )}\n {rows.map(({ id, ...rowProps }, rowIndex) => (\n <TableBodyRow\n key={`table-body-row-${rowIndex}`}\n headers={headers}\n isSelectable={isSelectable}\n isSelected={selectedIds?.includes(id)}\n onSelect={onRowSelect(id)}\n actionsList={actionsList}\n onDelete={\n isDeletable\n ? () =>\n onDelete(\n { id, ...rowProps, isDeleted: !rowProps.isDeleted },\n rowIndex\n )\n : undefined\n }\n onEdit={\n isEditable ? () => onEdit({ id, ...rowProps }, rowIndex) : undefined\n }\n size={size}\n rowHeight={rowHeight}\n {...rowProps}\n />\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n }\n);\n\ninterface SelectAllCheckboxProps extends Omit<CheckboxProps, 'onCheckedChange'> {\n onCheckedChange?: (selectedValues: SelectReturnValue[]) => void;\n selectedIds: (number | string)[];\n rows: TableRowType[];\n}\n\nconst SelectAllCheckbox: FC<SelectAllCheckboxProps> = ({\n rows,\n selectedIds,\n onCheckedChange,\n ...checkboxProps\n}) => {\n const selectedIdSet = useMemo(() => new Set(selectedIds), [selectedIds]);\n\n const { checked, disabled } = useMemo(() => {\n let areAllChecked = true;\n let maybeIndeterminate: CheckedState = false;\n let disabled = true;\n\n for (const row of rows) {\n if (row.isDisabled || row.isDeleted) {\n continue;\n } else {\n disabled = false;\n }\n\n if (selectedIdSet.has(row.id)) {\n maybeIndeterminate = 'indeterminate';\n } else {\n areAllChecked = false;\n }\n }\n\n return {\n checked: disabled ? false : areAllChecked || maybeIndeterminate,\n disabled,\n };\n }, [rows, selectedIdSet]);\n\n const handleCheckedChange = (checked: boolean) => {\n if (typeof onCheckedChange !== 'function') {\n return;\n }\n\n // disabled items should not change their selected state because of user interaction\n\n const newSelectedRows = rows.reduce((acc: SelectReturnValue[], row, index) => {\n const isDisabled = row.isDisabled || row.isDeleted;\n\n const shouldBeSelected = checked\n ? !isDisabled || selectedIdSet.has(row.id)\n : isDisabled && selectedIdSet.has(row.id);\n\n if (shouldBeSelected) {\n acc.push({\n item: row,\n index,\n });\n }\n\n return acc;\n }, []);\n\n onCheckedChange(newSelectedRows);\n };\n\n return (\n <Checkbox\n checked={checked}\n disabled={disabled}\n onCheckedChange={handleCheckedChange}\n {...checkboxProps}\n />\n );\n};\n\nconst Cell = ({\n label,\n overflowMode = 'truncated',\n}: {\n label: ReactNode;\n overflowMode?: OverflowMode;\n}) => {\n const isText = typeof label === 'string';\n\n if (!isText) {\n return <>{label}</>;\n }\n\n if (overflowMode === 'truncate-middle') {\n return <MiddleTruncator text={label} />;\n }\n\n if (overflowMode === 'wrap') {\n return <span className={cn(styles['table__text-wrapped'])}>{label}</span>;\n }\n\n return <EllipsisContent component=\"div\">{label}</EllipsisContent>;\n};\n\nexport { Table };\n"],"names":["headerVariants","cva","styles","table__header","variants","size","sm","table__header_size_sm","md","table__header_size_md","resizable","true","table__header_resizable","false","defaultVariants","sortIconVariants","dir","asc","desc","TableHeader","label","sortDir","sortPosition","isSortable","onSort","onClick","showResizer","onResizeStart","onKeyboardResize","overflowMode","className","props","console","warn","isSorted","isInteractive","Boolean","resizerRef","useRef","onHeaderClick","e","onResizerKeyDown","includes","key","preventDefault","current","blur","cn","Icon","table__resizer","Thead","headers","isSelectable","onSelectAll","actionsList","onSortProp","rows","selectedIds","resizableColumns","columnWidths","theadRef","header","headerIndex","table__colgroup","map","headerProps","index","headerLabel","widthFromMap","get","length","width","table__thead","rowVariants","table__row","table__row_selectable","isActive","table__row_active","isDisabled","table__row_disabled","showActions","cellVariants","table__data","table__data_size_sm","table__data_size_md","selectDataVariants","actionsCellVariants","TableBodyRow","items","onSelect","isSelected","isIndeterminate","onDelete","onEdit","isDeleted","rowHeight","style","rowProps","isDeletable","isEditable","rowStyle","useMemo","cellClassName","cellProps","cellIndex","table__actions","LoadingData","CustomTableRow","loading","noDataMessage","colSpan","MIN_COLUMN_WIDTH","Table","forwardRef","showHeader","mobileLayout","ref","setColumnWidths","useState","useLayoutEffect","headerCells","querySelectorAll","widths","Map","startIndex","endIndex","i","set","getBoundingClientRect","headerKey","h","join","useEffect","resizeStateRef","isResizing","columnLabel","nextColumnLabel","startX","startWidth","nextStartWidth","onMouseMove","useCallback","diff","clientX","newWidth","newNextWidth","Number","isNaN","prev","updated","onMouseUp","document","addEventListener","removeEventListener","handleResizeStart","columnIndex","currentHeader","nextHeader","currentLabel","nextLabel","undefined","onRowSelect","id","checked","selectedItems","flatMap","row","item","hasRows","push","_e","direction","increment","multiplier","currentWidth","nextWidth","shouldUpdateColumnWidth","table","table__wrapper","table__tbody","rowIndex","SelectAllCheckbox","onCheckedChange","checkboxProps","selectedIdSet","Set","disabled","areAllChecked","maybeIndeterminate","has","handleCheckedChange","newSelectedRows","reduce","acc","shouldBeSelected","Cell","isText"],"mappings":";;;;;;;;;;;;AAmDA,MAAMA,cAAAA,GAAiBC,GAAAA,CAAIC,MAAAA,CAAOC,aAAAA,EAAe;AAAA,EAC/CC,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,IAAIJ,MAAAA,CAAOK,qBAAAA;AAAAA,MACXC,IAAIN,MAAAA,CAAOO;AAAAA,KACb;AAAA,IACAC,SAAAA,EAAW;AAAA,MACTC,MAAMT,MAAAA,CAAOU,uBAAAA;AAAAA,MACbC,KAAAA,EAAO;AAAA;AACT,GACF;AAAA,EACAC,eAAAA,EAAiB;AAAA,IACfJ,SAAAA,EAAW;AAAA;AAEf,CAAC,CAAA;AAED,MAAMK,gBAAAA,GAAmBd,GAAAA,CAAIC,MAAAA,CAAO,kBAAkB,CAAA,EAAG;AAAA,EACvDE,QAAAA,EAAU;AAAA,IACRY,GAAAA,EAAK;AAAA,MACHC,GAAAA,EAAKf,OAAO,0BAA0B,CAAA;AAAA,MACtCgB,IAAAA,EAAMhB,OAAO,2BAA2B;AAAA;AAC1C;AAEJ,CAAC,CAAA;AAeD,MAAMiB,cAAcA,CAAC;AAAA,EACnBC,KAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA,GAAe,KAAA;AAAA,EACfC,UAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACApB,IAAAA;AAAAA,EACAK,SAAAA;AAAAA,EACAgB,WAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACA,GAAGC;AACa,CAAA,KAAM;AACtB,EAAA,IAAIF,YAAAA,KAAiB,UAAUnB,SAAAA,EAAW;AACxCsB,IAAAA,OAAAA,CAAQC,KACN,CAAA,+GAAA,CACF,CAAA;AAAA,EACF;AAEA,EAAA,MAAMC,QAAAA,GAAW,OAAOb,OAAAA,KAAY,QAAA;AACpC,EAAA,MAAMc,aAAAA,GAAgBC,QACpB,OAAOX,OAAAA,KAAY,cAAeF,UAAAA,IAAc,OAAOC,WAAW,UACpE,CAAA;AACA,EAAA,MAAMa,UAAAA,GAAaC,OAAuB,IAAI,CAAA;AAE9C,EAAA,MAAMC,aAAAA,GAAgBA,CAACC,CAAAA,KAA8C;AACnE,IAAA,IAAI,OAAOf,YAAY,UAAA,EAAY;AACjCA,MAAAA,OAAAA,CAAQe,CAAC,CAAA;AAAA,IACX;AACA,IAAA,IAAI,OAAOhB,WAAW,UAAA,EAAY;AAChCA,MAAAA,MAAAA,EAAO;AAAA,IACT;AAAA,EACF,CAAA;AAEA,EAAA,MAAMiB,gBAAAA,GAAmBA,CAACD,CAAAA,KAA2B;AACnD,IAAA,IAAI,CAACZ,gBAAAA,EAAkB;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,WAAA,EAAa,YAAY,EAAEc,QAAAA,CAASF,CAAAA,CAAEG,GAAG,CAAA,EAAG;AAC/CH,MAAAA,CAAAA,CAAEI,cAAAA,EAAe;AAAA,IACnB;AAEA,IAAA,QAAQJ,EAAEG,GAAAA;AAAG,MACX,KAAK,WAAA;AACHf,QAAAA,gBAAAA,CAAiBY,GAAG,MAAM,CAAA;AAC1B,QAAA;AAAA,MACF,KAAK,YAAA;AACHZ,QAAAA,gBAAAA,CAAiBY,GAAG,OAAO,CAAA;AAC3B,QAAA;AAAA,MACF,KAAK,QAAA;AACHH,QAAAA,UAAAA,CAAWQ,SAASC,IAAAA,EAAK;AACzB,QAAA;AAAA;AACJ,EACF,CAAA;AAEA,EAAA,4BACG,IAAA,EAAA,EACC,GAAIf,KAAAA,EACJ,SAAA,EAAWgB,GAAG/C,cAAAA,CAAe;AAAA,IAAEK,IAAAA;AAAAA,IAAMK;AAAAA,GAAW,CAAA,EAAGoB,SAAS,CAAA,EAE5D,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EACC,OAAA,EAASS,aAAAA,EACT,SAAA,EAAWQ,EAAAA,CACT7C,MAAAA,CAAO,uBAAuB,CAAA,EAC9BiC,aAAAA,IAAiBjC,MAAAA,CAAO,mCAAmC,CAC7D,CAAA,EAECgC,QAAAA,EAAAA;AAAAA,MAAAA,QAAAA,IAAYX,UAAAA,IAAcD,YAAAA,IAAgB,OAAA,oBACzC,GAAA,CAAC0B,QAAA,EAAA,EACC,IAAA,EAAK,YAAA,EACL,IAAA,EAAK,IAAA,EACL,SAAA,EAAWD,EAAAA,CAAGhC,gBAAAA,CAAiB;AAAA,QAAEC,GAAAA,EAAKK;AAAAA,OAAS,CAAC,CAAA,EAAE,CAAA;AAAA,MAGrDD,KAAAA;AAAAA,MACAc,QAAAA,IAAYX,UAAAA,IAAcD,YAAAA,IAAgB,KAAA,oBACzC,GAAA,CAAC0B,QAAA,EAAA,EACC,IAAA,EAAK,YAAA,EACL,IAAA,EAAK,IAAA,EACL,SAAA,EAAWD,EAAAA,CAAGhC,gBAAAA,CAAiB;AAAA,QAAEC,GAAAA,EAAKK;AAAAA,OAAS,CAAC,CAAA,EAAE;AAAA,KAAA,EAGxD,CAAA;AAAA,IACCK,WAAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EACC,GAAA,EAAKW,UAAAA,EACL,WAAA,EAAaV,aAAAA,EACb,IAAA,EAAK,WAAA,EACL,kBAAA,EAAiB,UAAA,EACjB,YAAA,EAAY,CAAA,OAAA,EAAU,OAAOP,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQ,QAAQ,CAAA,CAAA,EAClE,QAAA,EAAU,CAAA,EACV,SAAA,EAAWqB,gBAAAA,EACX,SAAA,EAAWM,EAAAA,CAAG7C,MAAAA,CAAO+C,cAAc,CAAA,EAAE;AAAA,GAAA,EAG3C,CAAA;AAEJ,CAAA;AAmBA,MAAMC,QAAQA,CAAC;AAAA,EACbC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACA9B,MAAAA,EAAQ+B,UAAAA;AAAAA,EACRlD,IAAAA;AAAAA,EACAmD,IAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAhC,aAAAA;AAAAA,EACAiC,QAAAA;AAAAA,EACAhC;AACU,CAAA,KAAM;AAChB,EAAA,MAAMJ,MAAAA,GAASA,CAACqC,MAAAA,EAAgCC,WAAAA,KAAwB,MAAM;AAC5E,IAAA,IAAI,OAAOP,UAAAA,KAAe,UAAA,IAAcM,MAAAA,CAAOtC,UAAAA,EAAY;AACzDgC,MAAAA,UAAAA,CAAWM,OAAOxC,OAAAA,KAAY,KAAA,GAAQ,MAAA,GAAS,KAAA,EAAOwC,QAAQC,WAAW,CAAA;AAAA,IAC3E;AAAA,EACF,CAAA;AACA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,UAAA,EAAA,EAAS,SAAA,EAAWf,EAAAA,CAAG7C,MAAAA,CAAO6D,eAAe,CAAA,EAC3CX,QAAAA,EAAAA;AAAAA,MAAAA,YAAAA,oBAAgB,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAA,EAAG,CAAA;AAAA,MAC/BD,OAAAA,CAAQa,GAAAA,CAAI,CAACC,WAAAA,EAAaC,KAAAA,KAAU;AACnC,QAAA,MAAMC,WAAAA,GACJ,OAAOF,WAAAA,CAAY7C,KAAAA,KAAU,WACzB6C,WAAAA,CAAY7C,KAAAA,GACZ,WAAW8C,KAAK,CAAA,CAAA;AACtB,QAAA,MAAME,YAAAA,GAAeT,YAAAA,EAAcU,GAAAA,CAAIF,WAAW,CAAA;AAClD,QAAA,2BACG,KAAA,EAAA,EAEC,KAAA,EACET,gBAAAA,IAAoBU,YAAAA,IAAgBF,QAAQf,OAAAA,CAAQmB,MAAAA,GAAS,CAAA,GACzD,CAAA,EAAGF,YAAY,CAAA,EAAA,CAAA,GACfH,WAAAA,CAAYM,KAAAA,EAAAA,EAJb,CAAA,WAAA,EAAcL,KAAK,CAAA,CAKvB,CAAA;AAAA,MAGP,CAAC,CAAA;AAAA,MACAZ,WAAAA,CAAYgB,MAAAA,GAAS,CAAA,oBAAK,GAAA,CAAC,KAAA,EAAA,EAAI,QAAQhB,WAAAA,CAAYgB,MAAAA,GAAS,CAAA,IAAK,EAAA,GAAK,EAAA,EAAG;AAAA,KAAA,EAC5E,CAAA;AAAA,oBACA,GAAA,CAAC,OAAA,EAAA,EACC,GAAA,EAAKV,QAAAA,EACL,SAAA,EAAWb,GAAG7C,MAAAA,CAAOsE,YAAY,CAAA,EAEjC,QAAA,kBAAA,IAAA,CAAC,IAAA,EAAA,EACEpB,QAAAA,EAAAA;AAAAA,MAAAA,YAAAA,wBACE,IAAA,EAAA,EACC,YAAA,EAAW,eAAA,EACX,SAAA,EAAWL,GAAG/C,cAAAA,CAAe;AAAA,QAAEK;AAAAA,OAAM,CAAC,CAAA,EAEtC,QAAA,kBAAA,GAAA,CAAC,qBACC,eAAA,EAAiBgD,WAAAA,EACjB,IAAA,EACA,WAAA,EAAyB,CAAA,EAE7B,CAAA;AAAA,MAEDF,OAAAA,CAAQa,GAAAA,CAAI,CAACC,WAAAA,EAAaC,0BACzB,GAAA,CAAC,WAAA,EAAA,EAEC,MAAA,EAAQ1C,MAAAA,CAAOyC,aAAaC,KAAK,CAAA,EACjC,IAAA,EACA,SAAA,EAAWR,kBACX,WAAA,EAAaA,gBAAAA,IAAoBQ,KAAAA,GAAQf,OAAAA,CAAQmB,MAAAA,GAAS,CAAA,EAC1D,aAAA,EAAe3C,aAAAA,GAAgBuC,KAAK,CAAA,EACpC,gBAAA,EAAkBtC,gBAAAA,GAAmBsC,KAAK,MACtCD,WAAAA,EAAAA,EAPC,CAAA,aAAA,EAAgBC,KAAK,GAS7B,CAAA;AAAA,MACAZ,WAAAA,CAAYgB,SAAS,CAAA,oBACpB,GAAA,CAAC,QACC,YAAA,EAAW,SAAA,EACX,SAAA,EAAWvB,EAAAA,CAAG/C,cAAAA,CAAe;AAAA,QAAEK;AAAAA,OAAM,CAAC,CAAA,EAAE;AAAA,KAAA,EAG9C,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;AAEA,MAAMoE,WAAAA,GAAcxE,GAAAA,CAAIC,MAAAA,CAAOwE,UAAAA,EAAY;AAAA,EACzCtE,QAAAA,EAAU;AAAA,IACRgD,YAAAA,EAAc;AAAA,MACZzC,MAAMT,MAAAA,CAAOyE,qBAAAA;AAAAA,MACb9D,KAAAA,EAAO;AAAA,KACT;AAAA,IACA+D,QAAAA,EAAU;AAAA,MACRjE,MAAMT,MAAAA,CAAO2E,iBAAAA;AAAAA,MACbhE,KAAAA,EAAO;AAAA,KACT;AAAA,IACAiE,UAAAA,EAAY;AAAA,MACVnE,MAAMT,MAAAA,CAAO6E,mBAAAA;AAAAA,MACblE,KAAAA,EAAO;AAAA,KACT;AAAA,IACAmE,WAAAA,EAAa;AAAA,MACXrE,IAAAA,EAAMT,OAAO,yBAAyB,CAAA;AAAA,MACtCW,KAAAA,EAAO;AAAA;AACT,GACF;AAAA,EACAC,eAAAA,EAAiB;AAAA,IACfsC,YAAAA,EAAc,KAAA;AAAA,IACdwB,QAAAA,EAAU,KAAA;AAAA,IACVE,UAAAA,EAAY,KAAA;AAAA,IACZE,WAAAA,EAAa;AAAA;AAEjB,CAAC,CAAA;AAED,MAAMC,YAAAA,GAAehF,GAAAA,CAAIC,MAAAA,CAAOgF,WAAAA,EAAa;AAAA,EAC3C9E,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,IAAIJ,MAAAA,CAAOiF,mBAAAA;AAAAA,MACX3E,IAAIN,MAAAA,CAAOkF;AAAAA;AACb;AAEJ,CAAC,CAAA;AAED,MAAMC,kBAAAA,GAAqBpF,GAAAA,CAAIC,MAAAA,CAAO,oBAAoB,CAAA,EAAG;AAAA,EAC3DE,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,EAAAA,EAAIJ,OAAO,4BAA4B,CAAA;AAAA,MACvCM,EAAAA,EAAIN,OAAO,4BAA4B;AAAA;AACzC;AAEJ,CAAC,CAAA;AAED,MAAMoF,mBAAAA,GAAsBrF,GAAAA,CAAIC,MAAAA,CAAO,qBAAqB,CAAA,EAAG;AAAA,EAC7DE,QAAAA,EAAU;AAAA,IACRC,IAAAA,EAAM;AAAA,MACJC,EAAAA,EAAIJ,OAAO,6BAA6B,CAAA;AAAA,MACxCM,EAAAA,EAAIN,OAAO,6BAA6B;AAAA;AAC1C;AAEJ,CAAC,CAAA;AAsED,MAAMqF,eAAeA,CAAC;AAAA,EACpBpC,OAAAA;AAAAA,EACAqC,KAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACArC,YAAAA;AAAAA,EACAsC,UAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC,QAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAlB,QAAAA;AAAAA,EACAE,UAAAA;AAAAA,EACAzE,IAAAA;AAAAA,EACAiD,WAAAA;AAAAA,EACAyC,SAAAA;AAAAA,EACAjE,SAAAA;AAAAA,EACAkE,KAAAA;AAAAA,EACA,GAAGC;AACc,CAAA,KAAM;AACvB,EAAA,MAAMC,WAAAA,GAAc,OAAON,QAAAA,KAAa,UAAA;AACxC,EAAA,MAAMO,UAAAA,GAAa,OAAON,MAAAA,KAAW,UAAA;AACrC,EAAA,MAAMO,QAAAA,GAAWC,QACf,OACG;AAAA,IACC,GAAIN,SAAAA,GAAY;AAAA,MAAE,oBAAA,EAAsBA;AAAAA,QAAc,EAAC;AAAA,IACvD,GAAGC;AAAAA,GACL,CAAA,EACF,CAACD,SAAAA,EAAWC,KAAK,CACnB,CAAA;AACA,EAAA,uBACE,IAAA,CAAC,QACC,KAAA,EAAOI,QAAAA,KACHH,QAAAA,EACJ,SAAA,EAAWlD,GACT0B,WAAAA,CAAY;AAAA,IACVrB,YAAAA;AAAAA,IACAwB,QAAAA;AAAAA,IACAE,YAAYgB,SAAAA,IAAahB,UAAAA;AAAAA,IACzBE,aAAakB,WAAAA,IAAeC;AAAAA,GAC7B,CAAA,EACDrE,SACF,CAAA,EAECsB,QAAAA,EAAAA;AAAAA,IAAAA,YAAAA,oBACC,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAWL,EAAAA,CAAGsC,kBAAAA,CAAmB;AAAA,MAAEhF;AAAAA,KAAM,CAAC,CAAA,EAC5C,QAAA,kBAAA,GAAA,CAAC,YACC,OAAA,EAASsF,eAAAA,GAAkB,eAAA,GAAkBD,UAAAA,EAC7C,eAAA,EAAiBD,QAAAA,EACjB,QAAA,EAAUX,UAAAA,IAAcgB,WAAU,CAAA,EAEtC,CAAA;AAAA,IAEDN,KAAAA,CAAMxB,IACL,CAAC;AAAA,MAAE5C,KAAAA;AAAAA,MAAOS,YAAAA;AAAAA,MAAcC,SAAAA,EAAWwE,aAAAA;AAAAA,MAAe,GAAGC;AAAAA,KAAU,EAAGC,8BAChE,IAAA,CAAC,IAAA,EAAA,EAEC,GAAID,SAAAA,EACJ,SAAA,EAAWxD,GAAGkC,YAAAA,CAAa;AAAA,MAAE5E;AAAAA,KAAM,CAAA,EAAGiG,aAAa,CAAA,EAElDnD,QAAAA,EAAAA;AAAAA,MAAAA,OAAAA,CAAQqD,SAAS,CAAA,oBAChB,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWzD,EAAAA,CAAG7C,MAAAA,CAAO,sBAAsB,CAAC,CAAA,EAC9CiD,QAAAA,EAAAA,OAAAA,CAAQqD,SAAS,EAAEpF,KAAAA,EACtB,CAAA;AAAA,sBAEF,GAAA,CAAC,QACC,KAAA,EACA,YAAA,EAAcS,gBAAgBsB,OAAAA,CAAQqD,SAAS,GAAG3E,YAAAA,EAAa;AAAA,KAAA,EAAA,EAX5D,CAAA,WAAA,EAAc2E,SAAS,CAAA,CAa9B,CAEJ,CAAA;AAAA,IACClD,YAAYgB,MAAAA,GAAS,CAAA,wBACnB,IAAA,EAAA,EAAG,SAAA,EAAWvB,GAAGuC,mBAAAA,CAAoB;AAAA,MAAEjF;AAAAA,KAAM,CAAC,CAAA,EAC7C,QAAA,kBAAA,IAAA,CAAC,SAAI,SAAA,EAAW0C,EAAAA,CAAG7C,MAAAA,CAAOuG,cAAc,CAAA,EACrCnD,QAAAA,EAAAA;AAAAA,MAAAA,WAAAA,CAAYZ,QAAAA,CAAS,YAAY,CAAA,oBAChC,GAAA,CAAC,UAAA,EAAA,EACC,MAAK,OAAA,EACL,QAAA,EAAS,QAAA,EACT,QAAA,EAAUoC,UAAAA,IAAcgB,SAAAA,IAAa,CAACK,UAAAA,EACtC,IAAA,EAAK,QAAA,EACL,OAAA,EAASN,MAAAA,EACT,aAAA,EAAY,gBAAA,EACZ,SAAA,EAAW9C,EAAAA,CAAG7C,MAAAA,CAAO,oBAAoB,CAAC,CAAA,EAAE,CAAA;AAAA,MAG/CoD,WAAAA,CAAYZ,QAAAA,CAAS,cAAc,CAAA,oBAClC,GAAA,CAAC,UAAA,EAAA,EACC,QAAA,EAAUoC,UAAAA,IAAc,CAACoB,WAAAA,EACzB,IAAA,EAAK,OAAA,EACL,QAAA,EAAS,QAAA,EACT,IAAA,EAAK,OAAA,EACL,OAAA,EAASN,QAAAA,EACT,aAAA,EAAY,kBAAA,EACZ,SAAA,EAAW7C,EAAAA,CACT7C,MAAAA,CAAO,qBAAqB,CAAA,EAC5B4F,SAAAA,IAAa5F,MAAAA,CAAO,6BAA6B,CACnD,CAAA,EAAE;AAAA,KAAA,EAGR,CAAA,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,MAAMwG,cAAcA,MAAM;AACxB,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC1D,QAAA,EAAA,EACC,IAAA,EAAK,kBAAA,EACL,IAAA,EAAK,IAAA,EAAI,CAAA;AAAA,oBAEX,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAK,IAAA,EAAK,QAAA,EAAA,cAAA,EAAY;AAAA,GAAA,EAC9B,CAAA;AAEJ,CAAA;AAOA,MAAM2D,iBAAiBA,CAAC;AAAA,EACtBC,OAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAzG;AACmB,CAAA,KAAM;AACzB,EAAA,uBACE,GAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW0C,EAAAA,CAAG0B,YAAY,EAAE,CAAC,CAAA,EAC/B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EACC,OAAA,EACA,SAAA,EAAW1B,GAAGkC,YAAAA,CAAa;AAAA,IAAE5E;AAAAA,GAAM,GAAGH,MAAAA,CAAO,qBAAqB,CAAC,CAAA,EAEnE,QAAA,kBAAA,GAAA,CAAC,SAAI,SAAA,EAAW6C,EAAAA,CAAG7C,OAAO,uBAAuB,CAAC,GAC/C0G,QAAAA,EAAAA,OAAAA,mBAAU,GAAA,CAAC,eAAW,CAAA,GAAOC,aAAAA,IAAiB,mBAAA,EACjD,CAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAA;AAWA,MAAME,gBAAAA,GAAmB,GAAA;AAEzB,MAAMC,KAAAA,GAAQC,WACZ,CACE;AAAA,EACE9D,OAAAA;AAAAA,EACAK,IAAAA;AAAAA,EACAJ,YAAAA;AAAAA,EACAK,cAAc,EAAA;AAAA,EACdgC,QAAAA;AAAAA,EACAG,QAAAA;AAAAA,EACAC,MAAAA;AAAAA,EACArE,MAAAA;AAAAA,EACAoF,OAAAA;AAAAA,EACAC,aAAAA;AAAAA,EACAxG,IAAAA,GAAO,IAAA;AAAA,EACP6G,UAAAA,GAAa,IAAA;AAAA,EACbnB,SAAAA;AAAAA,EACArC,gBAAAA;AAAAA,EACAyD,YAAAA,GAAe,MAAA;AAAA,EACfrF,SAAAA;AAAAA,EACA,GAAGC;AACL,CAAA,EACAqF,GAAAA,KACG;AACH,EAAA,MAAMlB,WAAAA,GAAc,OAAON,QAAAA,KAAa,UAAA;AACxC,EAAA,MAAMO,UAAAA,GAAa,OAAON,MAAAA,KAAW,UAAA;AAErC,EAAA,MAAM,CAAClC,YAAAA,EAAc0D,eAAe,CAAA,GAAIC,SAAqC,IAAI,CAAA;AACjF,EAAA,MAAM1D,QAAAA,GAAWtB,OAAgC,IAAI,CAAA;AAErDiF,EAAAA,eAAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAAC7D,gBAAAA,IAAoBC,YAAAA,KAAiB,IAAA,IAAQ,CAACC,SAASf,OAAAA,EAAS;AACnE,MAAA;AAAA,IACF;AAEA,IAAA,MAAM2E,WAAAA,GAAc5D,QAAAA,CAASf,OAAAA,CAAQ4E,gBAAAA,CAAiB,IAAI,CAAA;AAC1D,IAAA,MAAMC,MAAAA,uBAAaC,GAAAA,EAAoB;AAGvC,IAAA,MAAMC,UAAAA,GAAaxE,eAAe,CAAA,GAAI,CAAA;AACtC,IAAA,MAAMyE,QAAAA,GAAWL,WAAAA,CAAYlD,MAAAA,IAAU4B,WAAAA,IAAeC,aAAa,CAAA,GAAI,CAAA,CAAA;AAEvE,IAAA,IAAIrC,WAAAA,GAAc,CAAA;AAClB,IAAA,KAAA,IAASgE,CAAAA,GAAIF,UAAAA,EAAYE,CAAAA,GAAID,QAAAA,EAAUC,CAAAA,EAAAA,EAAK;AAC1C,MAAA,MAAMjE,MAAAA,GAASV,QAAQW,WAAW,CAAA;AAClC,MAAA,IAAID,MAAAA,EAAQ;AACV,QAAA,MAAMlB,GAAAA,GACJ,OAAOkB,MAAAA,CAAOzC,KAAAA,KAAU,WAAWyC,MAAAA,CAAOzC,KAAAA,GAAQ,WAAW0C,WAAW,CAAA,CAAA;AAC1E4D,QAAAA,MAAAA,CAAOK,IAAIpF,GAAAA,EAAK6E,WAAAA,CAAYM,CAAC,CAAA,CAAEE,qBAAAA,GAAwBzD,KAAK,CAAA;AAAA,MAC9D;AACAT,MAAAA,WAAAA,EAAAA;AAAAA,IACF;AAEA,IAAA,IAAI4D,MAAAA,CAAOrH,IAAAA,KAAS8C,OAAAA,CAAQmB,MAAAA,EAAQ;AAClC+C,MAAAA,eAAAA,CAAgBK,MAAM,CAAA;AAAA,IACxB;AAAA,EACF,GAAG,CAAChE,gBAAAA,EAAkBC,cAAcP,YAAAA,EAAc8C,WAAAA,EAAaC,UAAU,CAAC,CAAA;AAE1E,EAAA,MAAM8B,SAAAA,GAAY5B,QAChB,MACElD,OAAAA,CACGa,IAAI,CAACkE,CAAAA,EAAGJ,CAAAA,KAAO,OAAOI,CAAAA,CAAE9G,KAAAA,KAAU,WAAW8G,CAAAA,CAAE9G,KAAAA,GAAQ,CAAA,QAAA,EAAW0G,CAAC,CAAA,CAAG,CAAA,CACtEK,KAAK,GAAG,CAAA,EACb,CAAChF,OAAO,CACV,CAAA;AACAiF,EAAAA,SAAAA,CAAU,MAAM;AACdf,IAAAA,eAAAA,CAAgB,IAAI,CAAA;AAAA,EACtB,CAAA,EAAG,CAACY,SAAS,CAAC,CAAA;AAEd,EAAA,MAAMI,iBAAiB/F,MAAAA,CAAoB;AAAA,IACzCgG,UAAAA,EAAY,KAAA;AAAA,IACZC,WAAAA,EAAa,IAAA;AAAA,IACbC,eAAAA,EAAiB,IAAA;AAAA,IACjBC,MAAAA,EAAQ,CAAA;AAAA,IACRC,UAAAA,EAAY,CAAA;AAAA,IACZC,cAAAA,EAAgB;AAAA,GACjB,CAAA;AAED,EAAA,MAAMC,WAAAA,GAAcC,WAAAA,CAAY,CAACrG,CAAAA,KAA6B;AAC5D,IAAA,IAAI,CAAC6F,cAAAA,CAAexF,OAAAA,CAAQyF,UAAAA,EAAY;AACtC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM;AAAA,MAAEC,WAAAA;AAAAA,MAAaC,eAAAA;AAAAA,MAAiBC,MAAAA;AAAAA,MAAQC,UAAAA;AAAAA,MAAYC;AAAAA,QACxDN,cAAAA,CAAexF,OAAAA;AAEjB,IAAA,IAAI,CAAC0F,WAAAA,IAAe,CAACC,eAAAA,EAAiB;AACpC,MAAA;AAAA,IACF;AAEA,IAAA,MAAMM,IAAAA,GAAOtG,EAAEuG,OAAAA,GAAUN,MAAAA;AACzB,IAAA,MAAMO,WAAWN,UAAAA,GAAaI,IAAAA;AAC9B,IAAA,MAAMG,eAAeN,cAAAA,GAAiBG,IAAAA;AAEtC,IAAA,IAAII,OAAOC,KAAAA,CAAMH,QAAQ,KAAKE,MAAAA,CAAOC,KAAAA,CAAMF,YAAY,CAAA,EAAG;AACxDjH,MAAAA,OAAAA,CAAQC,KAAK,6CAAA,EAA+C;AAAA,QAC1D+G,QAAAA;AAAAA,QACAC;AAAAA,OACD,CAAA;AACD,MAAA;AAAA,IACF;AAEA,IAAA,IAAID,QAAAA,IAAYjC,gBAAAA,IAAoBkC,YAAAA,IAAgBlC,gBAAAA,EAAkB;AACpEM,MAAAA,eAAAA,CAAgB+B,CAAAA,IAAAA,KAAQ;AACtB,QAAA,IAAI,CAACA,IAAAA,EAAM;AACT,UAAA,OAAOA,IAAAA;AAAAA,QACT;AACA,QAAA,MAAMC,OAAAA,GAAU,IAAI1B,GAAAA,CAAIyB,IAAI,CAAA;AAC5BC,QAAAA,OAAAA,CAAQtB,GAAAA,CAAIQ,aAAaS,QAAQ,CAAA;AACjCK,QAAAA,OAAAA,CAAQtB,GAAAA,CAAIS,iBAAiBS,YAAY,CAAA;AACzC,QAAA,OAAOI,OAAAA;AAAAA,MACT,CAAC,CAAA;AAAA,IACH;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAMC,SAAAA,GAAYT,YAAY,MAAM;AAClCR,IAAAA,cAAAA,CAAexF,QAAQyF,UAAAA,GAAa,KAAA;AAAA,EACtC,CAAA,EAAG,EAAE,CAAA;AAELF,EAAAA,SAAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC1E,gBAAAA,EAAkB;AACrB,MAAA;AAAA,IACF;AAEA6F,IAAAA,QAAAA,CAASC,gBAAAA,CAAiB,aAAaZ,WAAW,CAAA;AAClDW,IAAAA,QAAAA,CAASC,gBAAAA,CAAiB,WAAWF,SAAS,CAAA;AAE9C,IAAA,OAAO,MAAM;AACXC,MAAAA,QAAAA,CAASE,mBAAAA,CAAoB,aAAab,WAAW,CAAA;AACrDW,MAAAA,QAAAA,CAASE,mBAAAA,CAAoB,WAAWH,SAAS,CAAA;AAAA,IACnD,CAAA;AAAA,EACF,CAAA,EAAG,CAAC5F,gBAAAA,EAAkBkF,WAAAA,EAAaU,SAAS,CAAC,CAAA;AAE7C,EAAA,MAAMI,iBAAAA,GAAoBb,WAAAA,CACxB,CAACc,WAAAA,KAAwB,CAACnH,CAAAA,KAAkB;AAC1CA,IAAAA,CAAAA,CAAEI,cAAAA,EAAe;AAEjB,IAAA,IAAI,CAACe,YAAAA,EAAc;AACjB,MAAA;AAAA,IACF;AAEA,IAAA,MAAMiG,aAAAA,GAAgBzG,QAAQwG,WAAW,CAAA;AACzC,IAAA,MAAME,UAAAA,GAAa1G,OAAAA,CAAQwG,WAAAA,GAAc,CAAC,CAAA;AAE1C,IAAA,IAAI,CAACC,aAAAA,IAAiB,CAACC,UAAAA,EAAY;AACjC,MAAA;AAAA,IACF;AAEA,IAAA,MAAMC,YAAAA,GACJ,OAAOF,aAAAA,CAAcxI,KAAAA,KAAU,WAC3BwI,aAAAA,CAAcxI,KAAAA,GACd,WAAWuI,WAAW,CAAA,CAAA;AAC5B,IAAA,MAAMI,SAAAA,GACJ,OAAOF,UAAAA,CAAWzI,KAAAA,KAAU,WACxByI,UAAAA,CAAWzI,KAAAA,GACX,CAAA,QAAA,EAAWuI,WAAAA,GAAc,CAAC,CAAA,CAAA;AAEhC,IAAA,MAAMjB,UAAAA,GAAa/E,YAAAA,CAAaU,GAAAA,CAAIyF,YAAY,CAAA;AAChD,IAAA,MAAMnB,cAAAA,GAAiBhF,YAAAA,CAAaU,GAAAA,CAAI0F,SAAS,CAAA;AAEjD,IAAA,IAAIrB,UAAAA,KAAesB,MAAAA,IAAarB,cAAAA,KAAmBqB,MAAAA,EAAW;AAC5D,MAAA;AAAA,IACF;AAEA3B,IAAAA,cAAAA,CAAexF,OAAAA,GAAU;AAAA,MACvByF,UAAAA,EAAY,IAAA;AAAA,MACZC,WAAAA,EAAauB,YAAAA;AAAAA,MACbtB,eAAAA,EAAiBuB,SAAAA;AAAAA,MACjBtB,QAAQjG,CAAAA,CAAEuG,OAAAA;AAAAA,MACVL,UAAAA;AAAAA,MACAC;AAAAA,KACF;AAAA,EACF,CAAA,EACA,CAACxF,OAAAA,EAASQ,YAAY,CACxB,CAAA;AAEA,EAAA,MAAMsG,WAAAA,GACJA,CAACC,EAAAA,KACD,CAACC,OAAAA,KAA2B;AAC1B,IAAA,IAAI,OAAO1E,YAAY,UAAA,EAAY;AACjC,MAAA,MAAM2E,aAAAA,GAAgB5G,IAAAA,CAAK6G,OAAAA,CAAQ,CAACC,KAAKpG,KAAAA,KAAU;AACjD,QAAA,IACGgG,EAAAA,KAAOI,GAAAA,CAAIJ,EAAAA,IAAMC,OAAAA,IACjB1G,WAAAA,CAAYf,QAAAA,CAAS4H,GAAAA,CAAIJ,EAAE,CAAA,IAAKA,EAAAA,KAAOI,GAAAA,CAAIJ,EAAAA,EAC5C;AACA,UAAA,OAAO;AAAA,YACLK,IAAAA,EAAMD,GAAAA;AAAAA,YACNpG;AAAAA,WACF;AAAA,QACF;AAEA,QAAA,OAAO,EAAA;AAAA,MACT,CAAC,CAAA;AACDuB,MAAAA,QAAAA,CAAS2E,aAAa,CAAA;AAAA,IACxB;AAAA,EACF,CAAA;AACF,EAAA,MAAMI,OAAAA,GAAUhH,KAAKc,MAAAA,GAAS,CAAA;AAC9B,EAAA,MAAMhB,cAAwB,EAAA;AAC9B,EAAA,IAAI4C,WAAAA,EAAa;AACf5C,IAAAA,WAAAA,CAAYmH,KAAK,cAAc,CAAA;AAAA,EACjC;AACA,EAAA,IAAItE,UAAAA,EAAY;AACd7C,IAAAA,WAAAA,CAAYmH,KAAK,YAAY,CAAA;AAAA,EAC/B;AAEA,EAAA,MAAM7I,mBAAmBiH,WAAAA,CACvB,CAACc,WAAAA,KACC,CAACe,IAAyBC,SAAAA,KAA0C;AAClE,IAAA,IAAI,CAAChH,YAAAA,EAAc;AACjB,MAAA;AAAA,IACF;AAEA,IAAA,MAAMiG,aAAAA,GAAgBzG,QAAQwG,WAAW,CAAA;AACzC,IAAA,MAAME,UAAAA,GAAa1G,OAAAA,CAAQwG,WAAAA,GAAc,CAAC,CAAA;AAE1C,IAAA,IAAI,CAACC,aAAAA,IAAiB,CAACC,UAAAA,EAAY;AACjC,MAAA;AAAA,IACF;AAEA,IAAA,MAAMC,YAAAA,GACJ,OAAOF,aAAAA,CAAcxI,KAAAA,KAAU,WAC3BwI,aAAAA,CAAcxI,KAAAA,GACd,WAAWuI,WAAW,CAAA,CAAA;AAC5B,IAAA,MAAMI,SAAAA,GACJ,OAAOF,UAAAA,CAAWzI,KAAAA,KAAU,WACxByI,UAAAA,CAAWzI,KAAAA,GACX,CAAA,QAAA,EAAWuI,WAAAA,GAAc,CAAC,CAAA,CAAA;AAEhC,IAAA,MAAMiB,SAAAA,GAAY,CAAA;AAClB,IAAA,MAAMC,UAAAA,GAAaF,SAAAA,KAAc,OAAA,GAAU,CAAA,GAAI,EAAA;AAC/C,IAAA,MAAM7B,OAAO8B,SAAAA,GAAYC,UAAAA;AAEzB,IAAA,MAAMC,YAAAA,GAAenH,YAAAA,CAAaU,GAAAA,CAAIyF,YAAY,CAAA;AAClD,IAAA,MAAMiB,SAAAA,GAAYpH,YAAAA,CAAaU,GAAAA,CAAI0F,SAAS,CAAA;AAE5C,IAAA,IAAIe,YAAAA,KAAiBd,MAAAA,IAAae,SAAAA,KAAcf,MAAAA,EAAW;AACzD,MAAA;AAAA,IACF;AAEA,IAAA,MAAMhB,WAAW8B,YAAAA,GAAehC,IAAAA;AAChC,IAAA,MAAMG,eAAe8B,SAAAA,GAAYjC,IAAAA;AACjC,IAAA,MAAMkC,uBAAAA,GACJhC,QAAAA,IAAYjC,gBAAAA,IAAoBkC,YAAAA,IAAgBlC,gBAAAA;AAElD,IAAA,IAAI,CAACiE,uBAAAA,EAAyB;AAC5B,MAAA;AAAA,IACF;AAEA3D,IAAAA,eAAAA,CAAgB+B,CAAAA,IAAAA,KAAQ;AACtB,MAAA,IAAI,CAACA,IAAAA,EAAM;AACT,QAAA,OAAOA,IAAAA;AAAAA,MACT;AACA,MAAA,MAAMC,OAAAA,GAAU,IAAI1B,GAAAA,CAAIyB,IAAI,CAAA;AAC5BC,MAAAA,OAAAA,CAAQtB,GAAAA,CAAI+B,cAAcd,QAAQ,CAAA;AAClCK,MAAAA,OAAAA,CAAQtB,GAAAA,CAAIgC,WAAWd,YAAY,CAAA;AACnC,MAAA,OAAOI,OAAAA;AAAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EACF,CAAC1F,YAAAA,EAAcR,OAAO,CACxB,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,SACC,oBAAA,EAAoBgE,YAAAA,EACpB,WAAWpE,EAAAA,CAAG7C,MAAAA,CAAO+K,KAAK,CAAA,EAEzBT,QAAAA,EAAAA;AAAAA,IAAAA,OAAAA,IAAWtD,8BACV,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWnE,EAAAA,CAAG7C,MAAAA,CAAO,uBAAuB,CAAC,CAAA,EAC/CkD,QAAAA,EAAAA,YAAAA,oBACC,GAAA,CAAC,qBACC,KAAA,EAAM,YAAA,EACN,iBAAiBqC,QAAAA,EACjB,IAAA,EACA,aAAyB,CAAA,EAG/B,CAAA;AAAA,wBAED,KAAA,EAAA,EAAI,SAAA,EAAW1C,GAAG7C,MAAAA,CAAOgL,cAAc,GACtC,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EACC,GAAA,EACA,GAAInJ,OACJ,SAAA,EAAWgB,EAAAA,CAAG7C,OAAO,cAAc,CAAA,EAAG4B,SAAS,CAAA,EAE9CoF,QAAAA,EAAAA;AAAAA,MAAAA,UAAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EACC,OAAA,EACA,YAAA,EACA,WAAA,EAAazB,UACb,WAAA,EACA,MAAA,EACA,IAAA,EACA,IAAA,EACA,WAAA,EACA,gBAAA,EACA,cAAc/B,gBAAAA,GAAmBC,YAAAA,GAAeqG,MAAAA,EAChD,aAAA,EAAetG,gBAAAA,GAAmBgG,iBAAAA,GAAoBM,QACtD,QAAA,EACA,gBAAA,EAAkBtG,gBAAAA,GAAmB9B,gBAAAA,GAAmBoI,MAAAA,EAAU,CAAA;AAAA,2BAGrE,OAAA,EAAA,EAAM,SAAA,EAAWjH,EAAAA,CAAG7C,MAAAA,CAAOiL,YAAY,CAAA,EACpCvE,QAAAA,EAAAA;AAAAA,QAAAA,CAAAA,OAAAA,IAAW,CAAC4D,OAAAA,qBACZ,GAAA,CAAC,cAAA,EAAA,EACC,OAAA,EACErH,QAAQmB,MAAAA,IACP6B,UAAAA,IAAcD,WAAAA,GAAc,CAAA,GAAI,MAChC9C,YAAAA,GAAe,CAAA,GAAI,CAAA,CAAA,EAEtB,OAAA,EACA,eACA,IAAA,EAAW,CAAA;AAAA,QAGdI,IAAAA,CAAKQ,IAAI,CAAC;AAAA,UAAEkG,EAAAA;AAAAA,UAAI,GAAGjE;AAAAA,WAAYmF,QAAAA,qBAC9B,GAAA,CAAC,gBAEC,OAAA,EACA,YAAA,EACA,YAAY3H,WAAAA,EAAaf,QAAAA,CAASwH,EAAE,CAAA,EACpC,QAAA,EAAUD,YAAYC,EAAE,CAAA,EACxB,aACA,QAAA,EACEhE,WAAAA,GACI,MACEN,QAAAA,CACE;AAAA,UAAEsE,EAAAA;AAAAA,UAAI,GAAGjE,QAAAA;AAAAA,UAAUH,SAAAA,EAAW,CAACG,QAAAA,CAASH;AAAAA,WACxCsF,QACF,CAAA,GACFpB,QAEN,MAAA,EACE7D,UAAAA,GAAa,MAAMN,MAAAA,CAAO;AAAA,UAAEqE,EAAAA;AAAAA,UAAI,GAAGjE;AAAAA,SAAS,EAAGmF,QAAQ,CAAA,GAAIpB,MAAAA,EAE7D,IAAA,EACA,SAAA,EACA,GAAI/D,QAAAA,EAAAA,EApBC,CAAA,eAAA,EAAkBmF,QAAQ,CAAA,CAoBlB,CAEhB;AAAA,OAAA,EACH;AAAA,KAAA,EACF,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CACF;AAQA,MAAMC,oBAAgDA,CAAC;AAAA,EACrD7H,IAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACA6H,eAAAA;AAAAA,EACA,GAAGC;AACL,CAAA,KAAM;AACJ,EAAA,MAAMC,aAAAA,GAAgBnF,QAAQ,MAAM,IAAIoF,IAAIhI,WAAW,CAAA,EAAG,CAACA,WAAW,CAAC,CAAA;AAEvE,EAAA,MAAM;AAAA,IAAE0G,OAAAA;AAAAA,IAASuB;AAAAA,GAAS,GAAIrF,QAAQ,MAAM;AAC1C,IAAA,IAAIsF,aAAAA,GAAgB,IAAA;AACpB,IAAA,IAAIC,kBAAAA,GAAmC,KAAA;AACvC,IAAA,IAAIF,SAAAA,GAAW,IAAA;AAEf,IAAA,KAAA,MAAWpB,OAAO9G,IAAAA,EAAM;AACtB,MAAA,IAAI8G,GAAAA,CAAIxF,UAAAA,IAAcwF,GAAAA,CAAIxE,SAAAA,EAAW;AACnC,QAAA;AAAA,MACF,CAAA,MAAO;AACL4F,QAAAA,SAAAA,GAAW,KAAA;AAAA,MACb;AAEA,MAAA,IAAIF,aAAAA,CAAcK,GAAAA,CAAIvB,GAAAA,CAAIJ,EAAE,CAAA,EAAG;AAC7B0B,QAAAA,kBAAAA,GAAqB,eAAA;AAAA,MACvB,CAAA,MAAO;AACLD,QAAAA,aAAAA,GAAgB,KAAA;AAAA,MAClB;AAAA,IACF;AAEA,IAAA,OAAO;AAAA,MACLxB,OAAAA,EAASuB,SAAAA,GAAW,KAAA,GAAQC,aAAAA,IAAiBC,kBAAAA;AAAAA,MAC7CF,QAAAA,EAAAA;AAAAA,KACF;AAAA,EACF,CAAA,EAAG,CAAClI,IAAAA,EAAMgI,aAAa,CAAC,CAAA;AAExB,EAAA,MAAMM,mBAAAA,GAAsBA,CAAC3B,QAAAA,KAAqB;AAChD,IAAA,IAAI,OAAOmB,oBAAoB,UAAA,EAAY;AACzC,MAAA;AAAA,IACF;AAIA,IAAA,MAAMS,kBAAkBvI,IAAAA,CAAKwI,MAAAA,CAAO,CAACC,GAAAA,EAA0B3B,KAAKpG,KAAAA,KAAU;AAC5E,MAAA,MAAMY,UAAAA,GAAawF,GAAAA,CAAIxF,UAAAA,IAAcwF,GAAAA,CAAIxE,SAAAA;AAEzC,MAAA,MAAMoG,gBAAAA,GAAmB/B,QAAAA,GACrB,CAACrF,UAAAA,IAAc0G,aAAAA,CAAcK,GAAAA,CAAIvB,GAAAA,CAAIJ,EAAE,CAAA,GACvCpF,UAAAA,IAAc0G,aAAAA,CAAcK,GAAAA,CAAIvB,IAAIJ,EAAE,CAAA;AAE1C,MAAA,IAAIgC,gBAAAA,EAAkB;AACpBD,QAAAA,GAAAA,CAAIxB,IAAAA,CAAK;AAAA,UACPF,IAAAA,EAAMD,GAAAA;AAAAA,UACNpG;AAAAA,SACD,CAAA;AAAA,MACH;AAEA,MAAA,OAAO+H,GAAAA;AAAAA,IACT,CAAA,EAAG,EAAE,CAAA;AAELX,IAAAA,eAAAA,CAAgBS,eAAe,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,2BACG,QAAA,EAAA,EACC,OAAA,EACA,UACA,eAAA,EAAiBD,mBAAAA,EACjB,GAAIP,aAAAA,EAAc,CAAA;AAGxB,CAAA;AAEA,MAAMY,OAAOA,CAAC;AAAA,EACZ/K,KAAAA;AAAAA,EACAS,YAAAA,GAAe;AAIjB,CAAA,KAAM;AACJ,EAAA,MAAMuK,MAAAA,GAAS,OAAOhL,KAAAA,KAAU,QAAA;AAEhC,EAAA,IAAI,CAACgL,MAAAA,EAAQ;AACX,IAAA,uCAAUhL,QAAAA,EAAAA,KAAAA,EAAM,CAAA;AAAA,EAClB;AAEA,EAAA,IAAIS,iBAAiB,iBAAA,EAAmB;AACtC,IAAA,uBAAO,GAAA,CAAC,eAAA,EAAA,EAAgB,IAAA,EAAMT,KAAAA,EAAM,CAAA;AAAA,EACtC;AAEA,EAAA,IAAIS,iBAAiB,MAAA,EAAQ;AAC3B,IAAA,uBAAO,GAAA,CAAC,UAAK,SAAA,EAAWkB,EAAAA,CAAG7C,OAAO,qBAAqB,CAAC,GAAIkB,QAAAA,EAAAA,KAAAA,EAAM,CAAA;AAAA,EACpE;AAEA,EAAA,uBAAO,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,KAAA,EAAOA,QAAAA,EAAAA,KAAAA,EAAM,CAAA;AACjD,CAAA;;;;"}
@@ -0,0 +1,142 @@
1
+ @keyframes toast-hide__qiqT- {
2
+ from {
3
+ opacity: 1;
4
+ }
5
+
6
+ to {
7
+ opacity: 0;
8
+ }
9
+ }
10
+
11
+ @keyframes toast-slide-in__eHRae {
12
+ from {
13
+ transform: translateX(calc(100% + var(--viewport-padding)));
14
+ }
15
+
16
+ to {
17
+ transform: translateX(0);
18
+ }
19
+ }
20
+
21
+ @keyframes toast-swipe-out__P2S0b {
22
+ from {
23
+ transform: translateX(var(--radix-toast-swipe-end-x));
24
+ }
25
+
26
+ to {
27
+ transform: translateX(calc(100% + var(--viewport-padding)));
28
+ }
29
+ }
30
+
31
+ .toast__FLdHz {
32
+ display: flex;
33
+ width: 100%;
34
+ padding: var(--click-toast-space-y) var(--click-toast-space-x);
35
+ flex-direction: column;
36
+ align-items: flex-start;
37
+ gap: var(--click-toast-space-gap);
38
+ border: 1px solid var(--click-toast-color-stroke-default);
39
+ border-radius: var(--click-toast-radii-all);
40
+ background: var(--click-global-color-background-default);
41
+ box-shadow: var(--click-toast-shadow);
42
+ }
43
+
44
+ .toast__FLdHz[data-state='open'] {
45
+ animation: toast-slide-in__eHRae 150ms cubic-bezier(0.16, 1, 0.3, 1);
46
+ }
47
+
48
+ .toast__FLdHz[data-state='closed'] {
49
+ animation: toast-hide__qiqT- 100ms ease-in;
50
+ }
51
+
52
+ .toast__FLdHz[data-swipe='move'] {
53
+ transform: translateX(var(--radix-toast-swipe-move-x));
54
+ }
55
+
56
+ .toast__FLdHz[data-swipe='cancel'] {
57
+ transition: transform 200ms ease-out;
58
+ transform: translateX(0);
59
+ }
60
+
61
+ .toast__FLdHz[data-swipe='end'] {
62
+ animation: toast-swipe-out__P2S0b 100ms ease-out;
63
+ }
64
+
65
+ .toast__header__dRLqI {
66
+ display: flex;
67
+ width: 100%;
68
+ justify-content: space-between;
69
+ align-items: center;
70
+ gap: inherit;
71
+ color: var(--click-toast-color-title-default);
72
+ font: var(--click-toast-typography-title-default);
73
+ }
74
+
75
+ .toast__title__zdD-z {
76
+ flex: 1;
77
+ }
78
+
79
+ .toast__description-container__FuMRh {
80
+ display: flex;
81
+ width: 100%;
82
+ flex-direction: column;
83
+ justify-content: space-between;
84
+ align-items: flex-end;
85
+ gap: inherit;
86
+ color: var(--click-toast-color-title-default);
87
+ font: var(--click-toast-typography-title-default);
88
+ }
89
+
90
+ .toast__description-content__UIC-z {
91
+ display: flex;
92
+ align-self: stretch;
93
+ gap: inherit;
94
+ color: var(--click-toast-color-description-default);
95
+ font: var(--click-toast-typography-description-default);
96
+ }
97
+
98
+ .toast__icon__-S-ea {
99
+ width: var(--click-toast-icon-size-width);
100
+ height: var(--click-toast-icon-size-height);
101
+ }
102
+
103
+ .toast__icon_type_default__3bZ6L {
104
+ color: var(--click-toast-color-icon-default);
105
+ }
106
+
107
+ .toast__icon_type_success__zI04e {
108
+ color: var(--click-toast-color-icon-success);
109
+ }
110
+
111
+ .toast__icon_type_warning__fTzn7 {
112
+ color: var(--click-toast-color-icon-warning);
113
+ }
114
+
115
+ .toast__icon_type_danger__I-F3N {
116
+ color: var(--click-toast-color-icon-danger);
117
+ }
118
+
119
+ .toast-viewport__bflY9 {
120
+ --viewport-padding: 25px;
121
+
122
+ display: flex;
123
+ position: fixed;
124
+ z-index: 2147483647;
125
+ bottom: 0;
126
+ width: var(--click-toast-size-width);
127
+ max-width: 100vw;
128
+ margin: 0;
129
+ padding: var(--viewport-padding);
130
+ flex-direction: column;
131
+ gap: var(--click-toast-space-gap);
132
+ outline: none;
133
+ list-style: none;
134
+ }
135
+
136
+ .toast-viewport_align_start__urykY {
137
+ left: 0;
138
+ }
139
+
140
+ .toast-viewport_align_end__QPpTu {
141
+ right: 0;
142
+ }
@@ -0,0 +1,26 @@
1
+ const toast = "toast__FLdHz";
2
+ const toast__header = "toast__header__dRLqI";
3
+ const toast__title = "toast__title__zdD-z";
4
+ const toast__icon = "toast__icon__-S-ea";
5
+ const toast__icon_type_default = "toast__icon_type_default__3bZ6L";
6
+ const toast__icon_type_success = "toast__icon_type_success__zI04e";
7
+ const toast__icon_type_warning = "toast__icon_type_warning__fTzn7";
8
+ const toast__icon_type_danger = "toast__icon_type_danger__I-F3N";
9
+ const styles = {
10
+ toast: toast,
11
+ toast__header: toast__header,
12
+ toast__title: toast__title,
13
+ "toast__description-container": "toast__description-container__FuMRh",
14
+ "toast__description-content": "toast__description-content__UIC-z",
15
+ toast__icon: toast__icon,
16
+ toast__icon_type_default: toast__icon_type_default,
17
+ toast__icon_type_success: toast__icon_type_success,
18
+ toast__icon_type_warning: toast__icon_type_warning,
19
+ toast__icon_type_danger: toast__icon_type_danger,
20
+ "toast-viewport": "toast-viewport__bflY9",
21
+ "toast-viewport_align_start": "toast-viewport_align_start__urykY",
22
+ "toast-viewport_align_end": "toast-viewport_align_end__QPpTu"
23
+ };
24
+
25
+ export { styles as default, toast, toast__header, toast__icon, toast__icon_type_danger, toast__icon_type_default, toast__icon_type_success, toast__icon_type_warning, toast__title };
26
+ //# sourceMappingURL=Toast.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}