{"version":3,"file":"hooks.mjs","names":["Autocomplete","TextField","AutocompleteProps","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormAutocompleteProps","Omit","textFieldProps","FormAutocomplete","t0","$","_c","$i","Symbol","for","autocompleteProps","field","t1","isTouched","hasError","helperText","t2","t3","freeSolo","_","value","handleChange","__0","value_0","reason","t4","name","parameters","t5","handleBlur","state","Checkbox","FormControl","FormControlLabel","FormHelperText","CheckboxProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormCheckboxProps","Omit","label","FormCheckbox","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","name","t2","Boolean","state","value","t3","event","handleChange","target","checked","t4","handleBlur","t5","t6","t7","t8","DatePicker","Dayjs","PickersTextFieldProps","DatePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDatePickerProps","Omit","textFieldProps","Partial","FormDatePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TimePicker","PickersTextFieldProps","TimePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTimePickerProps","Omit","textFieldProps","Partial","FormTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","DateTimePicker","Dayjs","PickersTextFieldProps","DateTimePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDateTimePickerProps","Omit","textFieldProps","Partial","FormDateTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TextField","NumericFormat","InputAttributes","NumericFormatProps","FC","TextFieldProps","FormOmittedProps","useFieldContext","getFieldStatus","FormNumberFieldProps","Omit","defaultValue","options","FormNumberField","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","state","value","t3","t4","floatValue","handleChange","t5","t6","handleBlur","name","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","RadioGroup","RadioGroupProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","Option","label","value","FormRadioGroupProps","Omit","options","Array","FormRadioGroup","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","t3","name","t4","state","t5","event","handleChange","target","t6","handleBlur","t7","t8","map","_temp","t9","t10","t11","option","FormControl","FormHelperText","FormLabel","Slider","SliderProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormSliderProps","Omit","label","FormSlider","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","t3","state","value","t4","_","handleChange","Array","isArray","t5","handleBlur","name","t6","t7","Button","ButtonProps","FC","useFormContext","FormSubmitButtonProps","Omit","FormSubmitButton","props","$","_c","$i","Symbol","for","form","t0","event","preventDefault","stopPropagation","handleSubmit","handleClick","t1","t2","canSubmit","isSubmitting","Subscribe","_temp","state","FormControl","FormControlLabel","FormHelperText","Switch","SwitchProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormSwitchProps","Omit","label","FormSwitch","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","name","t2","Boolean","state","value","t3","event","handleChange","target","checked","t4","handleBlur","t5","t6","t7","t8","TextField","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTextFieldProps","Omit","type","FormTextField","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","state","value","t2","event","handleChange","target","t3","t4","t5","handleBlur","name","createFormHook","createFormHookContexts","FormAutocomplete","Autocomplete","FormCheckbox","Checkbox","FormDatePicker","DatePicker","FormTimePicker","TimePicker","FormDateTimePicker","DateTimePicker","FormNumberField","NumberField","FormRadioGroup","RadioGroup","FormSlider","Slider","FormSubmitButton","SubmitButton","FormSwitch","Switch","FormTextField","TextField","fieldContext","useFieldContext","formContext","useFormContext","useAppForm","useLayoutForm","withForm","withLayoutForm","fieldComponents","formComponents","useEffect","useRef","BufferCharacter","time","char","Buffer","current","Array","Config","timeToEvaluate","averageWaitTime","startCharacter","endCharacter","onComplete","code","onError","error","minLength","ignoreIfFocusOn","Node","stopPropagation","preventDefault","container","enabled","useScanDetection","buffer","timeout","ReturnType","setTimeout","undefined","clearBuffer","evaluateBuffer","clearTimeout","sum","map","k","arr","slice","reduce","total","delta","avg","length","filter","join","onKeyDown","event","KeyboardEvent","currentTarget","includes","key","push","performance","now","onKeyDownRef","target","document","listener","Event","addEventListener","removeEventListener","MoreVert","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Tooltip","FC","ReactElement","useState","useTranslation","useCellContext","RowAction","label","icon","onClick","row","TData","divider","disabled","ActionsCell","actions","Array","t0","$","_c","$i","Symbol","for","cell","t","anchorEl","setAnchorEl","length","t1","t2","t3","t4","event","stopPropagation","currentTarget","t5","t6","t7","t8","t9","t10","action","event_0","original","flatMap","t11","KeyboardArrowDown","KeyboardArrowRight","IconButton","Subscribe","FC","useCellContext","ExpandCell","$","_c","$i","Symbol","for","row","t0","getCanExpand","expanded","getIsExpanded","event","stopPropagation","toggleExpanded","ml","depth","t1","table","atoms","KeyboardArrowDown","KeyboardArrowRight","IconButton","Stack","Typography","FlexRender","Subscribe","FC","useCellContext","GroupCell","$","_c","$i","Symbol","for","cell","row","t0","depth","t1","ml","alignItems","t2","expanded","getIsExpanded","event","stopPropagation","toggleExpanded","t3","table","atoms","t4","t5","subRows","length","t6","PushPin","IconButton","Tooltip","Subscribe","FC","useCellContext","PinRowCell","$","_c","$i","Symbol","for","row","t0","getCanPin","pinned","getIsPinned","event","stopPropagation","pin","t1","table","atoms","rowPinning","Checkbox","Subscribe","FC","useCellContext","SelectCell","$","_c","$i","Symbol","for","row","t0","getCanSelect","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","_temp","input","t1","table","atoms","rowSelection","event","stopPropagation","Check","Close","FC","useCellContext","ICON_SX","verticalAlign","const","BooleanCell","$","_c","$i","Symbol","for","cell","t0","getValue","TypographyProps","Typography","dayjs","localizedFormat","FC","useCellContext","extend","DateCell","format","t0","$","_c","$i","Symbol","for","props","t1","undefined","cell","T0","t2","t3","t4","t5","t6","bb0","value","getValue","t7","ComponentProps","FC","DateCell","DateTimeCell","t0","$","_c","$i","Symbol","for","props","t1","format","undefined","t2","TypographyProps","Typography","FC","useCellContext","NumberCell","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","props","sx","cell","t1","value","getValue","t2","fontVariantNumeric","toLocaleString","undefined","TypographyProps","Typography","FC","useCellContext","ValueCell","props","$","_c","$i","Symbol","for","cell","t0","renderValue","value","t1","CreatedFilterFn","FilterFn","Row","constructFilterFn","filterFn_arrHas","filterFn_empty","filterFn_endsWith","filterFn_equals","filterFn_equalsString","filterFn_greaterThan","filterFn_greaterThanOrEqualTo","filterFn_inDateRange","filterFn_includesString","filterFn_inNumberRange","filterFn_lessThan","filterFn_lessThanOrEqualTo","filterFn_notEmpty","filterFn_startsWith","LayoutTableFeatures","foldForSearch","ExtendedColumnFilter","FilterOperator","LayoutColumnMeta","TableFilterVariant","AnyRow","AnyFilterFn","apply","fn","row","columnId","value","resolveFilterValue","ignoreDiacritics","resolveDataValue","includesString","equalsString","startsWith","endsWith","isFilterActive","filter","operator","isBlank","undefined","Array","isArray","length","every","toTime","Date","Number","isNaN","getTime","time","toDay","setHours","compareDates","rowTime","getValue","filterTime","daysFromToday","Math","floor","now","isRelativeToToday","diff","min","max","map","days","equals","variant","test","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","dynamicFilterFn","filters","table","store","state","columnFilters","id","getColumn","columnDef","meta","results","joinOperator","Boolean","some","autoRemove","globalFilterFn","TEXT_OPERATORS","NUMBER_OPERATORS","DATE_OPERATORS","CHOICE_OPERATORS","getFilterOperators","Typography","Subscribe","FC","formatValue","useHeaderContext","AggregationFooter","prefix","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","t1","undefined","column","t2","value","getAggregationValue","rows","table","getFilteredRowModel","numeric","Number","fontWeight","isFinite","toLocaleString","t3","atoms","columnFilters","ArrowDownward","IconButton","Subscribe","FC","useHeaderContext","ExpandAllCell","$","_c","$i","Symbol","for","header","table","t0","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","transition","transform","getIsAllRowsExpanded","t1","atoms","expanded","ArrowBack","ArrowDownward","ArrowForward","ArrowUpward","Clear","MoreVert","PushPin","VisibilityOff","Workspaces","Box","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Subscribe","FC","useState","useTranslation","useHeaderContext","hasColumnLabel","moveColumn","HeaderMenu","$","_c","$i","Symbol","for","header","t","anchorEl","setAnchorEl","column","t0","close","t1","action","run","t2","canSort","getCanSort","canPin","getCanPin","canGroup","getCanGroup","canHide","getCanHide","sorted","getIsSorted","pinned","getIsPinned","grouped","getIsGrouped","index","getIndex","leafCount","table","getVisibleLeafColumns","length","display","flexShrink","mr","overflow","width","event","currentTarget","toggleSorting","clearSorting","const","map","position","pin","toggleGrouping","toggleVisibility","t3","store","_temp","state","SxProps","Theme","Box","Subscribe","FC","useHeaderContext","BAR_HEIGHT","TARGET_SIZE","bar","accent","content","position","insetInlineEnd","top","width","height","borderRadius","bgcolor","transition","theme","transitions","create","const","base","insetBlock","HeaderResizeHandle","$","_c","$i","Symbol","for","header","column","getCanResize","t0","getResizeHandler","handler","t1","resetSize","_temp","cursor","touchAction","userSelect","getIsResizing","t2","table","atoms","columnResizing","event","stopPropagation","Box","TableSortLabel","Subscribe","FC","ReactNode","useHeaderContext","HeaderSortLabel","children","t0","$","_c","$i","Symbol","for","column","getCanSort","t1","sorting","direction","getIsSorted","sortIndex","length","getSortIndex","getToggleSortingHandler","ml","fontSize","opacity","t2","table","atoms","Checkbox","Subscribe","FC","useHeaderContext","SelectAllCell","scope","t0","$","_c","$i","Symbol","for","t1","undefined","header","table","t2","checked","getIsAllPageRowsSelected","getIsAllRowsSelected","indeterminate","getIsSomePageRowsSelected","getIsSomeRowsSelected","getToggleAllPageRowsSelectedHandler","getToggleAllRowsSelectedHandler","input","t3","atoms","rowSelection","ViewColumn","Box","Checkbox","FormControlLabel","IconButton","Popover","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","columnLabel","hasColumnLabel","shortcutLabel","ColumnsPanel","$","_c","$i","Symbol","for","table","t","anchorEl","setAnchorEl","buttonRef","t0","getAllLeafColumns","filter","_temp","columns","t1","current","t2","length","t3","enabled","t4","t5","event","currentTarget","t6","t7","t10","t11","t8","t9","vertical","horizontal","paper","sx","maxWidth","t12","display","flexDirection","px","py","maxHeight","minWidth","overflow","map","_temp2","alignItems","p","borderTop","borderColor","typography","variant","noWrap","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","t13","atoms","columnVisibility","t14","t15","column","getCanHide","column_0","id","getIsVisible","getToggleVisibilityHandler","Autocomplete","MenuItem","Stack","TextField","Typography","Column","RowData","useTranslation","LayoutTableFeatures","ExtendedColumnFilter","LayoutColumnMeta","TableFilterOption","formatValue","FilterColumn","TData","ColumnFilterFieldProps","column","filter","onChange","value","filterMeta","columnDef","meta","resolveOptions","Array","declared","options","from","getFacetedUniqueValues","keys","map","label","option","sort","a","b","localeCompare","toDateInputValue","Date","date","Number","isNaN","getTime","getFullYear","String","getMonth","padStart","getDate","fromDateInputValue","raw","toISOString","undefined","toNumber","pair","isArray","ColumnFilterField","t0","$","_c","$i","Symbol","for","t","t1","variant","operator","t2","t3","size","const","fullWidth","shared","t4","t5","T0","T1","isDate","t6","t7","t8","t9","to","t10","event","target","t11","inputLabel","shrink","t12","t13","t14","t15","t16","event_0","t17","t18","t19","event_1","multiple","selected","includes","find","option_0","_","next","_temp3","params","_temp","_temp2","event_2","event_3","event_4","option_3","option_2","option_1","selectedOption","Add","Close","DeleteForever","FilterList","Autocomplete","Badge","Box","Button","FormControl","IconButton","InputLabel","MenuItem","Popover","Select","TextField","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","ColumnFilterField","getFilterOperators","isFilterActive","ExtendedColumnFilter","FilterOperator","JoinOperator","LayoutColumnMeta","columnLabel","shortcutLabel","DATE_OPERATOR_LABELS","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","const","DateOperator","LOGIC_WIDTH","FIELD_WIDTH","VALUE_WIDTH","FiltersMenu","table","t","anchorEl","setAnchorEl","HTMLElement","placeholder","buttonRef","HTMLButtonElement","filterableColumns","getAllLeafColumns","filter","column","getCanFilter","close","current","enabled","length","setFilters","filters","Array","setColumnFilters","newFilter","joinOperator","id","filterId","crypto","randomUUID","value","operator","columnDef","meta","variant","atoms","columnFilters","rows","activeCount","update","patch","Partial","map","remove","next","add","event","currentTarget","vertical","horizontal","paper","sx","maxWidth","display","flexDirection","gap","p","maxHeight","overflow","index","getColumn","operators","alignItems","flexShrink","width","visibility","item","target","option","selected","_","params","flexGrow","justifyContent","borderTop","borderColor","resetColumnFilters","Close","Search","Box","IconButton","InputAdornment","TextField","Tooltip","useTheme","useHotkey","FC","useEffect","useRef","useState","useTranslation","useTableContext","shortcutLabel","GlobalFilter","defaultExpanded","debounce","t0","$","_c","$i","Symbol","for","t1","undefined","table","t","theme","inputRef","value","setValue","state","globalFilter","expanded","setExpanded","t2","t3","id","setTimeout","setGlobalFilter","clearTimeout","t4","collapse","t5","current","focus","expand","t6","display","alignItems","t7","t8","t9","t10","t11","transitions","create","t12","gridArea","width","height","zIndex","opacity","pointerEvents","transition","t13","t14","t15","t16","t17","t18","event","target","event_0","key","t19","t20","t21","t22","t23","t24","overflowX","t25","t26","t27","t28","mr","t29","input","startAdornment","endAdornment","t30","t31","TablePagination","TablePaginationProps","FC","useTranslation","useTableContext","PaginationProps","Omit","pageSizeOptions","Array","ALL","Pagination","t0","$","_c","$i","Symbol","for","t1","props","undefined","table","t","pageIndex","pageSize","state","pagination","sizes","Number","isFinite","includes","sort","_temp","t2","flexShrink","minHeight","borderTop","borderColor","t3","t4","label","value","t5","t6","getRowCount","t7","t8","t9","_","page","setPageIndex","event","next","target","setPageSize","Infinity","isArray","sx","a","b","Skeleton","MuiSkeleton","TableCell","TableRow","FC","useEffect","useRef","useState","useTableContext","hasColumnLabel","rowHeight","t0","$","_c","$i","Symbol","for","table","firstRow","t1","state","pagination","pageSize","Math","min","rowCount","setRowCount","t2","t3","container","current","closest","measure","spent","reduce","total","selector","querySelector","getBoundingClientRect","height","max","floor","clientHeight","observer","ResizeObserver","observe","disconnect","t4","Array","from","length","_","index","undefined","getVisibleLeafColumns","map","_temp","p","column","id","py","px","mx","Box","Divider","Typography","Subscribe","FC","ReactNode","useTranslation","useTableContext","ColumnsPanel","FiltersMenu","GlobalFilter","TableToolbarProps","title","actions","disableColumnFilter","disableColumnSelector","disableSearch","ToolbarDivider","$","_c","$i","Symbol","for","t0","height","alignSelf","mx","Toolbar","table","t","t1","flexShrink","display","alignItems","justifyContent","minHeight","gap","p","boxSizing","borderBottom","borderColor","t2","flex","minWidth","t3","fontWeight","t4","count","getSelectedRowIds","length","t5","atoms","rowSelection","t6","t7","t8","t9","t10","t11","createTableHook","ActionsCell","ExpandCell","GroupCell","PinRowCell","SelectCell","AggregatedCell","BooleanCell","DateCell","DateTimeCell","NumberCell","ValueCell","dynamicFilterFn","globalFilterFn","AggregationFooter","ExpandAllCell","HeaderMenu","HeaderResizeHandle","HeaderSortLabel","SelectAllCell","ColumnsPanel","FiltersMenu","GlobalFilter","Pagination","Skeleton","Toolbar","cellContext","headerContext","layoutTableFeatures","tableContext","useCellContext","useHeaderContext","useTableContext","LayoutTableFeatures","appFeatures","createAppColumnHelper","createLayoutColumnHelper","useAppTable","useLayoutTable","features","getRowId","row","id","defaultColumn","filterFn","aggregatedCell","columnResizeMode","isMultiSortEvent","e","ctrlKey","metaKey","shiftKey","MouseEvent","tableComponents","cellComponents","headerComponents","RowAction","LayoutTable","LayoutTableProps","FilterOperator","LayoutColumnMeta","TableFilterOption","TableFilterVariant"],"sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/useForm.ts","../src/hooks/useScanDetection.ts","../src/components/table/cells/features/ActionsCell.tsx","../src/components/table/cells/features/ExpandCell.tsx","../src/components/table/cells/features/GroupCell.tsx","../src/components/table/cells/features/PinRowCell.tsx","../src/components/table/cells/features/SelectCell.tsx","../src/components/table/cells/formatters/BooleanCell.tsx","../src/components/table/cells/formatters/DateCell.tsx","../src/components/table/cells/formatters/DateTimeCell.tsx","../src/components/table/cells/formatters/NumberCell.tsx","../src/components/table/cells/formatters/ValueCell.tsx","../src/components/table/filterFns.ts","../src/components/table/headers/AggregationFooter.tsx","../src/components/table/headers/ExpandAllCell.tsx","../src/components/table/headers/HeaderMenu.tsx","../src/components/table/headers/HeaderResizeHandle.tsx","../src/components/table/headers/HeaderSortLabel.tsx","../src/components/table/headers/SelectAllCell.tsx","../src/components/table/table/ColumnsPanel.tsx","../src/components/table/ColumnFilterField.tsx","../src/components/table/table/FiltersMenu.tsx","../src/components/table/table/GlobalFilter.tsx","../src/components/table/table/Pagination.tsx","../src/components/table/table/Skeleton.tsx","../src/components/table/table/Toolbar.tsx","../src/hooks/useLayoutTable.tsx"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormAutocompleteProps extends Omit<\n  AutocompleteProps<any, boolean, boolean, boolean>,\n  FormOmittedProps\n> {\n  textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\n}\n\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({\n  textFieldProps,\n  ...autocompleteProps\n}) => {\n  const field = useFieldContext();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <Autocomplete\n      value={field.state.value}\n      onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\n      onInputChange={(_, value, reason) =>\n        reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)\n      }\n      onBlur={field.handleBlur}\n      aria-label={field.name}\n      {...autocompleteProps}\n      renderInput={(parameters) => (\n        <TextField\n          {...parameters}\n          name={field.name}\n          error={isTouched && hasError}\n          helperText={isTouched && helperText}\n          {...textFieldProps}\n        />\n      )}\n    />\n  );\n};\n","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { CheckboxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\n  label?: string;\n}\n\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\n  const field = useFieldContext<boolean | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      <FormControlLabel\n        control={\n          <Checkbox\n            name={field.name}\n            checked={Boolean(field.state.value)}\n            onChange={(event) => field.handleChange(event.target.checked)}\n            onBlur={field.handleBlur}\n            aria-label={field.name}\n            {...props}\n          />\n        }\n        label={props.label ?? \"\"}\n      />\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { DatePicker } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DatePickerProps } from \"@mui/x-date-pickers\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\n  const field = useFieldContext<Dayjs | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <DatePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { TimePicker } from \"@mui/x-date-pickers\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { TimePickerProps } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\n  const field = useFieldContext<Dayjs | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <TimePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { DateTimePicker } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\n  const field = useFieldContext<Dayjs | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <DateTimePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { TextField } from \"@mui/material\";\nimport { NumericFormat } from \"react-number-format\";\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\nimport type { FC } from \"react\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n  defaultValue?: number | null;\n  options?: Omit<\n    NumericFormatProps<InputAttributes>,\n    \"customInput\" | \"onValueChange\" | keyof InputAttributes\n  >;\n}\n\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\n  const field = useFieldContext<number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <NumericFormat\n      customInput={TextField}\n      name={field.name}\n      value={field.state.value ?? \"\"}\n      onValueChange={({ floatValue }) => field.handleChange(floatValue)}\n      onBlur={field.handleBlur}\n      error={isTouched && hasError}\n      helperText={isTouched && helperText}\n      aria-label={field.name}\n      {...props}\n      {...options}\n    />\n  );\n};\n","import {\n  FormControl,\n  FormControlLabel,\n  FormHelperText,\n  FormLabel,\n  Radio,\n  RadioGroup,\n} from \"@mui/material\";\nimport type { RadioGroupProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\ninterface Option {\n  label: string;\n  value: string | number;\n}\n\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\n  label?: string;\n  options: Array<Option>;\n}\n\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\n  const field = useFieldContext<string | number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      {label && <FormLabel component=\"legend\">{label}</FormLabel>}\n      <RadioGroup\n        name={field.name}\n        value={field.state.value ?? \"\"}\n        onChange={(event) => field.handleChange(event.target.value)}\n        onBlur={field.handleBlur}\n        aria-label={field.name}\n        {...props}\n      >\n        {options.map((option) => (\n          <FormControlLabel\n            key={option.value}\n            value={option.value}\n            control={<Radio />}\n            label={option.label}\n          />\n        ))}\n      </RadioGroup>\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\nimport type { SliderProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\n  label?: string;\n}\n\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\n  const field = useFieldContext<number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      {label && <FormLabel>{label}</FormLabel>}\n      <Slider\n        name={field.name}\n        value={field.state.value ?? 0}\n        onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\n        onBlur={field.handleBlur}\n        aria-label={field.name}\n        {...props}\n      />\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { Button } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useFormContext } from \"~/hooks/useForm\";\n\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\n\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\n  const form = useFormContext();\n\n  const handleClick = async (event: React.MouseEvent<HTMLButtonElement>) => {\n    event.preventDefault();\n    event.stopPropagation();\n    await form.handleSubmit();\n  };\n\n  return (\n    <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\n      {([canSubmit, isSubmitting]) => (\n        <Button\n          loading={isSubmitting}\n          disabled={!canSubmit}\n          onClick={handleClick}\n          type=\"submit\"\n          aria-label=\"submit\"\n          {...props}\n        />\n      )}\n    </form.Subscribe>\n  );\n};\n","import { FormControl, FormControlLabel, FormHelperText, Switch } from \"@mui/material\";\nimport type { SwitchProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\n  label?: string;\n}\n\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\n  const field = useFieldContext<boolean | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      <FormControlLabel\n        control={\n          <Switch\n            name={field.name}\n            checked={Boolean(field.state.value)}\n            onChange={(event) => field.handleChange(event.target.checked)}\n            onBlur={field.handleBlur}\n            aria-label={field.name}\n            {...props}\n          />\n        }\n        label={props.label ?? \"\"}\n      />\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { TextField } from \"@mui/material\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n  type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\";\n}\n\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\n  const field = useFieldContext<string | number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <TextField\n      name={field.name}\n      value={field.state.value ?? \"\"}\n      onChange={(event) => field.handleChange(event.target.value)}\n      onBlur={field.handleBlur}\n      error={isTouched && hasError}\n      helperText={isTouched && helperText}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n  createFormHookContexts();\n\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } = createFormHook({\n  fieldComponents: {\n    TextField,\n    NumberField,\n    Autocomplete,\n    Checkbox,\n    Switch,\n    RadioGroup,\n    Slider,\n    DatePicker,\n    TimePicker,\n    DateTimePicker,\n  },\n  formComponents: {\n    SubmitButton,\n  },\n  fieldContext,\n  formContext,\n});\n","import { useEffect, useRef } from \"react\";\n\ninterface BufferCharacter {\n  time: number;\n  char: string;\n}\n\ninterface Buffer {\n  current: Array<BufferCharacter>;\n}\n\ninterface Config {\n  /** Time to wait from last character to then trigger an evaluation of the buffer. Defaults to 100ms. */\n  timeToEvaluate?: number;\n  /** Average time between characters in milliseconds. Used to determine if input is from keyboard or a scanner. Defaults to 50ms.*/\n  averageWaitTime?: number;\n  /** Character that barcode scanner prefixes input with.*/\n  startCharacter?: Array<string>;\n  /** Character that barcode scanner suffixes input with. Defaults to [\"Enter\", \"Escape\"].*/\n  endCharacter?: Array<string>;\n  /** Callback to use on complete scan input.*/\n  onComplete: (code: string) => void;\n  /** Callback to use on error. */\n  onError?: (error: string) => void;\n  /** Minimum length a scanned code should be. Defaults to 1.*/\n  minLength?: number;\n  /** Ignore scan input if this node is focused.*/\n  ignoreIfFocusOn?: Node;\n  /** Stop propagation on keydown event. Defaults to false.*/\n  stopPropagation?: boolean;\n  /** Prevent default on keydown event. Defaults to false.*/\n  preventDefault?: boolean;\n  /** Bind keydown event to this node. Defaults to document (resolved on the client only, so the hook is SSR-safe).*/\n  container?: Node;\n  /** Indicates if the scanning is enabled. */\n  enabled?: boolean;\n}\n\nexport const useScanDetection = ({\n  timeToEvaluate = 100,\n  averageWaitTime = 50,\n  startCharacter = [],\n  endCharacter = [\"Enter\", \"Escape\"],\n  onComplete,\n  onError,\n  minLength = 1,\n  ignoreIfFocusOn,\n  stopPropagation = false,\n  preventDefault = false,\n  container,\n  enabled = true,\n}: Config) => {\n  const buffer: Buffer = useRef([]);\n  const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n  const clearBuffer = () => {\n    buffer.current = [];\n  };\n  const evaluateBuffer = () => {\n    clearTimeout(timeout.current);\n    const sum = buffer.current\n      .map(({ time }, k, arr) => (k > 0 ? time - arr[k - 1].time : 0))\n      .slice(1)\n      .reduce((total, delta) => total + delta, 0);\n    const avg = sum / (buffer.current.length - 1);\n\n    const code = buffer.current\n      .slice(startCharacter.length > 0 ? 1 : 0)\n      .filter(({ char }) => char !== \"Shift\" && char !== \"Tab\")\n      .map(({ char }) => char)\n      .join(\"\");\n\n    if (\n      avg <= averageWaitTime &&\n      buffer.current.slice(startCharacter.length > 0 ? 1 : 0).length >= minLength\n    ) {\n      onComplete(code);\n    } else if (avg <= averageWaitTime) {\n      onError?.(code);\n    }\n    clearBuffer();\n  };\n\n  const onKeyDown = (event: KeyboardEvent) => {\n    if (!enabled) return;\n\n    if (event.currentTarget !== ignoreIfFocusOn) {\n      if (endCharacter.includes(event.key)) {\n        evaluateBuffer();\n      }\n      if (\n        buffer.current.length > 0 ||\n        startCharacter.includes(event.key) ||\n        startCharacter.length === 0\n      ) {\n        clearTimeout(timeout.current);\n        timeout.current = setTimeout(evaluateBuffer, timeToEvaluate);\n        buffer.current.push({ time: performance.now(), char: event.key });\n      }\n    }\n    if (stopPropagation) {\n      event.stopPropagation();\n    }\n    if (preventDefault) {\n      event.preventDefault();\n    }\n  };\n\n  const onKeyDownRef = useRef(onKeyDown);\n  onKeyDownRef.current = onKeyDown;\n\n  useEffect(() => {\n    return () => {\n      clearTimeout(timeout.current);\n    };\n  }, []);\n\n  useEffect(() => {\n    const target = container ?? document;\n    const listener = (event: Event) => onKeyDownRef.current(event as KeyboardEvent);\n    target.addEventListener(\"keydown\", listener);\n    return () => {\n      target.removeEventListener(\"keydown\", listener);\n    };\n  }, [container]);\n};\n","import MoreVert from \"@mui/icons-material/MoreVert\";\nimport {\n  Divider,\n  IconButton,\n  ListItemIcon,\n  ListItemText,\n  Menu,\n  MenuItem,\n  Tooltip,\n} from \"@mui/material\";\nimport type { FC, ReactElement } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport type RowAction<TData = any> = {\n  label: string;\n  icon?: ReactElement;\n  onClick: (row: TData) => void;\n  divider?: boolean;\n  disabled?: boolean;\n};\n\nexport const ActionsCell: FC<{ actions: Array<RowAction> }> = ({ actions }) => {\n  const cell = useCellContext();\n  const { t } = useTranslation();\n  const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n  if (!actions.length) return null;\n\n  return (\n    <>\n      <Tooltip title={t(\"Layout.Table.RowActions\")}>\n        <IconButton\n          size=\"small\"\n          aria-label={t(\"Layout.Table.RowActions\")}\n          aria-haspopup=\"menu\"\n          onClick={(event) => {\n            event.stopPropagation();\n            setAnchorEl(event.currentTarget);\n          }}\n        >\n          <MoreVert fontSize=\"small\" />\n        </IconButton>\n      </Tooltip>\n\n      <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={() => setAnchorEl(null)}>\n        {actions.flatMap((action) => [\n          ...(action.divider ? [<Divider key={`${action.label}-divider`} />] : []),\n          <MenuItem\n            key={action.label}\n            disabled={action.disabled}\n            onClick={(event) => {\n              event.stopPropagation();\n              action.onClick(cell.row.original);\n              setAnchorEl(null);\n            }}\n          >\n            {action.icon && <ListItemIcon>{action.icon}</ListItemIcon>}\n            <ListItemText>{action.label}</ListItemText>\n          </MenuItem>,\n        ])}\n      </Menu>\n    </>\n  );\n};\n","import KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport { IconButton } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const ExpandCell: FC = () => {\n  const { row } = useCellContext();\n\n  return (\n    <Subscribe source={row.table.atoms.expanded}>\n      {() => {\n        if (!row.getCanExpand()) return null;\n        const expanded = row.getIsExpanded();\n\n        return (\n          <IconButton\n            size=\"small\"\n            onClick={(event) => {\n              event.stopPropagation();\n              row.toggleExpanded();\n            }}\n            aria-label={expanded ? \"Collapse row\" : \"Expand row\"}\n            sx={{ ml: row.depth * 2 }}\n          >\n            {expanded ? (\n              <KeyboardArrowDown fontSize=\"small\" />\n            ) : (\n              <KeyboardArrowRight fontSize=\"small\" />\n            )}\n          </IconButton>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport { IconButton, Stack, Typography } from \"@mui/material\";\nimport { FlexRender, Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const GroupCell: FC = () => {\n  const cell = useCellContext();\n  const { row } = cell;\n\n  return (\n    <Stack direction=\"row\" spacing={0.5} sx={{ ml: row.depth * 2, alignItems: \"center\" }}>\n      <Subscribe source={row.table.atoms.expanded}>\n        {() => {\n          const expanded = row.getIsExpanded();\n\n          return (\n            <IconButton\n              size=\"small\"\n              onClick={(event) => {\n                event.stopPropagation();\n                row.toggleExpanded();\n              }}\n              aria-label={expanded ? \"Collapse group\" : \"Expand group\"}\n            >\n              {expanded ? (\n                <KeyboardArrowDown fontSize=\"small\" />\n              ) : (\n                <KeyboardArrowRight fontSize=\"small\" />\n              )}\n            </IconButton>\n          );\n        }}\n      </Subscribe>\n\n      <FlexRender cell={cell} />\n\n      <Typography variant=\"caption\" color=\"text.secondary\">\n        ({row.subRows.length})\n      </Typography>\n    </Stack>\n  );\n};\n","import PushPin from \"@mui/icons-material/PushPin\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const PinRowCell: FC = () => {\n  const { row } = useCellContext();\n\n  return (\n    <Subscribe source={row.table.atoms.rowPinning}>\n      {() => {\n        if (!row.getCanPin()) return null;\n        const pinned = row.getIsPinned();\n\n        return (\n          <Tooltip title={pinned ? \"Unpin row\" : \"Pin row\"}>\n            <IconButton\n              size=\"small\"\n              color={pinned ? \"primary\" : \"default\"}\n              onClick={(event) => {\n                event.stopPropagation();\n                row.pin(pinned ? false : \"top\");\n              }}\n            >\n              <PushPin fontSize=\"small\" />\n            </IconButton>\n          </Tooltip>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import { Checkbox } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const SelectCell: FC = () => {\n  const { row } = useCellContext();\n\n  return (\n    <Subscribe source={row.table.atoms.rowSelection}>\n      {() =>\n        row.getCanSelect() ? (\n          <Checkbox\n            size=\"small\"\n            checked={row.getIsSelected()}\n            indeterminate={!row.getIsSelected() && row.getIsSomeSelected()}\n            onChange={row.getToggleSelectedHandler()}\n            onClick={(event) => event.stopPropagation()}\n            slotProps={{ input: { \"aria-label\": \"Select row\" } }}\n          />\n        ) : null\n      }\n    </Subscribe>\n  );\n};\n","import Check from \"@mui/icons-material/Check\";\nimport Close from \"@mui/icons-material/Close\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\n/** Icons are inline-block, so without this they sit on the baseline and read as too high. */\nconst ICON_SX = { verticalAlign: \"middle\" } as const;\n\nexport const BooleanCell: FC = () => {\n  const cell = useCellContext<boolean>();\n\n  return cell.getValue() ? (\n    <Check fontSize=\"small\" color=\"success\" sx={ICON_SX} />\n  ) : (\n    <Close fontSize=\"small\" color=\"error\" sx={ICON_SX} />\n  );\n};\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport dayjs from \"dayjs\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\ndayjs.extend(localizedFormat);\n\nexport const DateCell: FC<TypographyProps & { format?: string }> = ({ format = \"L\", ...props }) => {\n  const cell = useCellContext<Date | string>();\n  const value = cell.getValue();\n  if (!value) return null;\n\n  return (\n    <Typography variant=\"body2\" noWrap {...props}>\n      {dayjs(value).format(format)}\n    </Typography>\n  );\n};\n","import type { ComponentProps, FC } from \"react\";\nimport { DateCell } from \"~/components/table/cells/formatters/DateCell\";\n\nexport const DateTimeCell: FC<ComponentProps<typeof DateCell>> = ({\n  format = \"L LT\",\n  ...props\n}) => <DateCell format={format} {...props} />;\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const NumberCell: FC<TypographyProps & { options?: Intl.NumberFormatOptions }> = ({\n  options,\n  sx,\n  ...props\n}) => {\n  const cell = useCellContext<number>();\n  const value = cell.getValue();\n\n  return (\n    <Typography\n      variant=\"body2\"\n      noWrap\n      sx={{ fontVariantNumeric: \"tabular-nums\", ...sx }}\n      {...props}\n    >\n      {typeof value === \"number\" && value.toLocaleString(undefined, options)}\n    </Typography>\n  );\n};\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const ValueCell: FC<TypographyProps> = (props) => {\n  const cell = useCellContext<string>();\n  const value = cell.renderValue();\n\n  return (\n    <Typography variant=\"body2\" noWrap {...props}>\n      {value}\n    </Typography>\n  );\n};\n","import type { CreatedFilterFn, FilterFn, Row } from \"@tanstack/react-table\";\nimport {\n  constructFilterFn,\n  filterFn_arrHas,\n  filterFn_empty,\n  filterFn_endsWith,\n  filterFn_equals,\n  filterFn_equalsString,\n  filterFn_greaterThan,\n  filterFn_greaterThanOrEqualTo,\n  filterFn_inDateRange,\n  filterFn_includesString,\n  filterFn_inNumberRange,\n  filterFn_lessThan,\n  filterFn_lessThanOrEqualTo,\n  filterFn_notEmpty,\n  filterFn_startsWith,\n} from \"@tanstack/react-table\";\nimport type { LayoutTableFeatures } from \"~/components/table/context\";\nimport { foldForSearch } from \"~/lib/utils\";\nimport type {\n  ExtendedColumnFilter,\n  FilterOperator,\n  LayoutColumnMeta,\n  TableFilterVariant,\n} from \"./types\";\n\ntype AnyRow = Row<LayoutTableFeatures, any>;\ntype AnyFilterFn = FilterFn<LayoutTableFeatures, any>;\n\nconst apply = (fn: AnyFilterFn, row: AnyRow, columnId: string, value: unknown): boolean =>\n  fn(row, columnId, fn.resolveFilterValue?.(value) ?? value);\n\nconst ignoreDiacritics = (fn: CreatedFilterFn<any, any>): CreatedFilterFn<any, any> =>\n  constructFilterFn({ ...fn, resolveFilterValue: foldForSearch, resolveDataValue: foldForSearch });\n\nconst includesString = ignoreDiacritics(filterFn_includesString);\nconst equalsString = ignoreDiacritics(filterFn_equalsString);\nconst startsWith = ignoreDiacritics(filterFn_startsWith);\nconst endsWith = ignoreDiacritics(filterFn_endsWith);\n\nexport const isFilterActive = (filter: ExtendedColumnFilter): boolean =>\n  filter.operator === \"isEmpty\" || filter.operator === \"isNotEmpty\" || !isBlank(filter.value);\n\nconst isBlank = (value: unknown): boolean =>\n  value === undefined ||\n  value === null ||\n  value === \"\" ||\n  (Array.isArray(value) && (!value.length || value.every(isBlank)));\n\nconst toTime = (value: unknown): number | null => {\n  if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.getTime();\n  if (typeof value === \"string\" || typeof value === \"number\") {\n    const time = new Date(value).getTime();\n    return Number.isNaN(time) ? null : time;\n  }\n  return null;\n};\n\nconst toDay = (time: number): number => new Date(time).setHours(0, 0, 0, 0);\n\nconst compareDates = (\n  row: AnyRow,\n  columnId: string,\n  value: unknown,\n  operator: FilterOperator,\n): boolean | undefined => {\n  const rowTime = toTime(row.getValue(columnId));\n  const filterTime = toTime(value);\n  if (rowTime === null || filterTime === null) return undefined;\n\n  switch (operator) {\n    case \"equals\":\n      return toDay(rowTime) === toDay(filterTime);\n    case \"greaterThan\":\n      return rowTime > filterTime;\n    case \"greaterThanOrEqualTo\":\n      return rowTime >= filterTime;\n    case \"lessThan\":\n      return rowTime < filterTime;\n    case \"lessThanOrEqualTo\":\n      return rowTime <= filterTime;\n    default:\n      return undefined;\n  }\n};\n\nconst daysFromToday = (row: AnyRow, columnId: string): number | null => {\n  const rowTime = toTime(row.getValue(columnId));\n  if (rowTime === null) return null;\n\n  return Math.floor((toDay(rowTime) - toDay(Date.now())) / 86_400_000);\n};\n\nconst isRelativeToToday = (row: AnyRow, columnId: string, value: unknown): boolean => {\n  const diff = daysFromToday(row, columnId);\n  if (diff === null) return false;\n\n  if (Array.isArray(value)) {\n    const [min, max] = value.map(Number);\n    return (Number.isNaN(min) || diff >= min) && (Number.isNaN(max) || diff <= max);\n  }\n\n  const days = Number(value);\n  return !Number.isNaN(days) && diff === days;\n};\n\nconst equals = (\n  row: AnyRow,\n  columnId: string,\n  value: unknown,\n  variant: TableFilterVariant,\n): boolean => {\n  if (Array.isArray(value)) return apply(filterFn_arrHas, row, columnId, value);\n  if (variant === \"date\") return compareDates(row, columnId, value, \"equals\") ?? false;\n\n  return apply(filterFn_equals, row, columnId, value);\n};\n\nconst test = (\n  row: AnyRow,\n  columnId: string,\n  operator: FilterOperator,\n  value: unknown,\n  variant: TableFilterVariant,\n): boolean => {\n  switch (operator) {\n    case \"includesString\":\n      return apply(includesString, row, columnId, value);\n    case \"notIncludesString\":\n      return !apply(includesString, row, columnId, value);\n    case \"equalsString\":\n      return apply(equalsString, row, columnId, value);\n    case \"notEqualsString\":\n      return !apply(equalsString, row, columnId, value);\n    case \"startsWith\":\n      return apply(startsWith, row, columnId, value);\n    case \"endsWith\":\n      return apply(endsWith, row, columnId, value);\n    case \"isEmpty\":\n      return filterFn_empty(row, columnId, true);\n    case \"isNotEmpty\":\n      return filterFn_notEmpty(row, columnId, true);\n    case \"equals\":\n      return equals(row, columnId, value, variant);\n    case \"notEquals\":\n      return !equals(row, columnId, value, variant);\n    case \"greaterThan\":\n    case \"greaterThanOrEqualTo\":\n    case \"lessThan\":\n    case \"lessThanOrEqualTo\": {\n      if (variant === \"date\") return compareDates(row, columnId, value, operator) ?? false;\n\n      const fn = {\n        greaterThan: filterFn_greaterThan,\n        greaterThanOrEqualTo: filterFn_greaterThanOrEqualTo,\n        lessThan: filterFn_lessThan,\n        lessThanOrEqualTo: filterFn_lessThanOrEqualTo,\n      }[operator];\n\n      return apply(fn, row, columnId, value);\n    }\n    case \"inRange\":\n      return apply(\n        variant === \"date\" ? filterFn_inDateRange : filterFn_inNumberRange,\n        row,\n        columnId,\n        Array.isArray(value) ? value : [value, value],\n      );\n    case \"isRelativeToToday\":\n      return isRelativeToToday(row, columnId, value);\n  }\n};\n\nexport const dynamicFilterFn: FilterFn<LayoutTableFeatures, any> = (row, columnId) => {\n  const filters = (row.table.store.state.columnFilters as Array<ExtendedColumnFilter>).filter(\n    (filter) => filter.id === columnId,\n  );\n  if (!filters.length) return true;\n\n  const variant =\n    (row.table.getColumn(columnId)?.columnDef.meta as LayoutColumnMeta | undefined)?.variant ??\n    \"text\";\n\n  const results = filters\n    .filter(isFilterActive)\n    .map((filter) =>\n      test(row, columnId, filter.operator ?? \"includesString\", filter.value, variant),\n    );\n\n  if (!results.length) return true;\n\n  return (filters[0].joinOperator ?? \"and\") === \"and\"\n    ? results.every(Boolean)\n    : results.some(Boolean);\n};\n\ndynamicFilterFn.autoRemove = () => false;\n\nexport const globalFilterFn = includesString;\n\nconst TEXT_OPERATORS: Array<FilterOperator> = [\n  \"includesString\",\n  \"notIncludesString\",\n  \"startsWith\",\n  \"endsWith\",\n  \"equalsString\",\n  \"notEqualsString\",\n  \"isEmpty\",\n  \"isNotEmpty\",\n];\n\nconst NUMBER_OPERATORS: Array<FilterOperator> = [\n  \"equals\",\n  \"notEquals\",\n  \"lessThan\",\n  \"lessThanOrEqualTo\",\n  \"greaterThan\",\n  \"greaterThanOrEqualTo\",\n  \"inRange\",\n];\n\nconst DATE_OPERATORS: Array<FilterOperator> = [\n  \"equals\",\n  \"notEquals\",\n  \"lessThan\",\n  \"lessThanOrEqualTo\",\n  \"greaterThan\",\n  \"greaterThanOrEqualTo\",\n  \"inRange\",\n  \"isRelativeToToday\",\n  \"isEmpty\",\n  \"isNotEmpty\",\n];\n\nconst CHOICE_OPERATORS: Array<FilterOperator> = [\"equals\", \"notEquals\", \"isEmpty\", \"isNotEmpty\"];\n\nexport const getFilterOperators = (variant: TableFilterVariant): Array<FilterOperator> => {\n  switch (variant) {\n    case \"number\":\n      return NUMBER_OPERATORS;\n    case \"date\":\n      return DATE_OPERATORS;\n    case \"boolean\":\n    case \"select\":\n    case \"multi-select\":\n      return CHOICE_OPERATORS;\n    default:\n      return TEXT_OPERATORS;\n  }\n};\n","import { Typography } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { formatValue } from \"../formatValue\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const AggregationFooter: FC<{\n  prefix?: string;\n  options?: Intl.NumberFormatOptions;\n}> = ({ prefix = \"\", options }) => {\n  const { column } = useHeaderContext();\n\n  return (\n    <Subscribe source={column.table.atoms.columnFilters}>\n      {() => {\n        const value = formatValue(\n          column.getAggregationValue({ rows: column.table.getFilteredRowModel().rows }) as unknown,\n        );\n        if (!value) return null;\n\n        const numeric = Number(value);\n\n        return (\n          <Typography variant=\"body2\" noWrap sx={{ fontWeight: 700 }}>\n            {prefix}\n            {Number.isFinite(numeric) ? numeric.toLocaleString(undefined, options) : value}\n          </Typography>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import ArrowDownward from \"@mui/icons-material/ArrowDownward\";\nimport { IconButton } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const ExpandAllCell: FC = () => {\n  const header = useHeaderContext();\n  const table = header.table;\n\n  return (\n    <Subscribe source={table.atoms.expanded}>\n      {() => {\n        if (!table.getCanSomeRowsExpand()) return null;\n\n        return (\n          <IconButton\n            size=\"small\"\n            onClick={table.getToggleAllRowsExpandedHandler()}\n            aria-label=\"Toggle all rows\"\n          >\n            <ArrowDownward\n              fontSize=\"small\"\n              sx={{\n                transition: \"transform 150ms\",\n                transform: table.getIsAllRowsExpanded() ? \"rotate(0deg)\" : \"rotate(-90deg)\",\n              }}\n            />\n          </IconButton>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import ArrowBack from \"@mui/icons-material/ArrowBack\";\nimport ArrowDownward from \"@mui/icons-material/ArrowDownward\";\nimport ArrowForward from \"@mui/icons-material/ArrowForward\";\nimport ArrowUpward from \"@mui/icons-material/ArrowUpward\";\nimport Clear from \"@mui/icons-material/Clear\";\nimport MoreVert from \"@mui/icons-material/MoreVert\";\nimport PushPin from \"@mui/icons-material/PushPin\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\nimport Workspaces from \"@mui/icons-material/Workspaces\";\nimport {\n  Box,\n  Divider,\n  IconButton,\n  ListItemIcon,\n  ListItemText,\n  Menu,\n  MenuItem,\n} from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { hasColumnLabel, moveColumn } from \"../utils\";\n\nexport const HeaderMenu: FC = () => {\n  const header = useHeaderContext();\n  const { t } = useTranslation();\n  const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n  const { column } = header;\n\n  const close = () => setAnchorEl(null);\n  const run = (action: () => void) => () => {\n    action();\n    close();\n  };\n\n  if (!hasColumnLabel(column)) return null;\n\n  return (\n    <Subscribe source={column.table.store} selector={(state) => state}>\n      {() => {\n        const canSort = column.getCanSort();\n        const canPin = column.getCanPin();\n        const canGroup = column.getCanGroup();\n        const canHide = column.getCanHide();\n\n        if (!canSort && !canPin && !canGroup && !canHide) return null;\n\n        const sorted = column.getIsSorted();\n        const pinned = column.getIsPinned();\n        const grouped = column.getIsGrouped();\n        const index = column.getIndex();\n        const leafCount = column.table.getVisibleLeafColumns().length;\n\n        return (\n          <Box\n            sx={{\n              display: \"flex\",\n              flexShrink: 0,\n              mr: \"-5px\",\n              overflow: \"hidden\",\n              width: anchorEl ? \"auto\" : 0,\n              \".MuiTableCell-root:hover &\": { width: \"auto\" },\n              \"&:focus-within\": { width: \"auto\" },\n              \"@media (hover: none)\": { width: \"auto\" },\n            }}\n          >\n            <IconButton\n              size=\"small\"\n              onClick={(event) => setAnchorEl(event.currentTarget)}\n              aria-label={t(\"Layout.Table.ColumnMenu\")}\n            >\n              <MoreVert fontSize=\"small\" />\n            </IconButton>\n\n            <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={close}>\n              {/* Sorting */}\n              {canSort && sorted !== \"asc\" && (\n                <MenuItem onClick={run(() => column.toggleSorting(false, true))}>\n                  <ListItemIcon>\n                    <ArrowUpward fontSize=\"small\" />\n                  </ListItemIcon>\n                  <ListItemText>{t(\"Layout.Table.SortAscending\")}</ListItemText>\n                </MenuItem>\n              )}\n              {canSort && sorted !== \"desc\" && (\n                <MenuItem onClick={run(() => column.toggleSorting(true, true))}>\n                  <ListItemIcon>\n                    <ArrowDownward fontSize=\"small\" />\n                  </ListItemIcon>\n                  <ListItemText>{t(\"Layout.Table.SortDescending\")}</ListItemText>\n                </MenuItem>\n              )}\n              {canSort && sorted !== false && (\n                <MenuItem onClick={run(() => column.clearSorting())}>\n                  <ListItemIcon>\n                    <Clear fontSize=\"small\" />\n                  </ListItemIcon>\n                  <ListItemText>{t(\"Layout.Table.ClearSort\")}</ListItemText>\n                </MenuItem>\n              )}\n\n              {/* Pinning */}\n              {canPin && <Divider />}\n              {canPin &&\n                ([\"start\", \"end\"] as const).map((position) => (\n                  <MenuItem\n                    key={position}\n                    selected={pinned === position}\n                    onClick={run(() => column.pin(pinned === position ? false : position))}\n                  >\n                    <ListItemIcon>\n                      <PushPin fontSize=\"small\" />\n                    </ListItemIcon>\n                    <ListItemText>\n                      {pinned === position\n                        ? t(\"Layout.Table.Unpin\")\n                        : position === \"start\"\n                          ? t(\"Layout.Table.PinStart\")\n                          : t(\"Layout.Table.PinEnd\")}\n                    </ListItemText>\n                  </MenuItem>\n                ))}\n\n              {/* Reordering */}\n              <Divider />\n              <MenuItem disabled={index <= 0} onClick={run(() => moveColumn(column, -1))}>\n                <ListItemIcon>\n                  <ArrowBack fontSize=\"small\" />\n                </ListItemIcon>\n                <ListItemText>{t(\"Layout.Table.MoveLeft\")}</ListItemText>\n              </MenuItem>\n              <MenuItem\n                disabled={index >= leafCount - 1}\n                onClick={run(() => moveColumn(column, 1))}\n              >\n                <ListItemIcon>\n                  <ArrowForward fontSize=\"small\" />\n                </ListItemIcon>\n                <ListItemText>{t(\"Layout.Table.MoveRight\")}</ListItemText>\n              </MenuItem>\n\n              {/* Grouping */}\n              {canGroup && <Divider />}\n              {canGroup && (\n                <MenuItem onClick={run(() => column.toggleGrouping())}>\n                  <ListItemIcon>\n                    <Workspaces fontSize=\"small\" />\n                  </ListItemIcon>\n                  <ListItemText>\n                    {grouped ? t(\"Layout.Table.Ungroup\") : t(\"Layout.Table.GroupBy\")}\n                  </ListItemText>\n                </MenuItem>\n              )}\n\n              {/* Visibility */}\n              {canHide && <Divider />}\n              {canHide && (\n                <MenuItem onClick={run(() => column.toggleVisibility(false))}>\n                  <ListItemIcon>\n                    <VisibilityOff fontSize=\"small\" />\n                  </ListItemIcon>\n                  <ListItemText>{t(\"Layout.Table.HideColumn\")}</ListItemText>\n                </MenuItem>\n              )}\n            </Menu>\n          </Box>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import type { SxProps, Theme } from \"@mui/material\";\nimport { Box } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nconst BAR_HEIGHT = 24;\nconst TARGET_SIZE = 10;\n\nconst bar = (accent: boolean) =>\n  ({\n    content: '\"\"',\n    position: \"absolute\",\n    insetInlineEnd: 0,\n    top: `calc(50% - ${BAR_HEIGHT / 2}px)`,\n    width: accent ? \"3px\" : \"1px\",\n    height: BAR_HEIGHT,\n    borderRadius: accent ? \"1.5px\" : \"0.5px\",\n    bgcolor: accent ? \"primary.dark\" : \"divider\",\n    transition: (theme: Theme) => theme.transitions.create([\"width\", \"background-color\"]),\n  }) as const;\n\n// The header cell clips its overflow, so the target stays inside the cell.\nconst base: SxProps<Theme> = {\n  position: \"absolute\",\n  insetBlock: 0,\n  insetInlineEnd: 0,\n  width: TARGET_SIZE,\n};\n\nexport const HeaderResizeHandle: FC = () => {\n  const header = useHeaderContext();\n  const { column } = header;\n\n  if (!column.getCanResize()) return <Box sx={{ ...base, \"&::after\": bar(false) }} />;\n\n  const handler = header.getResizeHandler();\n\n  return (\n    <Subscribe source={column.table.atoms.columnResizing}>\n      {() => (\n        <Box\n          role=\"separator\"\n          aria-orientation=\"vertical\"\n          onMouseDown={handler}\n          onTouchStart={handler}\n          onDoubleClick={() => column.resetSize()}\n          onClick={(event) => event.stopPropagation()}\n          sx={{\n            ...base,\n            cursor: \"col-resize\",\n            touchAction: \"none\",\n            userSelect: \"none\",\n            \"&::after\": bar(column.getIsResizing()),\n            \"&:hover::after\": bar(true),\n          }}\n        />\n      )}\n    </Subscribe>\n  );\n};\n","import { Box, TableSortLabel } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, ReactNode } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const HeaderSortLabel: FC<{ children: ReactNode }> = ({ children }) => {\n  const { column } = useHeaderContext();\n\n  if (!column.getCanSort()) return children;\n\n  return (\n    <Subscribe source={column.table.atoms.sorting}>\n      {(sorting) => {\n        const direction = column.getIsSorted();\n        const sortIndex = sorting.length > 1 ? column.getSortIndex() : -1;\n\n        return (\n          <TableSortLabel\n            active={direction !== false}\n            direction={direction === false ? \"asc\" : direction}\n            onClick={column.getToggleSortingHandler()}\n          >\n            {children}\n            {sortIndex > -1 && (\n              <Box component=\"span\" sx={{ ml: 0.5, fontSize: 11, opacity: 0.7 }}>\n                {sortIndex + 1}\n              </Box>\n            )}\n          </TableSortLabel>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import { Checkbox } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const SelectAllCell: FC<{ scope?: \"page\" | \"all\" }> = ({ scope = \"page\" }) => {\n  const header = useHeaderContext();\n  const table = header.table;\n\n  return (\n    <Subscribe source={table.atoms.rowSelection}>\n      {() => {\n        const checked =\n          scope === \"page\" ? table.getIsAllPageRowsSelected() : table.getIsAllRowsSelected();\n        const indeterminate =\n          scope === \"page\" ? table.getIsSomePageRowsSelected() : table.getIsSomeRowsSelected();\n\n        return (\n          <Checkbox\n            size=\"small\"\n            checked={checked}\n            indeterminate={!checked && indeterminate}\n            onChange={\n              scope === \"page\"\n                ? table.getToggleAllPageRowsSelectedHandler()\n                : table.getToggleAllRowsSelectedHandler()\n            }\n            slotProps={{ input: { \"aria-label\": \"Select all rows\" } }}\n          />\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import ViewColumn from \"@mui/icons-material/ViewColumn\";\nimport { Box, Checkbox, FormControlLabel, IconButton, Popover, Tooltip } from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { columnLabel, hasColumnLabel, shortcutLabel } from \"../utils\";\n\nexport const ColumnsPanel: FC = () => {\n  const table = useTableContext();\n  const { t } = useTranslation();\n  const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n  const buttonRef = useRef<HTMLButtonElement>(null);\n\n  const columns = table\n    .getAllLeafColumns()\n    .filter((column) => hasColumnLabel(column) && column.getCanHide());\n\n  useHotkey(\"Alt+C\", () => setAnchorEl((current) => (current ? null : buttonRef.current)), {\n    enabled: columns.length > 0,\n  });\n\n  if (!columns.length) return null;\n\n  return (\n    <>\n      <Tooltip title={shortcutLabel(t(\"Layout.Table.Columns\"), \"Alt+C\")}>\n        <IconButton\n          ref={buttonRef}\n          size=\"small\"\n          onClick={(event) => setAnchorEl(event.currentTarget)}\n        >\n          <ViewColumn fontSize=\"small\" />\n        </IconButton>\n      </Tooltip>\n\n      <Popover\n        anchorEl={anchorEl}\n        open={!!anchorEl}\n        onClose={() => setAnchorEl(null)}\n        anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n        transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n        slotProps={{ paper: { sx: { maxWidth: \"calc(100vw - 16px)\" } } }}\n      >\n        <Subscribe source={table.atoms.columnVisibility}>\n          {() => (\n            <>\n              <Box\n                sx={{\n                  display: \"flex\",\n                  flexDirection: \"column\",\n                  px: 1.5,\n                  py: 1,\n                  maxHeight: 300,\n                  minWidth: 240,\n                  overflow: \"auto\",\n                }}\n              >\n                {columns.map((column) => (\n                  <FormControlLabel\n                    key={column.id}\n                    label={columnLabel(column)}\n                    slotProps={{ typography: { variant: \"body2\", noWrap: true } }}\n                    control={\n                      <Checkbox\n                        size=\"small\"\n                        checked={column.getIsVisible()}\n                        onChange={column.getToggleVisibilityHandler()}\n                      />\n                    }\n                  />\n                ))}\n              </Box>\n\n              <Box\n                sx={{\n                  display: \"flex\",\n                  alignItems: \"center\",\n                  p: 1.5,\n                  borderTop: 1,\n                  borderColor: \"divider\",\n                }}\n              >\n                <FormControlLabel\n                  label={t(\"Layout.Table.ShowHideAll\")}\n                  slotProps={{ typography: { variant: \"body2\", noWrap: true } }}\n                  control={\n                    <Checkbox\n                      size=\"small\"\n                      checked={table.getIsAllColumnsVisible()}\n                      indeterminate={\n                        table.getIsSomeColumnsVisible() && !table.getIsAllColumnsVisible()\n                      }\n                      onChange={table.getToggleAllColumnsVisibilityHandler()}\n                    />\n                  }\n                />\n              </Box>\n            </>\n          )}\n        </Subscribe>\n      </Popover>\n    </>\n  );\n};\n","import { Autocomplete, MenuItem, Stack, TextField, Typography } from \"@mui/material\";\nimport type { Column, RowData } from \"@tanstack/react-table\";\nimport { useTranslation } from \"react-i18next\";\nimport type { LayoutTableFeatures } from \"~/components/table/context\";\nimport type { ExtendedColumnFilter, LayoutColumnMeta, TableFilterOption } from \"./types\";\nimport { formatValue } from \"./formatValue\";\n\ntype FilterColumn<TData extends RowData> = Column<LayoutTableFeatures, TData, unknown>;\n\ntype ColumnFilterFieldProps<TData extends RowData> = {\n  column: FilterColumn<TData>;\n  filter: ExtendedColumnFilter;\n  onChange: (value: unknown) => void;\n};\n\nconst filterMeta = <TData extends RowData>(column: FilterColumn<TData>): LayoutColumnMeta =>\n  (column.columnDef.meta as LayoutColumnMeta | undefined) ?? {};\n\nconst resolveOptions = <TData extends RowData>(\n  column: FilterColumn<TData>,\n): Array<TableFilterOption> => {\n  const declared = filterMeta(column).options;\n  if (declared) return declared;\n\n  return Array.from(column.getFacetedUniqueValues().keys())\n    .map((value) => ({ label: formatValue(value), value: formatValue(value) }))\n    .filter((option) => option.value !== \"\")\n    .sort((a, b) => a.label.localeCompare(b.label));\n};\n\nconst toDateInputValue = (value: unknown): string => {\n  if (!(value instanceof Date || typeof value === \"string\" || typeof value === \"number\")) return \"\";\n\n  const date = value instanceof Date ? value : new Date(value);\n  if (Number.isNaN(date.getTime())) return \"\";\n\n  return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, \"0\")}-${String(date.getDate()).padStart(2, \"0\")}`;\n};\n\nconst fromDateInputValue = (raw: string): string | undefined =>\n  raw ? new Date(`${raw}T00:00:00`).toISOString() : undefined;\n\nconst toNumber = (raw: string): number | \"\" => (raw === \"\" ? \"\" : Number(raw));\n\nconst pair = (value: unknown): [unknown, unknown] =>\n  Array.isArray(value) ? [value[0], value[1]] : [\"\", \"\"];\n\nexport function ColumnFilterField<TData extends RowData>({\n  column,\n  filter,\n  onChange,\n}: ColumnFilterFieldProps<TData>) {\n  const { t } = useTranslation();\n  const variant = filterMeta(column).variant ?? \"text\";\n  const operator = filter.operator ?? \"includesString\";\n  const shared = { size: \"small\" as const, fullWidth: true, label: t(\"Layout.Table.Value\") };\n\n  if (operator === \"isEmpty\" || operator === \"isNotEmpty\") {\n    return (\n      <Typography variant=\"body2\" color=\"text.secondary\">\n        {t(\"Layout.Table.NoValueRequired\")}\n      </Typography>\n    );\n  }\n\n  if (operator === \"inRange\") {\n    const [from, to] = pair(filter.value);\n    const isDate = variant === \"date\";\n\n    return (\n      <Stack direction=\"row\" spacing={1}>\n        <TextField\n          {...shared}\n          type={isDate ? \"date\" : \"number\"}\n          label={t(\"Layout.Table.From\")}\n          value={isDate ? toDateInputValue(from) : ((from as number | \"\" | undefined) ?? \"\")}\n          onChange={(event) =>\n            onChange([\n              isDate ? fromDateInputValue(event.target.value) : toNumber(event.target.value),\n              to,\n            ])\n          }\n          slotProps={{ inputLabel: { shrink: true } }}\n        />\n        <TextField\n          {...shared}\n          type={isDate ? \"date\" : \"number\"}\n          label={t(\"Layout.Table.To\")}\n          value={isDate ? toDateInputValue(to) : ((to as number | \"\" | undefined) ?? \"\")}\n          onChange={(event) =>\n            onChange([\n              from,\n              isDate ? fromDateInputValue(event.target.value) : toNumber(event.target.value),\n            ])\n          }\n          slotProps={{ inputLabel: { shrink: true } }}\n        />\n      </Stack>\n    );\n  }\n\n  if (operator === \"isRelativeToToday\") {\n    return (\n      <TextField\n        {...shared}\n        type=\"number\"\n        label={t(\"Layout.Table.DaysFromToday\")}\n        value={(filter.value as number | \"\" | undefined) ?? \"\"}\n        onChange={(event) => onChange(toNumber(event.target.value))}\n      />\n    );\n  }\n\n  if (variant === \"select\" || variant === \"multi-select\") {\n    const options = resolveOptions(column);\n    const multiple = variant === \"multi-select\";\n    const selected = Array.isArray(filter.value) ? (filter.value as Array<string>) : [];\n\n    return (\n      <Autocomplete\n        size=\"small\"\n        fullWidth\n        multiple={multiple}\n        options={options}\n        disableCloseOnSelect={multiple}\n        value={\n          multiple\n            ? options.filter((option) => selected.includes(option.value))\n            : (options.find((option) => option.value === filter.value) ?? null)\n        }\n        isOptionEqualToValue={(option, selectedOption) => option.value === selectedOption.value}\n        getOptionLabel={(option) => option.label}\n        onChange={(_, next) =>\n          onChange(\n            Array.isArray(next) ? next.map((option) => option.value) : (next?.value ?? undefined),\n          )\n        }\n        renderInput={(params) => (\n          <TextField {...params} size=\"small\" label={t(\"Layout.Table.Value\")} />\n        )}\n      />\n    );\n  }\n\n  if (variant === \"boolean\") {\n    return (\n      <TextField\n        {...shared}\n        select\n        value={typeof filter.value === \"boolean\" ? String(filter.value) : \"\"}\n        onChange={(event) =>\n          onChange(event.target.value === \"\" ? undefined : event.target.value === \"true\")\n        }\n      >\n        <MenuItem value=\"\">—</MenuItem>\n        <MenuItem value=\"true\">✓</MenuItem>\n        <MenuItem value=\"false\">✗</MenuItem>\n      </TextField>\n    );\n  }\n\n  if (variant === \"date\") {\n    return (\n      <TextField\n        {...shared}\n        type=\"date\"\n        value={toDateInputValue(filter.value)}\n        onChange={(event) => onChange(fromDateInputValue(event.target.value) ?? \"\")}\n        slotProps={{ inputLabel: { shrink: true } }}\n      />\n    );\n  }\n\n  return (\n    <TextField\n      {...shared}\n      type={variant === \"number\" ? \"number\" : \"text\"}\n      value={(filter.value as string | number | undefined) ?? \"\"}\n      onChange={(event) =>\n        onChange(variant === \"number\" ? toNumber(event.target.value) : event.target.value)\n      }\n    />\n  );\n}\n","import Add from \"@mui/icons-material/Add\";\nimport Close from \"@mui/icons-material/Close\";\nimport DeleteForever from \"@mui/icons-material/DeleteForever\";\nimport FilterList from \"@mui/icons-material/FilterList\";\nimport {\n  Autocomplete,\n  Badge,\n  Box,\n  Button,\n  FormControl,\n  IconButton,\n  InputLabel,\n  MenuItem,\n  Popover,\n  Select,\n  TextField,\n  Tooltip,\n} from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { ColumnFilterField } from \"../ColumnFilterField\";\nimport { getFilterOperators, isFilterActive } from \"../filterFns\";\nimport type {\n  ExtendedColumnFilter,\n  FilterOperator,\n  JoinOperator,\n  LayoutColumnMeta,\n} from \"../types\";\nimport { columnLabel, shortcutLabel } from \"../utils\";\n\nconst DATE_OPERATOR_LABELS = {\n  lessThan: \"Layout.Table.Operators.Date.lessThan\",\n  lessThanOrEqualTo: \"Layout.Table.Operators.Date.lessThanOrEqualTo\",\n  greaterThan: \"Layout.Table.Operators.Date.greaterThan\",\n  greaterThanOrEqualTo: \"Layout.Table.Operators.Date.greaterThanOrEqualTo\",\n} as const;\n\ntype DateOperator = keyof typeof DATE_OPERATOR_LABELS;\n\n/** Slot widths taken from the MUI X `GridFilterForm` inputs. */\nconst LOGIC_WIDTH = 75;\nconst FIELD_WIDTH = 150;\nconst VALUE_WIDTH = 190;\n\nexport const FiltersMenu: FC = () => {\n  const table = useTableContext();\n  const { t } = useTranslation();\n  const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n  const placeholder = useRef<ExtendedColumnFilter | null>(null);\n  const buttonRef = useRef<HTMLButtonElement>(null);\n\n  const filterableColumns = table.getAllLeafColumns().filter((column) => column.getCanFilter());\n\n  const close = () => {\n    setAnchorEl(null);\n    placeholder.current = null;\n  };\n\n  useHotkey(\"Control+F\", () => (anchorEl ? close() : setAnchorEl(buttonRef.current)), {\n    enabled: filterableColumns.length > 0,\n  });\n\n  if (!filterableColumns.length) return null;\n\n  const setFilters = (filters: Array<ExtendedColumnFilter>) => table.setColumnFilters(filters);\n\n  const newFilter = (\n    column: (typeof filterableColumns)[number],\n    joinOperator: JoinOperator = \"and\",\n  ): ExtendedColumnFilter => ({\n    id: column.id,\n    filterId: crypto.randomUUID(),\n    value: \"\",\n    operator: getFilterOperators(\n      (column.columnDef.meta as LayoutColumnMeta | undefined)?.variant ?? \"text\",\n    )[0],\n    joinOperator,\n  });\n\n  return (\n    <Subscribe\n      source={table.atoms.columnFilters}\n      selector={(filters) => filters as Array<ExtendedColumnFilter>}\n    >\n      {(columnFilters) => {\n        if (!columnFilters.length) {\n          placeholder.current ??= newFilter(filterableColumns[0]);\n        }\n        // Editing the placeholder row is what commits it to the model.\n        const rows = columnFilters.length\n          ? columnFilters\n          : placeholder.current\n            ? [placeholder.current]\n            : [];\n        const activeCount = columnFilters.filter(isFilterActive).length;\n\n        const update = (filterId: string, patch: Partial<ExtendedColumnFilter>) =>\n          setFilters(\n            rows.map((filter) =>\n              filter.filterId === filterId\n                ? { ...filter, ...patch, ...(\"value\" in patch && { value: patch.value ?? \"\" }) }\n                : filter,\n            ),\n          );\n\n        const remove = (filterId: string) => {\n          const next = rows.filter((filter) => filter.filterId !== filterId);\n          placeholder.current = null;\n          setFilters(next);\n          if (!next.length) close();\n        };\n\n        const add = () =>\n          setFilters([...rows, newFilter(filterableColumns[0], rows[0]?.joinOperator ?? \"and\")]);\n\n        return (\n          <>\n            <Tooltip title={shortcutLabel(t(\"Layout.Table.Filters\"), \"Control+F\")}>\n              <IconButton\n                ref={buttonRef}\n                size=\"small\"\n                color={activeCount ? \"primary\" : \"default\"}\n                onClick={(event) => setAnchorEl(event.currentTarget)}\n              >\n                <Badge badgeContent={activeCount} color=\"primary\" variant=\"dot\">\n                  <FilterList fontSize=\"small\" />\n                </Badge>\n              </IconButton>\n            </Tooltip>\n\n            <Popover\n              anchorEl={anchorEl}\n              open={!!anchorEl}\n              onClose={close}\n              anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n              transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n              slotProps={{ paper: { sx: { maxWidth: \"calc(100vw - 16px)\" } } }}\n            >\n              {/* Panel content: MUI X `GridPanelContent` metrics. */}\n              <Box\n                sx={{\n                  display: \"flex\",\n                  flexDirection: \"column\",\n                  gap: 2.5,\n                  p: \"20px 12px 16px 8px\",\n                  maxHeight: 400,\n                  overflow: \"auto\",\n                }}\n              >\n                {rows.map((filter, index) => {\n                  const column = table.getColumn(filter.id);\n                  if (!column || !filter.filterId) return null;\n\n                  const variant =\n                    (column.columnDef.meta as LayoutColumnMeta | undefined)?.variant ?? \"text\";\n                  const operators = getFilterOperators(variant);\n\n                  return (\n                    <Box\n                      key={filter.filterId}\n                      sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}\n                    >\n                      <IconButton\n                        size=\"small\"\n                        aria-label={t(\"Layout.Table.RemoveFilter\")}\n                        sx={{ flexShrink: 0 }}\n                        onClick={() => remove(filter.filterId!)}\n                      >\n                        <Close fontSize=\"small\" />\n                      </IconButton>\n\n                      {/* Rendered on every row so the columns stay aligned; only the\n                          second row may change the operator, matching MUI X. */}\n                      <FormControl\n                        size=\"small\"\n                        sx={{\n                          width: LOGIC_WIDTH,\n                          flexShrink: 0,\n                          visibility: index === 0 ? \"hidden\" : \"visible\",\n                        }}\n                      >\n                        <Select\n                          disabled={index > 1}\n                          value={filter.joinOperator ?? \"and\"}\n                          inputProps={{ \"aria-label\": t(\"Layout.Table.Operator\") }}\n                          onChange={(event) =>\n                            setFilters(\n                              rows.map((item) => ({\n                                ...item,\n                                joinOperator: event.target.value as JoinOperator,\n                              })),\n                            )\n                          }\n                        >\n                          <MenuItem value=\"and\">{t(\"Layout.Table.And\")}</MenuItem>\n                          <MenuItem value=\"or\">{t(\"Layout.Table.Or\")}</MenuItem>\n                        </Select>\n                      </FormControl>\n\n                      <Autocomplete\n                        size=\"small\"\n                        sx={{ width: FIELD_WIDTH, flexShrink: 0 }}\n                        disableClearable\n                        options={filterableColumns}\n                        value={column}\n                        isOptionEqualToValue={(option, selected) => option.id === selected.id}\n                        getOptionLabel={(option) => columnLabel(option)}\n                        onChange={(_, next) =>\n                          update(filter.filterId!, {\n                            id: next.id,\n                            operator: getFilterOperators(\n                              (next.columnDef.meta as LayoutColumnMeta | undefined)?.variant ??\n                                \"text\",\n                            )[0],\n                            value: \"\",\n                          })\n                        }\n                        renderInput={(params) => (\n                          <TextField {...params} size=\"small\" label={t(\"Layout.Table.Field\")} />\n                        )}\n                      />\n\n                      <FormControl size=\"small\" sx={{ width: FIELD_WIDTH, flexShrink: 0 }}>\n                        <InputLabel>{t(\"Layout.Table.Operator\")}</InputLabel>\n                        <Select\n                          label={t(\"Layout.Table.Operator\")}\n                          value={filter.operator ?? operators[0]}\n                          onChange={(event) =>\n                            update(filter.filterId!, {\n                              operator: event.target.value as FilterOperator,\n                              value: \"\",\n                            })\n                          }\n                        >\n                          {operators.map((operator) => (\n                            <MenuItem key={operator} value={operator}>\n                              {variant === \"date\" && operator in DATE_OPERATOR_LABELS\n                                ? t(DATE_OPERATOR_LABELS[operator as DateOperator])\n                                : t(`Layout.Table.Operators.${operator}`)}\n                            </MenuItem>\n                          ))}\n                        </Select>\n                      </FormControl>\n\n                      <Box sx={{ width: VALUE_WIDTH, flexGrow: 1 }}>\n                        <ColumnFilterField\n                          column={column}\n                          filter={filter}\n                          onChange={(value) => update(filter.filterId!, { value })}\n                        />\n                      </Box>\n                    </Box>\n                  );\n                })}\n              </Box>\n\n              {/* Panel footer: MUI X `GridPanelFooter` metrics. */}\n              <Box\n                sx={{\n                  display: \"flex\",\n                  justifyContent: \"space-between\",\n                  gap: 1,\n                  p: 1,\n                  borderTop: 1,\n                  borderColor: \"divider\",\n                }}\n              >\n                <Button size=\"small\" startIcon={<Add />} onClick={add}>\n                  {t(\"Layout.Table.AddFilter\")}\n                </Button>\n                {columnFilters.length > 0 && (\n                  <Button\n                    size=\"small\"\n                    color=\"inherit\"\n                    startIcon={<DeleteForever />}\n                    onClick={() => {\n                      placeholder.current = null;\n                      table.resetColumnFilters(true);\n                    }}\n                  >\n                    {t(\"Layout.Table.ClearFilters\")}\n                  </Button>\n                )}\n              </Box>\n            </Popover>\n          </>\n        );\n      }}\n    </Subscribe>\n  );\n};\n","import Close from \"@mui/icons-material/Close\";\nimport Search from \"@mui/icons-material/Search\";\nimport { Box, IconButton, InputAdornment, TextField, Tooltip, useTheme } from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { shortcutLabel } from \"../utils\";\n\nexport const GlobalFilter: FC<{ defaultExpanded?: boolean; debounce?: number }> = ({\n  defaultExpanded,\n  debounce = 300,\n}) => {\n  const table = useTableContext();\n  const { t } = useTranslation();\n  const theme = useTheme();\n  const inputRef = useRef<HTMLInputElement>(null);\n  const [value, setValue] = useState((table.state.globalFilter as string | undefined) ?? \"\");\n  const [expanded, setExpanded] = useState(!!defaultExpanded);\n\n  useEffect(() => {\n    const id = setTimeout(() => table.setGlobalFilter(value), debounce);\n    return () => clearTimeout(id);\n  }, [value, debounce, table]);\n\n  const collapse = () => {\n    setValue(\"\");\n    setExpanded(false);\n  };\n\n  const expand = () => {\n    setExpanded(true);\n    inputRef.current?.focus();\n  };\n\n  useHotkey(\"Control+Q\", expand);\n\n  return (\n    <Box sx={{ display: \"grid\", alignItems: \"center\" }}>\n      <Tooltip title={shortcutLabel(t(\"Layout.Table.Search\"), \"Control+Q\")}>\n        <IconButton\n          size=\"small\"\n          aria-label={t(\"Layout.Table.Search\")}\n          aria-disabled={expanded}\n          onClick={expand}\n          sx={{\n            gridArea: \"1 / 1\",\n            width: \"min-content\",\n            height: \"min-content\",\n            zIndex: 1,\n            opacity: expanded ? 0 : 1,\n            pointerEvents: expanded ? \"none\" : \"auto\",\n            transition: theme.transitions.create([\"opacity\"]),\n          }}\n        >\n          <Search fontSize=\"small\" />\n        </IconButton>\n      </Tooltip>\n\n      <TextField\n        inputRef={inputRef}\n        size=\"small\"\n        value={value}\n        placeholder={t(\"Layout.Table.Search\")}\n        onChange={(event) => setValue(event.target.value)}\n        onKeyDown={(event) => event.key === \"Escape\" && collapse()}\n        onBlur={() => !value && !defaultExpanded && setExpanded(false)}\n        sx={{\n          gridArea: \"1 / 1\",\n          overflowX: \"clip\",\n          width: expanded ? 260 : 40,\n          opacity: expanded ? 1 : 0,\n          pointerEvents: expanded ? \"auto\" : \"none\",\n          transition: theme.transitions.create([\"width\", \"opacity\"]),\n        }}\n        slotProps={{\n          input: {\n            startAdornment: (\n              <InputAdornment position=\"start\">\n                <Search fontSize=\"small\" />\n              </InputAdornment>\n            ),\n            endAdornment: (\n              <InputAdornment position=\"end\">\n                <IconButton\n                  edge=\"end\"\n                  size=\"small\"\n                  aria-label={t(\"Layout.Table.ClearSearch\")}\n                  onClick={collapse}\n                  sx={{ mr: -0.75 }}\n                >\n                  <Close fontSize=\"small\" />\n                </IconButton>\n              </InputAdornment>\n            ),\n          },\n        }}\n      />\n    </Box>\n  );\n};\n","import { TablePagination, type TablePaginationProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\n\nexport type PaginationProps = Omit<\n  TablePaginationProps,\n  \"count\" | \"page\" | \"rowsPerPage\" | \"onPageChange\" | \"onRowsPerPageChange\" | \"rowsPerPageOptions\"\n> & { pageSizeOptions?: Array<number> };\n\nconst ALL = -1;\n\nexport const Pagination: FC<PaginationProps> = ({\n  pageSizeOptions = [10, 25, 50, 100],\n  ...props\n}) => {\n  const table = useTableContext();\n  const { t } = useTranslation();\n  const { pageIndex, pageSize } = table.state.pagination;\n\n  const sizes =\n    Number.isFinite(pageSize) && !pageSizeOptions.includes(pageSize)\n      ? [...pageSizeOptions, pageSize].sort((a, b) => a - b)\n      : pageSizeOptions;\n\n  return (\n    <TablePagination\n      component=\"div\"\n      showFirstButton\n      showLastButton\n      {...props}\n      sx={[\n        { flexShrink: 0, minHeight: 52, borderTop: 1, borderColor: \"divider\" },\n        ...(Array.isArray(props.sx) ? props.sx : [props.sx]),\n      ]}\n      rowsPerPageOptions={[...sizes, { label: t(\"Layout.Table.All\"), value: ALL }]}\n      count={table.getRowCount()}\n      page={pageIndex}\n      rowsPerPage={Number.isFinite(pageSize) ? pageSize : ALL}\n      onPageChange={(_, page) => table.setPageIndex(page)}\n      onRowsPerPageChange={(event) => {\n        const next = Number(event.target.value);\n        table.setPageSize(next === ALL ? Infinity : next);\n        table.setPageIndex(0);\n      }}\n    />\n  );\n};\n","import { Skeleton as MuiSkeleton, TableCell, TableRow } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { hasColumnLabel } from \"../utils\";\n\nexport const Skeleton: FC<{ rowHeight: number }> = ({ rowHeight }) => {\n  const table = useTableContext();\n  const firstRow = useRef<HTMLTableRowElement>(null);\n  const [rowCount, setRowCount] = useState(() => Math.min(table.state.pagination.pageSize, 20));\n\n  useEffect(() => {\n    const container = firstRow.current?.closest(\".MuiTableContainer-root\");\n    if (!container) return;\n\n    const measure = () => {\n      const spent = [\"thead\", \"tfoot\"].reduce(\n        (total, selector) =>\n          total + (container.querySelector(selector)?.getBoundingClientRect().height ?? 0),\n        0,\n      );\n      setRowCount(Math.max(1, Math.floor((container.clientHeight - spent) / rowHeight)));\n    };\n\n    measure();\n\n    const observer = new ResizeObserver(measure);\n    observer.observe(container);\n    return () => observer.disconnect();\n  }, [rowHeight]);\n\n  return (\n    <>\n      {Array.from({ length: rowCount }, (_, index) => (\n        <TableRow key={index} ref={index === 0 ? firstRow : undefined} sx={{ height: rowHeight }}>\n          {table.getVisibleLeafColumns().map((column) =>\n            hasColumnLabel(column) ? (\n              <TableCell key={column.id} sx={{ py: 0, px: \"10px\" }}>\n                <MuiSkeleton variant=\"text\" />\n              </TableCell>\n            ) : (\n              <TableCell key={column.id} align=\"center\" sx={{ px: 0.5, py: 0 }}>\n                <MuiSkeleton variant=\"circular\" width={22} height={22} sx={{ mx: \"auto\" }} />\n              </TableCell>\n            ),\n          )}\n          <TableCell aria-hidden sx={{ p: 0 }} />\n        </TableRow>\n      ))}\n    </>\n  );\n};\n","import { Box, Divider, Typography } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { ColumnsPanel } from \"./ColumnsPanel\";\nimport { FiltersMenu } from \"./FiltersMenu\";\nimport { GlobalFilter } from \"./GlobalFilter\";\n\nexport type TableToolbarProps = {\n  title?: ReactNode;\n  actions?: ReactNode;\n  disableColumnFilter?: boolean;\n  disableColumnSelector?: boolean;\n  disableSearch?: boolean;\n};\n\n/** Vertical rule with the MUI X toolbar proportions: half height, 4px gutters. */\nconst ToolbarDivider: FC = () => (\n  <Divider orientation=\"vertical\" sx={{ height: \"50%\", alignSelf: \"center\", mx: 0.5 }} />\n);\n\nexport const Toolbar: FC<TableToolbarProps> = ({\n  title,\n  actions,\n  disableColumnFilter,\n  disableColumnSelector,\n  disableSearch,\n}) => {\n  const table = useTableContext();\n  const { t } = useTranslation();\n\n  return (\n    <Box\n      role=\"toolbar\"\n      aria-orientation=\"horizontal\"\n      sx={{\n        flexShrink: 0,\n        display: \"flex\",\n        alignItems: \"center\",\n        justifyContent: \"end\",\n        minHeight: 52,\n        gap: 0.25,\n        p: 0.75,\n        boxSizing: \"border-box\",\n        borderBottom: 1,\n        borderColor: \"divider\",\n      }}\n    >\n      {/* Label slot, which doubles as the flexible spacer pushing controls to the end. */}\n      <Box sx={{ flex: 1, minWidth: 0, display: \"flex\", alignItems: \"center\", gap: 1, mx: 0.5 }}>\n        {title && (\n          <Typography variant=\"body1\" noWrap sx={{ fontWeight: \"medium\" }}>\n            {title}\n          </Typography>\n        )}\n\n        <Subscribe source={table.atoms.rowSelection}>\n          {() => {\n            const count = table.getSelectedRowIds().length;\n            if (!count) return null;\n\n            return (\n              <Typography variant=\"body2\" noWrap color=\"primary\">\n                {t(\"Layout.Table.SelectedCount\", { count })}\n              </Typography>\n            );\n          }}\n        </Subscribe>\n      </Box>\n\n      {actions}\n      {actions && <ToolbarDivider />}\n\n      {!disableColumnSelector && <ColumnsPanel />}\n      {!disableColumnFilter && <FiltersMenu />}\n\n      {!disableSearch && (\n        <>\n          <ToolbarDivider />\n          <GlobalFilter />\n        </>\n      )}\n    </Box>\n  );\n};\n","import { createTableHook } from \"@tanstack/react-table\";\nimport { ActionsCell } from \"~/components/table/cells/features/ActionsCell\";\nimport { ExpandCell } from \"~/components/table/cells/features/ExpandCell\";\nimport { GroupCell } from \"~/components/table/cells/features/GroupCell\";\nimport { PinRowCell } from \"~/components/table/cells/features/PinRowCell\";\nimport { SelectCell } from \"~/components/table/cells/features/SelectCell\";\nimport { AggregatedCell } from \"~/components/table/cells/formatters/AggregatedCell\";\nimport { BooleanCell } from \"~/components/table/cells/formatters/BooleanCell\";\nimport { DateCell } from \"~/components/table/cells/formatters/DateCell\";\nimport { DateTimeCell } from \"~/components/table/cells/formatters/DateTimeCell\";\nimport { NumberCell } from \"~/components/table/cells/formatters/NumberCell\";\nimport { ValueCell } from \"~/components/table/cells/formatters/ValueCell\";\nimport { dynamicFilterFn, globalFilterFn } from \"~/components/table/filterFns\";\nimport { AggregationFooter } from \"~/components/table/headers/AggregationFooter\";\nimport { ExpandAllCell } from \"~/components/table/headers/ExpandAllCell\";\nimport { HeaderMenu } from \"~/components/table/headers/HeaderMenu\";\nimport { HeaderResizeHandle } from \"~/components/table/headers/HeaderResizeHandle\";\nimport { HeaderSortLabel } from \"~/components/table/headers/HeaderSortLabel\";\nimport { SelectAllCell } from \"~/components/table/headers/SelectAllCell\";\nimport { ColumnsPanel } from \"~/components/table/table/ColumnsPanel\";\nimport { FiltersMenu } from \"~/components/table/table/FiltersMenu\";\nimport { GlobalFilter } from \"~/components/table/table/GlobalFilter\";\nimport { Pagination } from \"~/components/table/table/Pagination\";\nimport { Skeleton } from \"~/components/table/table/Skeleton\";\nimport { Toolbar } from \"~/components/table/table/Toolbar\";\nimport {\n  cellContext,\n  headerContext,\n  layoutTableFeatures,\n  tableContext,\n} from \"~/components/table/context\";\n\n/* The contexts live in `~/components/table/context` so the cell, header and\n   table components can read them without importing this module back. */\nexport {\n  cellContext,\n  headerContext,\n  layoutTableFeatures,\n  tableContext,\n  useCellContext,\n  useHeaderContext,\n  useTableContext,\n} from \"~/components/table/context\";\nexport type { LayoutTableFeatures } from \"~/components/table/context\";\n\nexport const {\n  appFeatures,\n  createAppColumnHelper: createLayoutColumnHelper,\n  useAppTable: useLayoutTable,\n} = createTableHook({\n  features: layoutTableFeatures,\n  tableContext,\n  cellContext,\n  headerContext,\n  getRowId: (row) => row.id,\n  defaultColumn: {\n    filterFn: dynamicFilterFn,\n    aggregatedCell: () => <AggregatedCell />,\n  },\n  globalFilterFn,\n  columnResizeMode: \"onChange\",\n  isMultiSortEvent: (e) => {\n    const { ctrlKey, metaKey, shiftKey } = e as MouseEvent;\n    return ctrlKey || metaKey || shiftKey;\n  },\n  tableComponents: {\n    ColumnsPanel,\n    FiltersMenu,\n    GlobalFilter,\n    Pagination,\n    Skeleton,\n    Toolbar,\n  },\n  cellComponents: {\n    ActionsCell,\n    AggregatedCell,\n    BooleanCell,\n    DateCell,\n    DateTimeCell,\n    ExpandCell,\n    GroupCell,\n    NumberCell,\n    PinRowCell,\n    SelectCell,\n    ValueCell,\n  },\n  headerComponents: {\n    AggregationFooter,\n    ExpandAllCell,\n    HeaderMenu,\n    HeaderResizeHandle,\n    HeaderSortLabel,\n    SelectAllCell,\n  },\n});\n\nexport type { RowAction } from \"~/components/table/cells/features/ActionsCell\";\nexport { AggregatedCell } from \"~/components/table/cells/formatters/AggregatedCell\";\nexport { LayoutTable } from \"~/components/table/LayoutTable\";\nexport type { LayoutTableProps } from \"~/components/table/LayoutTable\";\nexport type {\n  FilterOperator,\n  LayoutColumnMeta,\n  TableFilterOption,\n  TableFilterVariant,\n} from \"~/components/table/types\";\n"],"mappings":"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"}