UNPKG

wcz-layout

Version:

1 lines • 185 kB
{"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","_c","Checkbox","FormControl","FormControlLabel","FormHelperText","CheckboxProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","FormCheckboxProps","Omit","label","FormCheckbox","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","helperId","t2","name","t3","Boolean","state","value","t4","event","handleChange","target","checked","t5","undefined","t6","t7","input","t8","handleBlur","t9","t10","t11","t12","_c","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","_c","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","_c","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","_c","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","_c","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","RadioGroup","RadioGroupProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","Option","label","value","FormRadioGroupProps","Omit","options","Array","FormRadioGroup","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","helperId","t2","t3","name","t4","state","t5","event","handleChange","target","t6","handleBlur","t7","undefined","t8","map","_temp","t9","t10","t11","option","_c","_temp","FormControl","FormHelperText","FormLabel","Slider","SliderProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","FormSliderProps","Omit","label","FormSlider","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","labelId","t2","t3","state","value","t4","_","handleChange","Array","isArray","t5","undefined","t6","handleBlur","name","t7","t8","_c","Button","ButtonProps","FC","useFormContext","FormSubmitButtonProps","Omit","FormSubmitButton","props","$","_c","$i","Symbol","for","form","t0","event","preventDefault","stopPropagation","handleSubmit","handleClick","t1","isSubmitting","t2","Subscribe","_temp","state","_c","_temp","Switch","FormControl","FormControlLabel","FormHelperText","SwitchProps","FC","useId","FormOmittedProps","useFieldContext","getFieldStatus","FormSwitchProps","Omit","label","FormSwitch","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","showError","helperId","t2","name","t3","Boolean","state","value","t4","event","handleChange","target","checked","t5","undefined","t6","t7","input","t8","handleBlur","t9","t10","t11","t12","_c","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","_c","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","Stack","Tooltip","FC","ReactElement","useState","useTranslation","useCellContext","layoutTableClasses","RowAction","label","onClick","row","TData","disabled","divider","showInMenu","icon","ActionsCell","actions","Array","t0","$","_c","$i","Symbol","for","cell","t","anchorEl","setAnchorEl","t1","buttons","filter","_temp","menuItems","_temp2","t2","alignItems","t3","action_1","action","original","actionsCell","_temp3","_temp4","map","length","event_1","event","currentTarget","flatMap","action_2","action_0","stopPropagation","event_0","_c","useTranslation","_temp","_temp2","_temp3","KeyboardArrowDown","KeyboardArrowRight","IconButton","Subscribe","FC","useCellContext","layoutTableClasses","ExpandCell","$","_c","$i","Symbol","for","row","t0","getCanExpand","expanded","getIsExpanded","expandButton","event","stopPropagation","toggleExpanded","ml","depth","t1","table","atoms","_c","KeyboardArrowDown","KeyboardArrowRight","IconButton","Stack","Typography","FlexRender","Subscribe","FC","useCellContext","layoutTableClasses","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","groupCell","_c","PushPin","IconButton","Tooltip","Subscribe","FC","useCellContext","PinRowCell","$","_c","$i","Symbol","for","row","t0","getCanPin","pinned","getIsPinned","event","stopPropagation","pin","t1","table","atoms","rowPinning","_c","Checkbox","Subscribe","FC","useCellContext","SelectCell","$","_c","$i","Symbol","for","row","t0","getCanSelect","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","_temp","input","t1","table","atoms","rowSelection","event","stopPropagation","_c","_temp","Check","Close","FC","useCellContext","ICON_SX","verticalAlign","const","BooleanCell","$","_c","$i","Symbol","for","cell","t0","getValue","_c","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","_c","ComponentProps","FC","DateCell","DateTimeCell","t0","$","_c","$i","Symbol","for","props","t1","format","undefined","t2","_c","TypographyProps","Typography","FC","useCellContext","NumberCell","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","props","sx","cell","t1","value","getValue","t2","fontVariantNumeric","t3","Array","isArray","t4","toLocaleString","undefined","_c","TypographyProps","Typography","FC","useCellContext","ValueCell","props","$","_c","$i","Symbol","for","cell","t0","renderValue","value","t1","_c","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","layoutTableClasses","AggregationFooter","prefix","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","t1","undefined","column","t2","value","getAggregationValue","rows","table","getFilteredRowModel","numeric","Number","aggregationValue","fontWeight","isFinite","toLocaleString","t3","atoms","columnFilters","_c","ArrowDownward","IconButton","Subscribe","FC","useHeaderContext","ExpandAllCell","$","_c","$i","Symbol","for","header","table","t0","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","getIsAllRowsExpanded","transition","transform","t1","atoms","expanded","_c","ArrowBack","ArrowDownward","ArrowForward","ArrowUpward","Clear","MoreVert","PushPin","VisibilityOff","Workspaces","Box","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Subscribe","FC","useState","useTranslation","useHeaderContext","columnLabel","hasColumnLabel","layoutTableClasses","moveColumn","HeaderMenu","disableGrouping","t0","$","_c","$i","Symbol","for","t1","undefined","header","t","anchorEl","setAnchorEl","column","t2","close","t3","action","run","t4","canSort","getCanSort","canPin","getCanPin","canGroup","getCanGroup","canHide","getCanHide","sorted","getIsSorted","pinned","getIsPinned","grouped","getIsGrouped","index","getIndex","leafCount","table","getVisibleLeafColumns","length","menuIcon","display","flexShrink","mr","overflow","width","event","currentTarget","toggleSorting","clearSorting","const","map","position","pin","toggleGrouping","toggleVisibility","t5","store","_temp","state","_c","useTranslation","_temp","SxProps","Theme","Box","Subscribe","FC","MouseEvent","TouchEvent","useHeaderContext","classNames","columnFlex","layoutTableClasses","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","getIsLastColumn","columnSeparator","getResizeHandler","resize","t1","event","currentTarget","parentElement","offsetWidth","table","setColumnSizing","old","id","handler","t2","getIsResizing","resetSize","_temp","cursor","touchAction","userSelect","t3","atoms","columnResizing","event_0","stopPropagation","_c","_temp","Box","TableSortLabel","Subscribe","FC","ReactNode","useHeaderContext","layoutTableClasses","HeaderSortLabel","children","t0","$","_c","$i","Symbol","for","column","getCanSort","t1","sorting","direction","getIsSorted","sortIndex","length","getSortIndex","sortLabel","getToggleSortingHandler","ml","fontSize","opacity","t2","table","atoms","_c","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","_c","ViewColumn","Box","Checkbox","FormControlLabel","IconButton","Popover","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","columnLabel","hasColumnLabel","layoutTableClasses","shortcutLabel","ColumnsPanel","$","_c","$i","Symbol","for","table","t","anchorEl","setAnchorEl","buttonRef","t0","getAllLeafColumns","filter","_temp","columns","t1","current","t2","length","t3","enabled","t4","t5","columnsButton","event","currentTarget","t6","t7","t10","t8","t9","vertical","horizontal","t11","paper","className","columnsPanel","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","_c","useTranslation","_temp","_temp2","Autocomplete","MenuItem","Stack","TextField","Typography","useDebouncedCallback","Column","RowData","useState","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","setValue","t4","wait","commit","t5","next","change","t6","t7","T0","T1","isDate","t10","t11","t8","t9","to","t12","event","target","t13","inputLabel","shrink","t14","t15","t16","t17","t18","event_0","t19","t20","t21","event_1","multiple","selected","includes","find","option_0","_","next_0","_temp3","params","_temp","_temp2","event_2","event_3","event_4","option_3","option_2","option_1","selectedOption","_c","useTranslation","_temp","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","layoutTableClasses","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","filtersButton","event","currentTarget","vertical","horizontal","paper","className","filterPanel","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","useTranslation","Close","Search","Box","IconButton","InputAdornment","TextField","Tooltip","useTheme","useHotkey","FC","useEffect","useRef","useState","flushSync","useTranslation","useTableContext","layoutTableClasses","shortcutLabel","GlobalFilter","defaultExpanded","debounce","t0","$","_c","$i","Symbol","for","t1","undefined","table","t","theme","inputRef","buttonRef","value","setValue","state","globalFilter","expanded","setExpanded","current","t2","t3","id","setTimeout","setGlobalFilter","clearTimeout","t4","focus","collapse","t5","expand","t6","display","alignItems","t7","t8","t9","t10","transitions","create","t11","gridArea","width","height","zIndex","opacity","pointerEvents","transition","t12","t13","t14","t15","t16","t17","event","target","event_0","key","t18","event_1","currentTarget","parentElement","contains","relatedTarget","t19","t20","t21","t22","t23","t24","overflowX","t25","t26","input","startAdornment","endAdornment","mr","htmlInput","t27","t28","toolbarQuickFilter","_c","useTranslation","Skeleton","MuiSkeleton","TableCell","TableRow","FC","useEffect","useRef","useState","useTableContext","hasColumnLabel","layoutTableClasses","classes","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","skeletonRow","getVisibleLeafColumns","map","_temp","filler","p","column","id","skeletonCell","py","px","mx","Skeleton","_c","classes","MuiSkeleton","Box","Divider","Typography","Subscribe","FC","ReactNode","useTranslation","useTableContext","layoutTableClasses","ColumnsPanel","FiltersMenu","GlobalFilter","TableToolbarProps","title","actions","disableColumnFilter","disableColumnSelector","disableSearch","ToolbarDivider","$","_c","$i","Symbol","for","t0","toolbarDivider","height","alignSelf","mx","Toolbar","table","t","t1","flexShrink","display","alignItems","justifyContent","minHeight","gap","p","boxSizing","borderBottom","borderColor","t2","flex","minWidth","t3","toolbarTitle","fontWeight","t4","count","getSelectedRowIds","length","toolbarSelectedCount","t5","atoms","rowSelection","t6","toolbarLabel","t7","t8","t9","t10","t11","toolbar","_c","Toolbar","useTranslation","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/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      {...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 { useId } 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> = ({ label, ...props }) => {\n  const field = useFieldContext<boolean | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n  const showError = isTouched && hasError;\n  const helperId = useId();\n\n  return (\n    <FormControl error={showError}>\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            slotProps={{\n              input: {\n                \"aria-invalid\": showError || undefined,\n                \"aria-describedby\": showError ? helperId : undefined,\n              },\n            }}\n            {...props}\n          />\n        }\n        label={label ?? \"\"}\n      />\n      {showError && <FormHelperText id={helperId}>{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      {...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      {...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      {...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      {...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 { useId } 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  const showError = isTouched && hasError;\n  const helperId = useId();\n\n  return (\n    <FormControl component=\"fieldset\" error={showError}>\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-describedby={showError ? helperId : undefined}\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      {showError && <FormHelperText id={helperId}>{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 { useId } 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  const showError = isTouched && hasError;\n  const labelId = useId();\n\n  return (\n    <FormControl error={showError}>\n      {label && <FormLabel id={labelId}>{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-labelledby={label ? labelId : undefined}\n        {...props}\n      />\n      {showError && <FormHelperText>{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.isSubmitting}>\n      {(isSubmitting) => (\n        <Button loading={isSubmitting} onClick={handleClick} type=\"submit\" {...props} />\n      )}\n    </form.Subscribe>\n  );\n};\n","import { Switch, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { SwitchProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useId } 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> = ({ label, ...props }) => {\n  const field = useFieldContext<boolean | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n  const showError = isTouched && hasError;\n  const helperId = useId();\n\n  return (\n    <FormControl error={showError}>\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            slotProps={{\n              input: {\n                \"aria-invalid\": showError || undefined,\n                \"aria-describedby\": showError ? helperId : undefined,\n              },\n            }}\n            {...props}\n          />\n        }\n        label={label ?? \"\"}\n      />\n      {showError && <FormHelperText id={helperId}>{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      {...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  Stack,\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\";\nimport { layoutTableClasses } from \"../../utils\";\n\nexport type RowAction<TData = any> = {\n  label: string;\n  onClick: (row: TData) => void;\n  disabled?: boolean;\n  divider?: boolean;\n} & ({ showInMenu?: false; icon: ReactElement } | { showInMenu: true; icon?: ReactElement });\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  const buttons = actions.filter((action) => !action.showInMenu);\n  const menuItems = actions.filter((action) => action.showInMenu);\n\n  return (\n    <Stack\n      className={layoutTableClasses.actionsCell}\n      direction=\"row\"\n      spacing={1}\n      sx={{ alignItems: \"center\" }}\n      onClick={(event) => event.stopPropagation()}\n      onDoubleClick={(event) => event.stopPropagation()}\n    >\n      {buttons.map((action) => (\n        <Tooltip key={action.label} title={action.label}>\n          <span>\n            <IconButton\n              size=\"small\"\n              aria-label={action.label}\n              disabled={action.disabled}\n              onClick={() => action.onClick(cell.row.original)}\n            >\n              {action.icon}\n            </IconButton>\n          </span>\n        </Tooltip>\n      ))}\n\n      {menuItems.length > 0 && (\n        <>\n          <Tooltip title={t(\"Layout.Table.RowActions\")}>\n            <IconButton\n              size=\"small\"\n              aria-label=\"Row actions\"\n              aria-haspopup=\"menu\"\n              onClick={(event) => setAnchorEl(event.currentTarget)}\n            >\n              <MoreVert fontSize=\"small\" />\n            </IconButton>\n          </Tooltip>\n\n          <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={() => setAnchorEl(null)}>\n            {menuItems.flatMap((action) => [\n              ...(action.divider ? [<Divider key={`${action.label}-divider`} />] : []),\n              <MenuItem\n                key={action.label}\n                disabled={action.disabled}\n                onClick={() => {\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    </Stack>\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\";\nimport { layoutTableClasses } from \"../../utils\";\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            className={layoutTableClasses.expandButton}\n            size=\"small\"\n            onClick={(event) => {\n              event.stopPropagation();\n              row.toggleExpanded();\n            }}\n            aria-label=\"Expand row\"\n            aria-expanded={expanded}\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\";\nimport { layoutTableClasses } from \"../../utils\";\n\nexport const GroupCell: FC = () => {\n  const cell = useCellContext();\n  const { row } = cell;\n\n  return (\n    <Stack\n      className={layoutTableClasses.groupCell}\n      direction=\"row\"\n      spacing={0.5}\n      sx={{ ml: row.depth * 2, alignItems: \"center\" }}\n    >\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=\"Expand group\"\n              aria-expanded={expanded}\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=\"Pin row\">\n            <IconButton\n              aria-label=\"Pin row\"\n              aria-pressed={!!pinned}\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\" }, ...(Array.isArray(sx) ? sx : [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\";\nimport { layoutTableClasses } from \"../utils\";\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\n            className={layoutTableClasses.aggregationValue}\n            variant=\"body2\"\n            noWrap\n            sx={{ fontWeight: 700 }}\n          >\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=\"Expand all rows\"\n            aria-expanded={table.getIsAllRowsExpanded()}\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 { columnLabel, hasColumnLabel, layoutTableClasses, moveColumn } from \"../utils\";\n\nexport const HeaderMenu: FC<{ disableGrouping?: boolean }> = ({ disableGrouping = false }) => {\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 = !disableGrouping && 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            className={layoutTableClasses.menuIcon}\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={`Column menu: ${columnLabel(column)}`}\n              aria-haspopup=\"menu\"\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, MouseEvent, TouchEvent } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { classNames, columnFlex, layoutTableClasses } from \"../utils\";\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  // A static bar only separates columns, so there is none after the last one.\n  if (!column.getCanResize())\n    return column.getIsLastColumn() ? null : (\n      <Box\n        className={layoutTableClasses.columnSeparator}\n        sx={{ ...base, \"&::after\": bar(false) }}\n      />\n    );\n\n  const resize = header.getResizeHandler();\n\n  // A flex column renders wider or narrower than its size. Fix it at the rendered width first,\n  // so the drag starts from where the edge actually is instead of jumping back.\n  const handler = (event: MouseEvent<HTMLElement> | TouchEvent<HTMLElement>) => {\n    const width = event.currentTarget.parentElement?.offsetWidth;\n    if (columnFlex(column) && width)\n      column.table.setColumnSizing((old) => ({ ...old, [column.id]: width }));\n    resize(event);\n  };\n\n  return (\n    <Subscribe source={column.table.atoms.columnResizing}>\n      {() => (\n        <Box\n          className={classNames(\n            layoutTableClasses.columnSeparator,\n            layoutTableClasses[\"columnSeparator--resizable\"],\n            column.getIsResizing() && layoutTableClasses[\"columnSeparator--resizing\"],\n          )}\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\";\nimport { layoutTableClasses } from \"../utils\";\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            className={layoutTableClasses.sortLabel}\n            active={direction !== false}\n            direction={direction === false ? \"asc\" : direction}\n            onClick={column.getToggleSortingHandler()}\n          >\n            {children}\n            {sortIndex > -1 && (\n              <Box\n                component=\"span\"\n                className={layoutTableClasses.sortIndex}\n                sx={{ ml: 0.5, fontSize: 11, opacity: 0.7 }}\n              >\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, layoutTableClasses, 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          className={layoutTableClasses.columnsButton}\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={{\n          paper: {\n            className: layoutTableClasses.columnsPanel,\n            sx: { maxWidth: \"calc(100vw - 16px)\" },\n          },\n        }}\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 { useDebouncedCallback } from \"@tanstack/react-pacer/debouncer\";\nimport type { Column, RowData } from \"@tanstack/react-table\";\nimport { useState } from \"react\";\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  const [value, setValue] = useState(filter.value);\n  const commit = useDebouncedCallback(onChange, { wait: 300 });\n  const change = (next: unknown) => {\n    setValue(next);\n    commit(next);\n  };\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(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            change([\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            change([\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={(value as number | \"\" | undefined) ?? \"\"}\n        onChange={(event) => change(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(value) ? (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 === value) ?? null)\n        }\n        isOptionEqualToValue={(option, selectedOption) => option.value === selectedOption.value}\n        getOptionLabel={(option) => option.label}\n        onChange={(_, next) =>\n          change(\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 value === \"boolean\" ? String(value) : \"\"}\n        onChange={(event) =>\n          change(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(value)}\n        onChange={(event) => change(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={(value as string | number | undefined) ?? \"\"}\n      onChange={(event) =>\n        change(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, layoutTableClasses, 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                className={layoutTableClasses.filtersButton}\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={{\n                paper: {\n                  className: layoutTableClasses.filterPanel,\n                  sx: { maxWidth: \"calc(100vw - 16px)\" },\n                },\n              }}\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=\"Remove filter\"\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\": \"Logic 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                          key={`${column.id}:${filter.operator}`}\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 { flushSync } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { layoutTableClasses, 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 buttonRef = useRef<HTMLButtonElement>(null);\n  const [value, setValue] = useState((table.state.globalFilter as string | undefined) ?? \"\");\n  const [expanded, setExpanded] = useState(!!defaultExpanded);\n\n  // `table` is a new reference after every state change; only a changed value is sent.\n  const current = (table.state.globalFilter as string | undefined) ?? \"\";\n  useEffect(() => {\n    if (value === current) return;\n    const id = setTimeout(() => table.setGlobalFilter(value), debounce);\n    return () => clearTimeout(id);\n  }, [value, current, debounce, table]);\n\n  const collapse = () => {\n    setValue(\"\");\n    flushSync(() => setExpanded(false));\n    buttonRef.current?.focus();\n  };\n\n  const expand = () => {\n    flushSync(() => setExpanded(true));\n    inputRef.current?.focus();\n  };\n\n  useHotkey(\"Control+Q\", expand);\n\n  return (\n    <Box\n      className={layoutTableClasses.toolbarQuickFilter}\n      sx={{ display: \"grid\", alignItems: \"center\" }}\n    >\n      <Tooltip title={shortcutLabel(t(\"Layout.Table.Search\"), \"Control+Q\")}>\n        <IconButton\n          ref={buttonRef}\n          size=\"small\"\n          aria-label=\"Search\"\n          inert={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={(event) =>\n          !value &&\n          !defaultExpanded &&\n          !event.currentTarget.parentElement?.contains(event.relatedTarget) &&\n          setExpanded(false)\n        }\n        inert={!expanded}\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=\"Clear search\"\n                  onClick={collapse}\n                  sx={{ mr: -0.75 }}\n                >\n                  <Close fontSize=\"small\" />\n                </IconButton>\n              </InputAdornment>\n            ),\n          },\n          htmlInput: { \"aria-label\": \"Search\" },\n        }}\n      />\n    </Box>\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, layoutTableClasses as classes } 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\n          key={index}\n          ref={index === 0 ? firstRow : undefined}\n          className={classes.skeletonRow}\n          sx={{ height: rowHeight }}\n        >\n          {table.getVisibleLeafColumns().map((column) =>\n            hasColumnLabel(column) ? (\n              <TableCell\n                key={column.id}\n                className={classes.skeletonCell}\n                sx={{ py: 0, px: \"10px\" }}\n              >\n                <MuiSkeleton variant=\"text\" />\n              </TableCell>\n            ) : (\n              <TableCell\n                key={column.id}\n                className={classes.skeletonCell}\n                align=\"center\"\n                sx={{ px: 0.5, py: 0 }}\n              >\n                <MuiSkeleton variant=\"circular\" width={22} height={22} sx={{ mx: \"auto\" }} />\n              </TableCell>\n            ),\n          )}\n          <TableCell aria-hidden className={classes.filler} 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 { layoutTableClasses } from \"../utils\";\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\n    className={layoutTableClasses.toolbarDivider}\n    orientation=\"vertical\"\n    sx={{ height: \"50%\", alignSelf: \"center\", mx: 0.5 }}\n  />\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      className={layoutTableClasses.toolbar}\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\n        className={layoutTableClasses.toolbarLabel}\n        sx={{ flex: 1, minWidth: 0, display: \"flex\", alignItems: \"center\", gap: 1, mx: 0.5 }}\n      >\n        {title && (\n          <Typography\n            className={layoutTableClasses.toolbarTitle}\n            variant=\"body1\"\n            noWrap\n            sx={{ fontWeight: \"bold\" }}\n          >\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\n                className={layoutTableClasses.toolbarSelectedCount}\n                variant=\"body2\"\n                noWrap\n                color=\"primary\"\n              >\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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"}