@medyat/react-data-table 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TableId","Preferences","PreferencesAdapter","View","ViewsAdapter","KV","get","key","set","value","storage","ls","globalThis","localStorage","probe","setItem","removeItem","k","getItem","v","mem","Map","readJson","kv","fallback","T","raw","JSON","parse","requireScope","scope","fn","TypeError","newId","crypto","randomUUID","Math","random","toString","slice","now","Date","toISOString","createLocalStorageViews","options","tableId","read","write","views","stringify","list","create","input","view","id","name","kind","state","updatedAt","update","patch","i","findIndex","Error","next","undefined","remove","filter","createLocalStoragePreferences","Partial","prefs","columnOrderingFeature","columnPinningFeature","columnResizingFeature","columnSizingFeature","columnVisibilityFeature","tableFeatures","useTable","Column","ColumnDef","TanstackColumnDef","Header","useState","ColumnLayout","defaultTrack","Track","readPath","MIN_COLUMN_WIDTH","features","Features","TColumn","Row","PinSide","LayoutColumn","id","def","pinned","pinEdge","offsetVar","canHide","resizeHandler","event","PanelColumn","visible","fixed","ColumnsDraft","order","start","end","ColumnLayoutOptions","columns","Array","layout","Partial","NO_ROWS","trackCss","t","min","fr","trackMin","offsetVarName","replace","alwaysShown","d","alwaysVisible","primary","useColumnLayout","options","defs","defById","Map","map","scale","setScale","phone","setPhone","filter","trackFor","Math","round","minOf","minWidth","clampWidth","px","get","maxWidth","Infinity","max","tanstackColumns","accessorFn","accessor","row","size","minSize","maxSize","enableHiding","known","ids","has","stateOf","l","fx","left","includes","right","visibility","Record","hidden","sizing","w","Object","entries","widths","columnPinning","columnVisibility","columnOrder","columnSizing","table","data","initialState","columnResizeMode","s","headerById","getFlatHeaders","h","column","toLayoutColumn","col","getCanHide","e","getResizeHandler","isPrimary","c","startCols","getVisibleLeafColumns","getStartVisibleLeafColumns","centerCols","getCenterVisibleLeafColumns","endCols","getEndVisibleLeafColumns","isPinnedCol","getIsPinned","i","all","length","center","trackOf","resized","atoms","undefined","getSize","cols","join","offsets","out","getAfter","reduce","sum","move","delta","ordered","getOrderColumnsFn","getAllLeafColumns","at","findIndex","me","region","p","list","free","cid","getColumn","getIsVisible","indexOf","k","setColumnPinning","j","other","setColumnOrder","apply","st","setColumnVisibility","setColumnSizing","state","fromEntries","rank","panel","sort","a","b","resizing","columnResizing","isResizingColumn","subscribeSizing","listener","subscribe","unsubscribe","counts","shown","total","resolve","arrange","slice","reset","widthOf","setWidth","setVisible","toggleVisibility","ColumnLayoutApi","ReturnType","features","NO_ROWS","useEffect","useState","TableId","Preferences","PreferencesAdapter","merge","base","p","Partial","next","density","verticalLines","pageSize","defaultViewId","usePreferences","tableId","adapter","defaults","$","_c","t0","get","first","t1","Promise","prefs","setPrefs","ready","setReady","t2","t3","got","live","then","prev","catch","_temp","finally","t4","patch","prev_0","resolve","set","_temp2","t5","t6","t7","reset","persistent","_c","_temp","_temp2","FilterCondition","View","ViewState","defaultView","views","preferredId","find","v","id","undefined","kind","default","canonical","value","Array","isArray","map","join","Object","keys","sort","k","JSON","stringify","Record","normFilter","f","filtersKey","fs","a","b","column","localeCompare","sorted","ids","sameState","filters","ca","columns","cb","order","visible","pinned","left","right","Set","widths","x","y","Math","abs","NameError","nameError","name","locale","selfId","n","trim","length","lower","toLocaleLowerCase","taken","some","byName","collator","Intl","Collator","compare","SortRule","MAX_SORT","toggleSort","current","column","multi","at","findIndex","s","existing","next","dir","filter","map","slice","setSort","ColumnDef","getFormat","TYPE_SPECS","isEmpty","v","undefined","comparator","def","locale","a","b","empty","ea","eb","spec","type","numeric","Number","Date","getTime","collator","compare","String","isEmpty","columnFilteringFeature","createFilteredRowModel","createPaginatedRowModel","createSortedRowModel","globalFilteringFeature","rowPaginationFeature","rowSortingFeature","tableFeatures","useTable","ColumnDef","TanstackColumnDef","comparator","TYPE_SPECS","readPath","matches","FilterCondition","SortRule","MAX_SORT","features","filteredRowModel","sortedRowModel","paginatedRowModel","Features","NO_ROWS","noop","isSortable","def","sortable","type","isFilterable","filterable","isSearchable","searchable","isEmpty","v","undefined","Array","isArray","length","ListTableOptions","columns","Row","rows","rowId","row","locale","search","filters","sort","page","pageSize","useListTable","o","map","d","id","cmp","accessorFn","accessor","enableSorting","enableGlobalFilter","enableColumnFilter","filterFn","columnId","cond","getValue","sortFn","a","b","sortUndefined","Set","filter","table","data","getRowId","state","globalFilter","trim","toLocaleLowerCase","columnFilters","f","column","value","sorting","s","desc","dir","pagination","pageIndex","getColumnCanGlobalFilter","has","globalFilterFn","needle","String","includes","onGlobalFilterChange","onColumnFiltersChange","onSortingChange","onPaginationChange","autoResetPageIndex","maxMultiSortColCount","total","getRowModel","r","original","getPrePaginatedRowModel","useEffect","useRef","useState","byName","defaultView","sameState","View","ViewPatch","ViewState","ViewsAdapter","ViewsOptions","tableId","system","adapter","locale","defaultViewId","setDefaultViewId","id","activeId","auto","prefsReady","current","resolve","patch","apply","state","restoreColumns","columns","useViews","o","saved","setSaved","loaded","setLoaded","drafts","setDrafts","Record","touched","settled","all","active","find","v","edited","activate","view","keepDraft","next","live","list","then","vs","catch","finally","ready","given","preferred","replace","map","dropDraft","d","Object","fromEntries","entries","filter","k","writable","kind","collator","Intl","Collator","sections","personal","hasViews","length","canSave","hasDraft","select","saveChanges","update","discard","create","input","name","makeDefault","fromCurrent","rename","remove","preferredId","ViewsApi","ReturnType","useEffect","useState","useSyncExternalStore","useColumnLayout","readPath","usePreferences","useDataTableContext","defaultView","ColumnDef","TableState","UseDataTableOptions","FilterCondition","SortRule","TableQuery","ViewPatch","ViewState","setSort","toggleSort","useListTable","useViews","PAGE_SIZES","NONE","Record","fieldsOf","columns","Array","Row","visible","Set","rowKey","extra","out","c","has","id","accessor","add","f","fields","useDataTable","options","ctx","rowId","row","String","prefs","preferences","density","verticalLines","pageSize","defaultViewId","system","views","opening","state","view","undefined","initialState","given","auto","find","v","layout","inner","setInner","Partial","filters","sort","search","page","update","patch","next","onStateChange","subscribeSizing","resizing","JSON","stringify","widths","resolve","p","tableId","adapter","viewsAdapter","locale","setDefaultViewId","set","activeId","prefsReady","ready","current","apply","s","reset","restoreColumns","map","identity","sent","setSent","some","includes","request","number","size","selected","setSelected","ids","selection","client","rows","entityName","one","other","allRows","total","densityFixed","resolveView","resetDisplay","active","setSelection","clearSelection","pageSizes","count","column","multi","dir","setSearch","setFilters","setQuery","setPage","setPageSize","DataTableInstance","ReturnType","NONE","ColumnDef","decimalPlaces","formatCell","isEmptyValue","optionLabel","FormatEnv","toDate","plainText","def","Row","row","value","env","type","fmt","decimal","Number","Date","toISOString","String","map","v","options","join","XlsxCell","StringConstructor","NumberConstructor","DateConstructor","format","patterns","Map","datePattern","locale","p","get","undefined","parts","Intl","DateTimeFormat","year","month","day","formatToParts","CODE","Partial","Record","DateTimeFormatPartTypes","x","set","decimals","dp","repeat","wallClock","d","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","xlsxCell","code","currency","isNaN","getTime","i18n","text","listOptions","o","label","t","ColumnDef","FormatEnv","listOptions","plainText","xlsxCell","ExportJob","format","columns","Array","Row","rows","read","row","def","env","name","HEADER","fontWeight","textColor","backgroundColor","borderColor","borderStyle","alignVertical","const","FONT_PT","sheetName","s","replace","slice","widthOf","texts","w","t","Math","max","split","map","l","length","round","min","toCsv","job","sep","fmt","decimal","includes","esc","test","lines","c","header","r","join","toXlsx","Promise","Blob","default","writeXlsxFile","util","all","data","value","sample","widths","width","listed","flatMap","i","values","column","optionsName","i18n","ref","validations","j","col","getCellAddress","range","sanitizeTextContent","optionRows","optionsData","from","_","feature","files","transform","xml","_o","p","sheetIndex","order","getOrderOfSiblings","markup","insertElementMarkupAccordingToOrderOfSiblings","main","sheet","stickyRowsCount","sheets","features","fontSize","toBlob","download","blob","fileName","a","document","createElement","href","URL","createObjectURL","click","setTimeout","revokeObjectURL","exportFile","type","OptionDef","RemoteOptions","RemoteLabels","cache","Map","pending","remote","ids","Set","inFlight","scheduled","listeners","version","subscribe","listener","add","delete","getVersion","option","columnId","id","hit","get","has","p","set","schedule","undefined","label","String","seed","options","m","o","value","l","queueMicrotask","batch","flight","forEach","resolve","signal","AbortController","then","catch","finally","Combobox","MagnifyingGlassIcon","useRef","useState","ReactElement","ColumnDef","typeLabelKey","useDataTableContext","Chip","TYPE_ICONS","ColumnPicker","t0","$","_c","columns","chips","trigger","open","onOpenChange","onPick","i18n","inner","setInner","isOpen","t1","o","setOpen","q","setQ","picked","T0","T1","T2","T3","T4","groups","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t2","t3","t4","t5","t6","t7","t8","t9","needle","toLocaleLowerCase","match","c","header","includes","chipped","Set","map","_temp","filtered","ch","find","c_1","id","column","filter","c_2","suggested","c_3","has","slice","taken","_temp2","rest","c_5","typeHint","c_6","t","type","key","label","items","hint","_temp3","Root","o_0","current","Symbol","for","v","Portal","Positioner","Popup","keep","t20","t21","t22","List","_temp4","length","t23","t24","t25","g_0","g","c_7","Icon","c_4","c_0","_c","_temp","_temp2","_temp3","_temp4","Menu","ReactElement","ReactNode","DtMenu","t0","$","_c","trigger","children","open","onOpenChange","className","finalFocus","align","t1","side","offset","undefined","t2","o","t3","t4","t5","t6","t7","t8","DtMenuItem","onSelect","disabled","destructive","selected","twoLine","cls","filter","Boolean","join","DtMenuSeparator","Symbol","for","DtMenuLabel","_c","Popover","CaretDownIcon","CheckIcon","XIcon","Fragment","useRef","ColumnDef","ME","FilterOp","Avatar","RemoteLabels","useDataTableContext","DtMenu","DtMenuItem","DtMenuSeparator","changeOperator","editorOf","isComplete","opLabel","operatorsOf","shapeOf","Chip","Summary","TYPE_ICONS","ValueEditor","FilterChip","t0","$","_c","chip","column","editing","summary","rows","labels","currencies","onChange","onEditing","onRemove","onOpen","i18n","type","Icon","t1","op","shape","t2","complete","count","Array","isArray","value","length","opText","t3","tip","header","full","text","undefined","t","aria","t4","editor","t5","status","t6","patch","update","t7","setOp","t8","close","body","trigger","t9","t10","t11","t12","head","t13","t14","t15","people","slice","t16","content","t17","t18","t19","t20","cls","filter","Boolean","join","trim","o","map","_temp","current","querySelector","type_0","op_0","focus","p","String","_c","_Fragment","_temp","useEffect","useLayoutEffect","useRef","useState","ReactNode","ColumnDef","RemoteLabels","useDataTableContext","FilterChip","Chip","Summary","FilterBar","t0","$","_c","chips","defOf","editing","rows","labels","summaryOf","currenciesOf","add","onChange","onRemove","onEditing","onClearAll","onOpen","i18n","row","t1","Symbol","for","column","current","querySelectorAll","find","el","dataset","col","undefined","chipEl","scrolledEnd","setScrolledEnd","t2","el_0","scrollLeft","clientWidth","scrollWidth","onScroll","t3","t4","el_1","ResizeObserver","ro","observe","disconnect","target","at","t5","scrollIntoView","inline","block","t6","length","focusNext","t7","next","el_2","querySelector","parentElement","focus","t10","t11","t12","t8","t9","remove","column_0","i","findIndex","c","map","c_0","open","t13","t14","t","t15","_c","_Fragment","INTERACTIVE_SELECTOR","isInteractive","target","EventTarget","within","Element","hit","closest","contains","isTextInput","el","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","getAttribute","HTMLElement","isContentEditable","hasTextSelection","globalThis","getSelection","toString","length","isPlainRowClick","event","MouseEvent","rowEl","downPoint","x","y","button","metaKey","ctrlKey","shiftKey","altKey","Math","hypot","clientX","clientY","mac","navigator","test","platform","MOVE_KBD","left","right","SAVE_KBD","UNDO_KBD","REDO_KBD","FIND_KBD","FILL_KBD","REMOVE_KBD","CSSProperties","LayoutColumn","pinStyle","col","Row","pinned","left","offsetVar","right","undefined","pinClasses","pinEdge","filter","c","fillIndex","columns","Array","at","findIndex","length","ArrowUpIcon","DotsThreeIcon","FunnelIcon","PushPinIcon","useId","useRef","useState","useSyncExternalStore","KeyboardEvent","MouseEvent","TouchEvent","alignOf","isNumericType","typeLabelKey","ColumnLayoutApi","LayoutColumn","MOVE_KBD","useDataTableContext","DtMenu","DtMenuItem","DtMenuLabel","DtMenuSeparator","pinStyle","HeaderSort","dir","index","HeaderCell","t0","$","_c","column","layout","onMoved","sort","onSort","onSortSet","filtered","onFilter","onColumns","i18n","def","t1","type","numeric","unit","undefined","descId","tip","description","header","menuOpen","setMenuOpen","toFilter","menuButton","t2","id","r","resizing","size","subscribeSizing","t3","delta","move","t4","e","cell","currentTarget","parentElement","setWidth","getBoundingClientRect","width","resizeHandler","onResizeStart","t5","e_0","k","key","preventDefault","shiftKey","left","altKey","widthOf","onKeyDown","primarySort","ariaSort","t6","t7","arrow","t8","t9","sortMark","t10","t11","t12","t13","t14","pinned","t15","t16","pinEdge","t17","t18","t19","cls","filter","Boolean","t20","join","t21","t22","t23","Symbol","for","e_1","t24","t","t25","t26","t27","t28","e_2","t29","t30","phone","headerShort","t31","t32","t33","t34","t35","t36","t37","keep","current","t38","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","t49","t50","t51","right","t52","t53","t54","canHide","t55","setVisible","t56","t57","t58","t59","t60","t61","Math","round","t62","t63","_c","_Fragment","RowAction","inlineActionsOf","actions","Array","Row","row","filter","a","inline","icon","when","slice","DotsThreeIcon","CellAction","useDataTableContext","DtMenu","DtMenuItem","Item","Omit","Row","menu","Array","CellActions","t0","$","_c","actions","row","i18n","t1","t2","t3","t4","Symbol","for","bb0","t5","a","when","visible","filter","length","always","some","_temp","buttons","slice","overflow","t6","a_1","disabled","disabledOf","t7","a_2","d","label","tipOf","t8","a_3","run","t9","items","map","m","Icon","icon","id","destructive","menuItems","t10","a_4","Icon_0","cls","undefined","t","a_0","reveal","_c","_temp","Menu","DotsThreeIcon","Fragment","MouseEvent","RowAction","useDataTableContext","DtMenu","DtMenuItem","DtMenuSeparator","inlineActionsOf","RowMenu","t0","$","_c","row","label","href","actions","onOpen","i18n","t1","Set","inline","t2","t3","Symbol","for","bb0","t4","a","has","when","shown","filter","ordered","_temp","_temp2","length","t5","firstDestructive","findIndex","_temp3","subOf","a_3","d","disabled","description","isDisabled","a_4","t","id","t6","t7","t8","e","button","metaKey","ctrlKey","shiftKey","altKey","map","a_5","i","Icon","icon","sub","separatorBefore","destructive","run","shortcut","a_2","a_1","a_0","_c","_temp","_temp2","_temp3","_Fragment","CaretRightIcon","WarningCircleIcon","CSSProperties","MouseEvent","ReactNode","RowAction","CellActions","cellFillStyle","renderCellContent","RenderEnv","alignOf","isNumericType","LayoutColumn","readPath","inlineActionsOf","fillIndex","pinClasses","pinStyle","RowMenu","FillCell","$","_c","t0","Symbol","for","withFill","columns","Array","Row","render","col","i","at","slice","map","c","Expand","can","open","controls","label","onToggle","Cell","row","env","secondaryVisible","expand","lead","def","cls","content","t1","t2","value","accessor","id","t3","primary","type","href","undefined","t4","t5","t6","t7","t8","t9","style","secondary","main","filter","Boolean","join","i18n","t","t10","actions","length","t11","InlineAction","action","a","uid","Icon","icon","disabled","d","reason","descId","description","run","RowExtras","error","select","selected","edge","onChange","shift","Omit","menu","onOpen","event","index","rowIndex","extras","density","sel","tip","errorId","errorIcon","t12","left","e","target","checked","nativeEvent","globalThis","shiftKey","t13","t14","t15","right","t16","_c","_Fragment","TYPE_SPECS","alignOf","LayoutColumn","pinClasses","pinStyle","withFill","WIDTHS","SkeletonRow","t0","$","_c","index","columns","t1","col","i","shape","def","type","skeleton","width","length","cls","join","id","t2","t3","_c","_Fragment","useVirtualizer","Range","useLayoutEffect","RefObject","VirtualRowsOptions","count","scrollRef","HTMLElement","itemHeight","headHeight","barHeight","keyOf","index","keepIndex","resetKey","useVirtualRows","o","v","getScrollElement","current","estimateSize","scrollMargin","scrollPaddingStart","scrollPaddingEnd","overscan","getItemKey","rangeExtractor","range","start","Math","max","startIndex","end","min","endIndex","out","f","push","i","measure","items","getVirtualItems","map","key","String","total","getTotalSize","measureElement","resizeItem","size","useId","useLayoutEffect","useRef","useState","useSyncExternalStore","FocusEvent","MouseEvent","ReactNode","Density","RowAction","RemoteLabels","RenderEnv","ColumnLayoutApi","getFormat","isPlainRowClick","useDataTableContext","HeaderCell","HeaderSort","inlineActionsOf","Row","RowExtras","SkeletonRow","useVirtualRows","SKELETON_ROWS","FALLBACK_ROW_H","FALLBACK_HEAD_H","coarse","matchMedia","matches","SELECT_W","SELECT_W_PHONE","MENU_PAD","GridProps","layout","rows","rowId","row","label","density","skeleton","rowCount","rowIndexOffset","dim","refreshing","notice","state","verticalLines","scrollKey","sort","Map","canSort","id","onSort","additive","onSortSet","dir","filtered","ReadonlySet","canFilter","onFilter","onColumns","from","HTMLElement","onRowClick","event","selection","Record","onSelectRows","ids","value","expanded","canExpand","onToggleExpand","renderExpanded","close","resetKey","rowMenu","rowActions","Array","primaryHref","primaryLabel","rowError","onRowOpen","Grid","requested","ctx","root","HTMLDivElement","scroll","labels","labelsVersion","subscribe","getVersion","metrics","setMetrics","head","bar","scrolled","setScrolled","start","end","focused","setFocused","selectable","expandable","phone","selW","maxInline","some","a","inline","reduce","m","r","Math","max","length","errorOf","e","isArray","filter","anyError","menuW","isOpen","count","virtual","scrollRef","itemHeight","headHeight","barHeight","keyOf","i","keepIndex","openIds","Object","keys","join","lastOpen","now","Set","current","has","findIndex","resizeItem","el","write","style","setProperty","cols","Boolean","min","minWidth","map","c","offsetVar","name","entries","offsets","parseFloat","subscribeSizing","setScale","scale","css","getComputedStyle","getPropertyValue","fs","querySelector","offsetHeight","s","next","Number","isFinite","clientHeight","p","k","lastScrollKey","scrollTop","update","scrollLeft","clientWidth","scrollWidth","addEventListener","passive","ro","ResizeObserver","observe","removeEventListener","disconnect","onFocus","target","closest","dataset","index","down","x","y","onClick","rowEl","link","contains","button","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","rowKeys","anchor","onSelect","shift","to","slice","selectedCount","n","allSelected","uid","extrasOf","subrow","error","select","selected","edge","onChange","v","undefined","expand","can","open","controls","onToggle","menu","actions","href","onOpen","focusHeader","requestAnimationFrame","cell","querySelectorAll","find","col","focus","env","fmt","locale","i18n","today","Date","cls","header","columns","sortable","get","clientX","clientY","scrollPaddingTop","scrollPaddingBottom","left","indeterminate","t","center","right","height","total","items","item","key","measureElement","transform","_Fragment","useEffect","useState","RefObject","DELAY","Tip","text","left","top","overflows","el","HTMLElement","scrollWidth","clientWidth","clips","getComputedStyle","overflowX","tipOf","target","Element","tipped","closest","dataset","dtTip","content","querySelectorAll","some","textContent","trim","DelegatedTooltip","t0","$","_c","root","tip","setTip","t1","current","timer","anchor","hide","clearTimeout","show","x","r","getBoundingClientRect","undefined","width","Math","round","bottom","onOver","e","hit","setTimeout","clientX","onOut","e_0","contains","relatedTarget","Node","onFocusin","e_1","hit_0","addEventListener","removeEventListener","t2","t3","includes","t4","t5","_c","FileIcon","FunnelIcon","MagnifyingGlassIcon","PackageIcon","WarningCircleIcon","ReactNode","ICONS","empty","noResults","noResultsSearch","error","noRowsOnPage","StateMessage","t0","$","_c","kind","title","lines","t1","actions","after","t2","undefined","Icon","t3","t4","t5","t6","t7","map","_temp","t8","t9","line","_c","_temp","Popover","Toggle","ToggleGroup","CaretRightIcon","SlidersHorizontalIcon","useRef","useState","Density","useDataTableContext","DtSwitch","DENSITIES","DisplayPopover","t0","$","_c","density","onDensity","verticalLines","onVerticalLines","counts","onColumns","persistent","onReset","iconOnly","i18n","open","setOpen","trigger","t1","current","openColumns","t2","Symbol","for","o","t3","t4","t","t5","undefined","t6","t7","t8","t9","v","map","d","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","DENSITIES","_c","_Fragment","Menu","DotsThreeIcon","useId","useDataTableContext","DtMenu","DtMenuItem","DtMenuSeparator","MoreMenu","t0","$","_c","exportHint","onExport","onRefresh","onPrint","autoRefresh","autoRefreshOn","onAutoRefresh","i18n","hintId","t1","t","t2","t3","Symbol","for","t4","t5","t6","t7","t8","t9","v","t10","_c","ArrowDownIcon","ArrowUpIcon","CaretLeftIcon","CaretRightIcon","CheckIcon","DotsThreeIcon","XIcon","lazy","Suspense","useId","useRef","useState","Density","SortRule","ColumnsDraft","PanelColumn","useDataTableContext","BottomSheet","DtSwitch","ColumnsDialog","default","DENSITIES","TITLES","main","density","sort","export","const","Level","PhoneMoreSheet","t0","$","_c","onDensity","columns","counts","onColumnsSave","onSort","persistent","onReset","exportHint","onExport","onRefresh","onPrint","autoRefresh","autoRefreshOn","onAutoRefresh","i18n","hintId","open","setOpen","level","setLevel","columnsOpen","setColumnsOpen","columnsUsed","setColumnsUsed","trigger","t1","id","find","c","def","header","headerOf","lead","t2","length","column","dir","t","sortSummary","hasActions","t3","Symbol","for","o","setOpenAll","t4","fn","close","t5","t6","t7","t8","t9","t10","t11","t12","map","d","t13","t14","s","i","Arrow","r","filter","r_0","t15","t16","t17","ColumnsDialog","_c","_Fragment","MagnifyingGlassIcon","XCircleIcon","XIcon","useState","Ref","useDelay","useDataTableContext","SearchBox","t0","$","_c","value","placeholder","onChange","inputRef","onBlur","phone","i18n","draft","setDraft","seen","setSeen","sent","setSent","delay","t1","text","send","t2","text_0","t3","now","undefined","cancel","run","commit","t4","t5","e","target","t6","e_0","key","preventDefault","currentTarget","blur","t7","t8","t","t9","t10","_c","MagnifyingGlassIcon","useImperativeHandle","useRef","useState","ReactNode","Ref","useDataTableContext","SearchBox","ToolbarSize","ToolbarHandle","focusSearch","Toolbar","t0","$","_c","size","view","search","searchPlaceholder","onSearch","filter","display","more","end","ref","i18n","open","setOpen","input","phone","collapsed","phoneSearch","t1","Symbol","for","requestAnimationFrame","current","focus","openSearch","t2","t3","t4","t5","t6","t","t7","t8","t9","t10","t11","_c","_Fragment","AlertDialog","useRef","useDataTableContext","ConfirmDialog","t0","$","_c","open","onOpenChange","title","body","confirmLabel","danger","onConfirm","i18n","cancel","t1","o","t2","Symbol","for","t3","t4","t5","t","t6","t7","t8","t9","t10","t11","t12","_c","Dialog","useRef","useState","useDataTableContext","NameError","ViewSummary","filters","sort","columns","ViewDialog","t0","$","_c","open","onOpenChange","mode","name","initialName","summary","validate","onSave","i18n","setName","makeDefault","setMakeDefault","error","setError","input","t1","o","t2","Symbol","for","t3","current","select","t4","e","preventDefault","err","trim","t5","t","t6","t7","t8","t9","t10","undefined","t11","e_0","target","value","t12","t13","t14","t15","t16","e_1","checked","t17","t18","t19","t20","t21","t22","t23","_c","Popover","CaretDownIcon","CheckIcon","DotsThreeIcon","MagnifyingGlassIcon","PlusIcon","StackIcon","useId","useState","FocusEvent","KeyboardEvent","View","SAVE_KBD","useDataTableContext","BottomSheet","DtMenu","DtMenuItem","DtMenuSeparator","SEARCH_MIN_VIEWS","ViewMenu","t0","$","_c","sections","active","edited","hasDraft","defaultId","canSave","canWrite","open","onOpenChange","onSelect","onSaveChanges","onSaveAs","onDiscard","onRename","onDuplicate","onSetDefault","onDelete","sheet","i18n","q","setQ","moved","setMoved","hl","id","t1","Symbol","for","setHl","listId","after","focusList","groups","setOpen","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","triggerContent","triggerLabel","name","t","needle","toLocaleLowerCase","const","map","t12","key","title","views","filter","v","includes","_temp","isEdited","v_0","searchable","system","length","personal","canEdit","v_1","kind","flat","flatMap","_temp2","t13","o","t14","id_0","pick","t15","id_1","optionId","t16","e","to","relatedTarget","HTMLElement","document","getElementById","contains","leave","t17","fn","setTimeout","t18","t19","t20","t21","t22","t23","onListKey","e_0","i","findIndex","v_2","step","ArrowDown","ArrowUp","preventDefault","next","Math","min","max","at","target","currentTarget","activeDescendant","some","v_3","undefined","e_1","text","value","first","concat","find","v_4","g_1","g","v_5","content","o_0","g_0","_c","_temp","_temp2","_Fragment","DotsThreeIcon","XIcon","Fragment","useState","ReactNode","useDataTableContext","BottomSheet","DtMenu","DtMenuItem","DtMenuSeparator","BulkAction","BulkBar","t0","$","_c","rows","actions","variant","onClear","phone","children","i18n","moreOpen","setMoreOpen","clear","t1","t2","t3","t4","t5","t6","t7","t8","a","when","shown","filter","inBar","_temp","slice","others","a_1","includes","rest","_temp2","_temp3","firstDestructive","findIndex","_temp4","t9","a_5","disabled","disabledOf","t10","a_6","d","description","tipOf","t11","a_7","run","btn","t12","cls","t","t13","length","count","Symbol","for","map","a_8","Icon","icon","id","destructive","label","a_9","i","tip","undefined","a_10","i_0","tip_0","a_4","a_3","a_2","a_0","_c","_temp","_temp2","_Fragment","ArrowClockwiseIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","CircleNotchIcon","useEffect","useState","getFormat","useDataTableContext","Freshness","FooterProps","rowCount","page","number","size","hasMore","total","countable","counting","countedAt","Date","busy","firstLoad","empty","pageSizes","updatedAt","freshness","onRefresh","onCount","onPage","onPageSize","phone","useNow","ms","$","_c","now","setNow","_temp","t0","t1","t","setInterval","clearInterval","Footer","p","i18n","locale","t2","t3","t4","updatedText","fmt","from","to","lastPage","single","t5","d","toLocaleTimeString","hour","minute","time","getTime","relative","count","undefined","int","t6","t7","e","Number","target","value","map","_temp2","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","s","_c","_Fragment","useState","defaultOperator","isComplete","toCondition","Chip","ColumnDef","FilterCondition","useChips","t0","$","_c","defs","filters","setFilters","draft","setDraft","editing","setEditingState","chips","t1","f","has","column","filter","some","c","chip","splice","Math","min","at","length","f_0","t2","column_0","setEditing","t3","findIndex","c_0","rest","f_1","get","type","before","slice","c_1","update","t4","column_1","f_2","remove","t5","column_2","def","c_2","op","value","pick","t6","clear","t7","_c","useEffect","useState","DataTableResult","SLOW_MS","BAR_MS","STILL_LOADING_MS","useElapsed","token","ms","$","_c","done","setDone","t0","t1","t","setTimeout","clearTimeout","Snapshot","identity","page","number","size","data","at","useLoadState","result","pending","status","isFetching","settled","isPlaceholderData","snap","setSnap","dataUpdatedAt","errorKind","rows","length","hasRows","identityChange","dim","slow","refreshing","bar","stillLoading","skeleton","t2","t3","Date","t4","busy","updatedAt","_c","CircleNotchIcon","FunnelIcon","PlusIcon","WarningIcon","lazy","Suspense","useEffect","useEffectEvent","useId","useLayoutEffect","useRef","useState","MouseEvent","ReactNode","optionLabel","exportFile","readPath","RemoteLabels","ColumnPicker","FilterBar","toCondition","ColumnsDialog","default","FiltersSheet","then","m","summarize","Chip","getFormat","HeaderSort","Grid","DelegatedTooltip","isTextInput","useDataTableContext","StateMessage","DisplayPopover","MoreMenu","PhoneMoreSheet","Toolbar","ToolbarHandle","ToolbarSize","ConfirmDialog","nameError","ViewDialog","ViewSummary","ViewMenu","ColumnDef","BulkAction","DataTableResult","RowAction","RowClickMode","FilterCondition","QueryWithoutPage","View","ViewState","BulkBar","Footer","Freshness","useChips","isFilterable","isSearchable","isSortable","DataTableInstance","useLoadState","NONE","Record","errorInfo","error","message","id","e","undefined","String","DataTable","table","result","label","empty","toolbar","toolbarEnd","notice","searchPlaceholder","autoRefresh","onPrint","exportable","onExport","shortcuts","onRowClick","rowClick","onRowOpen","rowActions","selectable","selectionBar","bulkActions","selectionActions","onSelectionChange","renderExpanded","canExpand","rowError","Row","payload","query","visibleColumns","format","selection","rows","row","event","href","Array","props","clear","close","i18n","locale","fmt","entity","entityName","q","request","server","load","JSON","stringify","search","filters","sort","page","hasRows","length","refetch","busy","defs","Map","columns","map","c","filterable","filter","filterIds","Set","chips","setFilters","pickerOpen","setPickerOpen","sheet","setSheet","key","open","column","openSheet","s","labels","sourceRows","allRows","labelOf","def","v","type","options","remote","summaryOf","chip","get","currenciesOf","currency","of","r","hasFilter","hasSearch","some","toolbarRef","columnsOpen","setColumnsOpen","columnsUsed","setColumnsUsed","columnsFrom","HTMLElement","openColumns","from","current","vw","views","hasViews","viewMenuOpen","setViewMenuOpen","viewDialog","setViewDialog","mode","name","state","summary","view","fromCurrent","confirmDelete","setConfirmDelete","layout","viewSummary","lead","more","pinned","left","right","headerOf","join","f","t","dir","shown","visible","total","openSaveAs","resolveView","selectView","setEditing","select","rowKeys","rowId","selectedRows","selectedKey","selectRows","ids","value","next","setSelection","expandKey","setOpen","expanded","toggleExpand","find","requestAnimationFrame","sub","root","querySelectorAll","el","endsWith","count","setSeen","text","primaryLabel","keep","o","Object","fromEntries","entries","has","keys","lastSelected","primaryDef","primary","primaryHref","accessor","rowMenu","handleRowClick","target","Element","closest","querySelector","click","countKey","counted","setCounted","at","Date","counting","setCounting","countCtl","AbortController","abort","ctl","fields","signal","n","aborted","catch","finally","countedNow","data","hasMore","number","size","bodyState","skeleton","pending","errorKind","err","live","setLive","setInterval","clearInterval","freshness","bar","clock","d","toLocaleTimeString","hour","minute","i","index","sortable","header","first","said","loaded","updatedAt","getTime","selected","seen","polite","active","filterNews","parse","int","before","prev","changed","trim","gone","HTMLDivElement","width","setWidth","measure","clientWidth","ro","ResizeObserver","observe","disconnect","phone","setPhone","pick","onKey","KeyboardEvent","defaultPrevented","typing","HTMLInputElement","inLayer","clearSelection","altKey","ctrlKey","metaKey","preventDefault","setPage","shiftKey","edited","canSave","writable","saveChanges","focusSearch","window","addEventListener","removeEventListener","filterId","filterLabelledBy","filterText","labelShown","unpaged","print","exportRows","bulkBar","exportHint","runExport","read","env","today","other","moreMenu","prefs","l","navigator","clipboard","writeText","remove","setSearch","density","sections","hasDraft","defaultViewId","discard","set","densityFixed","verticalLines","counts","persistent","resetDisplay","panel","arrange","setQuery","time","editing","update","dim","toggleSort","setSort","stillLoading","pageSizes","setPageSize","all","makeDefault","rename","create","_Fragment","useDataTableContext","defaultTrack","cellFillStyle","decimalPlaces","optionLabel","getFormat","alignOf","TYPE_SPECS","Avatar","formatCell","readPath","ValueEditor","renderCellContent","toDate","useDelay","TYPE_ICONS","BottomSheet","isEmptyValue","isNumericType","typeLabelKey","operatorsOf","summarize","toCondition","isComplete","defaultOperator","matches","editorOf","opLabel","changeOperator","shapeOf","DtSwitch","Fragment$1","storage","ls","probe","k","v","mem","readJson","raw","kv","key","fallback","requireScope","scope","fn","newId","now","createLocalStorageViews","options","tableId","read","write","views","view","input","i","id","next","patch","createLocalStoragePreferences","prefs","features$1","tableFeatures","NO_ROWS$1","trackCss","t","trackMin","offsetVarName","alwaysShown","d","useColumnLayout","defs","defById","scale","setScale","useState","phone","setPhone","fixed","d_0","d_1","trackFor","d_2","minOf","d_3","clampWidth","def","px","tanstackColumns","id_0","d_4","row","known","ids","id_1","stateOf","fx","id_2","start","l","id_3","end","id_4","visibility","d_5","id_5","sizing","id_6","w","table","useTable","s","headerById","h","toLayoutColumn","col","e","isPrimary","c","startCols","centerCols","c_0","endCols","isPinnedCol","c_1","start_0","c_2","all","center","c_3","end_0","c_4","i_0","trackOf","resized","col_0","pinned_0","cols","c_5","c_6","c_7","offsets","out","left","c_8","c_9","minWidth","sum","c_10","move","ordered","at","c_11","id_7","me","region","p","list","free","cid","i_1","delta","j","other","ids_0","c_12","apply","st","l_0","state","p_0","c_13","c_14","id_8","w_0","rank","p_1","c_15","panel","a","b","pinned_1","c_16","resizing","id_9","subscribeSizing","a_0","listener","b_0","st_0","l_1","order","d_6","id_10","id_11","free_0","d_7","id_12","left_0","l_2","id_13","s_0","id_14","px_0","id_15","visible","merge","base","usePreferences","$","t0","adapter","first","t1","defaults","setPrefs","ready","setReady","t2","t3","got","live","prev","_temp$8","useEffect","t4","prev_0","_temp2$5","set","t5","t6","t7","defaultView","preferredId","canonical","value","normFilter","f","filtersKey","fs","sorted","sameState","ca","cb","x","y","nameError","n","name","lower","locale","selfId","byName","collator","toggleSort","current","column","existing","multi","setSort","dir","isEmpty$1","comparator","empty","ea","eb","features","createFilteredRowModel","createSortedRowModel","createPaginatedRowModel","NO_ROWS","noop","isSortable","isFilterable","isSearchable","isEmpty","useListTable","columns","o","cmp","cond","row_0","columnId","columnId_0","searchable","row_1","columnId_1","needle","r","useViews","saved","setSaved","loaded","setLoaded","drafts","setDrafts","touched","useRef","settled","active","edited","activate","keepDraft","vs","given","preferred","replace","dropDraft","writable","PAGE_SIZES","NONE$1","fieldsOf","rowKey","extra","useDataTable","ctx","rowId","system","opening","layout","inner","setInner","update","useSyncExternalStore","resolve","identity","sent","setSent","fields","request","selected","setSelected","selection","client","plainText","env","patterns","datePattern","parts","CODE","decimals","dp","wallClock","xlsxCell","code","day","text","listOptions","HEADER","FONT_PT","sheetName","widthOf","texts","toCsv","sep","job","esc","toXlsx","writeXlsxFile","util","data","rows","sample","widths","listed","values","optionsName","ref","validations","optionRows","optionsData","feature","xml","markup","main","download","blob","fileName","exportFile","RemoteLabels","hit","remote","m","batch","flight","ColumnPicker","isOpen","open","onOpenChange","setOpen","q","setQ","picked","T0","T1","T2","T3","T4","groups","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t8","t9","chips","i18n","onPick","trigger","match","chipped","_temp$7","filtered","ch","suggested","taken","_temp2$4","rest","typeHint","_temp3$2","Combobox","o_0","keep","t20","MagnifyingGlassIcon","t21","t22","_temp4$1","t23","t24","t25","g_0","Icon","g","DtMenu","align","Menu","offset","side","className","children","finalFocus","DtMenuItem","destructive","twoLine","cls","disabled","onSelect","DtMenuSeparator","DtMenuLabel","FilterChip","type","chip","shape","complete","count","opText","tip","summary","aria","editor","status","onChange","op","setOp","onEditing","close","body","head","currencies","editing","labels","onOpen","people","content","Popover","_temp$6","type_0","CaretDownIcon","Fragment","op_0","CheckIcon","onRemove","XIcon","FilterBar","el","chipEl","scrolledEnd","setScrolledEnd","el_0","onScroll","el_1","ro","target","useLayoutEffect","focusNext","currenciesOf","defOf","summaryOf","remove","column_0","add","onClearAll","INTERACTIVE_SELECTOR","isInteractive","within","isTextInput","hasTextSelection","isPlainRowClick","event","rowEl","downPoint","mac","MOVE_KBD","SAVE_KBD","pinStyle","pinClasses","fillIndex","HeaderCell","numeric","unit","descId","useId","menuOpen","setMenuOpen","toFilter","menuButton","onMoved","cell","onResizeStart","onSort","e_0","onKeyDown","primarySort","sort","ariaSort","ArrowUpIcon","arrow","index","sortMark","e_1","onFilter","FunnelIcon","t26","t27","t28","e_2","t29","t30","t31","t32","t33","t34","PushPinIcon","t35","t36","t37","t38","t39","DotsThreeIcon","t40","t41","t42","t43","onSortSet","t44","t45","t46","t47","t48","t49","t50","t51","t52","t53","t54","t55","t56","t57","t58","onColumns","t59","t60","t61","t62","t63","inlineActionsOf","actions","CellActions","always","_temp$5","buttons","overflow","a_1","disabledOf","a_2","tipOf","a_3","run","items","menuItems","Icon_0","a_4","RowMenu","inline","href","label","shown","_temp$4","_temp2$3","firstDestructive","_temp3$1","subOf","isDisabled","a_5","sub","FillCell","withFill","render","Cell","expand","lead","style","secondaryVisible","CaretRightIcon","InlineAction","reason","uid","Row","sel","extras","menu","error","errorId","WarningCircleIcon","errorIcon","rowIndex","WIDTHS","SkeletonRow","width","useVirtualRows","useVirtualizer","range","size","SKELETON_ROWS","FALLBACK_ROW_H","FALLBACK_HEAD_H","coarse","SELECT_W","SELECT_W_PHONE","Grid","requested","root","scroll","density","labelsVersion","metrics","setMetrics","scrolled","setScrolled","focused","setFocused","selectable","onSelectRows","expandable","renderExpanded","selW","maxInline","rowActions","errorOf","rowError","anyError","menuW","rowMenu","expanded","virtual","skeleton","openIds","lastOpen","min","css","lastScrollKey","scrollKey","onFocus","down","onClick","link","onRowOpen","onRowClick","rowKeys","anchor","from","to","shift","selectedCount","allSelected","extrasOf","subrow","primaryLabel","canExpand","onToggleExpand","primaryHref","focusHeader","dim","verticalLines","header","sortable","canSort","additive","canFilter","rowCount","item","rowIndexOffset","refreshing","notice","DELAY","overflows","clips","tipped","DelegatedTooltip","setTip","timer","hide","show","onOver","onOut","onFocusin","hit_0","ICONS","PackageIcon","FileIcon","StateMessage","lines","kind","title","_temp$3","after","line","DENSITIES$1","DisplayPopover","openColumns","iconOnly","SlidersHorizontalIcon","onDensity","ToggleGroup","Toggle","onVerticalLines","counts","persistent","onReset","MoreMenu","hintId","exportHint","onExport","onPrint","autoRefresh","onRefresh","autoRefreshOn","onAutoRefresh","ColumnsDialog$1","lazy","DENSITIES","TITLES","PhoneMoreSheet","level","setLevel","columnsOpen","setColumnsOpen","columnsUsed","setColumnsUsed","headerOf","sortSummary","hasActions","setOpenAll","CaretLeftIcon","Arrow","ArrowDownIcon","r_0","onColumnsSave","Suspense","SearchBox","draft","setDraft","seen","setSeen","delay","send","text_0","commit","inputRef","placeholder","XCircleIcon","onBlur","Toolbar","collapsed","search","phoneSearch","openSearch","useImperativeHandle","onSearch","searchPlaceholder","filter","display","more","ConfirmDialog","cancel","AlertDialog","danger","onConfirm","confirmLabel","ViewDialog","initialName","setName","makeDefault","setMakeDefault","setError","Dialog","onSave","validate","err","mode","SEARCH_MIN_VIEWS","ViewMenu","moved","setMoved","hl","setHl","listId","focusList","triggerContent","triggerLabel","canSave","defaultId","hasDraft","onDelete","onDuplicate","onRename","onSetDefault","sections","sheet","_temp$2","isEdited","v_0","canEdit","v_1","flat","_temp2$2","pick","optionId","leave","StackIcon","onListKey","v_2","step","activeDescendant","v_3","v_4","g_1","v_5","canWrite","onDiscard","onSaveAs","onSaveChanges","PlusIcon","BulkBar","moreOpen","setMoreOpen","clear","onClear","variant","inBar","_temp$1","others","_temp2$1","_temp3","_temp4","a_6","a_7","btn","a_8","a_9","tip_0","a_10","useNow","setNow","_temp","ms","Footer","updatedText","fmt","lastPage","single","time","CircleNotchIcon","ArrowClockwiseIcon","_temp2","useChips","setEditingState","filters","f_0","has","setEditing","setFilters","f_1","before","column_1","f_2","column_2","SLOW_MS","BAR_MS","STILL_LOADING_MS","useElapsed","done","setDone","token","useLoadState","pending","result","snap","setSnap","errorKind","hasRows","identityChange","slow","bar","stillLoading","page","ColumnsDialog","FiltersSheet","NONE","errorInfo","DataTable","entity","server","load","refetch","busy","filterable","filterIds","pickerOpen","setPickerOpen","setSheet","openSheet","sourceRows","labelOf","of","hasFilter","toolbar","hasSearch","toolbarRef","columnsFrom","vw","hasViews","viewMenuOpen","setViewMenuOpen","viewDialog","setViewDialog","confirmDelete","setConfirmDelete","viewSummary","pinned","openSaveAs","selectView","selectedRows","selectedKey","selectRows","expandKey","toggleExpand","lastSelected","onSelectionChange","primaryDef","handleRowClick","rowClick","countKey","counted","setCounted","counting","setCounting","countCtl","ctl","countedNow","total","hasMore","bodyState","setLive","freshness","clock","said","polite","filterNews","changed","gone","setWidth","measure","onKey","useEffectEvent","typing","shortcuts","filterId","filterLabelledBy","filterText","labelShown","unpaged","visibleColumns","print","exportRows","bulkBar","bulkActions","selectionActions","exportable","runExport","moreMenu","selectionBar","toolbarEnd","WarningIcon","DataTableProvider"],"sources":["../src/core/adapters/local-storage.ts","../src/core/columns/use-column-layout.ts","../src/core/preferences/use-preferences.ts","../src/core/views/model.ts","../src/list/sort.ts","../src/core/cells/compare.ts","../src/list/use-list-table.ts","../src/list/use-views.ts","../src/list/use-data-table.ts","../src/core/export/cells.ts","../src/core/export/write.ts","../src/core/cells/remote-labels.ts","../src/core/filters/column-picker.tsx","../src/core/ui/menu.tsx","../src/core/filters/filter-chip.tsx","../src/core/filters/filter-bar.tsx","../src/core/interaction/is-interactive.ts","../src/core/interaction/kbd.ts","../src/core/grid/pin.ts","../src/core/grid/header-cell.tsx","../src/core/grid/inline-actions.ts","../src/core/cells/cell-actions.tsx","../src/core/grid/row-menu.tsx","../src/core/grid/row.tsx","../src/core/grid/skeleton-row.tsx","../src/core/grid/use-virtual-rows.ts","../src/core/grid/grid.tsx","../src/core/grid/tooltip.tsx","../src/core/states/state-message.tsx","../src/core/toolbar/display-popover.tsx","../src/core/toolbar/more-menu.tsx","../src/core/toolbar/phone-more-sheet.tsx","../src/core/toolbar/search-box.tsx","../src/core/toolbar/toolbar.tsx","../src/core/ui/confirm-dialog.tsx","../src/core/views/view-dialog.tsx","../src/core/views/view-menu.tsx","../src/list/bulk-bar.tsx","../src/list/footer.tsx","../src/list/use-chips.ts","../src/list/use-load-state.ts","../src/list/data-table.tsx"],"sourcesContent":["// Hazır adapter'lar (01 · plugin ve adapter'lar): tarayıcıda saklar; `scope` zorunlu, değişince eski veri taşınmaz.\nimport type { TableId } from '../../types/core'\nimport type { Preferences, PreferencesAdapter, View, ViewsAdapter } from '../../types/views'\n\ninterface KV {\n get: (key: string) => string | null\n set: (key: string, value: string) => void\n}\n\n/** localStorage yoksa ya da kapalıysa (gizli pencere, kota) bellek içi düşer; hata fırlatmaz. */\nfunction storage(): KV {\n try {\n const ls = globalThis.localStorage\n const probe = '__dt_probe__'\n ls.setItem(probe, '1')\n ls.removeItem(probe)\n return { get: (k) => ls.getItem(k), set: (k, v) => ls.setItem(k, v) }\n } catch {\n const mem = new Map<string, string>()\n return {\n get: (k) => mem.get(k) ?? null,\n set: (k, v) => {\n mem.set(k, v)\n },\n }\n }\n}\n\nfunction readJson<T>(kv: KV, key: string, fallback: T): T {\n const raw = kv.get(key)\n if (raw === null) return fallback\n try {\n return JSON.parse(raw) as T\n } catch {\n return fallback\n }\n}\n\nconst requireScope = (scope: unknown, fn: string): string => {\n if (typeof scope !== 'string' || scope === '')\n throw new TypeError(`${fn}: 'scope' zorunlu (uygulama/kiracı anahtarı)`)\n return scope\n}\n\nconst newId = (): string => globalThis.crypto?.randomUUID?.() ?? Math.random().toString(36).slice(2)\nconst now = (): string => new Date().toISOString()\n\nexport function createLocalStorageViews(options: { scope: string }): ViewsAdapter {\n const scope = requireScope(options?.scope, 'createLocalStorageViews')\n const kv = storage()\n const key = (tableId: TableId) => `dt:${scope}:views:${tableId}`\n const read = (tableId: TableId) => readJson<View[]>(kv, key(tableId), [])\n const write = (tableId: TableId, views: View[]) => kv.set(key(tableId), JSON.stringify(views))\n\n return {\n async list(tableId) {\n return read(tableId)\n },\n async create(tableId, input) {\n const view: View = {\n id: newId(),\n name: input.name,\n kind: 'personal',\n state: input.state,\n updatedAt: now(),\n }\n write(tableId, [...read(tableId), view])\n return view\n },\n async update(tableId, id, patch) {\n const views = read(tableId)\n const i = views.findIndex((v) => v.id === id)\n if (i < 0) throw new Error(`createLocalStorageViews: görünüm yok: ${id}`)\n const next: View = {\n ...views[i]!,\n ...(patch.name !== undefined && { name: patch.name }),\n ...(patch.state !== undefined && { state: patch.state }),\n updatedAt: now(),\n }\n views[i] = next\n write(tableId, views)\n return next\n },\n async remove(tableId, id) {\n write(\n tableId,\n read(tableId).filter((v) => v.id !== id),\n )\n },\n }\n}\n\nexport function createLocalStoragePreferences(options: { scope: string }): PreferencesAdapter {\n const scope = requireScope(options?.scope, 'createLocalStoragePreferences')\n const kv = storage()\n const key = (tableId: TableId) => `dt:${scope}:prefs:${tableId}`\n return {\n get(tableId) {\n return readJson<Partial<Preferences>>(kv, key(tableId), {})\n },\n set(tableId, prefs) {\n kv.set(key(tableId), JSON.stringify({ ...readJson<Partial<Preferences>>(kv, key(tableId), {}), ...prefs }))\n },\n }\n}\n","'use no memo'\n// TanStack Table'ın sütun modeli (01 · TanStack sınırı, D23): sıra, görünürlük, genişlik, resize, sabitleme.\n// Bu dosya dışında (grid/, cells/ …) TanStack import edilmez; dışarıya kendi tiplerimiz çıkar.\n//\n// R11: TanStack örneği kendi atom'larını değiştirerek çalışır; React Compiler bu nesneleri önbelleğe alırsa ekran\n// eski durumda donar. Dosya derleyicinin dışındadır.\n//\n// Performans (05 · Resize): hook genişlik değişiminde yeniden çizilmez (useTable seçicisi genişliği içermez).\n// Izgara `subscribeSizing` ile `--cols` ve sabit ofsetlerini React render'ı dışında yazar.\nimport {\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n tableFeatures,\n useTable,\n type Column,\n type ColumnDef as TanstackColumnDef,\n type Header,\n} from '@tanstack/react-table'\nimport { useState } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport type { ColumnLayout } from '../../types/query'\nimport { defaultTrack, type Track } from '../cells/specs'\nimport { readPath } from './read-path'\n\nexport const MIN_COLUMN_WIDTH = 80\n\nconst features = tableFeatures({\n columnSizingFeature,\n columnResizingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnVisibilityFeature,\n})\ntype Features = typeof features\ntype TColumn<Row extends object> = Column<Features, Row, unknown>\n\nexport type PinSide = 'start' | 'end' | null\n\n/** Izgaranın çizdiği, TanStack'ten bağımsız sütun görünümü. Genişlik burada değil, `cols()`/`offsets()`'ta. */\nexport interface LayoutColumn<Row extends object = object> {\n id: string\n def: ColumnDef<Row>\n pinned: PinSide\n /** Bölgenin kenarındaki sabit sütun: kaydırma gölgesini bu taşır. */\n pinEdge: boolean\n /** Sabit hücrelerin sticky ofsetini taşıyan CSS değişkeni (`--dt-off-…`). */\n offsetVar: string\n canHide: boolean\n /** Resize tutamacının TanStack işleyicisi (fare ve dokunma). */\n resizeHandler: (event: unknown) => void\n}\n\n/** Columns dialog'unun satırı (05 §5, D45): tüm sütunlar ekran sırasıyla. */\nexport interface PanelColumn<Row extends object = object> {\n id: string\n def: ColumnDef<Row>\n visible: boolean\n pinned: PinSide\n canHide: boolean\n /** Her zaman sola sabit (birincil): listede kilitli, taşınmaz, gizlenmez. */\n fixed: boolean\n}\n\n/** Dialog taslağı: sıra, görünürler ve konumsal sabitleme (ilk `start`, son `end` görünür sütun). */\nexport interface ColumnsDraft {\n order: string[]\n visible: string[]\n start: number\n end: number\n}\n\nexport interface ColumnLayoutOptions<Row extends object> {\n columns: Array<ColumnDef<Row>>\n /** Görünümden gelen düzen (Faz 3b); verilmezse sütun tanımları. */\n layout?: Partial<ColumnLayout>\n}\n\nconst NO_ROWS: never[] = []\nconst trackCss = (t: Track): string => (typeof t === 'number' ? `${t}px` : `minmax(${t.min}px, ${t.fr}fr)`)\nconst trackMin = (t: Track): number => (typeof t === 'number' ? t : t.min)\n/** Sütun id'si CSS özel özellik adına: 'product.name' → '--dt-off-product_name'. */\nexport const offsetVarName = (id: string): string => `--dt-off-${id.replace(/[^a-zA-Z0-9_-]/g, '_')}`\n\n/** Gizlenemeyen sütun: `alwaysVisible` ve birincil. */\nconst alwaysShown = (d: ColumnDef): boolean => !!(d.alwaysVisible || d.primary)\n\nexport function useColumnLayout<Row extends object>(options: ColumnLayoutOptions<Row>) {\n const defs = options.columns\n const defById = new Map(defs.map((d) => [d.id as string, d]))\n // Tip varsayılanları ve geliştiricinin `width`'i 13 px yazıya göre (02 · Ölçek); ızgara yoğunluğun --dt-fs'ini ölçüp\n // oranı bildirir. Kullanıcının sürüklediği genişlik (columnSizing) ölçeklenmez.\n const [scale, setScale] = useState(1)\n // Telefonda (05 §11) yalnızca birincil sütun sola sabit, sağa sabit yok; kayıtlı sabitleme durumu değişmez. Kartın genişliğini\n // DataTable ölçer ve bildirir.\n const [phone, setPhone] = useState(false)\n const fixed = defs.filter((d) => d.primary).map((d) => d.id as string)\n\n const trackFor = (d: ColumnDef<Row>): Track => {\n const t = defaultTrack(d)\n return typeof t === 'number' ? Math.round(t * scale) : { ...t, min: Math.round(t.min * scale) }\n }\n const minOf = (d: ColumnDef<Row>): number => Math.min(d.minWidth ?? MIN_COLUMN_WIDTH, trackMin(trackFor(d)))\n /** Kaydedilen / uygulanan genişlik sütunun min–max aralığında (05 · Resize: min 80). */\n const clampWidth = (id: string, px: number): number => {\n const def = defById.get(id)\n return Math.min(def?.maxWidth ?? Infinity, Math.max(def ? minOf(def) : MIN_COLUMN_WIDTH, Math.round(px)))\n }\n\n // Her zaman açık id + accessorFn (accessorKey asla: nokta → alt çizgi çakışması, 01).\n const tanstackColumns: Array<TanstackColumnDef<Features, Row, unknown>> = defs.map((d) => {\n const id = d.id as string\n return {\n id,\n accessorFn: d.accessor ?? ((row: Row) => readPath(row, id)),\n size: trackMin(trackFor(d)),\n // Açık `width` 80'in altındaysa (ör. 56 px aksiyon sütunu) o geçerli.\n minSize: minOf(d),\n maxSize: d.maxWidth,\n enableHiding: !alwaysShown(d),\n }\n })\n\n /** Görünümden gelen düzen → TanStack durumu (04 §7): bilinmeyen sütun atlanır; `visible` varsa beyaz listedir; gizlenemeyen hep açık. */\n const known = (ids: string[] | undefined) => ids?.filter((id) => defById.has(id))\n const stateOf = (l: Partial<ColumnLayout> | undefined) => {\n const fx = fixed.filter((id) => defById.has(id))\n const start = [...fx, ...(known(l?.pinned?.left) ?? []).filter((id) => !fx.includes(id))]\n const end = (known(l?.pinned?.right) ?? []).filter((id) => !fx.includes(id))\n const visibility: Record<string, boolean> = {}\n for (const d of defs) {\n const id = d.id as string\n visibility[id] = alwaysShown(d) || (l?.visible ? l.visible.includes(id) : !d.hidden)\n }\n const sizing: Record<string, number> = {}\n for (const [id, w] of Object.entries(l?.widths ?? {})) if (defById.has(id)) sizing[id] = clampWidth(id, w)\n return {\n columnPinning: { start, end },\n columnVisibility: visibility,\n columnOrder: known(l?.order) ?? [],\n columnSizing: sizing,\n }\n }\n\n const table = useTable(\n {\n features,\n columns: tanstackColumns,\n data: NO_ROWS,\n initialState: stateOf(options.layout),\n columnResizeMode: 'onChange',\n },\n // Genişlik ve resize durumu bilerek yok: sürüklerken ekran yeniden çizilmez (05 · Resize).\n (s) => ({ columnOrder: s.columnOrder, columnVisibility: s.columnVisibility, columnPinning: s.columnPinning }),\n )\n\n const headerById = new Map(table.getFlatHeaders().map((h) => [h.column.id, h as Header<Features, Row, unknown>]))\n const toLayoutColumn = (col: TColumn<Row>, pinned: PinSide, pinEdge: boolean): LayoutColumn<Row> => ({\n id: col.id,\n def: defById.get(col.id)!,\n pinned,\n pinEdge,\n offsetVar: offsetVarName(col.id),\n canHide: col.getCanHide(),\n resizeHandler: (e) => headerById.get(col.id)?.getResizeHandler()(e),\n })\n\n const isPrimary = (c: TColumn<Row>) => !!defById.get(c.id)?.primary\n const startCols = phone ? table.getVisibleLeafColumns().filter(isPrimary) : table.getStartVisibleLeafColumns()\n const centerCols = phone\n ? table.getVisibleLeafColumns().filter((c) => !isPrimary(c))\n : table.getCenterVisibleLeafColumns()\n const endCols = phone ? [] : table.getEndVisibleLeafColumns()\n const isPinnedCol = (c: TColumn<Row>) => (phone ? isPrimary(c) : c.getIsPinned() !== false)\n const start = startCols.map((c, i, all) => toLayoutColumn(c, 'start', i === all.length - 1))\n const center = centerCols.map((c) => toLayoutColumn(c, null, false))\n const end = endCols.map((c, i) => toLayoutColumn(c, 'end', i === 0))\n\n /** Sütunun gerçek track'i: sabit ve resize edilmiş sütunlar px, diğerleri tip varsayılanı (minmax olabilir). */\n const trackOf = (col: TColumn<Row>, pinned: boolean): Track => {\n // Ham columnSizing sürüklerken min/max'ı aşabilir; getSize() kırpar (min 80, 05 · Resize).\n const resized = table.atoms.columnSizing.get()[col.id] !== undefined\n return pinned || resized ? col.getSize() : trackFor(defById.get(col.id)!)\n }\n\n /** grid-template-columns: sabit px, orta track'ler, bölge sonunda `auto` dolgu (05 · Resize). */\n const cols = (): string =>\n [\n ...startCols.map((c) => trackCss(trackOf(c, true))),\n ...centerCols.map((c) => trackCss(trackOf(c, false))),\n 'auto',\n ...endCols.map((c) => trackCss(trackOf(c, true))),\n ].join(' ')\n\n /** Sabit hücrelerin sticky ofsetleri: start için left, end için right (TanStack getStart / getAfter). */\n const offsets = (): Record<string, string> => {\n const out: Record<string, string> = {}\n let left = 0\n for (const c of startCols) {\n out[offsetVarName(c.id)] = `${left}px`\n left += c.getSize()\n }\n for (const c of endCols) out[offsetVarName(c.id)] = `${c.getAfter('end')}px`\n return out\n }\n\n /** Satır ve header'ın en az genişliği; kabı aşarsa yatay kayar. */\n const minWidth = (): number =>\n table.getVisibleLeafColumns().reduce((sum, c) => sum + trackMin(trackOf(c, isPinnedCol(c))), 0)\n\n /** Move left/right (D22: sürükleme yok): aynı sabitleme bölgesindeki görünür komşuyla yer değiştirir. */\n const move = (id: string, delta: -1 | 1) => {\n const ordered = table.getOrderColumnsFn()(table.getAllLeafColumns())\n const at = ordered.findIndex((c) => c.id === id)\n const me = ordered[at]\n if (!me) return\n const region = me.getIsPinned()\n // TanStack sabit sütunları columnOrder'a değil sabitleme dizisinin sırasına göre çizer; birincil sütun başta kalır.\n if (region) {\n const p = table.atoms.columnPinning.get()\n const list = [...(p[region] ?? [])]\n const free = (cid: string) => !fixed.includes(cid) && table.getColumn(cid)?.getIsVisible() === true\n const i = list.indexOf(id)\n let k = i + delta\n while (k >= 0 && k < list.length && !free(list[k]!)) k += delta\n if (!free(id) || k < 0 || k >= list.length) return\n list[i] = list[k]!\n list[k] = id\n table.setColumnPinning({ ...p, [region]: list })\n return\n }\n let j = at + delta\n while (j >= 0 && j < ordered.length && !(ordered[j]!.getIsVisible() && ordered[j]!.getIsPinned() === region))\n j += delta\n const other = ordered[j]\n if (!other) return\n const ids = ordered.map((c) => c.id)\n ids[at] = other.id\n ids[j] = me.id\n table.setColumnOrder(ids)\n }\n\n const apply = (l?: Partial<ColumnLayout>) => {\n const st = stateOf(l)\n table.setColumnOrder(st.columnOrder)\n table.setColumnVisibility(st.columnVisibility)\n table.setColumnPinning(st.columnPinning)\n table.setColumnSizing(st.columnSizing)\n }\n\n /** Etkin düzen (görünüme yazılan biçim): sıra, görünürler, yalnızca değiştirilmiş genişlikler, sabitler. */\n const state = (): ColumnLayout => {\n const p = table.atoms.columnPinning.get()\n return {\n order: table\n .getOrderColumnsFn()(table.getAllLeafColumns())\n .map((c) => c.id),\n visible: table.getVisibleLeafColumns().map((c) => c.id),\n widths: Object.fromEntries(\n Object.entries(table.atoms.columnSizing.get()).map(([id, w]) => [id, clampWidth(id, w)]),\n ),\n pinned: { left: [...(p.start ?? [])], right: [...(p.end ?? [])] },\n }\n }\n\n const rank = (c: TColumn<Row>) => {\n const p = c.getIsPinned()\n return p === 'start' ? 0 : p === 'end' ? 2 : 1\n }\n const panel: Array<PanelColumn<Row>> = [...table.getOrderColumnsFn()(table.getAllLeafColumns())]\n .sort((a, b) => rank(a) - rank(b))\n .map((c) => {\n const pinned = c.getIsPinned()\n return {\n id: c.id,\n def: defById.get(c.id)!,\n visible: c.getIsVisible(),\n pinned: pinned === false ? null : pinned,\n canHide: c.getCanHide(),\n fixed: fixed.includes(c.id),\n }\n })\n\n /** Canlı sürükleme genişliği; sürüklenmiyorsa null. */\n const resizing = (): { id: string; size: number } | null => {\n const id = table.atoms.columnResizing.get().isResizingColumn\n return id ? { id, size: table.getColumn(id)?.getSize() ?? 0 } : null\n }\n\n /** Genişlik ya da resize durumu değişince çağrılır; abonelikten çıkış fonksiyonu döner. */\n const subscribeSizing = (listener: () => void): (() => void) => {\n const a = table.atoms.columnSizing.subscribe(listener)\n const b = table.atoms.columnResizing.subscribe(listener)\n return () => {\n a.unsubscribe()\n b.unsubscribe()\n }\n }\n\n return {\n columns: [...start, ...center, ...end],\n start,\n center,\n end,\n scale,\n setScale,\n phone,\n setPhone,\n cols,\n offsets,\n minWidth,\n resizing,\n subscribeSizing,\n move,\n panel,\n counts: { shown: table.getVisibleLeafColumns().length, total: table.getAllLeafColumns().length },\n state,\n /** Görünümün düzeni uygulanmadan `state()` biçiminde (04 §7 \"edited\" karşılaştırması). */\n resolve: (l: Partial<ColumnLayout> | undefined): ColumnLayout => {\n const st = stateOf(l)\n const order = [...st.columnOrder, ...defs.map((d) => d.id as string).filter((id) => !st.columnOrder.includes(id))]\n return {\n order,\n visible: order.filter((id) => st.columnVisibility[id]),\n widths: st.columnSizing,\n pinned: { left: st.columnPinning.start, right: st.columnPinning.end },\n }\n },\n /** Dialog'un Save'i (D45): sabitleme konumsaldır, sabitlerden sonraki ilk `start` ve son `end` görünür sütun. */\n arrange: (d: ColumnsDraft) => {\n const free = d.order.filter((id) => d.visible.includes(id) && !fixed.includes(id))\n const left = free.slice(0, d.start)\n apply({\n order: d.order,\n visible: d.visible,\n widths: state().widths,\n pinned: { left, right: d.end ? free.slice(left.length).slice(-d.end) : [] },\n })\n },\n /** Display › Reset: verilmezse `layout` seçeneğine, o da yoksa sütun tanımlarına döner. */\n reset: (l: Partial<ColumnLayout> | undefined = options.layout) => apply(l),\n widthOf: (id: string): number => table.getColumn(id)?.getSize() ?? 0,\n setWidth: (id: string, px: number) => table.setColumnSizing((s) => ({ ...s, [id]: clampWidth(id, px) })),\n setVisible: (id: string, visible: boolean) => table.getColumn(id)?.toggleVisibility(visible),\n }\n}\n\nexport type ColumnLayoutApi<Row extends object = object> = ReturnType<typeof useColumnLayout<Row>>\n","// Kişisel tercihler (05 §9, 04 §8, D5): yoğunluk, dikey çizgiler, sayfa boyutu, varsayılan görünüm. Görünüme değil, tablo\n// kimliği başına yazılır. Adapter yoksa oturumluk; senkron `get` ilk render'da, Promise dönen `get` gelince uygulanır.\nimport { useEffect, useState } from 'react'\nimport type { TableId } from '../../types/core'\nimport type { Preferences, PreferencesAdapter } from '../../types/views'\n\n/** Bozuk ya da eski kayıt tercihleri bozmaz: yalnızca tipi doğru alanlar alınır. */\nfunction merge(base: Preferences, p: Partial<Preferences> | undefined): Preferences {\n if (!p) return base\n const next = { ...base }\n if (p.density === 'comfortable' || p.density === 'standard' || p.density === 'compact') next.density = p.density\n if (typeof p.verticalLines === 'boolean') next.verticalLines = p.verticalLines\n if (typeof p.pageSize === 'number' && p.pageSize > 0) next.pageSize = p.pageSize\n if ('defaultViewId' in p) next.defaultViewId = p.defaultViewId ?? null\n return next\n}\n\nexport function usePreferences(tableId: TableId, adapter: PreferencesAdapter | null, defaults: Preferences) {\n const [first] = useState(() => adapter?.get(tableId))\n const [prefs, setPrefs] = useState<Preferences>(() => (first instanceof Promise ? defaults : merge(defaults, first)))\n // Promise dönen adapter'da tercih gelene (ya da hata verene) kadar false: kullanıcı varsayılanı ancak o zaman bilinir.\n const [ready, setReady] = useState(!(first instanceof Promise))\n\n useEffect(() => {\n const got = adapter?.get(tableId)\n if (!(got instanceof Promise)) return\n let live = true\n got\n .then((p) => live && setPrefs((prev) => merge(prev, p)))\n .catch(() => {})\n .finally(() => live && setReady(true))\n return () => {\n live = false\n }\n }, [adapter, tableId])\n\n const set = (patch: Partial<Preferences>) => {\n setPrefs((prev) => merge(prev, patch))\n if (adapter) void Promise.resolve(adapter.set(tableId, patch)).catch(() => {})\n }\n\n return {\n prefs,\n set,\n /** Display › Reset: ekran ayarları; varsayılan görünüm seçimi kalır (görünüm menüsünden yönetilir). */\n reset: () => set({ density: defaults.density, verticalLines: defaults.verticalLines, pageSize: defaults.pageSize }),\n /** Arayüz \"Saved for you only\" notunu yalnızca kalıcı depoda gösterir. */\n persistent: adapter !== null,\n ready,\n }\n}\n","// Görünüm modeli (04 §7, D4, D5): varsayılan görünüm sırası, düzenlenmiş durum karşılaştırması, ad doğrulama, sıralama.\nimport type { FilterCondition } from '../../types/query'\nimport type { View, ViewState } from '../../types/views'\n\n/** Ekran açılırken: kullanıcı varsayılanı (tercih) → system `default` → ilk system view → yok (tablonun varsayılanı). */\nexport function defaultView(views: View[], preferredId: string | null | undefined): View | null {\n return (\n (preferredId ? views.find((v) => v.id === preferredId) : undefined) ??\n views.find((v) => v.kind === 'system' && v.default) ??\n views.find((v) => v.kind === 'system') ??\n null\n )\n}\n\n// Anahtarları her seviyede sıralı metin: jsonb saklayan sunucu nesne anahtarlarının sırasını korumaz, aynı koşul\n// farklı sırayla döner.\nconst canonical = (value: unknown): string =>\n Array.isArray(value)\n ? `[${value.map(canonical).join(',')}]`\n : value !== null && typeof value === 'object'\n ? `{${Object.keys(value)\n .sort()\n .map((k) => `${JSON.stringify(k)}:${canonical((value as Record<string, unknown>)[k])}`)\n .join(',')}}`\n : JSON.stringify(value)\nconst normFilter = (f: FilterCondition) => {\n const v = 'value' in f ? f.value : undefined\n return { ...f, value: Array.isArray(v) ? [...(v as unknown[])].sort() : v }\n}\nconst filtersKey = (fs: FilterCondition[]) =>\n canonical(fs.map(normFilter).sort((a, b) => a.column.localeCompare(b.column)))\nconst sorted = (ids: string[]) => [...ids].sort().join('\\u0000')\n\n/** Normalize karşılaştırma: `in` değerleri sırasız, görünürler küme, genişlikte ±2 px tolerans. */\nexport function sameState(a: ViewState, b: ViewState): boolean {\n if (filtersKey(a.filters) !== filtersKey(b.filters)) return false\n if (canonical(a.sort) !== canonical(b.sort)) return false\n const ca = a.columns\n const cb = b.columns\n if (ca.order.join('\\u0000') !== cb.order.join('\\u0000') || sorted(ca.visible) !== sorted(cb.visible)) return false\n if (ca.pinned.left.join('\\u0000') !== cb.pinned.left.join('\\u0000')) return false\n if (ca.pinned.right.join('\\u0000') !== cb.pinned.right.join('\\u0000')) return false\n for (const id of new Set([...Object.keys(ca.widths), ...Object.keys(cb.widths)])) {\n const x = ca.widths[id]\n const y = cb.widths[id]\n if (x === undefined || y === undefined ? x !== y : Math.abs(x - y) > 2) return false\n }\n return true\n}\n\nexport type NameError = 'required' | 'tooLong' | 'taken'\n/** Save as new view / Rename (04 §7): zorunlu, en fazla 60, kişisel görünümler arasında benzersiz (büyük/küçük harf duyarsız). */\nexport function nameError(name: string, views: View[], locale: string, selfId?: string): NameError | null {\n const n = name.trim()\n if (!n) return 'required'\n if (n.length > 60) return 'tooLong'\n const lower = n.toLocaleLowerCase(locale)\n const taken = views.some(\n (v) => v.kind === 'personal' && v.id !== selfId && v.name.toLocaleLowerCase(locale) === lower,\n )\n return taken ? 'taken' : null\n}\n\n/** Kişisel görünümler ada göre (yerel ayar karşılaştırması); system kod sırasında kalır. */\nexport const byName = (views: View[], collator: Intl.Collator): View[] =>\n [...views].sort((a, b) => collator.compare(a.name, b.name))\n","// Sıralama kuralları (04 §6): tık asc → desc → kapalı ve diğerleri kalkar; ⇧ ile ikincil, en fazla 3 (dördüncüde en eski düşer).\nimport type { SortRule } from '../types/query'\n\nexport const MAX_SORT = 3\n\nexport function toggleSort(current: SortRule[], column: string, multi: boolean): SortRule[] {\n const at = current.findIndex((s) => s.column === column)\n const existing = at >= 0 ? current[at]! : null\n const next: SortRule | null = !existing\n ? { column, dir: 'asc' }\n : existing.dir === 'asc'\n ? { column, dir: 'desc' }\n : null\n if (!multi) return next ? [next] : []\n if (!next) return current.filter((s) => s.column !== column)\n if (at >= 0) return current.map((s) => (s.column === column ? next : s))\n return [...current, next].slice(-MAX_SORT)\n}\n\n/** Sütun menüsü: yön seçmek tek sıralama yapar; kaldırmak yalnızca o sütunu çıkarır. */\nexport const setSort = (current: SortRule[], column: string, dir: 'asc' | 'desc' | null): SortRule[] =>\n dir ? [{ column, dir }] : current.filter((s) => s.column !== column)\n","// Tipe göre sıralama karşılaştırıcısı (04 §6): boş değer \"en büyük\" (artanda sonda, azalanda başta — PostgreSQL varsayılanı).\n// Liste (useListTable) ve sheet (yerel sıralama, 07 §10) aynı kuralı kullanır.\nimport type { ColumnDef } from '../../types/columns'\nimport { getFormat } from '../format'\nimport { TYPE_SPECS } from './specs'\n\nconst isEmpty = (v: unknown) => v === null || v === undefined || v === ''\n\nexport function comparator(def: ColumnDef, locale: string): (a: unknown, b: unknown) => number {\n const empty = (a: unknown, b: unknown): number | null => {\n const ea = isEmpty(a)\n const eb = isEmpty(b)\n if (ea && eb) return 0\n if (ea) return 1\n if (eb) return -1\n return null\n }\n const spec = TYPE_SPECS[def.type]\n if (spec.numeric || def.type === 'boolean' || def.type === 'star') {\n return (a, b) => empty(a, b) ?? Number(a) - Number(b)\n }\n if (def.type === 'date' || def.type === 'datetime') {\n return (a, b) => empty(a, b) ?? new Date(a as string).getTime() - new Date(b as string).getTime()\n }\n const collator = getFormat(locale).collator()\n return (a, b) => empty(a, b) ?? collator.compare(String(a), String(b))\n}\n","'use no memo'\n// İstemci modunun satır modeli (01 · TanStack sınırı, D23): filtre, arama, sıralama ve sayfalama TanStack row model'leriyle. Sunucu modunda\n// kullanılmaz: işlemi sunucu yapar, satırlar olduğu gibi çizilir. R11: TanStack örneği kendi atom'larını değiştirir;\n// dosya derleyicinin dışındadır.\nimport {\n columnFilteringFeature,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n globalFilteringFeature,\n rowPaginationFeature,\n rowSortingFeature,\n tableFeatures,\n useTable,\n type ColumnDef as TanstackColumnDef,\n} from '@tanstack/react-table'\nimport { comparator } from '../core/cells/compare'\nimport { TYPE_SPECS } from '../core/cells/specs'\nimport { readPath } from '../core/columns/read-path'\nimport { matches } from '../core/filters/model'\nimport type { ColumnDef } from '../types/columns'\nimport type { FilterCondition, SortRule } from '../types/query'\nimport { MAX_SORT } from './sort'\n\nconst features = tableFeatures({\n // globalFiltering, columnFiltering'i ön koşul ister (TanStack).\n columnFilteringFeature,\n globalFilteringFeature,\n filteredRowModel: createFilteredRowModel(),\n rowSortingFeature,\n sortedRowModel: createSortedRowModel(),\n rowPaginationFeature,\n paginatedRowModel: createPaginatedRowModel(),\n})\ntype Features = typeof features\n\nconst NO_ROWS: never[] = []\nconst noop = () => {}\n\nexport const isSortable = (def: ColumnDef): boolean => def.sortable ?? TYPE_SPECS[def.type].sortable\nexport const isFilterable = (def: ColumnDef): boolean => def.filterable ?? TYPE_SPECS[def.type].filterable\nexport const isSearchable = (def: ColumnDef): boolean => def.searchable ?? TYPE_SPECS[def.type].searchable\nconst isEmpty = (v: unknown) => v === null || v === undefined || v === '' || (Array.isArray(v) && v.length === 0)\n\nexport interface ListTableOptions<Row extends object> {\n columns: Array<ColumnDef<Row>>\n /** Verilmezse sunucu modu: hook boş döner. */\n rows: Row[] | undefined\n rowId: (row: Row) => string\n locale: string\n search: string\n /** Yalnızca tam koşullar; sütun başına `filterFn` (04 §1). */\n filters: FilterCondition[]\n sort: SortRule[]\n page: number\n pageSize: number\n}\n\nexport function useListTable<Row extends object>(o: ListTableOptions<Row>) {\n const columns: Array<TanstackColumnDef<Features, Row, unknown>> = o.columns.map((d) => {\n const id = d.id as string\n const cmp = comparator(d as ColumnDef, o.locale)\n return {\n id,\n accessorFn: d.accessor ?? ((row: Row) => readPath(row, id)),\n enableSorting: isSortable(d as ColumnDef),\n enableGlobalFilter: isSearchable(d as ColumnDef),\n enableColumnFilter: isFilterable(d as ColumnDef),\n filterFn: (row, columnId, cond: FilterCondition) => matches(cond, row.getValue(columnId), { locale: o.locale }),\n sortFn: (a, b, columnId) => cmp(a.getValue(columnId), b.getValue(columnId)),\n // Boş değer \"en büyük\": artanda sonda, azalanda başta (PostgreSQL ile aynı).\n sortUndefined: 1,\n }\n })\n\n const searchable = new Set(o.columns.filter((d) => isSearchable(d as ColumnDef)).map((d) => d.id as string))\n // Durum tamamen dışarıda (useDataTable); TanStack'in updater'ları kullanılmaz.\n const table = useTable(\n {\n features,\n columns,\n data: o.rows ?? NO_ROWS,\n getRowId: o.rowId,\n state: {\n // Arama locale'e göre küçültülür (09: I/ı, İ/i doğru eşleşmeli).\n globalFilter: o.search.trim().toLocaleLowerCase(o.locale),\n columnFilters: o.filters.map((f) => ({ id: f.column, value: f })),\n sorting: o.sort.map((s) => ({ id: s.column, desc: s.dir === 'desc' })),\n pagination: { pageIndex: o.page - 1, pageSize: o.pageSize },\n },\n getColumnCanGlobalFilter: (column) => searchable.has(column.id),\n globalFilterFn: (row, columnId, needle: string) => {\n const v = row.getValue(columnId)\n return !isEmpty(v) && String(v).toLocaleLowerCase(o.locale).includes(needle)\n },\n onGlobalFilterChange: noop,\n onColumnFiltersChange: noop,\n onSortingChange: noop,\n onPaginationChange: noop,\n autoResetPageIndex: false,\n maxMultiSortColCount: MAX_SORT,\n },\n (s) => ({\n globalFilter: s.globalFilter,\n columnFilters: s.columnFilters,\n sorting: s.sorting,\n pagination: s.pagination,\n }),\n )\n\n if (!o.rows) return { rows: undefined, total: undefined }\n return {\n /** Sayfadaki satırlar: sıralı ve dilimlenmiş. */\n rows: table.getRowModel().rows.map((r) => r.original),\n /** Filtre ve arama sonrası, sayfalama öncesi toplam. */\n total: table.getPrePaginatedRowModel().rows.length,\n }\n}\n","// Görünümler (04 §7, D4, D5, D30, R6): system görünümler (`views` seçeneği) + adapter'daki kişisel görünümler, açılış seçimi,\n// düzenlenmiş durum, görünüm başına kaydedilmemiş taslak (bellekte, oturum boyu), kaydet / kopyala / yeniden adlandır / sil.\n// Paket veri çekmez (D18): adapter'ı uygulama verir, yoksa kaydetme yoktur.\n//\n// Vue'dan farkı: aktif görünüm tablonun durumundadır (`state.view`, adrese bağlanabilir, R5) ve \"edited\" saklanmaz, her\n// çizimde ekrandaki durum görünümün kayıtlı durumuyla karşılaştırılarak türetilir. Böylece adresten gelen görünüm + filtre\n// sayfa yenilenince de doğru \"edited\" gösterir.\nimport { useEffect, useRef, useState } from 'react'\nimport { byName, defaultView, sameState } from '../core/views/model'\nimport type { View, ViewPatch, ViewState, ViewsAdapter } from '../types/views'\n\nexport interface ViewsOptions {\n tableId: string\n system: View[]\n adapter: ViewsAdapter | null\n locale: string\n defaultViewId: string | null\n setDefaultViewId: (id: string | null) => void\n /** `state.view`: undefined ise açılışta varsayılan seçildi (`auto`). */\n activeId: string | null\n /** Açılış görünümü paket tarafından seçildiyse: kişisel liste / tercih gelince varsayılana geçilebilir. */\n auto: boolean\n /** Tercihler yüklendi (Promise dönen adapter'da sonradan). */\n prefsReady: boolean\n /** Ekrandaki durum (filtre + sıralama + sütun düzeni). */\n current: ViewState\n /** Kayıtlı (kısmi) durum → tam durum; eksikler tablonun varsayılanı. */\n resolve: (patch: ViewPatch) => ViewState\n /** Tek adımda uygular (tek istek): görünüm kimliği, filtre, sıralama, sütunlar, sayfa 1. */\n apply: (id: string | null, state: ViewState) => void\n /** Yalnızca sütun düzeni: dışarıdan verilen kişisel görünüm liste gelince. */\n restoreColumns: (columns: ViewPatch['columns']) => void\n}\n\nexport function useViews(o: ViewsOptions) {\n const [saved, setSaved] = useState<View[]>([])\n const [loaded, setLoaded] = useState(!o.adapter)\n const [drafts, setDrafts] = useState<Record<string, ViewState>>({})\n // Kullanıcı bir görünüm seçti ya da kaydetti: geç gelen liste / tercih açılış seçimini artık değiştirmez.\n const touched = useRef(false)\n // Geç gelen varsayılan yalnızca bir kez, liste ve tercih ilk geldiğinde: sonra \"Set as default\" görünümü değiştirmez.\n const settled = useRef(false)\n\n const all = [...o.system, ...saved]\n const active = all.find((v) => v.id === o.activeId) ?? null\n const edited = !!active && !sameState(o.current, o.resolve(active.state))\n\n const activate = (view: View | null, keepDraft = true) => {\n const next = { ...drafts }\n if (active) {\n if (keepDraft && edited) next[active.id] = o.current\n else delete next[active.id]\n }\n setDrafts(next)\n o.apply(view?.id ?? null, view ? (next[view.id] ?? o.resolve(view.state)) : o.resolve({}))\n }\n\n useEffect(() => {\n if (!o.adapter) return\n let live = true\n o.adapter\n .list(o.tableId)\n .then((vs) => live && setSaved(vs))\n .catch(() => {})\n .finally(() => live && setLoaded(true))\n return () => {\n live = false\n }\n }, [o.adapter, o.tableId])\n\n // Kullanıcı varsayılanı kişisel bir görünüm olabilir ya da tercih sonradan gelebilir: ikisi de gelince, açılış seçimi\n // paketinse ve dokunulmadıysa bir kez varsayılana geçilir (Vue: Promise.all([list, prefsReady])).\n const ready = loaded && o.prefsReady\n useEffect(() => {\n if (!ready || settled.current) return\n settled.current = true\n if (!o.auto) {\n // Görünüm dışarıdan (adres) verildi: filtre ve sıralama oradan okunur, sütunlar yalnızca görünümde (R5).\n const given = saved.find((v) => v.id === o.activeId)\n if (given && !touched.current) o.restoreColumns(given.state.columns)\n return\n }\n const preferred = defaultView(all, o.defaultViewId)\n if (!preferred || !o.auto || touched.current || edited || preferred.id === o.activeId) return\n activate(preferred)\n // Yalnızca hazır olunca bir kez; `activate` her çizimde yeni.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ready])\n\n const replace = (next: View) => setSaved((vs) => vs.map((v) => (v.id === next.id ? next : v)))\n const dropDraft = (id: string) => setDrafts((d) => Object.fromEntries(Object.entries(d).filter(([k]) => k !== id)))\n const writable = (v: View | null) => !!v && !!o.adapter && v.kind !== 'system'\n const collator = new Intl.Collator(o.locale)\n\n return {\n all,\n sections: { system: o.system, personal: byName(saved, collator) },\n active,\n edited,\n // Adapter varsa ilk görünüm menüden yaratılır; tetik yalnızca ne görünüm ne adapter varken gizlenir (04 §7).\n hasViews: all.length > 0 || !!o.adapter,\n canSave: !!o.adapter,\n hasDraft: (id: string) => id in drafts,\n writable,\n select: (id: string) => {\n touched.current = true\n activate(all.find((v) => v.id === id) ?? null)\n },\n saveChanges: async () => {\n if (!writable(active) || !o.adapter) return\n replace(await o.adapter.update(o.tableId, active!.id, { state: o.current }))\n dropDraft(active!.id)\n },\n discard: () => {\n if (!active) return\n dropDraft(active.id)\n o.apply(active.id, o.resolve(active.state))\n },\n /** Save as new view / New view / Duplicate; kayıt sonrası yeni görünüm aktif. `fromCurrent`: düzenleme yeni görünüme taşındı. */\n create: async (input: { name: string; state: ViewState; makeDefault: boolean; fromCurrent: boolean }) => {\n if (!o.adapter) return\n const v = await o.adapter.create(o.tableId, { name: input.name, state: input.state })\n setSaved((vs) => [...vs, v])\n if (input.makeDefault) o.setDefaultViewId(v.id)\n touched.current = true\n activate(v, !input.fromCurrent)\n },\n rename: async (id: string, name: string) => {\n if (o.adapter) replace(await o.adapter.update(o.tableId, id, { name }))\n },\n /** Onaydan sonra hemen `remove`; aktif silinirse varsayılana, varsayılan silinirse system default'a (04 §7). */\n remove: async (id: string) => {\n if (!o.adapter) return\n await o.adapter.remove(o.tableId, id)\n setSaved((vs) => vs.filter((v) => v.id !== id))\n dropDraft(id)\n const preferredId = o.defaultViewId === id ? null : o.defaultViewId\n if (o.defaultViewId === id) o.setDefaultViewId(null)\n if (o.activeId === id)\n activate(\n defaultView(\n all.filter((v) => v.id !== id),\n preferredId,\n ),\n false,\n )\n },\n }\n}\n\nexport type ViewsApi = ReturnType<typeof useViews>\n","// Tablonun durumu ve mantığı (R3, R5). Ekranın başka yerleri de buradan okur; `<DataTable table={…} />` çizer.\nimport { useEffect, useState, useSyncExternalStore } from 'react'\nimport { useColumnLayout } from '../core/columns/use-column-layout'\nimport { readPath } from '../core/columns/read-path'\nimport { usePreferences } from '../core/preferences/use-preferences'\nimport { useDataTableContext } from '../core/provider'\nimport { defaultView } from '../core/views/model'\nimport type { ColumnDef } from '../types/columns'\nimport type { TableState, UseDataTableOptions } from '../types/list'\nimport type { FilterCondition, SortRule, TableQuery } from '../types/query'\nimport type { ViewPatch, ViewState } from '../types/views'\nimport { setSort, toggleSort } from './sort'\nimport { useListTable } from './use-list-table'\nimport { useViews } from './use-views'\n\nconst PAGE_SIZES = [50, 100, 250, 500]\nconst NONE: Record<string, true> = {}\n\n/** İstenecek alanlar (R4): satır anahtarı, görünür sütunların yolu ve `fields`'i, tablonun `fields`'i; koddaki sırayla. */\nfunction fieldsOf<Row extends object>(\n columns: Array<ColumnDef<Row>>,\n visible: Set<string>,\n rowKey: string,\n extra: string[] = [],\n): string[] {\n const out = new Set([rowKey])\n for (const c of columns) {\n if (!visible.has(c.id as string)) continue\n if (!c.accessor) out.add(c.id as string)\n for (const f of c.fields ?? []) out.add(f)\n }\n for (const f of extra) out.add(f)\n return [...out]\n}\n\nexport function useDataTable<Row extends object>(options: UseDataTableOptions<Row>) {\n const ctx = useDataTableContext()\n const rowKey = options.rowKey ?? 'id'\n const rowId = (row: Row) => String(readPath(row, rowKey))\n const prefs = usePreferences(options.id, ctx.preferences, {\n density: 'standard',\n verticalLines: false,\n pageSize: options.pageSize ?? 100,\n defaultViewId: null,\n })\n const system = options.views ?? []\n // Görünüm verilmediyse (ne `state` ne `initialState`) açılış görünümü pakette seçilir (04 §7): kullanıcı varsayılanı →\n // system default → ilk system. Filtresi, sıralaması ve sütunları başlangıç durumu olur; kişisel varsayılan liste gelince.\n const [opening] = useState(() => {\n const id = options.state?.view !== undefined ? options.state.view : options.initialState?.view\n const given = id !== undefined\n return {\n auto: !given,\n view: given ? null : defaultView(system, prefs.prefs.defaultViewId),\n // Dışarıdan gelen görünümün filtresi ve sıralaması olduğu gibi okunur ama sütunları adreste yoktur: system görünümünde\n // hemen, kişiselde liste gelince (useViews) görünümden alınır.\n columns: (given ? system.find((v) => v.id === id) : null)?.state.columns,\n }\n })\n const layout = useColumnLayout({ columns: options.columns, layout: opening.view?.state.columns ?? opening.columns })\n\n // R5: `state`'teki alan dışarıdan, diğerleri içeriden. Uncontrolled sayfa boyutu tercihi izler.\n const [inner, setInner] = useState<Partial<TableState>>(() => {\n const v = opening.view\n return v\n ? { ...options.initialState, view: v.id, filters: v.state.filters ?? [], sort: v.state.sort ?? [] }\n : { ...options.initialState }\n })\n const state: TableState = {\n view: options.state?.view !== undefined ? options.state.view : (inner.view ?? null),\n search: options.state?.search ?? inner.search ?? '',\n filters: options.state?.filters ?? inner.filters ?? [],\n sort: options.state?.sort ?? inner.sort ?? [],\n page: options.state?.page ?? inner.page ?? 1,\n pageSize: options.state?.pageSize ?? inner.pageSize ?? prefs.prefs.pageSize,\n }\n const update = (patch: Partial<TableState>) => {\n const next = { ...state, ...patch }\n setInner(next)\n options.onStateChange?.(next)\n }\n // Açılış görünümü pakette seçildiyse controlled alanlar (ör. adres) onu bir kez öğrenir.\n useEffect(() => {\n const v = opening.view\n if (v) options.onStateChange?.({ ...state, view: v.id, filters: v.state.filters ?? [], sort: v.state.sort ?? [] })\n // Yalnızca açılışta.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // Genişlik değişimi hook'u yeniden çizmez (05 · Resize); \"edited\" için sürükleme bitince bir kez çizilir.\n useSyncExternalStore(layout.subscribeSizing, () => (layout.resizing() ? '' : JSON.stringify(layout.state().widths)))\n const resolve = (p: ViewPatch): ViewState => ({\n filters: p.filters ?? [],\n sort: p.sort ?? [],\n columns: layout.resolve(p.columns),\n })\n const views = useViews({\n tableId: options.id,\n system,\n adapter: ctx.viewsAdapter,\n locale: ctx.locale,\n defaultViewId: prefs.prefs.defaultViewId,\n setDefaultViewId: (id) => prefs.set({ defaultViewId: id }),\n activeId: state.view,\n auto: opening.auto,\n prefsReady: prefs.ready,\n current: { filters: state.filters, sort: state.sort, columns: layout.state() },\n resolve,\n apply: (view, s) => {\n layout.reset(s.columns)\n update({ view, filters: s.filters, sort: s.sort, page: 1 })\n },\n restoreColumns: (columns) => layout.reset(columns),\n })\n\n // Sütun taşımak ya da gizlemek isteği değiştirmez (R4): alanlar yalnızca yeni görünen sütunla, ya da sorgu değişince\n // yeniden kurulur. Önceki isteğin alanları render'lar arasında saklanır.\n const visible = fieldsOf(options.columns, new Set(layout.columns.map((c) => c.id)), rowKey, options.fields)\n const identity = JSON.stringify([state.search, state.filters, state.sort, state.page, state.pageSize])\n const [sent, setSent] = useState({ identity, fields: visible })\n let fields = sent.fields\n if (sent.identity !== identity || visible.some((f) => !sent.fields.includes(f))) {\n fields = visible\n setSent({ identity, fields })\n }\n const request: TableQuery = {\n search: state.search,\n filters: state.filters,\n sort: state.sort,\n page: { number: state.page, size: state.pageSize },\n fields,\n }\n\n // Seçim sayfa kapsamlı (D19): sayfa, sayfa boyutu, filtre, arama ve sıralama değişince temizlenir; refresh'te kalır.\n const [selected, setSelected] = useState({ identity, ids: NONE })\n if (selected.identity !== identity) setSelected({ identity, ids: NONE })\n const selection = selected.identity === identity ? selected.ids : NONE\n\n const client = useListTable({\n columns: options.columns,\n rows: options.rows,\n rowId,\n locale: ctx.locale,\n search: state.search,\n filters: state.filters,\n sort: state.sort,\n page: state.page,\n pageSize: state.pageSize,\n })\n\n return {\n id: options.id,\n columns: options.columns,\n entityName: options.entityName ?? { one: options.id, other: options.id },\n /** Sunucu modunda `useQuery` anahtarına ve isteğe girer (R4). */\n request,\n state,\n /** İstemci modu: verilen tüm satırlar (filtre öncesi). Sunucu modunda undefined. */\n allRows: options.rows,\n /** İstemci modu: sayfadaki satırlar ve toplam. Sunucu modunda undefined. */\n rows: client.rows,\n total: client.total,\n density: options.density ?? prefs.prefs.density,\n /** Uygulama `density` verdiyse kullanıcının seçimi etkisiz; Display'de seçici gösterilmez. */\n densityFixed: options.density !== undefined,\n prefs,\n views,\n /** Görünümün kayıtlı (kısmi) durumu → tam durum (Duplicate dialog'unun özeti). */\n resolveView: (v: { state: ViewPatch }) => resolve(v.state),\n /** Display › Reset: tercihler ve sütun düzeni aktif görünümün kayıtlı haline döner; filtre ve sıralama kalır (04 §8). */\n resetDisplay: () => {\n prefs.reset()\n layout.reset(views.active?.state.columns)\n },\n /** Seçili satır anahtarları (05 §6). Satırların kendisi `DataTable`'ın `onSelectionChange`'inde. */\n selection,\n setSelection: (ids: Record<string, true>) => setSelected({ identity, ids }),\n clearSelection: () => setSelected({ identity, ids: NONE }),\n pageSizes: options.pageSizes ?? PAGE_SIZES,\n count: options.count,\n rowId,\n layout,\n /** Header tıklaması ve ⇧ ile ikincil sıralama; sayfa 1'e döner. */\n toggleSort: (column: string, multi: boolean) => update({ sort: toggleSort(state.sort, column, multi), page: 1 }),\n setSort: (column: string, dir: 'asc' | 'desc' | null) =>\n update({ sort: setSort(state.sort, column, dir), page: 1 }),\n /** Arama ve filtre değişince sayfa 1'e döner (D19). */\n setSearch: (search: string) => update({ search, page: 1 }),\n setFilters: (filters: FilterCondition[]) => update({ filters, page: 1 }),\n /** Filtre ve sıralama tek istekte (telefon Filters › Show results, ⋯ › Sort); sayfa 1. */\n setQuery: (patch: { filters?: FilterCondition[]; sort?: SortRule[] }) => update({ ...patch, page: 1 }),\n setPage: (page: number) => update({ page }),\n setPageSize: (pageSize: number) => {\n prefs.set({ pageSize })\n update({ pageSize, page: 1 })\n },\n }\n}\n\nexport type DataTableInstance<Row extends object> = ReturnType<typeof useDataTable<Row>>\n","// Dışa aktarma ve pano için hücre değeri (05 §3, 07 §7, 07 §13, D46). Saf fonksiyonlar; kütüphaneye bağlı değil.\nimport type { ColumnDef } from '../../types/columns'\nimport { decimalPlaces, formatCell, isEmptyValue, optionLabel, type FormatEnv } from '../cells/format'\nimport { toDate } from '../format'\n\n/**\n * Düz metin: görüntülenen biçim, ama geri yapıştırılabilir/içe aktarılabilir (07 §7). Para kodu ve \"—\" yok,\n * tarihler ISO, listeler `; ` ile. Pano ve CSV bunu kullanır.\n */\nexport function plainText<Row extends object>(def: ColumnDef<Row>, row: Row, value: unknown, env: FormatEnv): string {\n if (isEmptyValue(value)) return ''\n switch (def.type) {\n case 'currency':\n return env.fmt.decimal(Number(value), decimalPlaces(def))\n case 'date':\n case 'datetime':\n return value instanceof Date ? value.toISOString() : String(value)\n case 'multiselect':\n return (value as unknown[]).map((v) => optionLabel(def.options, v)).join('; ')\n case 'string':\n case 'text':\n case 'uppercase':\n case 'lowercase':\n case 'email':\n case 'url':\n case 'phone':\n case 'id':\n return String(value)\n default:\n return formatCell(def, row, value, env)\n }\n}\n\n/** write-excel-file hücresi (stil hariç). */\nexport interface XlsxCell {\n value: string | number | Date | null\n type?: StringConstructor | NumberConstructor | DateConstructor\n format?: string\n}\n\n/** Yerel ayarın gün/ay/yıl sırası Excel biçimi olarak: tr → `dd.mm.yyyy`, en → `mm/dd/yyyy`. Yerel ayar başına bir kez. */\nconst patterns = new Map<string, string>()\nexport function datePattern(locale: string): string {\n let p = patterns.get(locale)\n if (p === undefined) {\n const parts = new Intl.DateTimeFormat(locale, { year: 'numeric', month: '2-digit', day: '2-digit' }).formatToParts(\n new Date(2026, 9, 24),\n )\n const CODE: Partial<Record<Intl.DateTimeFormatPartTypes, string>> = { year: 'yyyy', month: 'mm', day: 'dd' }\n p = parts.map((x) => CODE[x.type] ?? x.value).join('')\n patterns.set(locale, p)\n }\n return p\n}\n\nconst decimals = (dp: number) => (dp > 0 ? `#,##0.${'0'.repeat(dp)}` : '#,##0')\n\n/**\n * Excel kütüphanesi Date'i UTC'den seri sayıya çevirir; hücrenin duvar saatini korumak için yerel bileşenler UTC'ye\n * yazılır (aksi halde UTC+3'te 24 Ekim gece yarısı 23 Ekim olur).\n */\nconst wallClock = (d: Date) =>\n new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds()))\n\n/**\n * Excel hücresi: sayılar ve tarihler tipli (Excel'de hesaplanabilir, biçimi Excel verir), seçenekler etiketiyle,\n * boolean Yes/No; geri içe aktarılınca aynı değere döner (07 §13).\n */\nexport function xlsxCell<Row extends object>(def: ColumnDef<Row>, row: Row, value: unknown, env: FormatEnv): XlsxCell {\n if (isEmptyValue(value)) return { value: null }\n switch (def.type) {\n case 'int':\n case 'star':\n return { value: Number(value), type: Number, format: '#,##0' }\n case 'float':\n return { value: Number(value), type: Number, format: decimals(decimalPlaces(def)) }\n case 'percentage':\n // Değer 20 = %20 (03); geri içe aktarılınca 20 kalsın diye bölünmez, işaret biçimde.\n return { value: Number(value), type: Number, format: `${decimals(decimalPlaces(def))}\"%\"` }\n case 'currency': {\n const code = typeof def.currency === 'string' ? ` \"${def.currency}\"` : ''\n return { value: Number(value), type: Number, format: decimals(decimalPlaces(def)) + code }\n }\n case 'date':\n case 'datetime': {\n const d = toDate(value as string | Date)\n if (Number.isNaN(d.getTime())) return { value: String(value), type: String }\n const day = datePattern(env.i18n.locale)\n return { value: wallClock(d), type: Date, format: def.type === 'date' ? day : `${day} hh:mm` }\n }\n default: {\n const text = plainText(def, row, value, env)\n return { value: text === '' ? null : text, type: String }\n }\n }\n}\n\n/** Seçenek listesi Excel'de açılır liste olur (seçenek sayfasından, D46): yalnızca tek değerli, sabit seçenekli sütunlar. */\nexport function listOptions<Row extends object>(def: ColumnDef<Row>, env: FormatEnv): string[] | null {\n if (def.type === 'select') return def.options.map((o) => o.label)\n if (def.type === 'boolean') return [env.i18n.t('common.yes'), env.i18n.t('common.no')]\n return null\n}\n","// Yerleşik dışa aktarma (D46): .xlsx `write-excel-file` ile (peer, ilk kullanımda yüklenir), .csv elle. Paket ekranda\n// görünen sütun ve satırları yazar; uygulama `onExport` verirse bu yol hiç çalışmaz.\nimport type { ColumnDef } from '../../types/columns'\nimport type { FormatEnv } from '../cells/format'\nimport { listOptions, plainText, xlsxCell } from './cells'\n\nexport interface ExportJob<Row extends object> {\n format: 'csv' | 'xlsx'\n columns: Array<ColumnDef<Row>>\n rows: Row[]\n /** Hücre değeri (accessor ya da satır yolu). */\n read: (row: Row, def: ColumnDef<Row>) => unknown\n env: FormatEnv\n /** Dosya ve sayfa adı (uzantısız). */\n name: string\n}\n\n// 02 · Dışa aktarma (Excel): dosya her zaman açık temada.\nconst HEADER = {\n fontWeight: 'bold',\n textColor: '#15171C',\n backgroundColor: '#E8EAEE',\n borderColor: '#B4B9C2',\n borderStyle: 'thin',\n alignVertical: 'center',\n} as const\n\n/** Yazı boyutu (pt), tüm hücreler; Excel varsayılanı 11. Genişlik hesabı buna göre ölçeklenir. */\nconst FONT_PT = 16\n\n/** Excel sayfa adı: en çok 31 karakter, `[]:*?/\\` yok. */\nexport const sheetName = (s: string) => s.replace(/[[\\]:*?/\\\\]/g, ' ').slice(0, 31) || 'Sheet1'\n\n/**\n * Sütun genişliği: başlık ve ilk 200 satırın en uzunu, 8–60 karakter. Excel genişliği 11 pt karakter cinsinden\n * ölçtüğü için yazı boyutu oranında büyütülür.\n */\nfunction widthOf(texts: string[]): number {\n let w = 0\n for (const t of texts) w = Math.max(w, ...t.split('\\n').map((l) => l.length))\n return Math.round(Math.min(60, Math.max(8, w + 2)) * (FONT_PT / 11))\n}\n\nexport function toCsv<Row extends object>(job: ExportJob<Row>): string {\n // Ondalık ayırıcı virgülse (tr, de …) Excel `;` bekler.\n const sep = job.env.fmt.decimal(1.5, 1).includes(',') ? ';' : ','\n const esc = (t: string) => (t.includes(sep) || /[\"\\r\\n]/.test(t) ? `\"${t.replace(/\"/g, '\"\"')}\"` : t)\n const lines = [\n job.columns.map((c) => esc(c.header)),\n ...job.rows.map((r) => job.columns.map((c) => esc(plainText(c, r, job.read(r, c), job.env)))),\n ]\n return lines.map((l) => l.join(sep)).join('\\r\\n')\n}\n\nexport async function toXlsx<Row extends object>(job: ExportJob<Row>): Promise<Blob> {\n const [{ default: writeXlsxFile }, util] = await Promise.all([\n import('write-excel-file/browser'),\n import('write-excel-file/utility'),\n ])\n const { columns, rows, env } = job\n const data = [\n columns.map((c) => ({ value: c.header, ...HEADER })),\n ...rows.map((r) => columns.map((c) => xlsxCell(c, r, job.read(r, c), env))),\n ]\n const sample = rows.slice(0, 200)\n const widths = columns.map((c) => ({\n width: widthOf([c.header, ...sample.map((r) => plainText(c, r, job.read(r, c), env))]),\n }))\n\n // Seçimli sütunlar: seçenekler ikinci sayfada birer sütun (görünür); içerik sayfasında hücre o listeden seçilir.\n const listed = columns.flatMap((c, i) => {\n const values = listOptions(c, env)\n return values ? [{ column: i + 1, header: c.header, values }] : []\n })\n const optionsName = sheetName(env.i18n.t('export.optionsSheet'))\n const ref = `'${optionsName.replace(/'/g, \"''\")}'`\n const validations = rows.length\n ? listed.map((l, j) => {\n const col = util.getCellAddress(0, j).replace(/\\d+$/, '')\n const range = util.getCellAddress(1, l.column - 1) + ':' + util.getCellAddress(rows.length, l.column - 1)\n return (\n `<dataValidation type=\"list\" allowBlank=\"1\" showErrorMessage=\"1\" sqref=\"${range}\">` +\n `<formula1>${util.sanitizeTextContent(`${ref}!$${col}$2:$${col}$${l.values.length + 1}`)}</formula1>` +\n `</dataValidation>`\n )\n })\n : []\n const optionRows = Math.max(0, ...listed.map((l) => l.values.length))\n const optionsData = [\n listed.map((l) => ({ value: l.header, ...HEADER })),\n ...Array.from({ length: optionRows }, (_, i) => listed.map((l) => ({ value: l.values[i] ?? null }))),\n ]\n\n const feature = {\n files: {\n transform: {\n 'xl/worksheets/sheet{id}.xml': {\n transform: (xml: string, _o: unknown, p: { sheetIndex: number }) => {\n if (p.sheetIndex !== 0 || !validations.length) return xml\n const order = util.getOrderOfSiblings('xl/worksheets/sheet{id}.xml', 'worksheet')!\n const markup = `<dataValidations count=\"${validations.length}\">${validations.join('')}</dataValidations>`\n return util.insertElementMarkupAccordingToOrderOfSiblings(xml, markup, order, 'worksheet')\n },\n },\n },\n },\n }\n\n const main = { sheet: sheetName(job.name), data, columns: widths, stickyRowsCount: 1 }\n const sheets = listed.length\n ? [\n main,\n {\n sheet: optionsName,\n data: optionsData,\n columns: listed.map((l) => ({ width: widthOf([l.header, ...l.values]) })),\n },\n ]\n : [main]\n // Kütüphanenin tipleri dar (stil birleşimi, feature imzası); yapı README'deki sözleşmeye uyar.\n return writeXlsxFile(sheets as never, { features: [feature], fontSize: FONT_PT } as never).toBlob()\n}\n\nfunction download(blob: Blob, fileName: string) {\n const a = document.createElement('a')\n a.href = URL.createObjectURL(blob)\n a.download = fileName\n a.click()\n setTimeout(() => URL.revokeObjectURL(a.href), 1000)\n}\n\nexport async function exportFile<Row extends object>(job: ExportJob<Row>): Promise<void> {\n const blob =\n job.format === 'csv'\n ? // BOM: Excel UTF-8'i (Türkçe karakterler) ancak böyle tanır.\n new Blob(['' + toCsv(job)], { type: 'text/csv;charset=utf-8' })\n : await toXlsx(job)\n download(blob, `${job.name}.${job.format}`)\n}\n","// `ajax` ve `user` hücreleri için etiket önbelleği: id'ler toplanır, bir mikro görevde tek `resolve` çağrısıyla çözülür (03).\n// Çözülene kadar ham değer görünür; çözülünce `version` artar, ızgara `useSyncExternalStore` ile yeniden çizer.\nimport type { OptionDef, RemoteOptions } from '../../types/columns'\n\nexport class RemoteLabels {\n private readonly cache = new Map<string, Map<string | number, OptionDef>>()\n private readonly pending = new Map<string, { remote: RemoteOptions; ids: Set<string | number> }>()\n private readonly inFlight = new Map<string, Set<string | number>>()\n private scheduled = false\n private readonly listeners = new Set<() => void>()\n /** Her çözümde artar. */\n version = 0\n\n readonly subscribe = (listener: () => void): (() => void) => {\n this.listeners.add(listener)\n return () => this.listeners.delete(listener)\n }\n readonly getVersion = (): number => this.version\n\n option(columnId: string, remote: RemoteOptions | undefined, id: string | number): OptionDef | undefined {\n const hit = this.cache.get(columnId)?.get(id)\n if (hit || !remote) return hit\n if (!this.inFlight.get(columnId)?.has(id)) {\n let p = this.pending.get(columnId)\n if (!p) this.pending.set(columnId, (p = { remote, ids: new Set() }))\n p.ids.add(id)\n this.schedule()\n }\n return undefined\n }\n\n label(columnId: string, remote: RemoteOptions | undefined, id: string | number): string {\n return this.option(columnId, remote, id)?.label ?? String(id)\n }\n\n /** Testler ve uygulama için: dış kaynaktan gelen etiketleri doğrudan yaz. */\n seed(columnId: string, options: OptionDef[]) {\n let m = this.cache.get(columnId)\n if (!m) this.cache.set(columnId, (m = new Map()))\n for (const o of options) m.set(o.value, o)\n this.version++\n for (const l of this.listeners) l()\n }\n\n private schedule() {\n if (this.scheduled) return\n this.scheduled = true\n queueMicrotask(() => {\n this.scheduled = false\n for (const [columnId, { remote, ids }] of this.pending) {\n this.pending.delete(columnId)\n const batch = [...ids]\n let flight = this.inFlight.get(columnId)\n if (!flight) this.inFlight.set(columnId, (flight = new Set()))\n batch.forEach((id) => flight.add(id))\n remote\n .resolve(batch, { signal: new AbortController().signal })\n .then((options) => this.seed(columnId, options))\n .catch(() => {\n /* ham değer görünür kalır; yeniden deneme uygulamanın (D18) */\n })\n .finally(() => batch.forEach((id) => flight.delete(id)))\n }\n })\n }\n}\n","// Column picker (04 §2, handoff 03 §3.2, T2-01): arama (odaklı) + Filtered (\"opens its chip\", D2) · Suggested (≤ 4) · All\n// columns. Base UI Combobox: yazı alanı popup'ın içinde, ↑↓ ile gezinme, Enter seçer.\nimport { Combobox } from '@base-ui/react/combobox'\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react'\nimport { useRef, useState, type ReactElement } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport { typeLabelKey } from '../cells/specs'\nimport { useDataTableContext } from '../provider'\nimport type { Chip } from './model'\nimport { TYPE_ICONS } from './type-icons'\n\nexport function ColumnPicker({\n columns,\n chips,\n trigger,\n open,\n onOpenChange,\n onPick,\n}: {\n /** Yalnızca filtrelenebilir sütunlar. */\n columns: ColumnDef[]\n chips: Chip[]\n trigger: ReactElement\n open?: boolean\n onOpenChange?: (open: boolean) => void\n onPick: (columnId: string) => void\n}) {\n const { i18n } = useDataTableContext()\n const [inner, setInner] = useState(false)\n const isOpen = open ?? inner\n const setOpen = (o: boolean) => {\n setInner(o)\n onOpenChange?.(o)\n }\n const [q, setQ] = useState('')\n // Seçimle kapanınca odak tetikleyiciye dönmez: açılan çip editörü alır (08 §2 · Popover). Esc'te döner.\n const picked = useRef(false)\n\n const needle = q.toLocaleLowerCase()\n const match = (c: ColumnDef) => !q || c.header.toLocaleLowerCase().includes(needle)\n const chipped = new Set(chips.map((c) => c.column))\n const filtered = chips\n .map((ch) => columns.find((c) => c.id === ch.column))\n .filter((c): c is ColumnDef => !!c && match(c))\n const suggested = columns.filter((c) => c.suggested && !chipped.has(c.id as string) && match(c)).slice(0, 4)\n const taken = new Set([...chipped, ...suggested.map((c) => c.id as string)])\n const rest = columns.filter((c) => !taken.has(c.id as string) && match(c))\n const typeHint = (c: ColumnDef) => i18n.t(typeLabelKey(c.type))\n const groups = [\n { key: 'filtered', label: i18n.t('picker.filtered'), items: filtered, hint: () => i18n.t('picker.filteredHint') },\n { key: 'suggested', label: i18n.t('picker.suggested'), items: suggested, hint: typeHint },\n { key: 'all', label: i18n.t('picker.allColumns'), items: rest, hint: typeHint },\n ].filter((g) => g.items.length)\n\n return (\n <Combobox.Root<string>\n open={isOpen}\n onOpenChange={(o) => {\n setOpen(o)\n if (!o) setQ('')\n }}\n value={null}\n onValueChange={(id) => {\n if (typeof id !== 'string') return\n picked.current = true\n setOpen(false)\n setQ('')\n onPick(id)\n }}\n inputValue={q}\n onInputValueChange={(v) => setQ(v)}\n filter={null}\n autoHighlight\n >\n <Combobox.Trigger render={trigger} />\n <Combobox.Portal>\n <Combobox.Positioner className=\"dt-positioner\" align=\"start\" sideOffset={4}>\n <Combobox.Popup\n className=\"dt-pop dt-picker\"\n finalFocus={() => {\n const keep = !picked.current\n picked.current = false\n return keep\n }}\n >\n <label className=\"dt-input has-icon dt-picker-search\">\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={14} aria-hidden=\"true\" />\n </span>\n <Combobox.Input placeholder={i18n.t('picker.search')} aria-label={i18n.t('picker.search')} />\n </label>\n <Combobox.List className=\"dt-picker-list\" aria-label={i18n.t('display.columns')}>\n {groups.map((g) => (\n <Combobox.Group key={g.key}>\n <Combobox.GroupLabel className=\"dt-pop-label\">{g.label}</Combobox.GroupLabel>\n {g.items.map((c) => {\n const Icon = TYPE_ICONS[c.type]\n return (\n <Combobox.Item key={c.id as string} value={c.id as string} className=\"dt-picker-item\">\n <Icon size={14} aria-hidden=\"true\" />\n <span className=\"dt-picker-name\">{c.header}</span>\n <span className=\"dt-picker-hint\">{g.hint(c)}</span>\n </Combobox.Item>\n )\n })}\n </Combobox.Group>\n ))}\n </Combobox.List>\n {groups.length === 0 && <div className=\"dt-options-empty\">{i18n.t('picker.noMatch')}</div>}\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n )\n}\n","// Paketin menü dili (handoff 02-ortak): Base UI Menu + `dt-menu` sınıfları. Vue'daki reka DropdownMenu'nün karşılığı;\n// Base UI de vurgulu ve pasif öğeyi `data-highlighted` / `data-disabled` ile işaretler, ui.css aynen geçerli.\nimport { Menu } from '@base-ui/react/menu'\nimport type { ReactElement, ReactNode } from 'react'\n\nexport function DtMenu({\n trigger,\n children,\n open,\n onOpenChange,\n className,\n finalFocus,\n align = 'end',\n side,\n offset,\n}: {\n /** Tetikleyici öğe (düğme); Base UI ona aria ve olay işleyicilerini ekler. */\n trigger: ReactElement\n children: ReactNode\n open?: boolean\n onOpenChange?: (open: boolean) => void\n className?: string\n /** false: kapanınca odak tetikleyiciye dönmez (ör. menü bir editör açtıysa); fonksiyon kapanışta karar verir. */\n finalFocus?: boolean | (() => boolean)\n align?: 'start' | 'end'\n /** Görünüm satırının ⋯ menüsü sağa, yüzer bulk bar'ın ⋯ menüsü yukarı açılır. */\n side?: 'right' | 'top'\n /** Varsayılan: sağa 8, start 6, end 4. */\n offset?: number\n}) {\n return (\n <Menu.Root open={open} onOpenChange={onOpenChange ? (o) => onOpenChange(o) : undefined}>\n <Menu.Trigger render={trigger} />\n <Menu.Portal>\n <Menu.Positioner\n className=\"dt-positioner\"\n side={side}\n align={align}\n sideOffset={offset ?? (side === 'right' ? 8 : align === 'start' ? 6 : 4)}\n >\n <Menu.Popup className={className ? `dt-menu ${className}` : 'dt-menu'} finalFocus={finalFocus}>\n {children}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n )\n}\n\nexport function DtMenuItem({\n children,\n onSelect,\n disabled,\n destructive,\n selected,\n twoLine,\n}: {\n children: ReactNode\n onSelect: () => void\n disabled?: boolean\n destructive?: boolean\n selected?: boolean\n /** Etiket altında açıklama / gerekçe satırı (D36). */\n twoLine?: boolean\n}) {\n const cls = ['dt-menu-item', destructive && 'is-destructive', selected && 'is-selected', twoLine && 'is-two-line']\n return (\n <Menu.Item className={cls.filter(Boolean).join(' ')} disabled={disabled} onClick={onSelect}>\n {children}\n </Menu.Item>\n )\n}\n\nexport const DtMenuSeparator = () => <Menu.Separator className=\"dt-menu-sep\" />\n\nexport const DtMenuLabel = ({ children }: { children: ReactNode }) => (\n <Menu.Group>\n <Menu.GroupLabel className=\"dt-menu-label\">{children}</Menu.GroupLabel>\n </Menu.Group>\n)\n","// Filtre çipi (04 §3, handoff 02 §5): `[ikon] Alan · operatör · değer │ ×`, iki tıklama hedefi. Gövde değer popover'ını\n// açar (üstte operatör menüsü, tipe göre editör, altta durum + Clear); `boolean`'da popover yok, tıklama Yes ↔ No.\nimport { Popover } from '@base-ui/react/popover'\nimport { CaretDownIcon, CheckIcon, XIcon } from '@phosphor-icons/react'\nimport { Fragment, useRef } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport { ME, type FilterOp } from '../../types/query'\nimport { Avatar } from '../cells/render-cell'\nimport type { RemoteLabels } from '../cells/remote-labels'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\nimport { changeOperator, editorOf, isComplete, opLabel, operatorsOf, shapeOf, type Chip, type Summary } from './model'\nimport { TYPE_ICONS } from './type-icons'\nimport { ValueEditor } from './value-editor'\n\nexport function FilterChip({\n chip,\n column,\n editing,\n summary,\n rows,\n labels,\n currencies,\n onChange,\n onEditing,\n onRemove,\n onOpen,\n}: {\n chip: Chip\n column: ColumnDef\n editing: boolean\n summary: Summary\n rows: object[]\n labels: RemoteLabels\n currencies: string[]\n onChange: (chip: Chip) => void\n onEditing: (open: boolean) => void\n onRemove: () => void\n /** Telefon çipi (handoff 04 §3): operatör ve × yok; tamamı tek düğme, Filters alt sayfasını açar. */\n onOpen?: () => void\n}) {\n const { i18n } = useDataTableContext()\n const type = column.type\n const Icon = TYPE_ICONS[type]\n const shape = shapeOf(chip.op, type)\n const complete = isComplete(chip, type)\n const count = Array.isArray(chip.value) ? chip.value.length : 1\n const opText = opLabel(i18n, chip.op, type, count)\n const tip = summary.full && summary.full !== summary.text ? summary.full : undefined\n const aria = complete\n ? i18n.t('filter.valueAria', { column: column.header, op: opText, value: summary.text })\n : i18n.t('filter.chooseValueAria', { column: column.header, op: opText, value: i18n.t('filter.selectValue') })\n const editor = editorOf(chip.op, type)\n const status =\n editor === 'options' && Array.isArray(chip.value) && chip.value.length\n ? i18n.t('option.selected', { count: chip.value.length })\n : shape === 'range'\n ? i18n.t('number.boundsIncluded')\n : ''\n\n const update = (patch: Partial<Chip>) => onChange({ ...chip, ...patch })\n const setOp = (op: FilterOp) => onChange(changeOperator(chip, op, type))\n const close = () => onEditing(false)\n // Açılınca odak editörün ilk alanına (08 §2 · Popover); Base UI varsayılanı üstteki operatör düğmesini seçerdi.\n const body = useRef<HTMLDivElement>(null)\n // Kapanınca odak çip gövdesine (Esc, Enter): editör seçiciden açıldıysa \"önceki odak\" artık yok. Fareyle dışarı\n // tıklanınca odak tıklanan yerde kalır.\n const trigger = useRef<HTMLButtonElement>(null)\n\n const head = (\n <>\n <Icon size={14} className=\"dt-chip-icon\" aria-hidden=\"true\" />\n {/* Boşluklar görünmez (flex) ama metni \"Status is Draft\" yapar: erişilebilir ad görünen metni içermeli (WCAG 2.5.3). */}\n <span className=\"dt-chip-field\">{column.header}</span> <span className=\"dt-chip-op\">{opText}</span>{' '}\n </>\n )\n const people = complete ? (summary.people?.slice(0, 3) ?? []) : []\n\n const content = editor && (\n <ValueEditor\n chip={chip}\n column={column}\n rows={rows}\n labels={labels}\n currencies={currencies}\n onChange={onChange}\n onDone={close}\n />\n )\n\n const cls = ['dt-chip', editing && 'is-editing', !complete && 'is-incomplete', onOpen && 'is-phone']\n return (\n <span className={cls.filter(Boolean).join(' ')} data-col={chip.column}>\n {onOpen ? (\n <button\n type=\"button\"\n className=\"dt-chip-body\"\n aria-label={i18n.t('mobile.chipAria', { summary: `${column.header} ${opText} ${summary.text}`.trim() })}\n onClick={onOpen}\n >\n <Icon size={14} className=\"dt-chip-icon\" aria-hidden=\"true\" />\n <span className=\"dt-chip-field\">{column.header}</span> <span className=\"dt-chip-op\">{opText}</span>{' '}\n <span className=\"dt-chip-value\">{summary.text}</span>\n </button>\n ) : type === 'boolean' ? (\n <button\n type=\"button\"\n className=\"dt-chip-body\"\n aria-label={aria}\n onClick={() => update({ value: chip.value !== true })}\n >\n {head}\n <span className=\"dt-chip-value\">{summary.text}</span>\n </button>\n ) : (\n <Popover.Root open={editing} onOpenChange={(o) => onEditing(o)}>\n <Popover.Trigger ref={trigger} className=\"dt-chip-body\" aria-label={aria}>\n {head}\n {shape !== 'none' && (\n <span className={complete ? 'dt-chip-value' : 'dt-chip-value is-placeholder'} data-dt-tip={tip}>\n {people.length > 0 && (\n <span className=\"dt-chip-avatars\">\n {people.map((p) => (\n <Avatar key={String(p.value)} user={p} />\n ))}\n </span>\n )}\n {complete ? summary.text : i18n.t('filter.selectValue')}\n </span>\n )}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner className=\"dt-positioner\" align=\"start\" sideOffset={4}>\n <Popover.Popup\n className={`dt-pop dt-chip-pop is-${editor ?? 'none'}`}\n initialFocus={() => body.current?.querySelector<HTMLElement>('input, textarea') ?? true}\n finalFocus={(type) =>\n type === 'mouse' || type === 'touch' || type === 'pen' ? false : trigger.current\n }\n >\n <div className=\"dt-chip-pop-head\">\n <span className=\"dt-chip-pop-field\">{column.header}</span>\n <DtMenu\n align=\"start\"\n className=\"dt-op-menu\"\n trigger={\n <button type=\"button\" className=\"dt-op-btn\">\n {opText}\n <CaretDownIcon size={12} aria-hidden=\"true\" />\n </button>\n }\n >\n {type === 'user' && (\n // \"is me\" operatör değil, kısayol: `in ['@me']` kurar (03).\n <DtMenuItem onSelect={() => onChange({ ...chip, op: 'in', value: [ME] })}>\n {i18n.t('op.isMe')}\n </DtMenuItem>\n )}\n {operatorsOf(column).map((op) => (\n <Fragment key={op}>\n {op === 'is_empty' && <DtMenuSeparator />}\n <DtMenuItem selected={op === chip.op} onSelect={() => setOp(op)}>\n {opLabel(i18n, op, type, count)}\n {op === chip.op && <CheckIcon size={14} className=\"dt-pop-end\" aria-hidden=\"true\" />}\n </DtMenuItem>\n </Fragment>\n ))}\n </DtMenu>\n </div>\n {content && (\n <div ref={body} className=\"dt-chip-pop-body\">\n {content}\n </div>\n )}\n <div className=\"dt-pop-foot\">\n <span>{status}</span>\n <button\n type=\"button\"\n className=\"dt-pop-action\"\n disabled={chip.value === undefined}\n onClick={() => {\n // Devre dışı kalacak düğmeden odak body'ye düşmesin: sıradaki adım yeni değer.\n body.current?.querySelector<HTMLElement>('input, textarea, button')?.focus()\n update({ value: undefined })\n }}\n >\n {i18n.t('common.clear')}\n </button>\n </div>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n )}\n {!onOpen && (\n <button\n type=\"button\"\n className=\"dt-chip-remove\"\n aria-label={i18n.t('filter.removeAria', { column: column.header })}\n onClick={onRemove}\n >\n <XIcon size={12} aria-hidden=\"true\" />\n </button>\n )}\n </span>\n )\n}\n","// Filtre satırı (04 §4, D29): tek satır, çipler → Add filter; sağda Clear all sabit. Sığmayan çipler yatay kayar, sağ\n// kenarda solma; düzenlenen / yeni eklenen çip görünür alana kaydırılır. Add filter kayan alanın dışında: çipler sığarken\n// son çipin yanında, taşınca sağda. Sarma ve `+N more` yok (D2 çip sayısını sınırlar).\nimport { useEffect, useLayoutEffect, useRef, useState, type ReactNode } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport type { RemoteLabels } from '../cells/remote-labels'\nimport { useDataTableContext } from '../provider'\nimport { FilterChip } from './filter-chip'\nimport type { Chip, Summary } from './model'\n\nexport function FilterBar({\n chips,\n defOf,\n editing,\n rows,\n labels,\n summaryOf,\n currenciesOf,\n add,\n onChange,\n onRemove,\n onEditing,\n onClearAll,\n onOpen,\n}: {\n chips: Chip[]\n defOf: (column: string) => ColumnDef\n editing: string | null\n rows: object[]\n labels: RemoteLabels\n summaryOf: (chip: Chip) => Summary\n currenciesOf: (def: ColumnDef) => string[]\n /** Add filter düğmesi (column picker tetikleyicisi). */\n add: ReactNode\n onChange: (chip: Chip) => void\n onRemove: (column: string) => void\n onEditing: (column: string | null) => void\n onClearAll: () => void\n /** Telefon (handoff 04 §3): çipler Filters alt sayfasını açar; Add filter ve Clear all orada. */\n onOpen?: (column: string) => void\n}) {\n const { i18n } = useDataTableContext()\n const row = useRef<HTMLDivElement>(null)\n /** Sütun id'sinde nokta olabilir: seçici yerine dataset karşılaştırması. */\n const chipEl = (column: string | undefined) =>\n column\n ? [...(row.current?.querySelectorAll<HTMLElement>('.dt-chip') ?? [])].find((el) => el.dataset.col === column)\n : undefined\n\n const [scrolledEnd, setScrolledEnd] = useState(false)\n const onScroll = () => {\n const el = row.current\n if (el) setScrolledEnd(el.scrollLeft + el.clientWidth < el.scrollWidth - 1)\n }\n useEffect(() => {\n const el = row.current\n if (!el || typeof ResizeObserver === 'undefined') return\n const ro = new ResizeObserver(onScroll)\n ro.observe(el)\n return () => ro.disconnect()\n }, [])\n const target = editing ?? chips.at(-1)?.column\n useLayoutEffect(() => {\n onScroll()\n chipEl(target)?.scrollIntoView?.({ inline: 'nearest', block: 'nearest' })\n }, [chips.length, target])\n\n // × sonrası odak sonraki çipe, yoksa Add filter'a (04 §3): çip DOM'dan çıktıktan sonra.\n const focusNext = useRef<string | null | undefined>(undefined)\n useEffect(() => {\n if (focusNext.current === undefined) return\n const next = focusNext.current\n focusNext.current = undefined\n const el =\n chipEl(next ?? undefined)?.querySelector<HTMLElement>('.dt-chip-body') ??\n row.current?.parentElement?.querySelector<HTMLElement>('.dt-filter-add')\n el?.focus()\n })\n const remove = (column: string) => {\n const i = chips.findIndex((c) => c.column === column)\n focusNext.current = chips[i + 1]?.column ?? null\n onRemove(column)\n }\n\n return (\n <div className={scrolledEnd ? 'dt-filter-row is-scrolled-end' : 'dt-filter-row'}>\n <div ref={row} className=\"dt-chips\" onScroll={onScroll}>\n {chips.map((c) => (\n <FilterChip\n key={c.column}\n chip={c}\n column={defOf(c.column)}\n editing={editing === c.column}\n summary={summaryOf(c)}\n rows={rows}\n labels={labels}\n currencies={currenciesOf(defOf(c.column))}\n onChange={onChange}\n onEditing={(open) => onEditing(open ? c.column : null)}\n onRemove={() => remove(c.column)}\n onOpen={onOpen && (() => onOpen(c.column))}\n />\n ))}\n </div>\n {!onOpen && (\n <>\n {add}\n <button type=\"button\" className=\"dt-btn dt-btn-ghost dt-filter-clear\" onClick={onClearAll}>\n {i18n.t('filter.clearAll')}\n </button>\n </>\n )}\n </div>\n )\n}\n","// Tek guard (05 §7, 07 §5, brief §5.4): hücredeki etkileşimli öğeye tıklama yalnızca o öğeyi çalıştırır;\n// satır tıklaması, seçim ve düzenleme başlatma tetiklenmez. Geliştirici stopPropagation yazmaz.\n\nexport const INTERACTIVE_SELECTOR =\n 'a[href], button, input, select, textarea, summary, label, [role=\"button\"], [role=\"menuitem\"], [role=\"checkbox\"], [role=\"combobox\"], [role=\"switch\"], [contenteditable=\"true\"]'\n\n/** `target`, `within` içindeki etkileşimli bir öğenin içinde mi? */\nexport function isInteractive(target: EventTarget | null, within: Element): boolean {\n if (!(target instanceof Element)) return false\n const hit = target.closest(INTERACTIVE_SELECTOR)\n return hit !== null && hit !== within && within.contains(hit)\n}\n\n/** Odak alınca kendi ok tuşlarını kullanan öğeler: ızgara bunlara karışmaz. */\nexport const isTextInput = (el: Element | null): boolean =>\n el instanceof HTMLInputElement ||\n el instanceof HTMLTextAreaElement ||\n el instanceof HTMLSelectElement ||\n el?.getAttribute('role') === 'combobox' ||\n (el as HTMLElement | null)?.isContentEditable === true\n\n/** Metin seçimiyle biten tıklama satır tıklaması sayılmaz. */\nexport const hasTextSelection = (): boolean => (globalThis.getSelection?.()?.toString().length ?? 0) > 0\n\n/** Satır tıklaması sayılmayan durumlar: etkileşimli hedef, metin seçimi, sürükleme, değiştirici tuş, sol dışı düğme. */\nexport function isPlainRowClick(\n event: MouseEvent,\n rowEl: Element,\n downPoint: { x: number; y: number } | null,\n): boolean {\n if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return false\n if (isInteractive(event.target, rowEl)) return false\n if (hasTextSelection()) return false\n if (downPoint && Math.hypot(event.clientX - downPoint.x, event.clientY - downPoint.y) > 4) return false\n return true\n}\n","// Platforma göre kısayol gösterimi (08 §3): macOS `⌘ ⌥ ⇧`, diğerleri `Ctrl Alt Shift`.\nexport const mac = typeof navigator !== 'undefined' && /Mac|iPhone|iPad/.test(navigator.platform)\nexport const MOVE_KBD = { left: mac ? '⌥⇧←' : 'Alt+Shift+←', right: mac ? '⌥⇧→' : 'Alt+Shift+→' }\nexport const SAVE_KBD = mac ? '⌘S' : 'Ctrl+S'\nexport const UNDO_KBD = mac ? '⌘Z' : 'Ctrl+Z'\nexport const REDO_KBD = mac ? '⌘⇧Z' : 'Ctrl+Y'\nexport const FIND_KBD = mac ? '⌘F' : 'Ctrl+F'\nexport const FILL_KBD = mac ? '⌘D' : 'Ctrl+D'\nexport const REMOVE_KBD = mac ? '⌘−' : 'Ctrl+−'\n","import type { CSSProperties } from 'react'\nimport type { LayoutColumn } from '../columns/use-column-layout'\n\n/** Sabit hücrenin sticky ofseti: değer kökteki `--dt-off-…` değişkeninde, resize'da React dışında yazılır. */\nexport const pinStyle = <Row extends object>(col: LayoutColumn<Row>): CSSProperties | undefined =>\n col.pinned === 'start'\n ? { left: `var(${col.offsetVar})` }\n : col.pinned === 'end'\n ? { right: `var(${col.offsetVar})` }\n : undefined\n\nexport const pinClasses = <Row extends object>(col: LayoutColumn<Row>): string[] =>\n [\n col.pinned === 'start' && 'is-pinned-start',\n col.pinned === 'end' && 'is-pinned-end',\n col.pinEdge && 'is-pin-edge',\n ].filter((c): c is string => !!c)\n\n/** Orta ile sağ sabit sütunlar arasındaki `auto` dolgu track'i (use-column-layout `cols()`) için bölme noktası. */\nexport const fillIndex = <Row extends object>(columns: Array<LayoutColumn<Row>>): number => {\n const at = columns.findIndex((c) => c.pinned === 'end')\n return at < 0 ? columns.length : at\n}\n","// Header hücresi (05 §4 · Header, T4): etiket düğmesi, birim, sıralama oku, raptiye, ⋯ sütun menüsü, resize tutamacı.\n// Klavye (08 §3): ↵/Space sırala, ⇧F10 menü, ⇧←/→ ±16 px, ⌥⇧←/→ taşı. Filtrelenen sütunda huni çipi açar.\nimport { ArrowUpIcon, DotsThreeIcon, FunnelIcon, PushPinIcon } from '@phosphor-icons/react'\nimport {\n useId,\n useRef,\n useState,\n useSyncExternalStore,\n type KeyboardEvent,\n type MouseEvent,\n type TouchEvent,\n} from 'react'\nimport { alignOf, isNumericType, typeLabelKey } from '../cells/specs'\nimport type { ColumnLayoutApi, LayoutColumn } from '../columns/use-column-layout'\nimport { MOVE_KBD } from '../interaction/kbd'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuLabel, DtMenuSeparator } from '../ui/menu'\nimport { pinStyle } from './pin'\n\nexport interface HeaderSort {\n dir: 'asc' | 'desc'\n /** Çoklu sıralamada öncelik (1 tabanlı); tek sıralamada null. */\n index: number | null\n}\n\nexport function HeaderCell<Row extends object>({\n column,\n layout,\n onMoved,\n sort,\n onSort,\n onSortSet,\n filtered,\n onFilter,\n onColumns,\n}: {\n column: LayoutColumn<Row>\n layout: ColumnLayoutApi<Row>\n /** Taşınan başlığın odağı korunur: ızgara yeni yerindeki etiketi odaklar. */\n onMoved: (id: string) => void\n sort?: HeaderSort\n /** Verilmezse sütun sıralanamaz. */\n onSort?: (additive: boolean) => void\n onSortSet?: (dir: 'asc' | 'desc' | null) => void\n filtered?: boolean\n /** Verilmezse sütun filtrelenemez. Çipi açar, yoksa oluşturur. */\n onFilter?: () => void\n /** Columns dialog'unu açar; odak dönsün diye ⋯ düğmesini verir. Verilmezse menüde yok. */\n onColumns?: (from: HTMLElement | null) => void\n}) {\n const { i18n } = useDataTableContext()\n const def = column.def\n const numeric = isNumericType(def.type)\n const unit = typeof def.unit === 'string' ? def.unit : undefined\n // D33: açıklama tooltip'te ikinci satır, ekran okuyucuya aria-describedby; düğme metnine girmez.\n const descId = useId()\n const tip = def.description ? `${def.header}\\n${def.description}` : def.header\n const [menuOpen, setMenuOpen] = useState(false)\n // Filter by this column… ile kapanınca odak ⋯'ya dönmez: açılan çip editörü alır (08 §2 · Popover).\n const toFilter = useRef(false)\n const menuButton = useRef<HTMLButtonElement>(null)\n // Yalnızca sürüklenen sütunun başlığı yeniden çizilir; diğerleri sabit -1 okur.\n const resizing = useSyncExternalStore(layout.subscribeSizing, () => {\n const r = layout.resizing()\n return r?.id === column.id ? r.size : -1\n })\n\n const move = (delta: -1 | 1) => {\n layout.move(column.id, delta)\n onMoved(column.id)\n }\n\n const onResizeStart = (e: MouseEvent | TouchEvent) => {\n // Sürükleme başlarken çizilen genişlik modele yazılır: minmax sütun ilk harekette zıplamasın.\n const cell = e.currentTarget.parentElement!\n layout.setWidth(column.id, cell.getBoundingClientRect().width)\n column.resizeHandler(e)\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n const k = e.key\n if (k === 'Enter' || k === ' ') {\n if (onSort) {\n e.preventDefault()\n onSort(e.shiftKey)\n }\n return\n }\n if ((k === 'F10' && e.shiftKey) || k === 'ContextMenu') {\n e.preventDefault()\n setMenuOpen(true)\n return\n }\n if ((k === 'ArrowLeft' || k === 'ArrowRight') && e.shiftKey) {\n e.preventDefault()\n const left = k === 'ArrowLeft'\n if (e.altKey) move(left ? -1 : 1)\n else layout.setWidth(column.id, layout.widthOf(column.id) + (left ? -16 : 16))\n }\n }\n\n // ARIA tek sıralama sütunu tanır: çoklu sıralamada yalnızca birincil (04 §6).\n const primarySort = sort && (sort.index ?? 1) === 1 ? sort.dir : undefined\n const ariaSort = primarySort === 'asc' ? 'ascending' : primarySort === 'desc' ? 'descending' : undefined\n const arrow = <ArrowUpIcon size={12} className={sort?.dir === 'desc' ? 'is-desc' : undefined} />\n const index = sort?.index && <span className=\"dt-head-sort-index\">{sort.index}</span>\n const sortMark = (\n <span className=\"dt-head-sort\" aria-hidden=\"true\">\n {numeric ? (\n <>\n {index}\n {arrow}\n </>\n ) : (\n <>\n {arrow}\n {index}\n </>\n )}\n </span>\n )\n\n const cls = [\n 'dt-head-cell',\n `is-${alignOf(def)}`,\n numeric && 'is-numeric',\n sort && 'is-sorted',\n column.pinned === 'start' && 'is-pinned-start',\n column.pinned === 'end' && 'is-pinned-end',\n column.pinEdge && 'is-pin-edge',\n resizing >= 0 && 'is-resizing',\n menuOpen && 'is-menu-open',\n ]\n\n return (\n <div\n className={cls.filter(Boolean).join(' ')}\n style={pinStyle(column)}\n role=\"columnheader\"\n aria-sort={ariaSort}\n data-col={column.id}\n onContextMenu={(e) => {\n e.preventDefault()\n setMenuOpen(true)\n }}\n >\n {filtered && onFilter && (\n <button\n type=\"button\"\n className=\"dt-head-icon dt-head-filtered\"\n aria-label={i18n.t('header.filterBy')}\n onClick={onFilter}\n >\n <FunnelIcon size={14} weight=\"fill\" aria-hidden=\"true\" />\n </button>\n )}\n <button\n type=\"button\"\n className={onSort ? 'dt-head-label' : 'dt-head-label is-static'}\n aria-disabled={onSort ? undefined : 'true'}\n data-dt-tip={tip}\n aria-describedby={def.description ? descId : undefined}\n onClick={(e) => onSort?.(e.shiftKey)}\n onKeyDown={onKeyDown}\n >\n {/* Sayısal sütunda ok metnin solunda: sağa yaslı başlıkta metin kenara oturur. */}\n {sort && numeric && sortMark}\n <span className=\"dt-head-text\">{(layout.phone && def.headerShort) || def.header}</span>\n {unit && <span className=\"dt-head-unit\">{unit}</span>}\n {sort && !numeric && sortMark}\n {column.pinned && <PushPinIcon size={12} className=\"dt-head-pin\" aria-hidden=\"true\" />}\n </button>\n {def.description && (\n <span id={descId} className=\"dt-sr-only\">\n {def.description}\n </span>\n )}\n <DtMenu\n open={menuOpen}\n onOpenChange={setMenuOpen}\n className=\"dt-col-menu\"\n finalFocus={() => {\n const keep = !toFilter.current\n toFilter.current = false\n return keep\n }}\n trigger={\n <button\n ref={menuButton}\n type=\"button\"\n className=\"dt-head-icon dt-head-menu\"\n aria-label={i18n.t('header.optionsAria', { column: def.header })}\n >\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n <DtMenuLabel>{i18n.t(typeLabelKey(def.type))}</DtMenuLabel>\n {onSortSet && (\n <>\n <DtMenuItem onSelect={() => onSortSet('asc')}>{i18n.t('header.sortAsc')}</DtMenuItem>\n <DtMenuItem onSelect={() => onSortSet('desc')}>{i18n.t('header.sortDesc')}</DtMenuItem>\n <DtMenuItem disabled={!sort} onSelect={() => onSortSet(null)}>\n {i18n.t('header.clearSort')}\n </DtMenuItem>\n <DtMenuSeparator />\n </>\n )}\n {onFilter && (\n <>\n <DtMenuItem\n onSelect={() => {\n toFilter.current = true\n onFilter()\n }}\n >\n {i18n.t('header.filterBy')}\n </DtMenuItem>\n <DtMenuSeparator />\n </>\n )}\n <DtMenuItem onSelect={() => move(-1)}>\n {i18n.t('header.moveLeft')}\n <kbd className=\"dt-kbd\">{MOVE_KBD.left}</kbd>\n </DtMenuItem>\n <DtMenuItem onSelect={() => move(1)}>\n {i18n.t('header.moveRight')}\n <kbd className=\"dt-kbd\">{MOVE_KBD.right}</kbd>\n </DtMenuItem>\n <DtMenuSeparator />\n <DtMenuItem disabled={!!column.pinned || !column.canHide} onSelect={() => layout.setVisible(column.id, false)}>\n {i18n.t('header.hide')}\n </DtMenuItem>\n {onColumns && (\n <DtMenuItem onSelect={() => onColumns(menuButton.current)}>{i18n.t('header.columnSettings')}</DtMenuItem>\n )}\n </DtMenu>\n <span className=\"dt-head-sep\" aria-hidden=\"true\" />\n <span className=\"dt-resize\" aria-hidden=\"true\" onMouseDown={onResizeStart} onTouchStart={onResizeStart}>\n {resizing >= 0 && <span className=\"dt-resize-badge\">{Math.round(resizing)} px</span>}\n </span>\n </div>\n )\n}\n","import type { RowAction } from '../../types/list'\n\n/** Satırda inline çizilen aksiyonlar (D36): `inline` + `icon` + `when(row)`; ilk 2. Izgara genişlik için, menü düşmek için kullanır. */\nexport const inlineActionsOf = <Row extends object>(actions: Array<RowAction<Row>>, row: Row): Array<RowAction<Row>> =>\n actions.filter((a) => a.inline && a.icon && (!a.when || a.when(row))).slice(0, 2)\n","// Hücre aksiyonları overlay'i (03 · actions, T7): sağ kenarda ≤ 2 düğme, fazlası ⋯ menüsünde; metin yerleşimi değişmez.\nimport { DotsThreeIcon } from '@phosphor-icons/react'\nimport type { CellAction } from '../../types/columns'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem } from '../ui/menu'\n\ntype Item<Row> = Omit<CellAction<Row>, 'reveal' | 'menu'> & { menu?: Array<Omit<CellAction<Row>, 'reveal' | 'menu'>> }\n\nexport function CellActions<Row extends object>({ actions, row }: { actions: Array<CellAction<Row>>; row: Row }) {\n const { i18n } = useDataTableContext()\n const visible = actions.filter((a) => a.when?.(row) ?? true)\n if (!visible.length) return null\n const always = visible.some((a) => a.reveal === 'always')\n // 2'den çoksa: ilk aksiyon + ⋯ (kalanlar menüde). Tek aksiyonun kendi `menu`'sü ⋯ olarak çizilir.\n const buttons: Array<Item<Row>> = visible.length > 2 ? visible.slice(0, 1) : visible\n const overflow: Array<Item<Row>> = visible.length > 2 ? visible.slice(1) : []\n\n const disabledOf = (a: Item<Row>): string | boolean => a.disabled?.(row) ?? false\n const tipOf = (a: Item<Row>): string => {\n const d = disabledOf(a)\n return typeof d === 'string' ? `${a.label} — ${d}` : a.label\n }\n const run = (a: Item<Row>) => {\n if (!disabledOf(a)) void a.run?.(row)\n }\n const menuItems = (items: Array<Item<Row>>) =>\n items.map((m) => {\n const Icon = m.icon\n return (\n <DtMenuItem key={m.id} destructive={m.destructive} disabled={!!disabledOf(m)} onSelect={() => run(m)}>\n <Icon size={16} aria-hidden=\"true\" />\n {m.label}\n </DtMenuItem>\n )\n })\n\n return (\n <span className={always ? 'dt-cell-actions is-always' : 'dt-cell-actions'}>\n {buttons.map((a) => {\n const Icon = a.icon\n const cls = a.destructive ? 'dt-cell-action is-destructive' : 'dt-cell-action'\n if (a.menu?.length)\n return (\n <DtMenu\n key={a.id}\n className=\"dt-menu-cell\"\n trigger={\n <button type=\"button\" className={cls} aria-label={a.label} data-dt-tip={a.label}>\n <Icon size={14} aria-hidden=\"true\" />\n </button>\n }\n >\n {menuItems(a.menu)}\n </DtMenu>\n )\n return (\n <button\n key={a.id}\n type=\"button\"\n className={cls}\n aria-label={a.label}\n aria-disabled={disabledOf(a) ? 'true' : undefined}\n data-dt-tip={tipOf(a)}\n onClick={() => run(a)}\n >\n <Icon size={14} aria-hidden=\"true\" />\n </button>\n )\n })}\n {overflow.length > 0 && (\n <DtMenu\n className=\"dt-menu-cell\"\n trigger={\n <button\n type=\"button\"\n className=\"dt-cell-action\"\n aria-label={i18n.t('common.more')}\n data-dt-tip={i18n.t('common.more')}\n >\n <DotsThreeIcon size={14} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {menuItems(overflow)}\n </DtMenu>\n )}\n </span>\n )\n}\n","// Satır menüsü (05 §4, handoff 03 §8, T6-03; 268 px): Open ↵ (gerçek <a href>) · Open in new tab · ─ ·\n// uygulamanın `rowActions`'ı (pasif olan gerekçesiyle iki satır; yıkıcı en altta, kırmızı). `run` beklenmez (D20).\nimport { Menu } from '@base-ui/react/menu'\nimport { DotsThreeIcon } from '@phosphor-icons/react'\nimport { Fragment, type MouseEvent } from 'react'\nimport type { RowAction } from '../../types/list'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\nimport { inlineActionsOf } from './inline-actions'\n\nexport function RowMenu<Row extends object>({\n row,\n label,\n href,\n actions,\n onOpen,\n}: {\n row: Row\n /** Birincil hücre metni (aria etiketleri). */\n label: string\n href?: string\n actions: Array<RowAction<Row>>\n onOpen: (event: MouseEvent) => void\n}) {\n const { i18n } = useDataTableContext()\n // `when(row)` false olan yok (D34); satırda inline çizilen menüde yok (D36); yıkıcılar en altta.\n const inline = new Set(inlineActionsOf(actions, row))\n const shown = actions.filter((a) => !inline.has(a) && (!a.when || a.when(row)))\n const ordered = [...shown.filter((a) => !a.destructive), ...shown.filter((a) => a.destructive)]\n // Menüde bir şey yoksa ⋯ çizilmez; hizalama için yeri kalır.\n if (!href && !ordered.length) return <span className=\"dt-row-more-space\" aria-hidden=\"true\" />\n const firstDestructive = ordered.findIndex((a) => a.destructive)\n const subOf = (a: RowAction<Row>): string | null => {\n const d = a.disabled?.(row)\n return typeof d === 'string' ? d : (a.description ?? null)\n }\n const isDisabled = (a: RowAction<Row>) => !!a.disabled?.(row)\n\n return (\n <DtMenu\n className=\"dt-row-menu\"\n trigger={\n <button type=\"button\" className=\"dt-row-more\" aria-label={i18n.t('row.actionsAria', { id: label })}>\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {href && (\n <>\n <Menu.LinkItem\n className=\"dt-menu-item\"\n href={href}\n closeOnClick\n onClick={(e) => {\n // Düz sol tık `onRowOpen`; ⌘/Ctrl, orta ve sağ tık tarayıcıya kalır (D6).\n if (e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey) onOpen(e)\n }}\n >\n {i18n.t('row.open')}\n <kbd className=\"dt-kbd\">↵</kbd>\n </Menu.LinkItem>\n <Menu.LinkItem className=\"dt-menu-item\" href={href} target=\"_blank\" rel=\"noopener\" closeOnClick>\n {i18n.t('row.openNewTab')}\n </Menu.LinkItem>\n </>\n )}\n {href && ordered.length > 0 && <DtMenuSeparator />}\n {ordered.map((a, i) => {\n const Icon = a.icon\n const sub = subOf(a)\n return (\n <Fragment key={a.id}>\n {i > 0 && (a.separatorBefore || i === firstDestructive) && <DtMenuSeparator />}\n <DtMenuItem\n destructive={a.destructive}\n twoLine={!!sub}\n disabled={isDisabled(a)}\n onSelect={() => {\n if (!isDisabled(a)) void a.run(row)\n }}\n >\n {Icon && <Icon size={16} aria-hidden=\"true\" />}\n <span className=\"dt-menu-text\">\n <span>{a.label}</span>\n {sub && <span className=\"dt-menu-sub\">{sub}</span>}\n </span>\n {a.shortcut && <kbd className=\"dt-kbd\">{a.shortcut}</kbd>}\n </DtMenuItem>\n </Fragment>\n )\n })}\n </DtMenu>\n )\n}\n","// Satır + hücreler. Kabuk burada: hizalama, kesme, sabit sütun sticky'si, --dt-row-bg, ikinci satır, aksiyon overlay'i (05 §4, 03);\n// seçim hücresi (40 px, sol sabit), birincil hücrede expand chevron'u, sağ sabit ⋯ hücresi, inline aksiyonlar ve satır hatası\n// (05 §4, §6–7, D28, D35, D36).\nimport { CaretRightIcon, WarningCircleIcon } from '@phosphor-icons/react'\nimport type { CSSProperties, MouseEvent, ReactNode } from 'react'\nimport type { RowAction } from '../../types/list'\nimport { CellActions } from '../cells/cell-actions'\nimport { cellFillStyle, renderCellContent, type RenderEnv } from '../cells/render-cell'\nimport { alignOf, isNumericType } from '../cells/specs'\nimport type { LayoutColumn } from '../columns/use-column-layout'\nimport { readPath } from '../columns/read-path'\nimport { inlineActionsOf } from './inline-actions'\nimport { fillIndex, pinClasses, pinStyle } from './pin'\nimport { RowMenu } from './row-menu'\n\nexport const FillCell = () => <div className=\"dt-cell dt-cell-fill\" role=\"presentation\" aria-hidden=\"true\" />\n\n/** Sütunları çizer, orta ile sağ sabitler arasına dolgu hücresini koyar. */\nexport function withFill<Row extends object>(\n columns: Array<LayoutColumn<Row>>,\n render: (col: LayoutColumn<Row>, i: number) => ReactNode,\n): ReactNode[] {\n const at = fillIndex(columns)\n return [\n ...columns.slice(0, at).map((c, i) => render(c, i)),\n <FillCell key=\"__fill\" />,\n ...columns.slice(at).map((c, i) => render(c, at + i)),\n ]\n}\n\n/** Birincil hücredeki chevron (05 §7): `canExpand` değilse aynı genişlikte boşluk (hizalama). */\ninterface Expand {\n can: boolean\n open: boolean\n controls: string\n label: string\n onToggle: () => void\n}\n\nfunction Cell<Row extends object>({\n col,\n row,\n env,\n secondaryVisible,\n expand,\n lead,\n}: {\n col: LayoutColumn<Row>\n row: Row\n env: RenderEnv\n secondaryVisible: boolean\n expand?: Expand\n /** ⋯ hücresi yokken satır hatası ikonu ilk görünür hücrenin başında. */\n lead?: ReactNode\n}) {\n const def = col.def\n const value = def.accessor ? def.accessor(row) : readPath(row, col.id)\n let content = renderCellContent(def, row, value, env)\n // `id` ve `ajax` linki kendi içeriğinde çizer.\n const href = def.primary && def.type !== 'id' && def.type !== 'ajax' ? def.href?.(row) : undefined\n if (href)\n content = (\n <a className=\"dt-link dt-primary-link\" href={href}>\n {content}\n </a>\n )\n const cls = [\n 'dt-cell',\n `is-${alignOf(def)}`,\n isNumericType(def.type) && 'is-numeric',\n def.primary && 'is-primary',\n (expand || lead) && 'has-expand',\n ...pinClasses(col),\n ]\n const style: CSSProperties = { ...pinStyle(col), ...cellFillStyle(def, value) }\n const main = (\n <>\n <span className=\"dt-cell-content\">{content}</span>\n {secondaryVisible && def.secondary && <span className=\"dt-secondary\">{def.secondary(row) ?? ''}</span>}\n </>\n )\n return (\n <div className={cls.filter(Boolean).join(' ')} style={style} role=\"cell\" data-col={col.id}>\n {expand || lead ? (\n <>\n {!expand ? null : expand.can ? (\n <button\n type=\"button\"\n className={expand.open ? 'dt-expand is-open' : 'dt-expand'}\n aria-expanded={expand.open}\n aria-controls={expand.controls}\n aria-label={env.i18n.t('expand.showAria', { id: expand.label })}\n onClick={expand.onToggle}\n >\n <CaretRightIcon size={14} aria-hidden=\"true\" />\n </button>\n ) : (\n <span className=\"dt-expand-space\" aria-hidden=\"true\" />\n )}\n {lead}\n <span className=\"dt-cell-main\">{main}</span>\n </>\n ) : (\n main\n )}\n {def.actions?.length ? <CellActions actions={def.actions} row={row} /> : null}\n </div>\n )\n}\n\n/** Inline satır aksiyonu (D36): ⋯ ile aynı 28 px düğme; label aria'da, açıklama tooltip'te ve gizli span'da. */\nfunction InlineAction<Row extends object>({ action: a, row, uid }: { action: RowAction<Row>; row: Row; uid: string }) {\n const Icon = a.icon!\n const d = a.disabled?.(row)\n const reason = typeof d === 'string' ? d : null\n const descId = a.description ? `${uid}-${a.id}` : undefined\n return (\n <span className=\"dt-row-inline-wrap\">\n <button\n type=\"button\"\n className=\"dt-row-inline\"\n disabled={!!d}\n aria-label={a.label}\n aria-describedby={descId}\n data-dt-tip={reason ?? (a.description ? `${a.label} — ${a.description}` : a.label)}\n onClick={() => void a.run(row)}\n >\n <Icon size={16} aria-hidden=\"true\" />\n </button>\n {descId && (\n <span id={descId} className=\"dt-sr-only\">\n {a.description}\n </span>\n )}\n </span>\n )\n}\n\n/** Satırın seçim, expand, menü ve hata bağlamı; ızgara verir. */\nexport interface RowExtras<Row extends object> {\n /** Birincil hücre metni: aria etiketleri ve Copy. */\n label: string\n /** Satıra özgü id öneki: hata ikonu ve inline açıklamaları. */\n uid: string\n /** Satır hatası mesajları (D35); boş = yok. */\n error: string[]\n select?: { selected: boolean; edge: boolean; onChange: (value: boolean, shift: boolean) => void }\n expand?: Omit<Expand, 'label'>\n menu?: {\n edge: boolean\n actions: Array<RowAction<Row>>\n href?: string\n onOpen: (event: MouseEvent) => void\n }\n}\n\nexport function Row<Row extends object>({\n row,\n index,\n rowIndex,\n columns,\n env,\n extras,\n}: {\n row: Row\n index: number\n /** aria-rowindex: header 1, ilk satır 2. */\n rowIndex: number\n columns: Array<LayoutColumn<Row>>\n env: RenderEnv\n extras?: RowExtras<Row>\n}) {\n // Comfortable: `secondary` görünür (02 · Yoğunluk).\n const secondaryVisible = env.density === 'comfortable'\n const sel = extras?.select\n const menu = extras?.menu\n const expand = extras?.expand && { ...extras.expand, label: extras.label }\n const error = extras?.error ?? []\n const tip = error.join('\\n')\n const errorId = `${extras?.uid}-err`\n const errorIcon = error.length > 0 && (\n <span id={errorId} className=\"dt-row-error\" role=\"img\" aria-label={tip} data-dt-tip={tip}>\n <WarningCircleIcon size={14} weight=\"fill\" aria-hidden=\"true\" />\n </span>\n )\n const cls = ['dt-row', sel?.selected && 'is-selected', expand?.open && 'is-expanded', error.length && 'is-error']\n return (\n <div\n className={cls.filter(Boolean).join(' ')}\n role=\"row\"\n aria-rowindex={rowIndex}\n aria-describedby={errorIcon ? errorId : undefined}\n // Satırın tamamı tooltip anchor'ı: hatalı satırda nereye gelinirse gelinsin mesaj görünür (05 §4).\n data-dt-tip={tip || undefined}\n data-index={index}\n >\n {sel && (\n // 40 px'in tamamı tıklanır; ⇧ aralığı ızgarada.\n <label\n className={\n sel.edge ? 'dt-cell dt-cell-select is-pinned-start is-pin-edge' : 'dt-cell dt-cell-select is-pinned-start'\n }\n style={{ left: 0 }}\n role=\"cell\"\n >\n <input\n type=\"checkbox\"\n className=\"dt-checkbox dt-select-box\"\n checked={sel.selected}\n aria-label={env.i18n.t('row.selectAria', { id: extras.label })}\n onChange={(e) => sel.onChange(e.target.checked, (e.nativeEvent as globalThis.MouseEvent).shiftKey === true)}\n />\n </label>\n )}\n {withFill(columns, (col) => (\n <Cell\n key={col.id}\n col={col}\n row={row}\n env={env}\n secondaryVisible={secondaryVisible}\n expand={col.def.primary ? expand : undefined}\n lead={!menu && col.id === columns[0]?.id ? errorIcon : undefined}\n />\n ))}\n {menu && (\n <div\n className={\n menu.edge ? 'dt-cell dt-cell-menu is-pinned-end is-pin-edge' : 'dt-cell dt-cell-menu is-pinned-end'\n }\n style={{ right: 0 }}\n role=\"cell\"\n >\n {errorIcon}\n {inlineActionsOf(menu.actions, row).map((a) => (\n <InlineAction key={a.id} action={a} row={row} uid={extras.uid} />\n ))}\n <RowMenu row={row} label={extras.label} href={menu.href} actions={menu.actions} onOpen={menu.onOpen} />\n </div>\n )}\n </div>\n )\n}\n","// Yükleme iskeleti (03 · Skeleton, T8-02): tipe göre biçim; metin çubuğu satırdan satıra %55–80 arası değişir.\nimport { TYPE_SPECS, alignOf } from '../cells/specs'\nimport type { LayoutColumn } from '../columns/use-column-layout'\nimport { pinClasses, pinStyle } from './pin'\nimport { withFill } from './row'\n\nconst WIDTHS = [72, 58, 80, 64, 55, 76, 61, 69]\n\nexport function SkeletonRow<Row extends object>({\n index,\n columns,\n}: {\n index: number\n columns: Array<LayoutColumn<Row>>\n}) {\n return (\n <div className=\"dt-row dt-row-skeleton\" role=\"row\" aria-hidden=\"true\">\n {withFill(columns, (col, i) => {\n const shape = TYPE_SPECS[col.def.type].skeleton\n const width = `${WIDTHS[(index + i) % WIDTHS.length]}%`\n const cls = ['dt-cell', `is-${alignOf(col.def)}`, ...pinClasses(col)].join(' ')\n return (\n <div key={col.id} className={cls} style={pinStyle(col)} role=\"cell\">\n {shape === 'person' ? (\n <>\n <span className=\"dt-sk dt-sk-circle\" />\n <span className=\"dt-sk dt-sk-bar\" style={{ width }} />\n </>\n ) : shape === 'badge' ? (\n <span className=\"dt-sk dt-sk-pill\" />\n ) : shape === 'number' ? (\n <span className=\"dt-sk dt-sk-bar dt-sk-num\" />\n ) : (\n <span className=\"dt-sk dt-sk-bar\" style={{ width }} />\n )}\n </div>\n )\n })}\n </div>\n )\n}\n","'use no memo'\n// R11: Virtualizer örneği kendini değiştirerek çalışır; derleyici onu önbelleğe alırsa satırlar kaymaz. Bu dosya\n// derleyicinin dışındadır ve her render'da düz veri döner, onu kullanan ızgara derlenmeye devam eder.\nimport { useVirtualizer, type Range } from '@tanstack/react-virtual'\nimport { useLayoutEffect, type RefObject } from 'react'\n\nexport interface VirtualRowsOptions {\n count: number\n scrollRef: RefObject<HTMLElement | null>\n /** Satır yüksekliği + 1 px alt kenarlık (02). */\n itemHeight: number\n /** Sticky header akış içinde: sanal öğeler header kadar aşağıda başlar, header görünür alanın üstünü örter (08 §2). */\n headHeight: number\n /** Yatay kaydırma çubuğu görünür alanın altını örter. */\n barHeight: number\n keyOf: (index: number) => string\n /** Odaktaki widget'ın satırı (−1 yok): kaydırınca DOM'dan çıkmaz, odak kaybolmaz (08 §2). */\n keepIndex: number\n /** Değişince ölçüm önbelleği sıfırlanır (sorgu / sayfa: açık detaylar kapandı, 05 §7). */\n resetKey?: string\n}\n\nexport function useVirtualRows(o: VirtualRowsOptions) {\n // eslint-disable-next-line react-hooks/incompatible-library -- dosya derleyicinin dışında (\"use no memo\")\n const v = useVirtualizer({\n count: o.count,\n getScrollElement: () => o.scrollRef.current,\n estimateSize: () => o.itemHeight,\n scrollMargin: o.headHeight,\n scrollPaddingStart: o.headHeight,\n scrollPaddingEnd: o.barHeight,\n overscan: 10,\n getItemKey: o.keyOf,\n rangeExtractor: (range: Range) => {\n const start = Math.max(0, range.startIndex - range.overscan)\n const end = Math.min(range.count - 1, range.endIndex + range.overscan)\n const out: number[] = []\n const f = o.keepIndex\n if (f >= 0 && f < start && f < range.count) out.push(f)\n for (let i = start; i <= end; i++) out.push(i)\n if (f > end && f < range.count) out.push(f)\n return out\n },\n })\n // Yoğunluk değişince ölçüm önbelleği sıfırlanır: estimateSize değişimi tek başına yenilemez.\n useLayoutEffect(() => v.measure(), [v, o.itemHeight, o.resetKey])\n return {\n items: v.getVirtualItems().map((i) => ({ key: String(i.key), index: i.index, start: i.start })),\n total: v.getTotalSize(),\n /** Açık detaylı öğenin ref'i: yüksekliği ölçülür, anahtarla önbellekte kalır. */\n measureElement: v.measureElement,\n /** Detay kapanınca öğe satır yüksekliğine döner. */\n resizeItem: (index: number, size: number) => v.resizeItem(index, size),\n }\n}\n","// Izgara kökü (05 §2–4, §6–7; 08 §1–2; brief §5.5): tek kayan alan, sticky header, sabit sütunlar + koşullu kenar gölgesi,\n// sanal satırlar (öğe = satır + açık detay, ölçülen yükseklik), seçim sütunu (40 px) ve ⋯ sütunu. Veri çekmez; sütun düzenini\n// use-column-layout'tan, seçim ve expand durumunu üstten alır. Satır klavyesi yok (D40): widget'lar doğal Tab sırasında.\nimport {\n useId,\n useLayoutEffect,\n useRef,\n useState,\n useSyncExternalStore,\n type FocusEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport type { Density } from '../../types/core'\nimport type { RowAction } from '../../types/list'\nimport { RemoteLabels } from '../cells/remote-labels'\nimport type { RenderEnv } from '../cells/render-cell'\nimport type { ColumnLayoutApi } from '../columns/use-column-layout'\nimport { getFormat } from '../format'\nimport { isPlainRowClick } from '../interaction/is-interactive'\nimport { useDataTableContext } from '../provider'\nimport { HeaderCell, type HeaderSort } from './header-cell'\nimport { inlineActionsOf } from './inline-actions'\nimport { Row, type RowExtras } from './row'\nimport { SkeletonRow } from './skeleton-row'\nimport { useVirtualRows } from './use-virtual-rows'\n\nconst SKELETON_ROWS = 12\n// jsdom ve ilk render: token okunamazsa standard yoğunluk.\nconst FALLBACK_ROW_H = 44\nconst FALLBACK_HEAD_H = 36\n\n// Dokunmatikte Compact → Standard (02 · Yoğunluk); satır yüksekliği buna göre.\nconst coarse = typeof matchMedia === 'function' && matchMedia('(pointer: coarse)').matches\n\n// Seçim ve ⋯ sütunları düzenin dışında: track'ler başa / sona eklenir, sabit sütun ofsetleri o kadar kayar (05 §4, §6).\n// ⋯ sütunu içeriğe göre: dolgu 8 + ⋯ + 8; sayfada hatalı satır varsa (D35) + ikon + gap; inline aksiyon başına (D36, sayfadaki\n// en kalabalık satır) + düğme + gap.\nconst SELECT_W = 40\nconst SELECT_W_PHONE = 48\nconst MENU_PAD = 8\n\nexport interface GridProps<Row extends object> {\n layout: ColumnLayoutApi<Row>\n rows: Row[]\n rowId: (row: Row) => string\n /** role=table aria-label. */\n label: string\n density: Density\n /** 12 iskelet satır (ilk yükleme). */\n skeleton?: boolean\n /** aria-rowcount; bilinmiyorsa -1. */\n rowCount?: number\n /** Önceki sayfaların satırları: aria-rowindex sayfa boyunca sürer. */\n rowIndexOffset?: number\n /** Kimlik değiştiren istek sürüyor: satırlar soluk ve `inert` (05 §10). */\n dim?: boolean\n /** Yenileme çubuğu. */\n refreshing?: boolean\n /** Gövde üstünde durum notu (\"Still loading…\"). */\n notice?: ReactNode\n /** Satır yokken gövdenin ortasında. */\n state?: ReactNode\n verticalLines?: boolean\n /** Değişince gövde başa kayar (sayfa değişimi, 05 §8). */\n scrollKey?: string | number\n sort?: Map<string, HeaderSort>\n /** Verilirse sıralanabilir sütunlarda header sıralar. */\n canSort?: (id: string) => boolean\n onSort?: (id: string, additive: boolean) => void\n onSortSet?: (id: string, dir: 'asc' | 'desc' | null) => void\n /** Filtrelenen sütunlar: header'da huni. */\n filtered?: ReadonlySet<string>\n /** Verilirse filtrelenebilir sütunlarda header menüsünde \"Filter by this column…\". */\n canFilter?: (id: string) => boolean\n onFilter?: (id: string) => void\n /** Sütun menüsünde Column settings; verilmezse yok. */\n onColumns?: (from: HTMLElement | null) => void\n /** Satır gövdesine düz tık (05 §7): hücredeki widget'a, metin seçimine, sürüklemeye ve değiştirici tuşa karşı tek guard. */\n onRowClick?: (row: Row, event: MouseEvent) => void\n /** Seçim sütunu (05 §6): anahtar → seçili. */\n selection?: Record<string, true>\n onSelectRows?: (ids: string[], value: boolean) => void\n /** Birincil hücrede chevron + alt satır (05 §7): anahtar → açık. */\n expanded?: Record<string, true>\n canExpand?: (row: Row) => boolean\n onToggleExpand?: (id: string, value: boolean) => void\n renderExpanded?: (row: Row, close: () => void) => ReactNode\n /** Değişince açık detayların ölçümü sıfırlanır (sorgu / sayfa). */\n resetKey?: string\n /** ⋯ sütunu ve satır menüsü: Open / Copy yerleşik, `rowActions` uygulamanın. */\n rowMenu?: boolean\n rowActions?: Array<RowAction<Row>>\n primaryHref?: (row: Row) => string | undefined\n primaryLabel?: (row: Row) => string\n /** Satır hatası (05 §4, D35): metin ya da metin listesi; boş → yok. Harita uygulamanın. */\n rowError?: (row: Row) => string | string[] | null | undefined\n /** Birincil linke düz sol tık, menüde Open (05 §7). Tarayıcı gezinmesi dinleyicide durdurulabilir. */\n onRowOpen?: (row: Row, event: MouseEvent) => void\n}\n\nexport function Grid<Row extends object>({\n layout,\n rows,\n rowId,\n label,\n density: requested,\n skeleton = false,\n rowCount = -1,\n rowIndexOffset = 0,\n dim = false,\n refreshing = false,\n notice,\n state,\n verticalLines = false,\n scrollKey,\n sort,\n canSort,\n onSort,\n onSortSet,\n filtered,\n canFilter,\n onFilter,\n onColumns,\n onRowClick,\n selection,\n onSelectRows,\n expanded,\n canExpand,\n onToggleExpand,\n renderExpanded,\n resetKey,\n rowMenu = false,\n rowActions = [],\n primaryHref,\n primaryLabel,\n onRowOpen,\n rowError,\n}: GridProps<Row>) {\n const ctx = useDataTableContext()\n const root = useRef<HTMLDivElement>(null)\n const scroll = useRef<HTMLDivElement>(null)\n const density: Density = coarse && requested === 'compact' ? 'standard' : requested\n const [labels] = useState(() => new RemoteLabels())\n const labelsVersion = useSyncExternalStore(labels.subscribe, labels.getVersion)\n\n // Satır ve header yüksekliği, kaydırma çubuğu payı token'dan ve DOM'dan ölçülür (02 tek kaynak).\n const [metrics, setMetrics] = useState({ row: FALLBACK_ROW_H, head: FALLBACK_HEAD_H, bar: 0 })\n const [scrolled, setScrolled] = useState({ start: false, end: false })\n const [focused, setFocused] = useState(-1)\n\n const selectable = !!onSelectRows\n const expandable = !!renderExpanded\n const phone = layout.phone\n const selW = selectable ? (phone ? SELECT_W_PHONE : SELECT_W) : 0\n const maxInline = rowActions.some((a) => a.inline)\n ? rows.reduce((m, r) => Math.max(m, inlineActionsOf(rowActions, r).length), 0)\n : 0\n /** `rowError` sonucu mesaj listesine iner; boş metinler düşer, boş liste = hata yok. */\n const errorOf = (row: Row): string[] => {\n const e = rowError?.(row)\n return (Array.isArray(e) ? e : [e]).filter((m): m is string => !!m)\n }\n const anyError = !!rowError && rows.some((r) => errorOf(r).length > 0)\n const menuW = rowMenu\n ? `calc(${2 * MENU_PAD}px${anyError ? ' + var(--dt-icon) - 2px + var(--dt-space)' : ''} + ${maxInline + 1} * var(--dt-control-h-sm) + ${maxInline} * var(--dt-space))`\n : ''\n const isOpen = (row: Row) => !!expanded?.[rowId(row)]\n\n const count = skeleton ? SKELETON_ROWS : rows.length\n const virtual = useVirtualRows({\n count,\n scrollRef: scroll,\n itemHeight: metrics.row + 1,\n headHeight: metrics.head,\n barHeight: metrics.bar,\n keyOf: (i) => (skeleton ? `sk-${i}` : rowId(rows[i]!)),\n keepIndex: skeleton ? -1 : focused,\n resetKey,\n })\n\n // Kapanan detay: öğe satır yüksekliğine döner (açıkken ölçülmüştü).\n const openIds = Object.keys(expanded ?? {}).join('\\u0000')\n const lastOpen = useRef<string[]>([])\n useLayoutEffect(() => {\n const now = new Set(Object.keys(expanded ?? {}))\n for (const id of lastOpen.current) {\n if (now.has(id)) continue\n const i = rows.findIndex((r) => rowId(r) === id)\n if (i >= 0) virtual.resizeItem(i, metrics.row + 1)\n }\n lastOpen.current = [...now]\n // Yalnızca açık anahtarlar değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [openIds])\n\n // Genişlikler ve sabit ofsetler React render'ı dışında (05 · Resize): sürüklerken yalnızca CSS değişkenleri değişir.\n useLayoutEffect(() => {\n const el = root.current\n if (!el) return\n const write = () => {\n el.style.setProperty('--cols', [selW ? `${selW}px` : '', layout.cols(), menuW].filter(Boolean).join(' '))\n const min = `${layout.minWidth() + selW}px`\n el.style.setProperty('--dt-min-w', menuW ? `calc(${min} + ${menuW})` : min)\n el.style.setProperty('--dt-sel-w', `${selW}px`)\n el.style.setProperty('--dt-menu-w', menuW || '0px')\n const start = new Set(layout.start.map((c) => c.offsetVar))\n const end = new Set(layout.end.map((c) => c.offsetVar))\n for (const [name, value] of Object.entries(layout.offsets())) {\n if (start.has(name)) el.style.setProperty(name, `${parseFloat(value) + selW}px`)\n else if (end.has(name) && menuW) el.style.setProperty(name, `calc(${value} + ${menuW})`)\n else el.style.setProperty(name, value)\n }\n }\n write()\n return layout.subscribeSizing(write)\n }, [layout, selW, menuW])\n\n // Yoğunluk değişince: satır yüksekliği, header yüksekliği ve sütun ölçeği (--dt-fs / 13) yeniden okunur.\n const { setScale, scale } = layout\n useLayoutEffect(() => {\n const el = root.current\n if (!el) return\n const css = getComputedStyle(el)\n const row = parseFloat(css.getPropertyValue('--dt-row-h'))\n const fs = parseFloat(css.getPropertyValue('--dt-fs'))\n const head = el.querySelector<HTMLElement>('.dt-head')?.offsetHeight\n const s = scroll.current\n const next = {\n row: Number.isFinite(row) ? row : FALLBACK_ROW_H,\n head: head || FALLBACK_HEAD_H,\n bar: s ? Math.max(0, s.offsetHeight - s.clientHeight) : 0,\n }\n setMetrics((p) => (p.row === next.row && p.head === next.head && p.bar === next.bar ? p : next))\n const k = Number.isFinite(fs) ? fs / 13 : 1\n if (k !== scale) setScale(k)\n }, [density, phone, setScale, scale])\n\n // İlk çizimde değil, anahtar değişince başa (05 §8).\n const lastScrollKey = useRef(scrollKey)\n useLayoutEffect(() => {\n if (lastScrollKey.current === scrollKey) return\n lastScrollKey.current = scrollKey\n if (scroll.current) scroll.current.scrollTop = 0\n }, [scrollKey])\n\n // Sabit sütun kenar gölgesi yalnızca o yöne kaydırılmışken (05 §4 · Pinned); kap boyu değişince de yeniden bakılır.\n useLayoutEffect(() => {\n const el = scroll.current\n if (!el) return\n const update = () => {\n const start = el.scrollLeft > 0\n const end = el.scrollLeft + el.clientWidth < el.scrollWidth - 1\n setScrolled((p) => (p.start === start && p.end === end ? p : { start, end }))\n }\n update()\n el.addEventListener('scroll', update, { passive: true })\n const ro = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(update)\n ro?.observe(el)\n return () => {\n el.removeEventListener('scroll', update)\n ro?.disconnect()\n }\n }, [])\n\n const onFocus = (e: FocusEvent) => {\n const row = (e.target as HTMLElement).closest<HTMLElement>('.dt-row[data-index]')\n setFocused(row ? Number(row.dataset.index) : -1)\n }\n\n // Sürükleme tespiti için mousedown noktası; render'a girmez.\n const down = useRef<{ x: number; y: number } | null>(null)\n const onClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement\n const rowEl = target.closest<HTMLElement>('.dt-row[data-index]')\n const row = rowEl && rows[Number(rowEl.dataset.index)]\n if (!row) return\n // Birincil linke düz sol tık → onRowOpen; değiştirici tuş / orta tık tarayıcıya (D6).\n const link = target.closest('a.dt-link')\n if (link && link.closest('.dt-cell.is-primary') && rowEl.contains(link)) {\n if (e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey) onRowOpen?.(row, e)\n return\n }\n if (onRowClick && isPlainRowClick(e.nativeEvent, rowEl, down.current)) onRowClick(row, e)\n }\n\n // Checkbox ⇧ aralığının çapası (05 §6); satır anahtarları değişince (sayfa / sorgu) sıfırlanır.\n const rowKeys = rows.map(rowId).join('\\u0000')\n const anchor = useRef({ keys: rowKeys, index: -1 })\n const onSelect = (i: number, value: boolean, shift: boolean) => {\n if (anchor.current.keys !== rowKeys) anchor.current = { keys: rowKeys, index: -1 }\n const a = anchor.current.index\n const [from, to] = a < i ? [a, i] : [i, a]\n onSelectRows?.(shift && a >= 0 ? rows.slice(from, to + 1).map(rowId) : [rowId(rows[i]!)], value)\n anchor.current = { keys: rowKeys, index: i }\n }\n const selectedCount = selectable ? rows.reduce((n, r) => n + (selection?.[rowId(r)] ? 1 : 0), 0) : 0\n const allSelected = rows.length > 0 && selectedCount === rows.length\n const uid = useId()\n const extrasOf = (row: Row, i: number): RowExtras<Row> => {\n const id = rowId(row)\n const subrow = `${uid}-sub-${id}`\n return {\n label: primaryLabel?.(row) ?? id,\n uid: `${uid}-r-${id}`,\n error: errorOf(row),\n select: selectable\n ? { selected: !!selection?.[id], edge: !layout.start.length, onChange: (v, shift) => onSelect(i, v, shift) }\n : undefined,\n expand: expandable\n ? {\n can: canExpand?.(row) ?? true,\n open: isOpen(row),\n controls: subrow,\n onToggle: () => onToggleExpand?.(id, !isOpen(row)),\n }\n : undefined,\n menu: rowMenu\n ? {\n edge: !layout.end.length,\n actions: rowActions,\n href: primaryHref?.(row),\n onOpen: (e) => onRowOpen?.(row, e),\n }\n : undefined,\n }\n }\n\n /** Taşınan başlık yeni yerinde odakta kalır (⌥⇧←/→ ve menü). */\n const focusHeader = (id: string) =>\n requestAnimationFrame(() => {\n const cell = [...(root.current?.querySelectorAll<HTMLElement>('.dt-head-cell[data-col]') ?? [])].find(\n (c) => c.dataset.col === id,\n )\n cell?.querySelector<HTMLElement>('.dt-head-label')?.focus()\n })\n\n // labelsVersion bağımlılık olarak env'de: derleyici env'i önbelleğe alır, etiket çözülünce yenisi kurulmalı.\n const env: RenderEnv & { labelsVersion: number } = {\n fmt: getFormat(ctx.locale),\n i18n: ctx.i18n,\n today: new Date(),\n labels,\n density,\n coarse,\n labelsVersion,\n }\n\n const cls = [\n 'dt-grid',\n scrolled.start && 'is-scrolled-start',\n scrolled.end && 'is-scrolled-end',\n skeleton && 'is-skeleton',\n dim && 'is-dim',\n verticalLines && 'has-vlines',\n phone && 'is-phone',\n ]\n const header = (col: (typeof layout.columns)[number]) => {\n const sortable = !!onSort && (canSort?.(col.id) ?? false)\n return (\n <HeaderCell\n key={col.id}\n column={col}\n layout={layout}\n onMoved={focusHeader}\n sort={sort?.get(col.id)}\n onSort={sortable ? (additive) => onSort(col.id, additive) : undefined}\n onSortSet={sortable && onSortSet ? (dir) => onSortSet(col.id, dir) : undefined}\n filtered={filtered?.has(col.id)}\n onFilter={onFilter && canFilter?.(col.id) ? () => onFilter(col.id) : undefined}\n onColumns={onColumns}\n />\n )\n }\n\n return (\n <div\n ref={root}\n className={cls.filter(Boolean).join(' ')}\n role=\"table\"\n aria-label={label}\n aria-rowcount={rowCount}\n aria-colcount={layout.columns.length + (selectable ? 1 : 0) + (rowMenu ? 1 : 0)}\n aria-busy={skeleton || dim || undefined}\n data-density={density}\n onFocus={onFocus}\n onMouseDown={(e) => (down.current = { x: e.clientX, y: e.clientY })}\n onClick={onClick}\n >\n {/* Tab ile odaklanan widget'ı tarayıcı kaydırır: sticky header ve yatay çubuk payı (08 §2). */}\n <div\n ref={scroll}\n className=\"dt-scroll\"\n style={{ scrollPaddingTop: metrics.head, scrollPaddingBottom: metrics.bar }}\n >\n <div className=\"dt-head\" role=\"row\" aria-rowindex={1}>\n {selectable && (\n <div\n className={\n layout.start.length\n ? 'dt-head-cell dt-head-select is-pinned-start'\n : 'dt-head-cell dt-head-select is-pinned-start is-pin-edge'\n }\n style={{ left: 0 }}\n role=\"columnheader\"\n >\n <input\n type=\"checkbox\"\n className=\"dt-checkbox\"\n checked={allSelected}\n ref={(el) => {\n if (el) el.indeterminate = selectedCount > 0 && !allSelected\n }}\n aria-label={ctx.i18n.t('row.selectPageAria')}\n onChange={() => onSelectRows?.(rows.map(rowId), !allSelected)}\n />\n </div>\n )}\n {[...layout.start, ...layout.center].map(header)}\n <div className=\"dt-head-cell dt-cell-fill\" role=\"presentation\" aria-hidden=\"true\" />\n {layout.end.map(header)}\n {rowMenu && (\n <div\n className={\n layout.end.length\n ? 'dt-head-cell dt-head-menu-col is-pinned-end'\n : 'dt-head-cell dt-head-menu-col is-pinned-end is-pin-edge'\n }\n style={{ right: 0 }}\n role=\"columnheader\"\n />\n )}\n </div>\n <div className=\"dt-body\" role=\"presentation\" inert={dim || undefined} style={{ height: virtual.total }}>\n {virtual.items.map((item) => {\n const row = skeleton ? undefined : rows[item.index]\n const open = !!row && expandable && isOpen(row)\n return (\n <div\n key={item.key}\n // Yalnızca açık öğeler ölçülür; kapalı satır sabit yükseklikte.\n ref={open ? virtual.measureElement : undefined}\n className=\"dt-item\"\n data-index={item.index}\n style={{ transform: `translateY(${item.start - metrics.head}px)` }}\n >\n {!row ? (\n <SkeletonRow index={item.index} columns={layout.columns} />\n ) : (\n <>\n <Row\n row={row}\n index={item.index}\n rowIndex={2 + rowIndexOffset + item.index}\n columns={layout.columns}\n env={env}\n extras={extrasOf(row, item.index)}\n />\n {open && (\n <div\n id={`${uid}-sub-${rowId(row)}`}\n className=\"dt-subrow\"\n role=\"row\"\n aria-rowindex={2 + rowIndexOffset + item.index}\n >\n <div role=\"cell\" aria-colspan={layout.columns.length}>\n {renderExpanded!(row, () => onToggleExpand?.(rowId(row), false))}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n {refreshing && <div className=\"dt-refresh-bar\" aria-hidden=\"true\" />}\n {notice && (\n <div className=\"dt-notice\" role=\"status\">\n {notice}\n </div>\n )}\n {state && !skeleton && rows.length === 0 && <div className=\"dt-body-state\">{state}</div>}\n </div>\n )\n}\n","// Tek tooltip, delegasyonla (02 · Tooltip 400 ms): kesilmiş hücre metni ve `data-dt-tip` taşıyan öğeler.\n// Hücre başına Base UI Tooltip örneği 500 satırda ağır olurdu; kökte tek dinleyici + tek DOM düğümü.\nimport { useEffect, useState, type RefObject } from 'react'\n\nconst DELAY = 400\n\ninterface Tip {\n text: string\n left: number\n top: number\n}\n\nconst overflows = (el: HTMLElement) => el.scrollWidth > el.clientWidth + 1\n/** Metni içteki öğe de kesebilir (etiket, kişi adı, başlık metni, özel hücre); taşıp görünen öğe kesmez. */\nconst clips = (el: HTMLElement) => overflows(el) && getComputedStyle(el).overflowX !== 'visible'\n\nexport const tipOf = (target: Element | null): { el: HTMLElement; text: string } | null => {\n const tipped = target?.closest<HTMLElement>('[data-dt-tip]')\n if (tipped?.dataset.dtTip) return { el: tipped, text: tipped.dataset.dtTip }\n const content = target?.closest<HTMLElement>('.dt-cell-content, .dt-head-label')\n if (content && (overflows(content) || [...content.querySelectorAll<HTMLElement>('*')].some(clips)))\n return { el: content, text: content.textContent?.trim() ?? '' }\n return null\n}\n\nexport function DelegatedTooltip({ root }: { root: RefObject<HTMLElement | null> }) {\n const [tip, setTip] = useState<Tip | null>(null)\n\n useEffect(() => {\n const el = root.current\n if (!el) return\n let timer: ReturnType<typeof setTimeout> | undefined\n let anchor: HTMLElement | null = null\n\n const hide = () => {\n clearTimeout(timer)\n anchor = null\n setTip(null)\n }\n const show = (target: HTMLElement, text: string, x?: number) => {\n const r = target.getBoundingClientRect()\n // Geniş anchor'da (hatalı satır) imlecin altında, dar anchor'da ortada.\n const left = x !== undefined && r.width > 320 ? x : r.left + r.width / 2\n setTip({ text, left: Math.round(left), top: Math.round(r.bottom + 6) })\n }\n const onOver = (e: MouseEvent) => {\n const hit = tipOf(e.target as Element)\n if (!hit || hit.el === anchor) return\n hide()\n anchor = hit.el\n timer = setTimeout(() => show(hit.el, hit.text, e.clientX), DELAY)\n }\n const onOut = (e: MouseEvent) => {\n if (anchor && !anchor.contains(e.relatedTarget as Node | null)) hide()\n }\n const onFocusin = (e: FocusEvent) => {\n const hit = tipOf(e.target as Element)\n if (!hit) return\n hide()\n anchor = hit.el\n show(hit.el, hit.text)\n }\n\n el.addEventListener('mouseover', onOver)\n el.addEventListener('mouseout', onOut)\n el.addEventListener('focusin', onFocusin)\n el.addEventListener('focusout', hide)\n el.addEventListener('scroll', hide, true)\n el.addEventListener('mousedown', hide)\n return () => {\n clearTimeout(timer)\n el.removeEventListener('mouseover', onOver)\n el.removeEventListener('mouseout', onOut)\n el.removeEventListener('focusin', onFocusin)\n el.removeEventListener('focusout', hide)\n el.removeEventListener('scroll', hide, true)\n el.removeEventListener('mousedown', hide)\n }\n }, [root])\n\n if (!tip) return null\n // position: fixed; kökün içinde kalır, yoğunluk ve font token'larını oradan alır.\n return (\n <div\n className={tip.text.includes('\\n') ? 'dt-tip is-multi' : 'dt-tip'}\n role=\"tooltip\"\n style={{ left: tip.left, top: tip.top }}\n >\n {tip.text}\n </div>\n )\n}\n","// Durum mesajı bloğu (handoff 02-ortak §9, T9): gövdenin ortasında, en fazla 440 px; ikon kutusu 40, başlık 15/600, satırlar 13.\nimport { FileIcon, FunnelIcon, MagnifyingGlassIcon, PackageIcon, WarningCircleIcon } from '@phosphor-icons/react'\nimport type { ReactNode } from 'react'\n\nconst ICONS = {\n empty: PackageIcon,\n noResults: FunnelIcon,\n noResultsSearch: MagnifyingGlassIcon,\n error: WarningCircleIcon,\n noRowsOnPage: FileIcon,\n}\n\nexport function StateMessage({\n kind,\n title,\n lines = [],\n actions,\n after,\n}: {\n kind: keyof typeof ICONS\n title: string\n lines?: string[]\n actions?: ReactNode\n after?: ReactNode\n}) {\n const Icon = ICONS[kind]\n return (\n <div className={`dt-state is-${kind}`} role={kind === 'error' ? 'alert' : 'status'}>\n <span className=\"dt-state-icon\" aria-hidden=\"true\">\n <Icon size={20} />\n </span>\n <strong className=\"dt-state-title\">{title}</strong>\n {lines.map((line) => (\n <p key={line} className=\"dt-state-line\">\n {line}\n </p>\n ))}\n {actions && <div className=\"dt-state-actions\">{actions}</div>}\n {after}\n </div>\n )\n}\n","// Display popover'ı (05 §3, §5; T3-06, T4-04/05): Density · Vertical grid lines · Columns › · Saved for you only + Reset.\n// Columns › dialog'u açar (D45); dialog tabloya aittir, sütun menüsü de açar. Sort › yok: sıralama header'dan.\nimport { Popover } from '@base-ui/react/popover'\nimport { Toggle } from '@base-ui/react/toggle'\nimport { ToggleGroup } from '@base-ui/react/toggle-group'\nimport { CaretRightIcon, SlidersHorizontalIcon } from '@phosphor-icons/react'\nimport { useRef, useState } from 'react'\nimport type { Density } from '../../types/core'\nimport { useDataTableContext } from '../provider'\nimport { DtSwitch } from '../ui/switch'\n\nconst DENSITIES: Density[] = ['comfortable', 'standard', 'compact']\n\nexport function DisplayPopover({\n density,\n onDensity,\n verticalLines,\n onVerticalLines,\n counts,\n onColumns,\n persistent,\n onReset,\n iconOnly,\n}: {\n density: Density\n /** Verilmezse (yoğunluk uygulamada sabit) seçici yok. */\n onDensity?: (d: Density) => void\n verticalLines: boolean\n onVerticalLines: (on: boolean) => void\n counts: { shown: number; total: number }\n /** Columns dialog'unu açar; dialog kapanınca odak Display düğmesine döner. */\n onColumns: (from: HTMLElement | null) => void\n /** Tercih deposu varsa \"Saved for you only\". */\n persistent: boolean\n onReset: () => void\n iconOnly?: boolean\n}) {\n const { i18n } = useDataTableContext()\n const [open, setOpen] = useState(false)\n const trigger = useRef<HTMLButtonElement>(null)\n const openColumns = () => {\n setOpen(false)\n onColumns(trigger.current)\n }\n\n return (\n <Popover.Root open={open} onOpenChange={(o) => setOpen(o)}>\n <Popover.Trigger\n ref={trigger}\n className={iconOnly ? 'dt-btn has-icon dt-btn-icon' : 'dt-btn has-icon'}\n aria-label={i18n.t('toolbar.display')}\n data-dt-tip={iconOnly ? i18n.t('toolbar.display') : undefined}\n >\n <SlidersHorizontalIcon size={16} aria-hidden=\"true\" />\n {!iconOnly && <span>{i18n.t('toolbar.display')}</span>}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner className=\"dt-positioner\" align=\"end\" sideOffset={4}>\n <Popover.Popup className=\"dt-pop dt-display\">\n {onDensity && (\n <>\n <div className=\"dt-pop-label\">{i18n.t('display.density')}</div>\n <ToggleGroup\n className=\"dt-seg dt-seg-sm dt-display-density\"\n value={[density]}\n onValueChange={(v) => v[0] && onDensity(v[0] as Density)}\n >\n {DENSITIES.map((d) => (\n <Toggle key={d} className=\"dt-seg-item\" value={d} data-state={d === density ? 'on' : 'off'}>\n {i18n.t(`display.${d}`)}\n </Toggle>\n ))}\n </ToggleGroup>\n </>\n )}\n <label className=\"dt-pop-item\">\n {i18n.t('display.verticalLines')}\n <DtSwitch className=\"dt-pop-end\" checked={verticalLines} onChange={onVerticalLines} />\n </label>\n <div className=\"dt-pop-sep\" />\n <button type=\"button\" className=\"dt-pop-item\" onClick={openColumns}>\n {i18n.t('display.columns')}\n <span className=\"dt-pop-value\">{i18n.t('columns.shownOf', counts)}</span>\n <CaretRightIcon size={14} aria-hidden=\"true\" />\n </button>\n <div className=\"dt-pop-foot\">\n <span>{persistent ? i18n.t('display.savedForYou') : ''}</span>\n <button type=\"button\" className=\"dt-pop-action\" onClick={onReset}>\n {i18n.t('common.reset')}\n </button>\n </div>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n","// More ⋯ menüsü (05 §3): yalnızca uygulamanın verdiği eylemler ve ayarlar; Refresh `R`, Auto-refresh anahtarı.\n// Export › CSV / Excel (D46); içe aktarma bu sürümde yok (R1).\nimport { Menu } from '@base-ui/react/menu'\nimport { DotsThreeIcon } from '@phosphor-icons/react'\nimport { useId } from 'react'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\n\nexport function MoreMenu({\n exportHint,\n onExport,\n onRefresh,\n onPrint,\n autoRefresh,\n autoRefreshOn,\n onAutoRefresh,\n}: {\n /** Export'un altındaki satır: \"100 satır dışa aktarılır\"; verilmezse Export yok. */\n exportHint?: string\n onExport: (format: 'csv' | 'xlsx') => void\n onRefresh?: () => void\n onPrint?: () => void\n /** Uygulama `autoRefresh` saniyesi verdiyse anahtar görünür. */\n autoRefresh: boolean\n autoRefreshOn: boolean\n onAutoRefresh: (on: boolean) => void\n}) {\n const { i18n } = useDataTableContext()\n const hintId = useId()\n return (\n <DtMenu\n className=\"dt-more-menu\"\n trigger={\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-icon\"\n aria-label={i18n.t('toolbar.more')}\n data-dt-tip={i18n.t('toolbar.more')}\n >\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {exportHint && (\n <Menu.SubmenuRoot>\n <Menu.SubmenuTrigger className=\"dt-menu-item\" aria-label={i18n.t('sheet.export')} aria-describedby={hintId}>\n <span className=\"dt-item-lines\">\n {i18n.t('sheet.export')}\n <span id={hintId} className=\"dt-item-hint\">\n {exportHint}\n </span>\n </span>\n </Menu.SubmenuTrigger>\n <Menu.Portal>\n <Menu.Positioner className=\"dt-positioner\" sideOffset={4}>\n <Menu.Popup className=\"dt-menu\">\n <DtMenuItem onSelect={() => onExport('csv')}>{i18n.t('toolbar.csv')}</DtMenuItem>\n <DtMenuItem onSelect={() => onExport('xlsx')}>{i18n.t('toolbar.xlsx')}</DtMenuItem>\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.SubmenuRoot>\n )}\n {onPrint && <DtMenuItem onSelect={onPrint}>{i18n.t('toolbar.print')}</DtMenuItem>}\n {(exportHint || onPrint) && (onRefresh || autoRefresh) && <DtMenuSeparator />}\n {onRefresh && (\n <DtMenuItem onSelect={onRefresh}>\n {i18n.t('toolbar.refresh')}\n <kbd className=\"dt-kbd\">R</kbd>\n </DtMenuItem>\n )}\n {autoRefresh && (\n <Menu.CheckboxItem\n className=\"dt-menu-item\"\n checked={autoRefreshOn}\n onCheckedChange={(v) => onAutoRefresh(v)}\n closeOnClick\n >\n {i18n.t('toolbar.autoRefresh')}\n <span\n className=\"dt-switch dt-pop-end\"\n data-state={autoRefreshOn ? 'checked' : 'unchecked'}\n aria-hidden=\"true\"\n >\n <span className=\"dt-switch-thumb\" />\n </span>\n </Menu.CheckboxItem>\n )}\n </DtMenu>\n )\n}\n","// Telefon ⋯ alt sayfası (handoff 04 §6.4, T13-07): Display (Density › · Columns (dialog, D45) · Sort ›) · Print · Refresh ·\n// Export › (D46) · Auto-refresh · \"Saved for you only\" + Reset. Masaüstündeki Display popover'ının ve ⋯ menüsünün yerini\n// alır. Sort paneli yalnızca burada: masaüstünde sıralama header'dan.\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CheckIcon,\n DotsThreeIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport { lazy, Suspense, useId, useRef, useState } from 'react'\nimport type { Density } from '../../types/core'\nimport type { SortRule } from '../../types/query'\nimport type { ColumnsDraft, PanelColumn } from '../columns/use-column-layout'\nimport { useDataTableContext } from '../provider'\nimport { BottomSheet } from '../ui/bottom-sheet'\nimport { DtSwitch } from '../ui/switch'\n\nconst ColumnsDialog = lazy(() => import('./columns-dialog')) as unknown as typeof import('./columns-dialog').default\nconst DENSITIES: Density[] = ['comfortable', 'standard', 'compact']\nconst TITLES = {\n main: 'toolbar.more',\n density: 'display.density',\n sort: 'display.sort',\n export: 'sheet.export',\n} as const\ntype Level = keyof typeof TITLES\n\nexport function PhoneMoreSheet<Row extends object>({\n density,\n onDensity,\n columns,\n counts,\n onColumnsSave,\n sort,\n onSort,\n persistent,\n onReset,\n exportHint,\n onExport,\n onRefresh,\n onPrint,\n autoRefresh,\n autoRefreshOn,\n onAutoRefresh,\n}: {\n density: Density\n /** Verilmezse (yoğunluk uygulamada sabit) Density › yok. */\n onDensity?: (d: Density) => void\n columns: Array<PanelColumn<Row>>\n counts: { shown: number; total: number }\n onColumnsSave: (draft: ColumnsDraft) => void\n sort: SortRule[]\n /** Yön değişimi, kaldırma, temizleme: yeni kural listesi (sayfa 1). */\n onSort: (sort: SortRule[]) => void\n persistent: boolean\n onReset: () => void\n /** Export'un altındaki satır: \"100 satır dışa aktarılır\"; verilmezse Export yok. */\n exportHint?: string\n onExport: (format: 'csv' | 'xlsx') => void\n onRefresh?: () => void\n onPrint?: () => void\n autoRefresh: boolean\n autoRefreshOn: boolean\n onAutoRefresh: (on: boolean) => void\n}) {\n const { i18n } = useDataTableContext()\n const hintId = useId()\n const [open, setOpen] = useState(false)\n const [level, setLevel] = useState<Level>('main')\n const [columnsOpen, setColumnsOpen] = useState(false)\n const [columnsUsed, setColumnsUsed] = useState(false)\n const trigger = useRef<HTMLButtonElement>(null)\n const headerOf = (id: string) => columns.find((c) => c.id === id)?.def.header ?? id\n const lead = sort[0]\n const sortSummary = lead\n ? `${headerOf(lead.column)} ${lead.dir === 'asc' ? '↑' : '↓'}${sort.length > 1 ? ` +${sort.length - 1}` : ''}`\n : i18n.t('common.empty')\n const hasActions = !!(exportHint || onPrint || onRefresh || autoRefresh)\n const setOpenAll = (o: boolean) => {\n setOpen(o)\n if (!o) setLevel('main')\n }\n const close = (fn: () => void) => {\n setOpenAll(false)\n fn()\n }\n\n return (\n <>\n <BottomSheet\n open={open}\n onOpenChange={setOpenAll}\n title={i18n.t(TITLES[level])}\n hideTitle={level === 'main'}\n className=\"dt-more-sheet\"\n trigger={\n <button\n ref={trigger}\n type=\"button\"\n className=\"dt-btn dt-btn-icon dt-more-trigger\"\n aria-label={i18n.t('toolbar.more')}\n >\n <DotsThreeIcon size={20} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n headStart={\n level !== 'main' && (\n <button\n type=\"button\"\n className=\"dt-bsheet-back\"\n aria-label={i18n.t('common.back')}\n onClick={() => setLevel('main')}\n >\n <CaretLeftIcon size={20} aria-hidden=\"true\" />\n </button>\n )\n }\n >\n {level === 'main' && (\n <>\n <div className=\"dt-bsheet-label\">{i18n.t('toolbar.display')}</div>\n {onDensity && (\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => setLevel('density')}>\n {i18n.t('display.density')}\n <span className=\"dt-bsheet-value\">{i18n.t(`display.${density}`)}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n )}\n <button\n type=\"button\"\n className=\"dt-bsheet-row\"\n onClick={() =>\n close(() => {\n setColumnsUsed(true)\n setColumnsOpen(true)\n })\n }\n >\n {i18n.t('display.columns')}\n <span className=\"dt-bsheet-value\">{i18n.t('columns.shownOf', counts)}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => setLevel('sort')}>\n {i18n.t('display.sort')}\n <span className=\"dt-bsheet-value\">{sortSummary}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n {hasActions && <div className=\"dt-bsheet-sep\" />}\n {exportHint && (\n <button\n type=\"button\"\n className=\"dt-bsheet-row\"\n aria-label={i18n.t('sheet.export')}\n aria-describedby={hintId}\n onClick={() => setLevel('export')}\n >\n <span className=\"dt-item-lines\">\n {i18n.t('sheet.export')}\n <span id={hintId} className=\"dt-item-hint\">\n {exportHint}\n </span>\n </span>\n <CaretRightIcon size={16} className=\"dt-bsheet-end\" aria-hidden=\"true\" />\n </button>\n )}\n {onPrint && (\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(onPrint)}>\n {i18n.t('toolbar.print')}\n </button>\n )}\n {onRefresh && (\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(onRefresh)}>\n {i18n.t('toolbar.refresh')}\n </button>\n )}\n {autoRefresh && (\n <label className=\"dt-bsheet-row\">\n {i18n.t('toolbar.autoRefresh')}\n <DtSwitch className=\"dt-bsheet-end\" checked={autoRefreshOn} onChange={onAutoRefresh} />\n </label>\n )}\n <div className=\"dt-bsheet-note\">\n <span>{persistent ? i18n.t('display.savedForYou') : ''}</span>\n <button type=\"button\" className=\"dt-bsheet-action\" onClick={onReset}>\n {i18n.t('common.reset')}\n </button>\n </div>\n </>\n )}\n\n {level === 'density' &&\n DENSITIES.map((d) => (\n <button\n key={d}\n type=\"button\"\n className=\"dt-bsheet-row\"\n onClick={() => {\n onDensity?.(d)\n setLevel('main')\n }}\n >\n {i18n.t(`display.${d}`)}\n {d === density && <CheckIcon size={18} className=\"dt-bsheet-end dt-bsheet-check\" aria-hidden=\"true\" />}\n </button>\n ))}\n\n {level === 'export' && (\n <>\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(() => onExport('csv'))}>\n {i18n.t('toolbar.csv')}\n </button>\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(() => onExport('xlsx'))}>\n {i18n.t('toolbar.xlsx')}\n </button>\n </>\n )}\n\n {level === 'sort' && (\n <>\n {sort.map((s, i) => {\n const Arrow = s.dir === 'asc' ? ArrowUpIcon : ArrowDownIcon\n return (\n <div key={s.column} className=\"dt-col-row dt-sort-row\">\n <span className=\"dt-head-sort-index\">{i + 1}</span>\n <span className=\"dt-col-name\">{headerOf(s.column)}</span>\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-xs has-icon\"\n onClick={() =>\n onSort(\n sort.map((r) => (r.column === s.column ? { ...r, dir: r.dir === 'asc' ? 'desc' : 'asc' } : r)),\n )\n }\n >\n <Arrow size={12} aria-hidden=\"true\" />\n {i18n.t(s.dir === 'asc' ? 'sr.asc' : 'sr.desc')}\n </button>\n <button\n type=\"button\"\n className=\"dt-icon-btn-sm\"\n aria-label={i18n.t('header.clearSort')}\n onClick={() => onSort(sort.filter((r) => r.column !== s.column))}\n >\n <XIcon size={14} aria-hidden=\"true\" />\n </button>\n </div>\n )\n })}\n <div className=\"dt-pop-foot\">\n <span>{i18n.t('sort.addHint')}</span>\n <button type=\"button\" className=\"dt-pop-action\" disabled={!sort.length} onClick={() => onSort([])}>\n {i18n.t('header.clearSort')}\n </button>\n </div>\n </>\n )}\n </BottomSheet>\n {columnsUsed && (\n <Suspense fallback={null}>\n <ColumnsDialog\n open={columnsOpen}\n onOpenChange={setColumnsOpen}\n columns={columns}\n onSave={onColumnsSave}\n finalFocus={trigger}\n phone\n />\n </Suspense>\n )}\n </>\n )\n}\n","// Toolbar araması (04 §5, D3): çip üretmez; 250 ms gecikme; Esc önce temizler, ikinci Esc odaktan çıkar; `/` dışarıdan odaklar.\nimport { MagnifyingGlassIcon, XCircleIcon, XIcon } from '@phosphor-icons/react'\nimport { useState, type Ref } from 'react'\nimport { useDelay } from '../interaction/use-delay'\nimport { useDataTableContext } from '../provider'\n\nexport function SearchBox({\n value,\n placeholder,\n onChange,\n inputRef,\n onBlur,\n phone,\n}: {\n value: string\n placeholder: string\n onChange: (value: string) => void\n inputRef?: Ref<HTMLInputElement>\n onBlur?: () => void\n /** Telefon araması (T13-03): ikon 18, dolu XCircle temizleme, kısayol rozeti yok. */\n phone?: boolean\n}) {\n const { i18n } = useDataTableContext()\n const [draft, setDraft] = useState(value)\n // Dışarıdan gelen değer (Clear search, geri tuşu) taslağa yazılır. Kendi gönderdiğimiz değer URL'den geç dönebilir:\n // o arada yazılanlar ezilmesin.\n const [seen, setSeen] = useState(value)\n const [sent, setSent] = useState(value)\n if (seen !== value) {\n setSeen(value)\n if (value !== sent) setDraft(value)\n }\n const delay = useDelay(250)\n const send = (text: string) => {\n setSent(text)\n onChange(text)\n }\n const commit = (text: string, now = false) => {\n setDraft(text)\n if (now) {\n delay.cancel()\n send(text)\n } else delay.run(() => send(text))\n }\n\n return (\n <label className=\"dt-input dt-search has-icon\" onBlur={onBlur}>\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={phone ? 18 : 16} aria-hidden=\"true\" />\n </span>\n <input\n ref={inputRef}\n type=\"search\"\n value={draft}\n placeholder={placeholder}\n aria-label={placeholder}\n autoComplete=\"off\"\n onChange={(e) => commit(e.target.value)}\n onKeyDown={(e) => {\n if (e.key !== 'Escape') return\n e.preventDefault()\n if (draft) commit('', true)\n else e.currentTarget.blur()\n }}\n />\n <span className=\"dt-input-end\">\n {draft ? (\n <button\n type=\"button\"\n className=\"dt-input-clear\"\n aria-label={i18n.t('common.clear')}\n onClick={() => commit('', true)}\n >\n {phone ? (\n <XCircleIcon size={20} weight=\"fill\" aria-hidden=\"true\" />\n ) : (\n <XIcon size={14} aria-hidden=\"true\" />\n )}\n </button>\n ) : (\n !phone && (\n <kbd className=\"dt-kbd\" aria-hidden=\"true\">\n /\n </kbd>\n )\n )}\n </span>\n </label>\n )\n}\n","// Toolbar (05 §3, §11; T1, T13): yalnızca yapılandırılmış yuvalar; daralma kartın genişliğiyle (`size`, DataTable ölçer).\n// Sıra: görünüm · [arama · Filter] (tam ortada) · [Display · ⋯] │ birincil (köşeli parantez: birleşik düğme grubu, D43).\n// 640–1023 px'de arama ikona döner, tıklanınca açılır. <640 telefon (yanlar ve gruplar display: contents, düz flex sırası):\n// görünüm · boşluk · arama · Filter · ⋯ · ayırıcı · birincil (CSS order); arama açılınca araç çubuğunun yerini alır (T13-03),\n// Cancel temizleyip kapatır.\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react'\nimport { useImperativeHandle, useRef, useState, type ReactNode, type Ref } from 'react'\nimport { useDataTableContext } from '../provider'\nimport { SearchBox } from './search-box'\n\nexport type ToolbarSize = 'full' | 'narrow' | 'phone'\nexport interface ToolbarHandle {\n /** `/` kısayolu: dar kartta önce aramayı açar. */\n focusSearch: () => void\n}\n\nexport function Toolbar({\n size,\n view,\n search,\n searchPlaceholder,\n onSearch,\n filter,\n display,\n more,\n end,\n ref,\n}: {\n size: ToolbarSize\n /** Görünüm menüsü (04 §7), en solda. */\n view?: ReactNode\n /** null: arama yuvası yok. */\n search: string | null\n searchPlaceholder: string\n onSearch: (value: string) => void\n filter?: ReactNode\n display?: ReactNode\n more?: ReactNode\n /** Ekrana özgü birincil aksiyon (R3: Vue'daki `#toolbar-end` slot'u). */\n end?: ReactNode\n ref?: Ref<ToolbarHandle>\n}) {\n const { i18n } = useDataTableContext()\n const [open, setOpen] = useState(false)\n const input = useRef<HTMLInputElement>(null)\n const phone = size === 'phone'\n const collapsed = size !== 'full' && !open && !search\n const phoneSearch = phone && !collapsed\n const openSearch = () => {\n setOpen(true)\n requestAnimationFrame(() => input.current?.focus())\n }\n useImperativeHandle(ref, () => ({\n focusSearch: () => (collapsed ? openSearch() : input.current?.focus()),\n }))\n\n if (phoneSearch)\n return (\n <div className=\"dt-toolbar is-phone\" role=\"toolbar\">\n <SearchBox value={search ?? ''} placeholder={searchPlaceholder} onChange={onSearch} inputRef={input} phone />\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-ghost dt-search-cancel\"\n onClick={() => {\n setOpen(false)\n onSearch('')\n }}\n >\n {i18n.t('common.cancel')}\n </button>\n </div>\n )\n\n return (\n <div className={`dt-toolbar is-${size} is-zoned`} role=\"toolbar\">\n <div className=\"dt-toolbar-side is-start\">{view}</div>\n <div className=\"dt-btn-group\">\n {search !== null &&\n (collapsed ? (\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-icon dt-search-open\"\n aria-label={searchPlaceholder}\n data-dt-tip={searchPlaceholder}\n onClick={openSearch}\n >\n <MagnifyingGlassIcon size={phone ? 20 : 16} aria-hidden=\"true\" />\n </button>\n ) : (\n <SearchBox\n value={search}\n placeholder={searchPlaceholder}\n onChange={onSearch}\n inputRef={input}\n onBlur={() => setOpen(false)}\n />\n ))}\n {filter}\n </div>\n <span className=\"dt-toolbar-spacer\" />\n <div className=\"dt-toolbar-side is-end\">\n <div className=\"dt-btn-group\">\n {display}\n {more}\n </div>\n {end && (\n <>\n <span className=\"dt-toolbar-sep\" aria-hidden=\"true\" />\n <span className=\"dt-toolbar-end\">{end}</span>\n </>\n )}\n </div>\n </div>\n )\n}\n","// Onay dialog'u (brief §5.7, handoff 02 §6, 08): `alertdialog`, 460 px, ilk odak güvenli düğme (Cancel), yıkıcı düğme kırmızı.\nimport { AlertDialog } from '@base-ui/react/alert-dialog'\nimport { useRef } from 'react'\nimport { useDataTableContext } from '../provider'\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n body,\n confirmLabel,\n danger,\n onConfirm,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n title: string\n body?: string\n confirmLabel: string\n danger?: boolean\n onConfirm: () => void\n}) {\n const { i18n } = useDataTableContext()\n const cancel = useRef<HTMLButtonElement>(null)\n return (\n <AlertDialog.Root open={open} onOpenChange={(o) => onOpenChange(o)}>\n <AlertDialog.Portal>\n <AlertDialog.Backdrop className=\"dt-scrim\" />\n <AlertDialog.Popup className=\"dt-dialog dt-dialog-confirm\" initialFocus={cancel}>\n <AlertDialog.Title className=\"dt-dialog-title\">{title}</AlertDialog.Title>\n {body && <AlertDialog.Description className=\"dt-dialog-body\">{body}</AlertDialog.Description>}\n <div className=\"dt-dialog-actions\">\n <AlertDialog.Close ref={cancel} className=\"dt-btn\">\n {i18n.t('common.cancel')}\n </AlertDialog.Close>\n <button\n type=\"button\"\n className={danger ? 'dt-btn dt-btn-danger' : 'dt-btn dt-btn-primary'}\n onClick={() => {\n onConfirm()\n onOpenChange(false)\n }}\n >\n {confirmLabel}\n </button>\n </div>\n </AlertDialog.Popup>\n </AlertDialog.Portal>\n </AlertDialog.Root>\n )\n}\n","// Save as new view (04 §7, handoff 03 §4.2, T3-04) ve Rename: Name (odaklı; Duplicate'ten \"{ad} copy\" seçili), özet,\n// Make this my default view. Enter kaydeder; hata alanın altında. Her açılışta yeniden kurulur (DataTable `key` verir).\nimport { Dialog } from '@base-ui/react/dialog'\nimport { useRef, useState } from 'react'\nimport { useDataTableContext } from '../provider'\nimport type { NameError } from './model'\n\nexport interface ViewSummary {\n filters: string\n sort: string\n columns: string\n}\n\nexport function ViewDialog({\n open,\n onOpenChange,\n mode,\n name: initialName,\n summary,\n validate,\n onSave,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n mode: 'create' | 'rename'\n name: string\n /** Yalnızca create: Filters / Sort / Columns satırları. */\n summary: ViewSummary | null\n validate: (name: string) => NameError | null\n onSave: (input: { name: string; makeDefault: boolean }) => void\n}) {\n const { i18n } = useDataTableContext()\n const [name, setName] = useState(initialName)\n const [makeDefault, setMakeDefault] = useState(false)\n const [error, setError] = useState<NameError | null>(null)\n const input = useRef<HTMLInputElement>(null)\n\n return (\n <Dialog.Root open={open} onOpenChange={(o) => onOpenChange(o)}>\n <Dialog.Portal>\n <Dialog.Backdrop className=\"dt-scrim\" />\n <Dialog.Popup\n className=\"dt-dialog dt-view-dialog\"\n initialFocus={() => {\n // Duplicate'te dolu gelen ad seçili: yazmak onu değiştirir.\n input.current?.select()\n return input.current\n }}\n >\n <form\n onSubmit={(e) => {\n e.preventDefault()\n const err = validate(name)\n setError(err)\n if (err) return\n onSave({ name: name.trim(), makeDefault })\n onOpenChange(false)\n }}\n >\n <Dialog.Title className=\"dt-dialog-title\">\n {i18n.t(mode === 'rename' ? 'views.rename' : 'views.dialogTitle')}\n </Dialog.Title>\n {mode === 'create' && (\n <Dialog.Description className=\"dt-dialog-body\">{i18n.t('views.dialogBody')}</Dialog.Description>\n )}\n <label className=\"dt-field\">\n <span className=\"dt-field-label\">{i18n.t('views.name')}</span>\n <span className=\"dt-input\">\n <input\n ref={input}\n value={name}\n type=\"text\"\n aria-invalid={error ? true : undefined}\n onChange={(e) => setName(e.target.value)}\n />\n </span>\n {error && (\n <span className=\"dt-field-error\" role=\"alert\">\n {i18n.t(`views.err.${error}`)}\n </span>\n )}\n </label>\n {summary && (\n <div className=\"dt-view-summary\">\n <span>{i18n.t('views.filters')}</span>\n <span>{summary.filters}</span>\n <span>{i18n.t('views.sort')}</span>\n <span>{summary.sort}</span>\n <span>{i18n.t('views.columns')}</span>\n <span>{summary.columns}</span>\n </div>\n )}\n {mode === 'create' && (\n <label className=\"dt-check-row\">\n <input\n type=\"checkbox\"\n className=\"dt-checkbox\"\n checked={makeDefault}\n onChange={(e) => setMakeDefault(e.target.checked)}\n />\n {i18n.t('views.makeDefault')}\n </label>\n )}\n <div className=\"dt-dialog-actions\">\n <Dialog.Close className=\"dt-btn\">{i18n.t('common.cancel')}</Dialog.Close>\n <button type=\"submit\" className=\"dt-btn dt-btn-primary\">\n {i18n.t(mode === 'rename' ? 'common.save' : 'views.save')}\n </button>\n </div>\n </form>\n </Dialog.Popup>\n </Dialog.Portal>\n </Dialog.Root>\n )\n}\n","// Görünüm seçici + menüsü (04 §7, handoff 03 §4.1, T3-01/02/03; R15): System / My views bölümleri (D30: paylaşım yok),\n// satır ⋯ menüsü; altta düzenlenmişse kaydetme satırı (D27), değilse New view. Kısayol `V` DataTable'da.\n// Liste ARIA grid'idir (Vue'da reka Listbox; 7c'de axe'e göre ayrıldı): ↑↓ vurguyu taşır (`aria-activedescendant` satırın\n// görünüm hücresine), Enter seçer; Tab satırların ⋯ düğmelerine ve alttaki düğmelere gider. Görünüm çoksa (R15) odak\n// Find a view… aramasındadır (combobox + grid popup), azsa listenin kendisinde. Base UI Combobox liste içindeki\n// düğmeleri Tab sırasından çıkardığı için kullanılmadı.\nimport { Popover } from '@base-ui/react/popover'\nimport {\n CaretDownIcon,\n CheckIcon,\n DotsThreeIcon,\n MagnifyingGlassIcon,\n PlusIcon,\n StackIcon,\n} from '@phosphor-icons/react'\nimport { useId, useState, type FocusEvent, type KeyboardEvent } from 'react'\nimport type { View } from '../../types/views'\nimport { SAVE_KBD } from '../interaction/kbd'\nimport { useDataTableContext } from '../provider'\nimport { BottomSheet } from '../ui/bottom-sheet'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\n\n/** Bu sayıdan az görünümde arama yok (R15): liste bir bakışta okunur. */\nconst SEARCH_MIN_VIEWS = 8\n\nexport function ViewMenu({\n sections,\n active,\n edited,\n hasDraft,\n defaultId,\n canSave,\n canWrite,\n open,\n onOpenChange,\n onSelect,\n onSaveChanges,\n onSaveAs,\n onDiscard,\n onRename,\n onDuplicate,\n onSetDefault,\n onDelete,\n sheet,\n}: {\n sections: { system: View[]; personal: View[] }\n active: View | null\n edited: boolean\n hasDraft: (id: string) => boolean\n defaultId: string | null\n /** Adapter var: kaydetme, New view, Duplicate. */\n canSave: boolean\n /** Aktif görünüm üzerine yazılabilir (personal). */\n canWrite: boolean\n open: boolean\n onOpenChange: (open: boolean) => void\n onSelect: (id: string) => void\n onSaveChanges: () => void\n /** Save as new view… / Save as my view… / New view: mevcut durumla. */\n onSaveAs: () => void\n onDiscard: () => void\n onRename: (view: View) => void\n onDuplicate: (view: View) => void\n /** `null`: varsayılan kaldırılır, açılış system default'a döner (R6). */\n onSetDefault: (id: string | null) => void\n onDelete: (view: View) => void\n /** Telefon: popover yerine alt sayfa (T13-06). */\n sheet?: boolean\n}) {\n const { i18n } = useDataTableContext()\n const [q, setQ] = useState('')\n // Vurgulu satır: açılışta aktif görünüm (menü `V` ile dışarıdan da açılır), yazınca ilk eşleşme (reka Listbox).\n const [moved, setMoved] = useState<string | null>(null)\n const hl = moved ?? active?.id ?? null\n const setHl = (id: string | null) => setMoved(id ?? '')\n const listId = useId()\n const name = active?.name ?? i18n.t('views.title')\n const needle = q.toLocaleLowerCase()\n const groups = (\n [\n ['system', 'views.system'],\n ['personal', 'views.mine'],\n ] as const\n )\n .map(([key, title]) => ({\n key,\n title,\n views: sections[key].filter((v) => !q || v.name.toLocaleLowerCase().includes(needle)),\n }))\n .filter((g) => g.views.length)\n // Aktif görünümün durumu alttaki kaydetme satırındadır; listede yalnızca bırakılmış taslaklar işaretlenir.\n const isEdited = (v: View) => v.id !== active?.id && hasDraft(v.id)\n const searchable = sections.system.length + sections.personal.length >= SEARCH_MIN_VIEWS\n const canEdit = (v: View) => canSave && v.kind !== 'system'\n const flat = groups.flatMap((g) => g.views)\n const setOpen = (o: boolean) => {\n onOpenChange(o)\n setQ('')\n setMoved(null)\n }\n const pick = (id: string) => {\n setOpen(false)\n onSelect(id)\n }\n const optionId = (id: string) => `${listId}-${id}`\n // Odak arama ve listeden çıkınca (ör. New view) vurgu kalkar: aynı anda iki odak işareti olmasın (reka Listbox).\n const leave = (e: FocusEvent<HTMLElement>) => {\n const to = e.relatedTarget as HTMLElement | null\n if (!to || (to.id !== `${listId}-q` && !document.getElementById(listId)?.contains(to))) setHl(null)\n }\n /** Dialog açan eylemler popover kapandıktan sonra: kapanış odağı tetikleyiciye dönerken dialog'u kapatmasın. */\n const after = (fn: () => void) => {\n setOpen(false)\n setTimeout(fn, 0)\n }\n const triggerLabel = i18n.t(edited ? 'sr.viewEdited' : 'sr.view', { name })\n const triggerContent = (\n <>\n <span className=\"dt-view-icon\" aria-hidden=\"true\">\n <StackIcon size={16} />\n </span>\n {/* Boşluk görünmez (flex) ama görünen metni \"All orders Edited\" yapar; ad onu içermeli (WCAG 2.5.3). */}\n <span className=\"dt-view-name\">{name}</span>\n {edited && (\n <>\n {' '}\n <span className=\"dt-view-dot\" aria-hidden=\"true\" />\n <span className=\"dt-view-edited\">{i18n.t('views.edited')}</span>\n </>\n )}\n <CaretDownIcon size={14} aria-hidden=\"true\" />\n </>\n )\n const focusList = () => document.getElementById(searchable ? `${listId}-q` : listId)\n const onListKey = (e: KeyboardEvent<HTMLElement>) => {\n const i = flat.findIndex((v) => v.id === hl)\n const step = { ArrowDown: 1, ArrowUp: -1 }[e.key]\n if (step) {\n e.preventDefault()\n const next = flat[Math.min(flat.length - 1, Math.max(0, i < 0 ? 0 : i + step))]\n if (next) setHl(next.id)\n } else if (e.key === 'Home' || e.key === 'End') {\n e.preventDefault()\n setHl((e.key === 'Home' ? flat[0] : flat.at(-1))?.id ?? null)\n } else if (e.key === 'Enter' && i >= 0 && e.target === e.currentTarget) {\n e.preventDefault()\n pick(flat[i]!.id)\n }\n }\n const activeDescendant = hl && flat.some((v) => v.id === hl) ? optionId(hl) : undefined\n const content = (\n <>\n {searchable && (\n <label className=\"dt-input has-icon dt-picker-search\">\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={14} aria-hidden=\"true\" />\n </span>\n <input\n id={`${listId}-q`}\n type=\"text\"\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-haspopup=\"grid\"\n aria-controls={listId}\n aria-activedescendant={activeDescendant}\n autoComplete=\"off\"\n value={q}\n placeholder={i18n.t('views.find')}\n aria-label={i18n.t('views.find')}\n onBlur={leave}\n onChange={(e) => {\n const text = e.target.value\n setQ(text)\n const first = sections.system\n .concat(sections.personal)\n .find((v) => v.name.toLocaleLowerCase().includes(text.toLocaleLowerCase()))\n setHl(first?.id ?? null)\n }}\n onKeyDown={onListKey}\n />\n </label>\n )}\n {/* Combobox + grid popup (ARIA 1.2): satır = görünüm hücresi + ⋯ hücresi. listbox yalnızca option alabildiği için\n satırdaki ⋯ düğmesi onu bozuyordu (axe aria-required-children). Grup başlığı satır değil: rowgroup'un adı. */}\n <div\n id={listId}\n role={groups.length ? 'grid' : undefined}\n className=\"dt-views-list\"\n aria-label={groups.length ? i18n.t('views.title') : undefined}\n // Arama yoksa odak listededir: klavye ve vurgu onunla.\n tabIndex={searchable ? undefined : 0}\n aria-activedescendant={searchable ? undefined : activeDescendant}\n onKeyDown={searchable ? undefined : onListKey}\n onBlur={leave}\n >\n {groups.map((g) => (\n <div key={g.key} role=\"rowgroup\" aria-labelledby={`${listId}-${g.key}`}>\n <div id={`${listId}-${g.key}`} className=\"dt-pop-label\" aria-hidden=\"true\">\n {i18n.t(g.title)}\n </div>\n {g.views.map((v) => (\n <div key={v.id} role=\"row\" className={v.id === active?.id ? 'dt-view-row is-active' : 'dt-view-row'}>\n <div\n id={optionId(v.id)}\n role=\"gridcell\"\n aria-selected={v.id === active?.id}\n className=\"dt-view-item\"\n // Açılışta vurgu yok, aktifi işaret gösterir; klavyeyle ya da yazınca taşınan vurgu çizilir.\n data-highlighted={moved && v.id === hl ? '' : undefined}\n onPointerEnter={() => setHl(v.id)}\n onClick={() => pick(v.id)}\n >\n <span className=\"dt-view-check\" aria-hidden=\"true\">\n {v.id === active?.id && <CheckIcon size={sheet ? 18 : 14} />}\n </span>\n <span className=\"dt-view-row-name\">{v.name}</span>\n {isEdited(v) && (\n <>\n <span className=\"dt-view-dot\" aria-hidden=\"true\" />\n <span className=\"dt-view-edited\">{i18n.t('views.edited')}</span>\n </>\n )}\n {v.id === defaultId && <span className=\"dt-view-default\">{i18n.t('views.default')}</span>}\n </div>\n <div role=\"gridcell\" className=\"dt-view-more-cell\">\n <DtMenu\n side=\"right\"\n align=\"start\"\n className=\"dt-view-row-menu\"\n trigger={\n <button type=\"button\" className=\"dt-icon-btn-sm dt-view-more\" aria-label={i18n.t('common.more')}>\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {canEdit(v) && (\n <DtMenuItem onSelect={() => after(() => onRename(v))}>{i18n.t('views.rename')}</DtMenuItem>\n )}\n {canSave && (\n <DtMenuItem onSelect={() => after(() => onDuplicate(v))}>{i18n.t('views.duplicate')}</DtMenuItem>\n )}\n {v.id === defaultId ? (\n <DtMenuItem destructive onSelect={() => onSetDefault(null)}>\n {i18n.t('views.removeDefault')}\n </DtMenuItem>\n ) : (\n <DtMenuItem onSelect={() => onSetDefault(v.id)}>{i18n.t('views.setDefault')}</DtMenuItem>\n )}\n {canEdit(v) && (\n <>\n <DtMenuSeparator />\n <DtMenuItem destructive onSelect={() => after(() => onDelete(v))}>\n {i18n.t('views.delete')}\n </DtMenuItem>\n </>\n )}\n {v.kind === 'system' && <div className=\"dt-view-note\">{i18n.t('views.systemNote')}</div>}\n </DtMenu>\n </div>\n </div>\n ))}\n </div>\n ))}\n {groups.length === 0 && <div className=\"dt-options-empty\">{i18n.t('views.noMatch')}</div>}\n </div>\n {edited && active ? (\n <div className=\"dt-views-foot\">\n <p className=\"dt-views-unsaved\">\n <span className=\"dt-view-dot\" aria-hidden=\"true\" />\n {i18n.t('views.unsaved')}\n </p>\n <div className=\"dt-views-foot-actions\">\n <button type=\"button\" className=\"dt-btn dt-btn-ghost dt-views-revert\" onClick={() => after(onDiscard)}>\n {i18n.t('views.discard')}\n </button>\n {canWrite ? (\n <>\n <button type=\"button\" className=\"dt-btn dt-btn-sm\" onClick={() => after(onSaveAs)}>\n {i18n.t('views.saveAsNew')}\n </button>\n <button type=\"button\" className=\"dt-btn dt-btn-sm dt-btn-primary\" onClick={() => after(onSaveChanges)}>\n {i18n.t('views.saveChanges')}\n <kbd className=\"dt-kbd\" aria-hidden=\"true\">\n {SAVE_KBD}\n </kbd>\n </button>\n </>\n ) : (\n canSave && (\n <button type=\"button\" className=\"dt-btn dt-btn-sm dt-btn-primary\" onClick={() => after(onSaveAs)}>\n {i18n.t('views.saveAsMine')}\n </button>\n )\n )}\n </div>\n </div>\n ) : (\n canSave && (\n <>\n <div className=\"dt-pop-sep\" />\n <button type=\"button\" className=\"dt-pop-item dt-view-new\" onClick={() => after(onSaveAs)}>\n <PlusIcon size={14} aria-hidden=\"true\" />\n {i18n.t('views.new')}\n </button>\n </>\n )\n )}\n </>\n )\n\n if (sheet)\n return (\n <BottomSheet\n open={open}\n onOpenChange={setOpen}\n title={i18n.t('views.title')}\n hideTitle\n className=\"dt-views\"\n initialFocus={focusList}\n trigger={\n <button type=\"button\" className=\"dt-btn dt-btn-ghost has-icon dt-view-trigger\" aria-label={triggerLabel}>\n {triggerContent}\n </button>\n }\n >\n {content}\n </BottomSheet>\n )\n return (\n <Popover.Root open={open} onOpenChange={(o) => setOpen(o)}>\n <Popover.Trigger className=\"dt-btn dt-btn-ghost has-icon dt-view-trigger\" aria-label={triggerLabel}>\n {triggerContent}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner className=\"dt-positioner\" align=\"start\" sideOffset={4}>\n <Popover.Popup className=\"dt-pop dt-views\" initialFocus={focusList}>\n {content}\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n","// Bulk bar (05 §6, handoff 03 §7, T5-01/03/04): [sayaç] │ aksiyonlar (en fazla 3 `inBar`) │ ⋯ (kalanlar, yıkıcı en altta) │ ×.\n// Telefonda bar'da en fazla 2 aksiyon, kalanlar \"More\" alt sayfasında.\n// Yüzer (varsayılan: kartın altında ortada, 64 px, düzeni kaydırmaz) ya da araç çubuğunun yerine. `run(rows)` beklenmez (D20).\nimport { DotsThreeIcon, XIcon } from '@phosphor-icons/react'\nimport { Fragment, useState, type ReactNode } from 'react'\nimport { useDataTableContext } from '../core/provider'\nimport { BottomSheet } from '../core/ui/bottom-sheet'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../core/ui/menu'\nimport type { BulkAction } from '../types/list'\n\nexport function BulkBar<Row extends object>({\n rows,\n actions,\n variant,\n onClear,\n phone,\n children,\n}: {\n rows: Row[]\n actions: Array<BulkAction<Row>>\n variant: 'floating' | 'toolbar'\n onClear: () => void\n phone?: boolean\n /** `bulkActions` yerine uygulamanın içeriği. */\n children?: ReactNode\n}) {\n const { i18n } = useDataTableContext()\n const [moreOpen, setMoreOpen] = useState(false)\n // `when(rows)` false olan ne bar'da ne menüde (D36); menüde yıkıcılar en altta, ayırıcıdan sonra.\n const shown = actions.filter((a) => !a.when || a.when(rows))\n const inBar = shown.filter((a) => a.inBar).slice(0, phone ? 2 : 3)\n const others = shown.filter((a) => !inBar.includes(a))\n const rest = [...others.filter((a) => !a.destructive), ...others.filter((a) => a.destructive)]\n const firstDestructive = rest.findIndex((a) => a.destructive)\n const disabledOf = (a: BulkAction<Row>): boolean | string => a.disabled?.(rows) ?? false\n /** Tooltip / ikinci satır: `disabled` gerekçesi varsa o, yoksa `description` (D36). */\n const tipOf = (a: BulkAction<Row>): string | undefined => {\n const d = disabledOf(a)\n return typeof d === 'string' ? d : a.description\n }\n const run = (a: BulkAction<Row>) => {\n setMoreOpen(false)\n if (!disabledOf(a)) void a.run(rows)\n }\n const btn = variant === 'toolbar' ? 'dt-btn has-icon' : 'dt-bulk-btn'\n const clear = (cls: string) => (\n <button\n type=\"button\"\n className={cls}\n aria-label={i18n.t('selection.clear')}\n data-dt-tip={i18n.t('selection.clear')}\n onClick={onClear}\n >\n <XIcon size={16} aria-hidden=\"true\" />\n </button>\n )\n\n return (\n <div\n className={phone ? `dt-bulk is-${variant} is-phone` : `dt-bulk is-${variant}`}\n role=\"toolbar\"\n aria-label={i18n.t('bulk.aria')}\n >\n {variant === 'toolbar' && clear('dt-btn dt-btn-icon')}\n <span className=\"dt-bulk-count\" role=\"status\">\n {i18n.t('selection.selected', { count: rows.length })}\n </span>\n <span className=\"dt-bulk-sep\" aria-hidden=\"true\" />\n {children ?? (\n <>\n {inBar.map((a) => {\n const Icon = a.icon\n return (\n <button\n key={a.id}\n type=\"button\"\n className={a.destructive ? `${btn} is-destructive` : btn}\n disabled={!!disabledOf(a)}\n data-dt-tip={tipOf(a)}\n onClick={() => run(a)}\n >\n {Icon && <Icon size={phone ? 18 : 16} aria-hidden=\"true\" />}\n <span>{a.label}</span>\n </button>\n )\n })}\n {rest.length > 0 && phone && (\n <BottomSheet\n open={moreOpen}\n onOpenChange={setMoreOpen}\n title={i18n.t('bulk.moreAria')}\n hideTitle\n trigger={\n <button type=\"button\" className=\"dt-bulk-btn dt-bulk-more\" aria-label={i18n.t('bulk.moreAria')}>\n <DotsThreeIcon size={18} weight=\"bold\" aria-hidden=\"true\" />\n <span>{i18n.t('common.more')}</span>\n </button>\n }\n >\n <div className=\"dt-bsheet-label\">{i18n.t('selection.selected', { count: rows.length })}</div>\n {rest.map((a, i) => {\n const tip = tipOf(a)\n return (\n <Fragment key={a.id}>\n {i > 0 && i === firstDestructive && <div className=\"dt-bsheet-sep\" />}\n <button\n type=\"button\"\n className={a.destructive ? 'dt-bsheet-row is-destructive' : 'dt-bsheet-row'}\n disabled={!!disabledOf(a)}\n onClick={() => run(a)}\n >\n {a.icon && <a.icon size={18} aria-hidden=\"true\" />}\n <span className=\"dt-menu-text\">\n <span>{a.label}</span>\n {tip && <span className=\"dt-menu-sub\">{tip}</span>}\n </span>\n </button>\n </Fragment>\n )\n })}\n </BottomSheet>\n )}\n {rest.length > 0 && !phone && (\n <DtMenu\n className=\"dt-bulk-menu\"\n align=\"start\"\n side={variant === 'floating' ? 'top' : undefined}\n offset={variant === 'floating' ? 12 : 4}\n trigger={\n <button\n type=\"button\"\n className={variant === 'toolbar' ? `${btn} dt-bulk-more dt-btn-icon` : `${btn} dt-bulk-more`}\n aria-label={i18n.t('bulk.moreAria')}\n >\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {rest.map((a, i) => {\n const tip = tipOf(a)\n return (\n <Fragment key={a.id}>\n {i > 0 && i === firstDestructive && <DtMenuSeparator />}\n <DtMenuItem\n destructive={a.destructive}\n twoLine={!!tip}\n disabled={!!disabledOf(a)}\n onSelect={() => run(a)}\n >\n {a.icon && <a.icon size={16} aria-hidden=\"true\" />}\n <span className=\"dt-menu-text\">\n <span>{a.label}</span>\n {tip && <span className=\"dt-menu-sub\">{tip}</span>}\n </span>\n </DtMenuItem>\n </Fragment>\n )\n })}\n </DtMenu>\n )}\n </>\n )}\n {variant === 'floating' && (\n <>\n <span className=\"dt-bulk-sep\" aria-hidden=\"true\" />\n {clear('dt-bulk-btn dt-bulk-icon')}\n </>\n )}\n </div>\n )\n}\n","// Footer (05 §8, brief §6.13, T9-12): ekrandaki verinin sayfasından okur; simple sayfalama (D7); tazelik bilgisi burada.\nimport {\n ArrowClockwiseIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CircleNotchIcon,\n} from '@phosphor-icons/react'\nimport { useEffect, useState } from 'react'\nimport { getFormat } from '../core/format'\nimport { useDataTableContext } from '../core/provider'\n\nexport type Freshness = 'normal' | 'refreshing' | 'stale' | 'live'\n\nexport interface FooterProps {\n /** Ekrandaki satır sayısı ve sayfası (1 tabanlı). */\n rowCount: number\n page: { number: number; size: number }\n hasMore: boolean\n /** Biliniyorsa toplam (istemci modunda hep; sunucuda yanıtla ya da Count total ile). */\n total?: number\n /** Count total düğmesi; sonuç \"counted 09:42\" eki alır. */\n countable: boolean\n counting: boolean\n countedAt: Date | null\n /** Kimlik değiştiren istek sürüyor: sayfalama kilitli. */\n busy: boolean\n firstLoad: boolean\n /** Gövde Empty mi (filtre/arama yok): \"No rows\" / \"0 rows\". */\n empty: boolean\n pageSizes: number[]\n updatedAt: Date | null\n freshness: Freshness\n onRefresh?: () => void\n onCount: () => void\n onPage: (page: number) => void\n onPageSize: (size: number) => void\n /** Telefon (handoff 04 §5): tazelik ve Rows per page yok; Önceki / Sonraki 44 px ikon. */\n phone?: boolean\n}\n\n/** \"Updated 3 min ago\" kendiliğinden eskisin: metin render'da değil, bu saatle hesaplanır. */\nfunction useNow(ms: number): number {\n const [now, setNow] = useState(() => Date.now())\n useEffect(() => {\n const t = setInterval(() => setNow(Date.now()), ms)\n return () => clearInterval(t)\n }, [ms])\n return now\n}\n\nexport function Footer(p: FooterProps) {\n const now = useNow(30_000)\n const { i18n, locale } = useDataTableContext()\n const fmt = getFormat(locale)\n const from = (p.page.number - 1) * p.page.size + 1\n const to = from + p.rowCount - 1\n const lastPage = !p.hasMore\n const single = p.page.number === 1 && lastPage\n const time = (d: Date) => d.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit' })\n const updatedText = !p.updatedAt\n ? ''\n : now - p.updatedAt.getTime() < 60_000\n ? i18n.t('toolbar.updatedJustNow')\n : i18n.t('toolbar.updatedAgo', { time: fmt.relative(p.updatedAt, new Date(now), 'short') })\n\n const count = () => {\n if (p.total !== undefined && !single)\n return (\n <>\n <span className=\"dt-footer-of\">{i18n.t('page.of', { total: fmt.int(p.total) })}</span>\n {p.countedAt && (\n <span className=\"dt-footer-muted\">· {i18n.t('page.counted', { time: time(p.countedAt) })}</span>\n )}\n </>\n )\n if (p.counting)\n return (\n <span className=\"dt-footer-muted\">\n {i18n.t('page.of', { total: '' })}\n <CircleNotchIcon size={12} className=\"dt-spin\" aria-hidden=\"true\" />\n {i18n.t('page.counting')}\n </span>\n )\n if (lastPage && !single) return <span className=\"dt-footer-muted\">· {i18n.t('page.end')}</span>\n if (p.countable && !single)\n return (\n <button type=\"button\" className=\"dt-btn dt-btn-ghost dt-btn-xs dt-footer-count\" onClick={p.onCount}>\n · {i18n.t('page.countTotal')}\n </button>\n )\n return null\n }\n\n return (\n <div className=\"dt-footer\" role=\"navigation\" aria-label={i18n.t('page.nav')}>\n <div className=\"dt-footer-left\">\n {p.firstLoad ? (\n <span className=\"dt-footer-muted\">{i18n.t('common.loading')}</span>\n ) : p.rowCount === 0 ? (\n <span className=\"dt-footer-rows\">{i18n.t(p.empty ? 'page.none' : 'page.zero')}</span>\n ) : (\n <>\n <span className=\"dt-footer-rows\">{i18n.t('page.rows', { from: fmt.int(from), to: fmt.int(to) })}</span>\n {count()}\n </>\n )}\n {!p.phone && (p.updatedAt || p.freshness !== 'normal') && (\n <>\n <span className=\"dt-footer-vsep\" aria-hidden=\"true\" />\n {p.freshness === 'live' ? (\n <span className=\"dt-footer-live\">\n <span className=\"dt-live-dot\" aria-hidden=\"true\" />\n {i18n.t('toolbar.live')}\n </span>\n ) : p.freshness === 'refreshing' ? (\n <span className=\"dt-footer-muted\" role=\"status\">\n {i18n.t('state.updating')}\n </span>\n ) : (\n p.updatedAt && (\n <span className={p.freshness === 'stale' ? 'dt-footer-updated is-stale' : 'dt-footer-updated'}>\n {updatedText}\n </span>\n )\n )}\n {p.onRefresh && (\n <button\n type=\"button\"\n className=\"dt-icon-btn-sm\"\n aria-label={i18n.t('toolbar.refresh')}\n data-dt-tip={`${i18n.t('toolbar.refresh')} · R`}\n onClick={p.onRefresh}\n >\n <ArrowClockwiseIcon\n size={14}\n className={p.freshness === 'refreshing' ? 'dt-spin' : undefined}\n aria-hidden=\"true\"\n />\n </button>\n )}\n </>\n )}\n </div>\n <div className=\"dt-footer-right\">\n {!p.phone && (\n <label className=\"dt-footer-size\">\n <span className=\"dt-footer-size-label\">{i18n.t('page.perPage')}</span>\n <span className=\"dt-select\">\n <select value={p.page.size} disabled={p.busy} onChange={(e) => p.onPageSize(Number(e.target.value))}>\n {p.pageSizes.map((s) => (\n <option key={s} value={s}>\n {s}\n </option>\n ))}\n </select>\n <CaretDownIcon size={12} aria-hidden=\"true\" />\n </span>\n </label>\n )}\n {!p.phone && <span className=\"dt-footer-vsep\" aria-hidden=\"true\" />}\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-sm has-icon dt-footer-prev\"\n aria-label={p.phone ? i18n.t('page.previous') : undefined}\n disabled={p.page.number <= 1 || p.busy}\n onClick={() => p.onPage(p.page.number - 1)}\n >\n <CaretLeftIcon size={p.phone ? 18 : 14} aria-hidden=\"true\" />\n <span>{i18n.t('page.previous')}</span>\n </button>\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-sm dt-footer-next\"\n aria-label={p.phone ? i18n.t('page.next') : undefined}\n disabled={!p.hasMore || p.busy}\n onClick={() => p.onPage(p.page.number + 1)}\n >\n <span>{i18n.t('page.next')}</span>\n <CaretRightIcon size={p.phone ? 18 : 14} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n )\n}\n","// Ekrandaki çipler (04 §1, §3): tam koşullar tablonun durumunda (`filters`, URL'ye gidebilir), değeri seçilmemiş tek çip\n// burada taslak olarak durur. Taslak yalnızca düzenlenen çiptir: başka çipe geçince ya da popover kapanınca kaldırılır.\n// Clear veya şekil değiştiren operatör tam bir çipi eksik yapar: sorgudan çıkar, ekranda aynı yerinde kalır.\nimport { useState } from 'react'\nimport { defaultOperator, isComplete, toCondition, type Chip } from '../core/filters/model'\nimport type { ColumnDef } from '../types/columns'\nimport type { FilterCondition } from '../types/query'\n\nexport function useChips({\n defs,\n filters,\n setFilters,\n}: {\n defs: ReadonlyMap<string, ColumnDef>\n filters: FilterCondition[]\n setFilters: (filters: FilterCondition[]) => void\n}) {\n const [draft, setDraft] = useState<{ chip: Chip; at: number } | null>(null)\n const [editing, setEditingState] = useState<string | null>(null)\n\n // Tanımı olmayan sütun (eski URL, kaldırılmış sütun) çip olarak çizilmez; istekte kalır, sunucu karar verir.\n const chips: Chip[] = filters.filter((f) => defs.has(f.column))\n if (draft && !chips.some((c) => c.column === draft.chip.column))\n chips.splice(Math.min(draft.at, chips.length), 0, draft.chip)\n const has = (column: string) => filters.some((f) => f.column === column)\n\n const setEditing = (column: string | null) => {\n setEditingState(column)\n if (draft && draft.chip.column !== column) setDraft(null)\n }\n\n const update = (chip: Chip) => {\n const at = chips.findIndex((c) => c.column === chip.column)\n const rest = filters.filter((f) => f.column !== chip.column)\n if (isComplete(chip, defs.get(chip.column)!.type)) {\n // Sorgudaki sırası ekrandaki yeri: öncesindeki tam çiplerin sayısı.\n const before = chips.slice(0, at).filter((c) => has(c.column)).length\n rest.splice(before, 0, toCondition(chip))\n setFilters(rest)\n setDraft(null)\n } else {\n setDraft({ chip, at })\n if (has(chip.column)) setFilters(rest)\n }\n }\n\n const remove = (column: string) => {\n if (draft?.chip.column === column) setDraft(null)\n if (editing === column) setEditingState(null)\n if (has(column)) setFilters(filters.filter((f) => f.column !== column))\n }\n\n /** Picker / header: var olan çipi açar (D2), yoksa tipin varsayılan operatörüyle oluşturur; boolean doğrudan uygulanır. */\n const pick = (column: string) => {\n const def = defs.get(column)\n if (!def) return\n if (chips.some((c) => c.column === column)) return setEditing(column)\n if (def.type === 'boolean') {\n setEditing(null)\n setFilters([...filters, { column, op: 'eq', value: true }])\n return\n }\n setEditingState(column)\n setDraft({ chip: { column, op: defaultOperator(def) }, at: chips.length })\n }\n\n const clear = () => {\n setDraft(null)\n setEditingState(null)\n setFilters([])\n }\n\n return { chips, editing, setEditing, update, remove, pick, clear }\n}\n","// Yükleme geçişleri (05 §10, R4): TanStack Query sonucundan ve isteğin kimliğinden türer; paket istek göndermez.\n// Kimlik = arama + filtre + sıralama + sayfa. Verinin ait olduğu kimlik \"snapshot\"ta saklanır: `keepPreviousData` ile yeni\n// anahtarda eski veri gösterilirken snapshot eski kimliktedir, bu yüzden geçiş kimlik değiştiren sayılır.\nimport { useEffect, useState } from 'react'\nimport type { DataTableResult } from '../types/list'\n\nconst SLOW_MS = 400\nconst BAR_MS = 150\nconst STILL_LOADING_MS = 10_000\n\n/** `token` boş değilken `ms` dolunca true; token değişince yeniden sayar. */\nfunction useElapsed(token: string | null, ms: number): boolean {\n const [done, setDone] = useState<string | null>(null)\n useEffect(() => {\n if (token === null) return\n const t = setTimeout(() => setDone(token), ms)\n return () => clearTimeout(t)\n }, [token, ms])\n return token !== null && done === token\n}\n\nexport interface Snapshot {\n identity: string\n page: { number: number; size: number }\n data: unknown\n at: number | undefined\n}\n\nexport function useLoadState<Row extends object>(\n result: DataTableResult<Row> | undefined,\n identity: string,\n page: { number: number; size: number },\n) {\n const pending = !!result && (result.status === 'pending' || !!result.isFetching)\n const settled = !!result && result.status === 'success' && !result.isFetching && !result.isPlaceholderData\n // Snapshot yalnızca yeni veriyle ilerler: istek değişip sonuç henüz güncellenmediyse eski veri yeni kimliğe yazılmaz.\n const [snap, setSnap] = useState<Snapshot | null>(null)\n if (settled && (!snap || snap.data !== result.data || snap.at !== result.dataUpdatedAt))\n setSnap({ identity, page, data: result.data, at: result.dataUpdatedAt })\n\n // Aynı anahtarda yenileme hatası eski satırları korur (Stale); yeni anahtarın hatasında veri yoktur (Error).\n const errorKind: 'error' | 'stale' | null =\n result?.status === 'error' ? (result.data?.rows.length ? 'stale' : 'error') : null\n const rows: Row[] = errorKind === 'error' ? [] : (result?.data?.rows ?? [])\n const hasRows = rows.length > 0\n const identityChange = pending && snap?.identity !== identity\n const dim = identityChange && hasRows\n\n // Aynı kimlikte art arda iki yükleme ayrı sayılsın: zamanlayıcı anahtarı son veri zamanını da taşır.\n const token = `${identity}|${result?.dataUpdatedAt ?? 0}`\n const slow = useElapsed(dim ? token : null, SLOW_MS)\n const refreshing = pending && !identityChange\n const bar = useElapsed(refreshing ? token : null, BAR_MS)\n const stillLoading = useElapsed(pending ? token : null, STILL_LOADING_MS)\n const skeleton = (pending && !hasRows) || slow\n\n return {\n pending,\n rows,\n hasRows,\n errorKind,\n dim,\n skeleton,\n /** 150 ms'den kısa yenilemede çubuk görünmez. */\n bar,\n stillLoading,\n refreshing,\n /** Footer'ın sayfalaması kilitli: kimlik değiştiren istek ya da ilk yükleme sürüyor. */\n busy: identityChange || (skeleton && !hasRows),\n /** Footer'ın okuduğu sayfa: ekrandaki verinin sayfası. */\n page: snap?.page ?? page,\n /** Ekrandaki verinin zamanı: yeni anahtar yüklenirken de eski verinin zamanı görünür. */\n updatedAt: snap?.at ? new Date(snap.at) : null,\n }\n}\n","// Liste bileşeni (05): ızgara, footer, durum ekranları, yükleme geçişleri (R4). Paket veri çekmez (D18): sunucu modunda\n// `useQuery` sonucunu `result` olarak alır; istemci modunda satırlar `useDataTable({ rows })`'dan gelir.\nimport { CircleNotchIcon, FunnelIcon, PlusIcon, WarningIcon } from '@phosphor-icons/react'\nimport {\n lazy,\n Suspense,\n useEffect,\n useEffectEvent,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport { optionLabel } from '../core/cells/format'\nimport { exportFile } from '../core/export/write'\nimport { readPath } from '../core/columns/read-path'\nimport { RemoteLabels } from '../core/cells/remote-labels'\nimport { ColumnPicker } from '../core/filters/column-picker'\nimport { FilterBar } from '../core/filters/filter-bar'\nimport { toCondition } from '../core/filters/model'\n\n// Telefon Filters sayfası ilk açılışta yüklenir.\n// lazy() generic bileşenin tip parametresini düşürür; satır tipi dialog'a aynen geçer.\nconst ColumnsDialog = lazy(\n () => import('../core/toolbar/columns-dialog'),\n) as unknown as typeof import('../core/toolbar/columns-dialog').default\nconst FiltersSheet = lazy(() => import('../core/filters/filters-sheet').then((m) => ({ default: m.FiltersSheet })))\nimport { summarize, type Chip } from '../core/filters/model'\nimport { getFormat } from '../core/format'\nimport type { HeaderSort } from '../core/grid/header-cell'\nimport { Grid } from '../core/grid/grid'\nimport { DelegatedTooltip } from '../core/grid/tooltip'\nimport { isTextInput } from '../core/interaction/is-interactive'\nimport { useDataTableContext } from '../core/provider'\nimport { StateMessage } from '../core/states/state-message'\nimport { DisplayPopover } from '../core/toolbar/display-popover'\nimport { MoreMenu } from '../core/toolbar/more-menu'\nimport { PhoneMoreSheet } from '../core/toolbar/phone-more-sheet'\nimport { Toolbar, type ToolbarHandle, type ToolbarSize } from '../core/toolbar/toolbar'\nimport { ConfirmDialog } from '../core/ui/confirm-dialog'\nimport { nameError } from '../core/views/model'\nimport { ViewDialog, type ViewSummary } from '../core/views/view-dialog'\nimport { ViewMenu } from '../core/views/view-menu'\nimport type { ColumnDef } from '../types/columns'\nimport type { BulkAction, DataTableResult, RowAction, RowClickMode } from '../types/list'\nimport type { FilterCondition, QueryWithoutPage } from '../types/query'\nimport type { View, ViewState } from '../types/views'\nimport { BulkBar } from './bulk-bar'\nimport { Footer, type Freshness } from './footer'\nimport { useChips } from './use-chips'\nimport { isFilterable, isSearchable, isSortable } from './use-list-table'\nimport type { DataTableInstance } from './use-data-table'\nimport { useLoadState } from './use-load-state'\n\n/** `error` yapısal okunur: TanStack Query'nin `Error`'u, uygulamanın `{ message, id }`'si ya da düz metin. */\nconst NONE: Record<string, true> = {}\n\nfunction errorInfo(error: unknown): { message?: string; id?: string } {\n if (typeof error === 'string') return { message: error }\n if (typeof error !== 'object' || !error) return {}\n const e = error as { message?: unknown; id?: unknown }\n return {\n message: typeof e.message === 'string' ? e.message : undefined,\n id: typeof e.id === 'string' || typeof e.id === 'number' ? String(e.id) : undefined,\n }\n}\n\nexport function DataTable<Row extends object>({\n table,\n result,\n label,\n empty,\n toolbar = 'auto',\n toolbarEnd,\n notice,\n searchPlaceholder,\n autoRefresh,\n onPrint,\n exportable = true,\n onExport,\n shortcuts = true,\n onRowClick,\n rowClick = 'none',\n onRowOpen,\n rowActions,\n selectable = false,\n selectionBar = 'floating',\n bulkActions,\n selectionActions,\n onSelectionChange,\n renderExpanded,\n canExpand,\n rowError,\n}: {\n table: DataTableInstance<Row>\n /** Sunucu modu: `useQuery` sonucu, dönüştürmeden (R4). İstemci modunda verilmez. */\n result?: DataTableResult<Row>\n /** Izgaranın erişilebilir adı. Verilmezse `entityName.other`. */\n label?: string\n /** Hiç satır yokken (filtre ve arama yokken) gövdede; verilmezse \"No {entity} yet\". */\n empty?: ReactNode\n /** auto: yapılandırılana göre yuvalar; minimal: yalnızca arama (3a) + `toolbarEnd`; false: araç çubuğu yok. */\n toolbar?: 'auto' | 'minimal' | false\n /** Ekrana özgü birincil aksiyon, araç çubuğunun sonunda (ör. \"New order\"). */\n toolbarEnd?: ReactNode\n /**\n * Araç çubuğu ile sütun başlıkları arasında uygulamanın şeridi (R16): listenin bağlamını anlatır\n * (\"Yalnızca arşivlenmiş kayıtlar\"). İçerik ve rolü uygulamanındır; paket yer ve hizayı verir.\n */\n notice?: ReactNode\n /** Verilmezse \"Search {entity}…\". */\n searchPlaceholder?: string\n /** Saniye. Verilirse ⋯ menüsünde Auto-refresh; açıkken footer \"Live\". */\n autoRefresh?: number\n /** Verilirse ⋯ › Print. Sorgu sayfasızdır. */\n onPrint?: (payload: { query: QueryWithoutPage; visibleColumns: string[] }) => void\n /** ⋯ › Export (D46). Varsayılan açık; `false` gizler (ör. yetki). */\n exportable?: boolean\n /** Verilirse paket dosya yazmaz; `rows` paketin yazacağı satırlardır (seçim varsa seçili, yoksa sayfadaki). */\n onExport?: (payload: {\n format: 'csv' | 'xlsx'\n query: QueryWithoutPage\n selection: Row[]\n rows: Row[]\n visibleColumns: string[]\n }) => void\n /** Tek harfli kısayollar (/ arama, F filtre, R yenile, V görünümler) ve ⌘S. Alt←/→ her zaman çalışır. */\n shortcuts?: boolean\n /** Satır gövdesine düz tık; hücredeki düğme, link ve metin seçimi tetiklemez (05 §7). `rowClick`'ten bağımsız. */\n onRowClick?: (row: Row, event: MouseEvent) => void\n /** Satır gövdesine tıklama (D6): 'open' birincil linki açar, 'expand' detayı açıp kapatır. Varsayılan 'none'. */\n rowClick?: RowClickMode\n /** Birincil linke düz sol tık, menüde Open, `rowClick=\"open\"`. Paket gezinmeyi durdurmaz: `event.preventDefault()` dinleyicide. */\n onRowOpen?: (payload: { row: Row; href: string; event: MouseEvent }) => void\n /** Satır menüsü (⋯): Open / Copy yerleşik + bunlar. */\n rowActions?: Array<RowAction<Row>>\n /** Seçim sütunu; seçim sayfa kapsamlıdır (D19), durum `table.selection`'da. */\n selectable?: boolean\n /** Seçim çubuğu: yüzer (varsayılan) ya da araç çubuğunun yerine. */\n selectionBar?: 'floating' | 'toolbar'\n bulkActions?: Array<BulkAction<Row>>\n /** `bulkActions` yerine seçim çubuğunun içeriği. */\n selectionActions?: (props: { rows: Row[]; clear: () => void }) => ReactNode\n /** Seçim her değiştiğinde; sayfadaki seçili satırlar (D19). */\n onSelectionChange?: (rows: Row[]) => void\n /** Satır detayı (05 §7): birincil hücrede chevron; veriyi detay bileşeni çeker. */\n renderExpanded?: (props: { row: Row; close: () => void }) => ReactNode\n /** Bu satırın detayı var mı? Yoksa chevron yerinde boşluk kalır. */\n canExpand?: (row: Row) => boolean\n /** Satır hatası (D35): metin ya da metin listesi → hata zemini, ⋯ hücresinde uyarı ikonu, satırda tooltip. Harita\n * uygulamanın: paket hata saklamaz, temizlemez. */\n rowError?: (row: Row) => string | string[] | null | undefined\n}) {\n const { i18n, locale } = useDataTableContext()\n const fmt = getFormat(locale)\n const entity = table.entityName\n const q = table.request\n const server = table.rows === undefined\n const load = useLoadState(server ? result : undefined, JSON.stringify([q.search, q.filters, q.sort, q.page]), q.page)\n const rows = server ? load.rows : (table.rows ?? [])\n const hasRows = rows.length > 0\n const refetch = server ? result?.refetch : undefined\n const busy = load.busy\n\n // Filtreler (04): tam koşullar tablonun durumunda, eksik çip ve açık editör burada.\n const defs = new Map(table.columns.map((c) => [c.id as string, c as ColumnDef]))\n const filterable = table.columns.filter((c) => isFilterable(c as ColumnDef)) as ColumnDef[]\n const filterIds = new Set(filterable.map((c) => c.id as string))\n const chips = useChips({ defs, filters: q.filters, setFilters: table.setFilters })\n const [pickerOpen, setPickerOpen] = useState(false)\n // Telefon Filters sayfası (04 §9): her açılışta yeni `key` ile taslak o anki çiplerden kurulur.\n const [sheet, setSheet] = useState<{ key: number; open: boolean; column?: string } | null>(null)\n const openSheet = (column?: string) => setSheet((s) => ({ key: (s?.key ?? 0) + 1, open: true, column }))\n const [labels] = useState(() => new RemoteLabels())\n // Seçenek editörü (renk) ve para birimi listesi yüklü satırlardan.\n const sourceRows: object[] = server ? rows : (table.allRows ?? [])\n const labelOf = (def: ColumnDef) => (v: string | number) => {\n if (def.type === 'select' || def.type === 'multiselect' || (def.type === 'user' && def.options))\n return optionLabel(def.options, v)\n if ((def.type === 'user' || def.type === 'ajax') && def.remote) return labels.label(def.id as string, def.remote, v)\n return String(v)\n }\n const summaryOf = (chip: Chip) =>\n summarize(chip, defs.get(chip.column)!, { i18n, fmt, labelOf: labelOf(defs.get(chip.column)!) })\n const currenciesOf = (def: ColumnDef): string[] => {\n if (def.type !== 'currency') return []\n if (typeof def.currency === 'string') return [def.currency]\n const of = def.currency\n return [...new Set(sourceRows.map((r) => of(r)))]\n }\n const hasFilter = toolbar === 'auto' && filterable.length > 0\n const hasSearch = toolbar !== false && table.columns.some((c) => isSearchable(c as ColumnDef))\n const toolbarRef = useRef<ToolbarHandle>(null)\n\n // Columns dialog'u (D45): Display popover'ı ve sütun menüsü açar. Dialog ve @dnd-kit ilk açılışta yüklenir, sonra\n // bağlı kalır; kapanınca odak açan düğmeye döner (açan popover / menü o an kapanmıştır).\n const [columnsOpen, setColumnsOpen] = useState(false)\n const [columnsUsed, setColumnsUsed] = useState(false)\n const columnsFrom = useRef<HTMLElement | null>(null)\n const openColumns = (from: HTMLElement | null) => {\n columnsFrom.current = from\n setColumnsUsed(true)\n setColumnsOpen(true)\n }\n\n // Görünümler (04 §7): menü, Save as new view / Rename dialog'u, silme onayı. Görünüm uygulanınca açık çip taslağı kalkar.\n const vw = table.views\n const hasViews = toolbar === 'auto' && vw.hasViews\n const [viewMenuOpen, setViewMenuOpen] = useState(false)\n const [viewDialog, setViewDialog] = useState<{\n key: number\n mode: 'create' | 'rename'\n name: string\n state: ViewState\n summary: ViewSummary | null\n view?: View\n /** Mevcut düzenleme yeni görünüme taşınır (Save as new / New view); Duplicate'te aktif görünümün taslağı kalır. */\n fromCurrent: boolean\n } | null>(null)\n const [confirmDelete, setConfirmDelete] = useState<View | null>(null)\n const current = (): ViewState => ({ filters: q.filters, sort: q.sort, columns: table.layout.state() })\n const viewSummary = (s: ViewState): ViewSummary => {\n const lead = s.sort[0]\n const more = s.sort.length > 1 ? ` +${s.sort.length - 1}` : ''\n const pinned = [...s.columns.pinned.left, ...s.columns.pinned.right].map(headerOf).join(', ')\n return {\n filters: s.filters.map((f) => headerOf(f.column)).join(' · ') || i18n.t('common.empty'),\n sort: lead ? `${headerOf(lead.column)} ${lead.dir === 'asc' ? '↑' : '↓'}${more}` : i18n.t('common.empty'),\n columns: [\n i18n.t('views.columnsSummary', { shown: s.columns.visible.length, total: table.columns.length }),\n ...(pinned ? [i18n.t('views.pinnedSummary', { name: pinned })] : []),\n ].join(' · '),\n }\n }\n /** Save as new view / Save as my view / New view: mevcut durum, ad boş. Duplicate: kaynağın kayıtlı durumu, \"{ad} copy\". */\n const openSaveAs = (view?: View) => {\n const state = view ? table.resolveView(view) : current()\n setViewDialog({\n key: (viewDialog?.key ?? 0) + 1,\n mode: 'create',\n name: view ? i18n.t('views.copyName', { name: view.name }) : '',\n state,\n summary: viewSummary(state),\n view,\n fromCurrent: !view,\n })\n }\n const selectView = (id: string) => {\n chips.setEditing(null)\n vw.select(id)\n }\n\n // Seçim ve expand (05 §6–7): seçim tabloda (sorgu değişince temizlenir), açık detaylar burada aynı kuralla.\n const rowKeys = rows.map(table.rowId).join('\\u0000')\n const selectedRows = selectable ? rows.filter((r) => table.selection[table.rowId(r)]) : []\n const selectedKey = selectedRows.map(table.rowId).join('\\u0000')\n const selectRows = (ids: string[], value: boolean) => {\n const next = { ...table.selection }\n for (const id of ids) {\n if (value) next[id] = true\n else delete next[id]\n }\n table.setSelection(next)\n }\n const expandKey = JSON.stringify([q.search, q.filters, q.sort, q.page])\n const [open, setOpen] = useState({ key: expandKey, ids: NONE })\n if (open.key !== expandKey) setOpen({ key: expandKey, ids: NONE })\n const expanded = open.key === expandKey ? open.ids : NONE\n const toggleExpand = (id: string, value: boolean) => {\n const next = { ...expanded }\n if (value) next[id] = true\n else delete next[id]\n setOpen({ key: expandKey, ids: next })\n // Açılan detay satır sayısıyla okunur (08 §5): detay çizildikten sonra DOM'dan.\n const row = rows.find((r) => table.rowId(r) === id)\n if (value && row)\n requestAnimationFrame(() => {\n const sub = [...(root.current?.querySelectorAll<HTMLElement>('.dt-subrow') ?? [])].find((el) =>\n el.id.endsWith(`-sub-${id}`),\n )\n const count = sub ? sub.querySelectorAll('[role=\"row\"], tr').length : 0\n setSeen((s) => ({ ...s, text: i18n.t('sr.expanded', { label: primaryLabel(row), count }) }))\n })\n }\n // Yeni veride olmayan anahtarlar düşer (05 §12): refresh'te kalan satırların seçimi ve açıklığı korunur. Seçim tablonun\n // durumu olduğundan effect'te, açıklık burada render sırasında.\n const ids = new Set(rows.map(table.rowId))\n const keep = (o: Record<string, true>) =>\n Object.fromEntries(Object.entries(o).filter(([id]) => ids.has(id))) as Record<string, true>\n if (Object.keys(expanded).some((id) => !ids.has(id))) setOpen({ key: expandKey, ids: keep(expanded) })\n useEffect(() => {\n if (Object.keys(table.selection).some((id) => !ids.has(id))) table.setSelection(keep(table.selection))\n // Yalnızca satırlar değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rowKeys])\n const lastSelected = useRef('')\n useEffect(() => {\n if (lastSelected.current === selectedKey) return\n lastSelected.current = selectedKey\n onSelectionChange?.(selectedRows)\n // Yalnızca seçim değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedKey])\n\n // Birincil hücre (D6): link, aria etiketleri ve Copy için metin; ⋯ sütunu birincil sütun ya da rowActions varsa.\n const primaryDef = table.columns.find((c) => c.primary)\n const primaryHref = (row: Row) => primaryDef?.href?.(row)\n const primaryLabel = (row: Row): string => {\n const v = primaryDef\n ? primaryDef.accessor\n ? primaryDef.accessor(row)\n : readPath(row, primaryDef.id as string)\n : table.rowId(row)\n return v === null || v === undefined ? '' : String(v)\n }\n const rowMenu = !!rowActions?.length || !!primaryDef\n const handleRowClick = (row: Row, event: MouseEvent) => {\n onRowClick?.(row, event)\n if (rowClick === 'open')\n (event.target as Element).closest('.dt-row')?.querySelector<HTMLElement>('.dt-cell.is-primary a.dt-link')?.click()\n else if (rowClick === 'expand' && renderExpanded && (canExpand?.(row) ?? true)) {\n const id = table.rowId(row)\n toggleExpand(id, !expanded[id])\n }\n }\n\n // Count total (05 §8): sonuç arama/filtre/sıralama değişene kadar geçerli; değişince bekleyen sayım iptal edilir.\n const countKey = JSON.stringify([q.search, q.filters, q.sort])\n const [counted, setCounted] = useState<{ key: string; total: number; at: Date } | null>(null)\n const [counting, setCounting] = useState<string | null>(null)\n const countCtl = useRef<AbortController | null>(null)\n useEffect(() => () => countCtl.current?.abort(), [countKey])\n const count = () => {\n if (!table.count) return\n countCtl.current?.abort()\n const ctl = new AbortController()\n countCtl.current = ctl\n setCounting(countKey)\n const { search, filters, sort, fields } = q\n table\n .count({ search, filters, sort, fields }, ctl.signal)\n .then((n) => !ctl.signal.aborted && setCounted({ key: countKey, total: n, at: new Date() }))\n .catch(() => {})\n .finally(() => !ctl.signal.aborted && setCounting(null))\n }\n const countedNow = counted?.key === countKey ? counted : null\n const total = server ? (result?.data?.total ?? countedNow?.total) : table.total\n const page = server ? load.page : q.page\n const hasMore = server ? !!result?.data?.hasMore : page.number * page.size < (table.total ?? 0)\n\n const bodyState: 'error' | 'noResults' | 'noRowsOnPage' | 'empty' | null =\n load.skeleton || hasRows || load.pending\n ? null\n : load.errorKind === 'error'\n ? 'error'\n : q.search || q.filters.length\n ? 'noResults'\n : q.page.number > 1\n ? 'noRowsOnPage'\n : 'empty'\n const err = errorInfo(result?.error)\n // Auto-refresh (05 §3): açıkken footer \"Live\".\n const [live, setLive] = useState(false)\n useEffect(() => {\n if (!live || !autoRefresh || !refetch) return\n const t = setInterval(() => refetch(), autoRefresh * 1000)\n return () => clearInterval(t)\n }, [live, autoRefresh, refetch])\n const freshness: Freshness =\n live && autoRefresh ? 'live' : load.bar ? 'refreshing' : load.errorKind === 'stale' ? 'stale' : 'normal'\n const clock = (d: Date) => d.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit' })\n\n const sort = new Map<string, HeaderSort>(\n q.sort.map((s, i) => [s.column, { dir: s.dir, index: q.sort.length > 1 ? i + 1 : null }]),\n )\n const sortable = new Set(table.columns.filter(isSortable).map((c) => c.id as string))\n const headerOf = (id: string) => table.columns.find((c) => c.id === id)?.header ?? id\n\n // Ekran okuyucu (08 §5): tek polite bölge; son değişen olay okunur. İlk çizimde duyuru yok.\n const first = q.sort[0]\n const said = {\n view: table.state.view ?? '',\n filters: JSON.stringify(q.filters),\n sort: JSON.stringify(q.sort),\n loaded: `${load.updatedAt?.getTime() ?? 0}|${rows.length}`,\n total: countedNow ? countedNow.at.getTime() : 0,\n selected: selectedRows.length,\n }\n const [seen, setSeen] = useState({ ...said, text: '' })\n let polite = seen.text\n if (\n seen.view !== said.view ||\n seen.filters !== said.filters ||\n seen.sort !== said.sort ||\n seen.loaded !== said.loaded ||\n seen.total !== said.total ||\n seen.selected !== said.selected\n ) {\n if (seen.view !== said.view && vw.active) polite = i18n.t('sr.view', { name: vw.active.name })\n else if (seen.selected !== said.selected && said.selected > 0)\n polite = i18n.t('selection.selected', { count: said.selected })\n else if (seen.filters !== said.filters) polite = filterNews(JSON.parse(seen.filters) as FilterCondition[]) ?? polite\n else if (seen.total !== said.total && countedNow)\n polite = i18n.t('sr.total', { count: fmt.int(countedNow.total), entity })\n else if (seen.sort !== said.sort && first)\n polite = i18n.t('sr.sorted', { column: headerOf(first.column), dir: i18n.t(`sr.${first.dir}`) })\n else if (seen.loaded !== said.loaded && !load.pending) polite = i18n.t('sr.loaded', { count: rows.length })\n setSeen({ ...said, text: polite })\n }\n\n /** Eklenen ya da değişen filtre özetiyle, kaldırılan adıyla okunur (08 §5). */\n function filterNews(before: FilterCondition[]): string | undefined {\n const prev = new Map(before.map((f) => [f.column, JSON.stringify(f)]))\n const changed = q.filters.find((f) => defs.has(f.column) && prev.get(f.column) !== JSON.stringify(f))\n if (changed)\n return i18n.t('sr.filterAdded', { summary: `${headerOf(changed.column)} ${summaryOf(changed).text}`.trim() })\n const gone = before.find((f) => !q.filters.some((n) => n.column === f.column))\n return gone && i18n.t('sr.filterRemoved', { column: headerOf(gone.column) })\n }\n\n // Daralma eşikleri kartın kendi genişliğinden (05 §3): ≥1024 etiketli, 640–1023 ikon, <640 telefon (Faz 7).\n const root = useRef<HTMLDivElement>(null)\n const [width, setWidth] = useState(1440)\n useLayoutEffect(() => {\n const el = root.current\n if (!el) return\n const measure = () => setWidth(el.clientWidth || 1440)\n measure()\n const ro = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure)\n ro?.observe(el)\n return () => ro?.disconnect()\n }, [])\n const size: ToolbarSize = width >= 1024 ? 'full' : width >= 640 ? 'narrow' : 'phone'\n const phone = size === 'phone'\n // `layout` her çizimde yeni nesne; setter kararlı.\n const { setPhone } = table.layout\n useLayoutEffect(() => setPhone(phone), [setPhone, phone])\n /** Picker / header hunisi / F: telefonda Filters sayfası o sütunun editörüyle açılır. */\n const pick = (column: string) => (phone ? openSheet(column) : chips.pick(column))\n\n // Kısayollar (08 §3): kapsam sayfa. Alt←/→ sayfa (her zaman), R yenile (odak metin alanında değilken).\n const onKey = useEffectEvent((e: KeyboardEvent) => {\n if (e.defaultPrevented) return\n const target = e.target instanceof Element ? e.target : null\n // Seçim checkbox'ları Tab durağı (D40): odakları kısayolları ve Esc'i kapatmaz.\n const typing =\n !!target && isTextInput(target) && !(target instanceof HTMLInputElement && target.type === 'checkbox')\n // Esc sırayla: açık popover / menü / dialog (odak içindedir) → seçim (05 §6); metin alanında aramanın Esc'i.\n if (e.key === 'Escape') {\n const inLayer = !!target?.closest(\n '[role=\"menu\"], [role=\"dialog\"], [role=\"alertdialog\"], [role=\"listbox\"], .dt-pop',\n )\n if (!inLayer && selectedRows.length && !typing) table.clearSelection()\n return\n }\n if (e.altKey && !e.ctrlKey && !e.metaKey && (e.key === 'ArrowLeft' || e.key === 'ArrowRight')) {\n if (busy) return\n const left = e.key === 'ArrowLeft'\n if (left ? page.number > 1 : hasMore) {\n e.preventDefault()\n table.setPage(page.number + (left ? -1 : 1))\n }\n return\n }\n if ((e.metaKey || e.ctrlKey) && !e.altKey && !e.shiftKey && (e.key === 's' || e.key === 'S')) {\n if (!shortcuts || !vw.edited || !vw.canSave || viewDialog) return\n e.preventDefault()\n if (vw.writable(vw.active)) void vw.saveChanges()\n else openSaveAs()\n return\n }\n if (!shortcuts || e.ctrlKey || e.metaKey || e.altKey || typing) return\n if (e.key === '/' && hasSearch) {\n e.preventDefault()\n toolbarRef.current?.focusSearch()\n } else if ((e.key === 'f' || e.key === 'F') && hasFilter) {\n e.preventDefault()\n if (phone) openSheet()\n else setPickerOpen(true)\n } else if ((e.key === 'r' || e.key === 'R') && refetch) {\n e.preventDefault()\n refetch()\n } else if ((e.key === 'v' || e.key === 'V') && hasViews) {\n e.preventDefault()\n setViewMenuOpen(true)\n }\n })\n useEffect(() => {\n window.addEventListener('keydown', onKey)\n return () => window.removeEventListener('keydown', onKey)\n }, [])\n\n // Filter düğmesinin adı görünen parçalarından (\"Filter 2\"): Combobox tetikleyicisi (role=combobox) adını içerikten\n // almaz, sabit aria-label de sayacı dışarıda bırakıp görünen metinle uyuşmaz (WCAG 2.5.3). İkon kipinde etiket gizli.\n const filterId = useId()\n const filterLabelledBy = q.filters.length ? `${filterId}-l ${filterId}-n` : `${filterId}-l`\n const filterText = (labelShown: boolean) => (\n <>\n <span id={`${filterId}-l`} className={labelShown ? undefined : 'dt-sr-only'}>\n {i18n.t('toolbar.filter')}\n </span>\n {q.filters.length > 0 && (\n <>\n {' '}\n <span id={`${filterId}-n`} className=\"dt-counter\">\n {q.filters.length}\n </span>\n </>\n )}\n </>\n )\n const unpaged = { search: q.search, filters: q.filters, sort: q.sort, fields: q.fields }\n const visibleColumns = table.layout.columns.map((c) => c.id)\n const print = onPrint && (() => onPrint({ query: unpaged, visibleColumns }))\n // Export (D46): ekranda görünen sütunlar ve satırlar; seçim varsa seçili satırlar, yoksa sayfadaki satırlar.\n const exportRows = selectedRows.length ? selectedRows : rows\n // Aksiyonsuz çubuk yalnızca sayaç ve × olurdu: seçim Export'ta, header checkbox'ında ve Esc'te kalır (React sapması).\n const bulkBar = selectedRows.length > 0 && (!!bulkActions?.length || !!selectionActions)\n const exportHint = exportable\n ? selectedRows.length\n ? i18n.t('toolbar.exportSelected', { count: selectedRows.length })\n : i18n.t('toolbar.export', { count: rows.length })\n : undefined\n const runExport = (format: 'csv' | 'xlsx') => {\n if (onExport) return onExport({ format, query: unpaged, selection: selectedRows, rows: exportRows, visibleColumns })\n void exportFile({\n format,\n columns: table.layout.columns.map((c) => c.def),\n rows: exportRows,\n read: (row, def) => (def.accessor ? def.accessor(row) : readPath(row, def.id as string)),\n env: { fmt, i18n, today: new Date(), labels },\n name: entity.other,\n })\n }\n const moreMenu = toolbar === 'auto' && !!(refetch || print || exportHint)\n const prefs = table.prefs\n\n const state =\n bodyState === 'error' ? (\n <StateMessage\n kind=\"error\"\n title={i18n.t('state.errorTitle', { entity })}\n lines={[err.message, i18n.t('state.errorKept')].filter((l): l is string => !!l)}\n actions={\n refetch && (\n <button type=\"button\" className=\"dt-btn\" disabled={load.pending} onClick={() => refetch()}>\n {i18n.t('state.tryAgain')}\n </button>\n )\n }\n after={\n err.id && (\n <div className=\"dt-state-id\">\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-ghost dt-btn-xs\"\n onClick={() => void navigator.clipboard?.writeText(err.id!)}\n >\n {i18n.t('state.copyErrorId')}\n </button>\n <code className=\"dt-state-code\">{err.id}</code>\n </div>\n )\n }\n />\n ) : bodyState === 'noResults' ? (\n <StateMessage\n kind={q.search ? 'noResultsSearch' : 'noResults'}\n title={i18n.t(\n q.search && q.filters.length ? 'state.noResultsBoth' : q.search ? 'state.noResultsSearch' : 'state.noResults',\n { entity, q: q.search, count: q.filters.length },\n )}\n actions={\n <>\n {q.filters.length === 1 ? (\n <button type=\"button\" className=\"dt-btn\" onClick={() => chips.remove(q.filters[0]!.column)}>\n {i18n.t('state.removeFilter', { column: headerOf(q.filters[0]!.column) })}\n </button>\n ) : (\n q.filters.length > 1 && (\n <button type=\"button\" className=\"dt-btn\" onClick={chips.clear}>\n {i18n.t('state.clearAllFilters')}\n </button>\n )\n )}\n {q.search && (\n <button type=\"button\" className=\"dt-btn\" onClick={() => table.setSearch('')}>\n {i18n.t('state.clearSearch')}\n </button>\n )}\n </>\n }\n />\n ) : bodyState === 'noRowsOnPage' ? (\n <StateMessage\n kind=\"noRowsOnPage\"\n title={i18n.t('page.noneOnPage')}\n actions={\n <button type=\"button\" className=\"dt-btn\" onClick={() => table.setPage(q.page.number - 1)}>\n {i18n.t('page.previousPage')}\n </button>\n }\n />\n ) : bodyState === 'empty' ? (\n (empty ?? <StateMessage kind=\"empty\" title={i18n.t('state.emptyTitle', { entity })} />)\n ) : null\n\n return (\n // Kökün yazı boyutu (--dt-fs) kökteki yoğunluktan çözülür; yalnızca ızgarada olsaydı hep standard kalırdı.\n <div ref={root} className={phone ? 'dt dt-list is-phone' : 'dt dt-list'} data-density={table.density}>\n {selectionBar === 'toolbar' && bulkBar && toolbar !== false ? (\n <BulkBar variant=\"toolbar\" rows={selectedRows} actions={bulkActions ?? []} onClear={table.clearSelection}>\n {selectionActions?.({ rows: selectedRows, clear: table.clearSelection })}\n </BulkBar>\n ) : (\n toolbar !== false && (\n <Toolbar\n ref={toolbarRef}\n size={size}\n view={\n hasViews && (\n <ViewMenu\n sections={vw.sections}\n active={vw.active}\n edited={vw.edited}\n hasDraft={vw.hasDraft}\n defaultId={prefs.prefs.defaultViewId}\n canSave={vw.canSave}\n canWrite={vw.writable(vw.active)}\n open={viewMenuOpen}\n onOpenChange={setViewMenuOpen}\n onSelect={selectView}\n onSaveChanges={() => void vw.saveChanges()}\n onSaveAs={() => openSaveAs()}\n onDiscard={() => {\n chips.setEditing(null)\n vw.discard()\n }}\n onRename={(view) =>\n setViewDialog({\n key: (viewDialog?.key ?? 0) + 1,\n mode: 'rename',\n name: view.name,\n state: current(),\n summary: null,\n view,\n fromCurrent: false,\n })\n }\n onDuplicate={openSaveAs}\n onSetDefault={(id) => prefs.set({ defaultViewId: id })}\n onDelete={setConfirmDelete}\n sheet={phone}\n />\n )\n }\n search={hasSearch ? q.search : null}\n searchPlaceholder={searchPlaceholder ?? i18n.t('toolbar.search', { entity })}\n onSearch={table.setSearch}\n filter={\n hasFilter &&\n (phone ? (\n <button\n type=\"button\"\n className={\n q.filters.length\n ? 'dt-btn dt-btn-icon dt-filter-trigger is-active'\n : 'dt-btn dt-btn-icon dt-filter-trigger'\n }\n aria-labelledby={filterLabelledBy}\n onClick={() => openSheet()}\n >\n <FunnelIcon size={20} aria-hidden=\"true\" />\n {filterText(false)}\n </button>\n ) : (\n <ColumnPicker\n columns={filterable}\n chips={chips.chips}\n open={pickerOpen}\n onOpenChange={setPickerOpen}\n onPick={chips.pick}\n trigger={\n <button\n type=\"button\"\n // Dar kartta da etiketli (Vue: ikon yalnızca telefonda).\n className={\n q.filters.length\n ? 'dt-btn has-icon dt-filter-trigger is-active'\n : 'dt-btn has-icon dt-filter-trigger'\n }\n aria-labelledby={filterLabelledBy}\n >\n <FunnelIcon size={16} aria-hidden=\"true\" />\n {filterText(true)}\n </button>\n }\n />\n ))\n }\n display={\n toolbar === 'auto' &&\n !phone && (\n <DisplayPopover\n density={table.density}\n onDensity={table.densityFixed ? undefined : (density) => prefs.set({ density })}\n verticalLines={prefs.prefs.verticalLines}\n onVerticalLines={(verticalLines) => prefs.set({ verticalLines })}\n counts={table.layout.counts}\n onColumns={openColumns}\n persistent={prefs.persistent}\n onReset={table.resetDisplay}\n iconOnly={size !== 'full'}\n />\n )\n }\n more={\n phone\n ? toolbar === 'auto' && (\n <PhoneMoreSheet\n density={table.density}\n onDensity={table.densityFixed ? undefined : (density) => prefs.set({ density })}\n columns={table.layout.panel}\n counts={table.layout.counts}\n onColumnsSave={table.layout.arrange}\n sort={q.sort}\n onSort={(sort) => table.setQuery({ sort })}\n persistent={prefs.persistent}\n onReset={table.resetDisplay}\n exportHint={exportHint}\n onExport={runExport}\n onRefresh={refetch && (() => refetch())}\n onPrint={print}\n autoRefresh={!!autoRefresh && !!refetch}\n autoRefreshOn={live}\n onAutoRefresh={setLive}\n />\n )\n : moreMenu && (\n <MoreMenu\n exportHint={exportHint}\n onExport={runExport}\n onRefresh={refetch && (() => refetch())}\n onPrint={print}\n autoRefresh={!!autoRefresh && !!refetch}\n autoRefreshOn={live}\n onAutoRefresh={setLive}\n />\n )\n }\n end={toolbarEnd}\n />\n )\n )}\n {notice && <div className=\"dt-list-notice\">{notice}</div>}\n {load.errorKind === 'stale' && load.updatedAt && (\n <div className=\"dt-strip\" role=\"status\">\n <WarningIcon size={16} aria-hidden=\"true\" />\n <span>{i18n.t('state.stale', { time: clock(load.updatedAt) })}</span>\n {refetch && (\n <button type=\"button\" className=\"dt-strip-action\" disabled={load.pending} onClick={() => refetch()}>\n {i18n.t('common.retry')}\n </button>\n )}\n </div>\n )}\n {chips.chips.length > 0 && (\n <FilterBar\n chips={chips.chips}\n defOf={(column) => defs.get(column)!}\n editing={chips.editing}\n rows={sourceRows}\n labels={labels}\n summaryOf={summaryOf}\n currenciesOf={currenciesOf}\n onChange={chips.update}\n onRemove={chips.remove}\n onEditing={chips.setEditing}\n onClearAll={chips.clear}\n onOpen={phone ? openSheet : undefined}\n add={\n <ColumnPicker\n columns={filterable}\n chips={chips.chips}\n onPick={chips.pick}\n trigger={\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-ghost dt-btn-sm has-icon dt-filter-add dt-filter-trigger\"\n aria-label={i18n.t('filter.addFilter')}\n >\n <PlusIcon size={14} aria-hidden=\"true\" />\n {i18n.t('filter.addFilter')}\n </button>\n }\n />\n }\n />\n )}\n <Grid\n layout={table.layout}\n rows={rows}\n rowId={table.rowId}\n label={label ?? entity.other}\n density={table.density}\n skeleton={load.skeleton}\n dim={load.dim}\n refreshing={load.bar}\n verticalLines={table.prefs.prefs.verticalLines}\n rowCount={total === undefined ? -1 : total + 1}\n rowIndexOffset={(page.number - 1) * page.size}\n scrollKey={JSON.stringify([q.page.number, q.search, q.filters])}\n sort={sort}\n canSort={(id) => sortable.has(id)}\n onSort={table.toggleSort}\n onSortSet={table.setSort}\n filtered={new Set(q.filters.map((f) => f.column))}\n canFilter={(id) => filterIds.has(id)}\n onFilter={pick}\n onColumns={toolbar === 'auto' && !phone ? openColumns : undefined}\n notice={\n load.stillLoading && (\n <>\n <CircleNotchIcon size={14} className=\"dt-spin\" aria-hidden=\"true\" />\n {i18n.t('state.stillLoading')}\n </>\n )\n }\n state={state}\n onRowClick={handleRowClick}\n selection={selectable ? table.selection : undefined}\n onSelectRows={selectable ? selectRows : undefined}\n expanded={expanded}\n canExpand={canExpand}\n onToggleExpand={toggleExpand}\n renderExpanded={renderExpanded && ((row, close) => renderExpanded({ row, close }))}\n resetKey={expandKey}\n rowMenu={rowMenu}\n rowActions={rowActions}\n primaryHref={primaryHref}\n primaryLabel={primaryLabel}\n onRowOpen={(row, event) => onRowOpen?.({ row, href: primaryHref(row) ?? '', event })}\n rowError={rowError}\n />\n {selectionBar === 'floating' && bulkBar && (\n <BulkBar\n variant=\"floating\"\n phone={phone}\n rows={selectedRows}\n actions={bulkActions ?? []}\n onClear={table.clearSelection}\n >\n {selectionActions?.({ rows: selectedRows, clear: table.clearSelection })}\n </BulkBar>\n )}\n <Footer\n rowCount={rows.length}\n page={page}\n hasMore={hasMore}\n total={total}\n countable={server && !!table.count}\n counting={counting === countKey}\n countedAt={countedNow?.at ?? null}\n busy={busy}\n firstLoad={load.skeleton && !hasRows}\n empty={bodyState === 'empty'}\n pageSizes={table.pageSizes}\n updatedAt={load.updatedAt}\n freshness={freshness}\n onRefresh={refetch && (() => refetch())}\n onCount={count}\n onPage={table.setPage}\n onPageSize={table.setPageSize}\n phone={phone}\n />\n {sheet && phone && hasFilter && (\n <Suspense fallback={null}>\n <FiltersSheet\n key={sheet.key}\n open={sheet.open}\n onOpenChange={(o) => setSheet({ ...sheet, open: o })}\n column={sheet.column}\n columns={table.columns as ColumnDef[]}\n chips={chips.chips}\n sort={q.sort}\n rows={sourceRows}\n labels={labels}\n summaryOf={summaryOf}\n currenciesOf={currenciesOf}\n onApply={(next, sort) => {\n chips.setEditing(null)\n table.setQuery({ filters: next.map(toCondition), sort })\n }}\n />\n </Suspense>\n )}\n <span className=\"dt-sr-only\" aria-live=\"polite\">\n {polite}\n </span>\n <span className=\"dt-sr-only\" aria-live=\"assertive\">\n {load.errorKind === 'error' ? `${i18n.t('state.errorTitle', { entity })} ${i18n.t('state.tryAgain')}` : ''}\n </span>\n <DelegatedTooltip root={root} />\n {viewDialog && (\n <ViewDialog\n key={viewDialog.key}\n open\n onOpenChange={(o) => !o && setViewDialog(null)}\n mode={viewDialog.mode}\n name={viewDialog.name}\n summary={viewDialog.summary}\n validate={(name) =>\n nameError(name, vw.all, locale, viewDialog.mode === 'rename' ? viewDialog.view?.id : undefined)\n }\n onSave={({ name, makeDefault }) => {\n if (viewDialog.mode === 'rename' && viewDialog.view) void vw.rename(viewDialog.view.id, name)\n else {\n chips.setEditing(null)\n void vw.create({ name, state: viewDialog.state, makeDefault, fromCurrent: viewDialog.fromCurrent })\n }\n }}\n />\n )}\n {columnsUsed && (\n <Suspense fallback={null}>\n <ColumnsDialog\n open={columnsOpen}\n onOpenChange={setColumnsOpen}\n columns={table.layout.panel}\n onSave={table.layout.arrange}\n finalFocus={columnsFrom}\n />\n </Suspense>\n )}\n <ConfirmDialog\n open={!!confirmDelete}\n onOpenChange={(o) => !o && setConfirmDelete(null)}\n title={i18n.t('views.delete.title', { name: confirmDelete?.name ?? '' })}\n body={i18n.t('views.delete.body')}\n confirmLabel={i18n.t('views.delete')}\n danger\n onConfirm={() => confirmDelete && void vw.remove(confirmDelete.id)}\n />\n </div>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["TableId","Preferences","PreferencesAdapter","View","ViewsAdapter","KV","get","key","set","value","storage","ls","globalThis","localStorage","probe","setItem","removeItem","k","getItem","v","mem","Map","readJson","kv","fallback","T","raw","JSON","parse","requireScope","scope","fn","TypeError","newId","crypto","randomUUID","Math","random","toString","slice","now","Date","toISOString","createLocalStorageViews","options","tableId","read","write","views","stringify","list","create","input","view","id","name","kind","state","updatedAt","update","patch","i","findIndex","Error","next","undefined","remove","filter","createLocalStoragePreferences","Partial","prefs","columnOrderingFeature","columnPinningFeature","columnResizingFeature","columnSizingFeature","columnVisibilityFeature","tableFeatures","useTable","Column","ColumnDef","TanstackColumnDef","Header","useState","ColumnLayout","defaultTrack","Track","readPath","MIN_COLUMN_WIDTH","features","Features","TColumn","Row","PinSide","LayoutColumn","id","def","pinned","pinEdge","offsetVar","canHide","resizeHandler","event","PanelColumn","visible","fixed","ColumnsDraft","order","start","end","ColumnLayoutOptions","columns","Array","layout","Partial","NO_ROWS","trackCss","t","min","fr","trackMin","offsetVarName","replace","alwaysShown","d","alwaysVisible","primary","useColumnLayout","options","defs","defById","Map","map","scale","setScale","phone","setPhone","filter","trackFor","Math","round","minOf","minWidth","clampWidth","px","get","maxWidth","Infinity","max","tanstackColumns","accessorFn","accessor","row","size","minSize","maxSize","enableHiding","known","ids","has","stateOf","l","fx","left","includes","right","visibility","Record","hidden","sizing","w","Object","entries","widths","columnPinning","columnVisibility","columnOrder","columnSizing","table","data","initialState","columnResizeMode","s","headerById","getFlatHeaders","h","column","toLayoutColumn","col","getCanHide","e","getResizeHandler","isPrimary","c","startCols","getVisibleLeafColumns","getStartVisibleLeafColumns","centerCols","getCenterVisibleLeafColumns","endCols","getEndVisibleLeafColumns","isPinnedCol","getIsPinned","i","all","length","center","trackOf","resized","atoms","undefined","getSize","cols","join","offsets","out","getAfter","reduce","sum","move","delta","ordered","getOrderColumnsFn","getAllLeafColumns","at","findIndex","me","region","p","list","free","cid","getColumn","getIsVisible","indexOf","k","setColumnPinning","j","other","setColumnOrder","apply","st","setColumnVisibility","setColumnSizing","state","fromEntries","rank","panel","sort","a","b","resizing","columnResizing","isResizingColumn","subscribeSizing","listener","subscribe","unsubscribe","counts","shown","total","resolve","arrange","slice","reset","widthOf","setWidth","setVisible","toggleVisibility","ColumnLayoutApi","ReturnType","features","NO_ROWS","useEffect","useState","TableId","Preferences","PreferencesAdapter","merge","base","p","Partial","next","density","verticalLines","pageSize","defaultViewId","usePreferences","tableId","adapter","defaults","$","_c","t0","get","first","t1","Promise","prefs","setPrefs","ready","setReady","t2","t3","got","live","then","prev","catch","_temp","finally","t4","patch","prev_0","resolve","set","_temp2","t5","t6","t7","reset","persistent","_c","_temp","_temp2","FilterCondition","View","ViewState","defaultView","views","preferredId","find","v","id","undefined","kind","default","canonical","value","Array","isArray","map","join","Object","keys","sort","k","JSON","stringify","Record","normFilter","f","filtersKey","fs","a","b","column","localeCompare","sorted","ids","sameFilters","sameSort","sameState","filters","ca","columns","cb","order","visible","pinned","left","right","Set","widths","x","y","Math","abs","NameError","nameError","name","locale","selfId","n","trim","length","lower","toLocaleLowerCase","taken","some","byName","collator","Intl","Collator","compare","SortRule","MAX_SORT","toggleSort","current","column","multi","at","findIndex","s","existing","next","dir","filter","map","slice","setSort","ColumnDef","getFormat","TYPE_SPECS","isEmpty","v","undefined","comparator","def","locale","a","b","empty","ea","eb","spec","type","numeric","Number","Date","getTime","collator","compare","String","isEmpty","columnFilteringFeature","createFilteredRowModel","createPaginatedRowModel","createSortedRowModel","globalFilteringFeature","rowPaginationFeature","rowSortingFeature","tableFeatures","useTable","ColumnDef","TanstackColumnDef","comparator","TYPE_SPECS","readPath","matches","FilterCondition","SortRule","MAX_SORT","features","filteredRowModel","sortedRowModel","paginatedRowModel","Features","NO_ROWS","noop","isSortable","def","sortable","type","isFilterable","filterable","isSearchable","searchable","isEmpty","v","undefined","Array","isArray","length","ListTableOptions","columns","Row","rows","rowId","row","locale","search","filters","sort","page","pageSize","useListTable","o","map","d","id","cmp","accessorFn","accessor","enableSorting","enableGlobalFilter","enableColumnFilter","filterFn","columnId","cond","getValue","sortFn","a","b","sortUndefined","Set","filter","table","data","getRowId","state","globalFilter","trim","toLocaleLowerCase","columnFilters","f","column","value","sorting","s","desc","dir","pagination","pageIndex","getColumnCanGlobalFilter","has","globalFilterFn","needle","String","includes","onGlobalFilterChange","onColumnFiltersChange","onSortingChange","onPaginationChange","autoResetPageIndex","maxMultiSortColCount","total","getRowModel","r","original","getPrePaginatedRowModel","useEffect","useRef","useState","byName","defaultView","sameState","FilterCondition","SortRule","View","ViewPatch","ViewState","ViewsAdapter","ViewsOptions","tableId","system","adapter","locale","defaultViewId","setDefaultViewId","id","requested","query","filters","sort","columns","resolve","patch","apply","state","restoreColumns","useViews","o","saved","setSaved","drafts","setDrafts","Record","all","defaultId","activeId","undefined","active","find","v","stored","current","edited","shown","activate","view","keepDraft","next","live","list","then","vs","catch","replace","map","dropDraft","d","Object","fromEntries","entries","filter","k","writable","kind","collator","Intl","Collator","sections","personal","hasViews","length","canSave","hasDraft","setDefault","select","saveChanges","update","discard","create","input","name","makeDefault","fromCurrent","rename","remove","preferredId","ViewsApi","ReturnType","useState","useSyncExternalStore","useColumnLayout","readPath","usePreferences","useDataTableContext","defaultView","sameFilters","sameSort","ColumnDef","TableState","UseDataTableOptions","FilterCondition","SortRule","TableQuery","View","ViewPatch","ViewState","setSort","toggleSort","useListTable","useViews","ALL_VIEW_ID","PAGE_SIZES","NONE","Record","fieldsOf","columns","Array","Row","visible","Set","rowKey","extra","out","c","has","id","accessor","add","f","fields","useDataTable","options","ctx","rowId","row","String","prefs","preferences","density","verticalLines","pageSize","defaultViewId","appViews","views","system","some","v","length","viewsAdapter","name","i18n","t","kind","state","inner","setInner","Partial","initialState","source","opening","view","undefined","find","layout","subscribeSizing","resizing","JSON","stringify","widths","resolve","p","filters","sort","tableId","adapter","locale","setDefaultViewId","update","all","set","requested","query","apply","s","reset","page","restoreColumns","activeId","search","current","patch","defaultId","next","stored","changed","onStateChange","map","identity","sent","setSent","includes","request","number","size","selected","setSelected","ids","selection","client","rows","entityName","one","other","allRows","total","densityFixed","resolveView","resetDisplay","active","setSelection","clearSelection","pageSizes","count","column","multi","dir","setSearch","setFilters","setQuery","setPage","setPageSize","DataTableInstance","ReturnType","NONE","ColumnDef","decimalPlaces","formatCell","isEmptyValue","optionLabel","FormatEnv","toDate","plainText","def","Row","row","value","env","type","fmt","decimal","Number","Date","toISOString","String","map","v","options","join","XlsxCell","StringConstructor","NumberConstructor","DateConstructor","format","patterns","Map","datePattern","locale","p","get","undefined","parts","Intl","DateTimeFormat","year","month","day","formatToParts","CODE","Partial","Record","DateTimeFormatPartTypes","x","set","decimals","dp","repeat","wallClock","d","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","xlsxCell","code","currency","isNaN","getTime","i18n","text","listOptions","o","label","t","ColumnDef","FormatEnv","listOptions","plainText","xlsxCell","ExportJob","format","columns","Array","Row","rows","read","row","def","env","name","HEADER","fontWeight","textColor","backgroundColor","borderColor","borderStyle","alignVertical","const","FONT_PT","sheetName","s","replace","slice","widthOf","texts","w","t","Math","max","split","map","l","length","round","min","toCsv","job","sep","fmt","decimal","includes","esc","test","lines","c","header","r","join","toXlsx","Promise","Blob","default","writeXlsxFile","util","all","data","value","sample","widths","width","listed","flatMap","i","values","column","optionsName","i18n","ref","validations","j","col","getCellAddress","range","sanitizeTextContent","optionRows","optionsData","from","_","feature","files","transform","xml","_o","p","sheetIndex","order","getOrderOfSiblings","markup","insertElementMarkupAccordingToOrderOfSiblings","main","sheet","stickyRowsCount","sheets","features","fontSize","toBlob","download","blob","fileName","a","document","createElement","href","URL","createObjectURL","click","setTimeout","revokeObjectURL","exportFile","type","OptionDef","RemoteOptions","RemoteLabels","cache","Map","pending","remote","ids","Set","inFlight","scheduled","listeners","version","subscribe","listener","add","delete","getVersion","option","columnId","id","hit","get","has","p","set","schedule","undefined","label","String","seed","options","m","o","value","l","queueMicrotask","batch","flight","forEach","resolve","signal","AbortController","then","catch","finally","Combobox","MagnifyingGlassIcon","useRef","useState","ReactElement","ColumnDef","typeLabelKey","useDataTableContext","Chip","TYPE_ICONS","ColumnPicker","t0","$","_c","columns","chips","trigger","open","onOpenChange","onPick","i18n","inner","setInner","isOpen","t1","o","setOpen","q","setQ","picked","T0","T1","T2","T3","T4","groups","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t2","t3","t4","t5","t6","t7","t8","t9","needle","toLocaleLowerCase","match","c","header","includes","chipped","Set","map","_temp","filtered","ch","find","c_1","id","column","filter","c_2","suggested","c_3","has","slice","taken","_temp2","rest","c_5","typeHint","c_6","t","type","key","label","items","hint","_temp3","Root","o_0","current","Symbol","for","v","Portal","Positioner","Popup","keep","t20","t21","t22","List","_temp4","length","t23","t24","t25","g_0","g","c_7","Icon","c_4","c_0","_c","_temp","_temp2","_temp3","_temp4","Menu","ReactElement","ReactNode","DtMenu","t0","$","_c","trigger","children","open","onOpenChange","className","finalFocus","align","t1","side","offset","undefined","t2","o","t3","t4","t5","t6","t7","t8","DtMenuItem","onSelect","disabled","destructive","selected","twoLine","cls","filter","Boolean","join","DtMenuSeparator","Symbol","for","DtMenuLabel","_c","Popover","CaretDownIcon","CheckIcon","XIcon","Fragment","useRef","ColumnDef","ME","FilterOp","Avatar","RemoteLabels","useDataTableContext","DtMenu","DtMenuItem","DtMenuSeparator","changeOperator","editorOf","isComplete","opLabel","operatorsOf","shapeOf","Chip","Summary","TYPE_ICONS","ValueEditor","FilterChip","t0","$","_c","chip","column","editing","summary","rows","labels","currencies","onChange","onEditing","onRemove","onOpen","i18n","type","Icon","t1","op","shape","t2","complete","count","Array","isArray","value","length","opText","t3","tip","header","full","text","undefined","t","aria","t4","editor","t5","status","t6","patch","update","t7","setOp","t8","close","body","trigger","t9","t10","t11","t12","head","t13","t14","t15","people","slice","t16","content","t17","t18","t19","t20","cls","filter","Boolean","join","trim","o","map","_temp","current","querySelector","type_0","op_0","focus","p","String","_c","_Fragment","_temp","useEffect","useLayoutEffect","useRef","useState","ReactNode","ColumnDef","RemoteLabels","useDataTableContext","FilterChip","Chip","Summary","FilterBar","t0","$","_c","chips","defOf","editing","rows","labels","summaryOf","currenciesOf","add","onChange","onRemove","onEditing","onClearAll","onOpen","i18n","row","t1","Symbol","for","column","current","querySelectorAll","find","el","dataset","col","undefined","chipEl","scrolledEnd","setScrolledEnd","t2","el_0","scrollLeft","clientWidth","scrollWidth","onScroll","t3","t4","el_1","ResizeObserver","ro","observe","disconnect","target","at","t5","scrollIntoView","inline","block","t6","length","focusNext","t7","next","el_2","querySelector","parentElement","focus","t10","t11","t12","t8","t9","remove","column_0","i","findIndex","c","map","c_0","open","t13","t14","t","t15","_c","_Fragment","INTERACTIVE_SELECTOR","isInteractive","target","EventTarget","within","Element","hit","closest","contains","isTextInput","el","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","getAttribute","HTMLElement","isContentEditable","hasTextSelection","globalThis","getSelection","toString","length","isPlainRowClick","event","MouseEvent","rowEl","downPoint","x","y","button","metaKey","ctrlKey","shiftKey","altKey","Math","hypot","clientX","clientY","mac","navigator","test","platform","MOVE_KBD","left","right","SAVE_KBD","UNDO_KBD","REDO_KBD","FIND_KBD","FILL_KBD","REMOVE_KBD","CSSProperties","LayoutColumn","pinStyle","col","Row","pinned","left","offsetVar","right","undefined","pinClasses","pinEdge","filter","c","fillIndex","columns","Array","at","findIndex","length","ArrowUpIcon","DotsThreeIcon","FunnelIcon","PushPinIcon","useId","useRef","useState","useSyncExternalStore","KeyboardEvent","MouseEvent","TouchEvent","alignOf","isNumericType","typeLabelKey","ColumnLayoutApi","LayoutColumn","MOVE_KBD","useDataTableContext","DtMenu","DtMenuItem","DtMenuLabel","DtMenuSeparator","pinStyle","HeaderSort","dir","index","HeaderCell","t0","$","_c","column","layout","onMoved","sort","onSort","onSortSet","filtered","onFilter","onColumns","i18n","def","t1","type","numeric","unit","undefined","descId","tip","description","header","menuOpen","setMenuOpen","toFilter","menuButton","t2","id","r","resizing","size","subscribeSizing","t3","delta","move","t4","e","cell","currentTarget","parentElement","setWidth","getBoundingClientRect","width","resizeHandler","onResizeStart","t5","e_0","k","key","preventDefault","shiftKey","left","altKey","widthOf","onKeyDown","primarySort","ariaSort","t6","t7","arrow","t8","t9","sortMark","t10","t11","t12","t13","t14","pinned","t15","t16","pinEdge","t17","t18","t19","cls","filter","Boolean","t20","join","t21","t22","t23","Symbol","for","e_1","t24","t","t25","t26","t27","t28","e_2","t29","t30","phone","headerShort","t31","t32","t33","t34","t35","t36","t37","keep","current","t38","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","t49","t50","t51","right","t52","t53","t54","canHide","t55","setVisible","t56","t57","t58","t59","t60","t61","Math","round","t62","t63","_c","_Fragment","RowAction","inlineActionsOf","actions","Array","Row","row","filter","a","inline","icon","when","slice","DotsThreeIcon","CellAction","useDataTableContext","DtMenu","DtMenuItem","Item","Omit","Row","menu","Array","CellActions","t0","$","_c","actions","row","i18n","t1","t2","t3","t4","Symbol","for","bb0","t5","a","when","visible","filter","length","always","some","_temp","buttons","slice","overflow","t6","a_1","disabled","disabledOf","t7","a_2","d","label","tipOf","t8","a_3","run","t9","items","map","m","Icon","icon","id","destructive","menuItems","t10","a_4","Icon_0","cls","undefined","t","a_0","reveal","_c","_temp","Menu","DotsThreeIcon","Fragment","MouseEvent","RowAction","useDataTableContext","DtMenu","DtMenuItem","DtMenuSeparator","inlineActionsOf","RowMenu","t0","$","_c","row","label","href","actions","onOpen","i18n","t1","Set","inline","t2","t3","Symbol","for","bb0","t4","a","has","when","shown","filter","ordered","_temp","_temp2","length","t5","firstDestructive","findIndex","_temp3","subOf","a_3","d","disabled","description","isDisabled","a_4","t","id","t6","t7","t8","e","button","metaKey","ctrlKey","shiftKey","altKey","map","a_5","i","Icon","icon","sub","separatorBefore","destructive","run","shortcut","a_2","a_1","a_0","_c","_temp","_temp2","_temp3","_Fragment","CaretRightIcon","DotsSixVerticalIcon","WarningCircleIcon","CSSProperties","MouseEvent","ReactNode","RowAction","CellActions","cellFillStyle","renderCellContent","RenderEnv","alignOf","isNumericType","LayoutColumn","readPath","inlineActionsOf","fillIndex","pinClasses","pinStyle","RowMenu","HandleBind","FillCell","$","_c","t0","Symbol","for","withFill","columns","Array","Row","render","col","i","at","slice","map","c","Expand","can","open","controls","label","onToggle","Cell","row","env","secondaryVisible","expand","lead","def","cls","content","t1","t2","value","accessor","id","t3","primary","type","href","undefined","t4","t5","t6","t7","t8","t9","style","secondary","main","filter","Boolean","join","i18n","t","t10","actions","length","t11","InlineAction","action","a","uid","Icon","icon","disabled","d","reason","descId","description","run","RowExtras","error","handle","edge","bind","select","selected","left","onChange","shift","Omit","menu","onOpen","event","index","rowIndex","extras","density","sel","tip","errorId","errorIcon","t12","props","ref","t13","e","target","checked","nativeEvent","globalThis","shiftKey","t14","t15","t16","right","t17","_c","_Fragment","TYPE_SPECS","alignOf","LayoutColumn","pinClasses","pinStyle","withFill","WIDTHS","SkeletonRow","t0","$","_c","index","columns","t1","col","i","shape","def","type","skeleton","width","length","cls","join","id","t2","t3","_c","_Fragment","useVirtualizer","Range","useLayoutEffect","RefObject","VirtualRowsOptions","count","scrollRef","HTMLElement","itemHeight","headHeight","barHeight","keyOf","index","keepIndex","resetKey","useVirtualRows","o","v","getScrollElement","current","estimateSize","scrollMargin","scrollPaddingStart","scrollPaddingEnd","overscan","getItemKey","rangeExtractor","range","start","Math","max","startIndex","end","min","endIndex","out","f","push","i","measure","items","getVirtualItems","map","key","String","total","getTotalSize","measureElement","resizeItem","size","lazy","Suspense","useId","useLayoutEffect","useRef","useState","useSyncExternalStore","FocusEvent","MouseEvent","ReactNode","Density","RowAction","RemoteLabels","RenderEnv","ColumnLayoutApi","getFormat","isPlainRowClick","useDataTableContext","HeaderCell","HeaderSort","inlineActionsOf","Row","RowExtras","SkeletonRow","HandleBind","SortableState","useVirtualRows","SortableRows","default","SKELETON_ROWS","FALLBACK_ROW_H","FALLBACK_HEAD_H","coarse","matchMedia","matches","SELECT_W","SELECT_W_PHONE","HANDLE_W","HANDLE_W_PHONE","MENU_PAD","GridProps","layout","rows","rowId","row","label","density","skeleton","rowCount","rowIndexOffset","dim","refreshing","notice","state","verticalLines","scrollKey","sort","Map","canSort","id","onSort","additive","onSortSet","dir","filtered","ReadonlySet","canFilter","onFilter","onColumns","from","HTMLElement","onRowClick","event","selection","Record","onSelectRows","ids","value","expanded","canExpand","onToggleExpand","renderExpanded","close","resetKey","rowMenu","rowActions","Array","primaryHref","primaryLabel","rowError","onRowOpen","reorder","disabled","pending","onMove","to","Grid","requested","ctx","root","HTMLDivElement","scroll","labels","labelsVersion","subscribe","getVersion","metrics","setMetrics","head","bar","scrolled","setScrolled","start","end","focused","setFocused","dragging","setDragging","selectable","expandable","phone","selW","handleW","leadW","sortable","maxInline","some","a","inline","reduce","m","r","Math","max","length","errorOf","e","isArray","filter","anyError","menuW","isOpen","count","virtual","scrollRef","itemHeight","headHeight","barHeight","keyOf","i","keepIndex","openIds","Object","keys","join","lastOpen","now","Set","current","has","findIndex","resizeItem","el","write","lead","style","setProperty","cols","Boolean","min","minWidth","map","c","offsetVar","name","entries","offsets","parseFloat","subscribeSizing","setScale","scale","css","getComputedStyle","getPropertyValue","fs","querySelector","offsetHeight","s","next","Number","isFinite","clientHeight","p","k","lastScrollKey","scrollTop","update","scrollLeft","clientWidth","scrollWidth","addEventListener","passive","ro","ResizeObserver","observe","removeEventListener","disconnect","onFocus","target","closest","dataset","index","down","x","y","onClick","rowEl","link","contains","button","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","rowKeys","anchor","onSelect","shift","slice","selectedCount","n","allSelected","uid","extrasOf","bind","subrow","error","handle","reason","undefined","edge","select","selected","left","onChange","v","expand","can","open","controls","onToggle","menu","actions","href","onOpen","focusHeader","requestAnimationFrame","cell","querySelectorAll","find","col","focus","env","fmt","locale","i18n","today","Date","cls","header","columns","get","itemEl","item","items","drag","measure","measureElement","key","setNodeRef","top","transform","transition","clientX","clientY","scrollPaddingTop","scrollPaddingBottom","t","indeterminate","center","right","height","total","_Fragment","useEffect","useLayoutEffect","useRef","useState","RefObject","DELAY","EDGE","Tip","text","left","top","overflows","el","HTMLElement","scrollWidth","clientWidth","clips","getComputedStyle","overflowX","tipOf","target","Element","tipped","closest","dataset","dtTip","content","querySelectorAll","some","textContent","trim","DelegatedTooltip","t0","$","_c","root","tip","setTip","ref","t1","t2","current","right","document","documentElement","offsetWidth","style","Math","max","min","t3","el_0","timer","anchor","hide","clearTimeout","show","x","r","getBoundingClientRect","undefined","width","round","bottom","onOver","e","hit","setTimeout","clientX","onOut","e_0","contains","relatedTarget","Node","onFocusin","e_1","hit_0","addEventListener","removeEventListener","t4","t5","t6","_c","FileIcon","FunnelIcon","MagnifyingGlassIcon","PackageIcon","WarningCircleIcon","ReactNode","ICONS","empty","noResults","noResultsSearch","error","noRowsOnPage","StateMessage","t0","$","_c","kind","title","lines","t1","actions","after","t2","undefined","Icon","t3","t4","t5","t6","t7","map","_temp","t8","t9","line","_c","_temp","Popover","Toggle","ToggleGroup","CaretRightIcon","SlidersHorizontalIcon","useRef","useState","Density","useDataTableContext","DtSwitch","DENSITIES","DisplayPopover","t0","$","_c","density","onDensity","verticalLines","onVerticalLines","counts","onColumns","persistent","onReset","iconOnly","i18n","open","setOpen","trigger","t1","current","openColumns","t2","Symbol","for","o","t3","t4","t","t5","undefined","t6","t7","t8","t9","v","map","d","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","DENSITIES","_c","_Fragment","Menu","DotsThreeIcon","useId","useDataTableContext","DtMenu","DtMenuItem","DtMenuSeparator","MoreMenu","t0","$","_c","exportHint","onExport","onRefresh","onPrint","autoRefresh","autoRefreshOn","onAutoRefresh","i18n","hintId","t1","t","t2","t3","Symbol","for","t4","t5","t6","t7","t8","t9","v","t10","_c","ArrowDownIcon","ArrowUpIcon","CaretLeftIcon","CaretRightIcon","CheckIcon","DotsThreeIcon","XIcon","lazy","Suspense","useId","useRef","useState","Density","SortRule","ColumnsDraft","PanelColumn","useDataTableContext","BottomSheet","DtSwitch","ColumnsDialog","default","DENSITIES","TITLES","main","density","sort","export","const","Level","PhoneMoreSheet","t0","$","_c","onDensity","columns","counts","onColumnsSave","onSort","persistent","onReset","exportHint","onExport","onRefresh","onPrint","autoRefresh","autoRefreshOn","onAutoRefresh","i18n","hintId","open","setOpen","level","setLevel","columnsOpen","setColumnsOpen","columnsUsed","setColumnsUsed","trigger","t1","id","find","c","def","header","headerOf","lead","t2","length","column","dir","t","sortSummary","hasActions","t3","Symbol","for","o","setOpenAll","t4","fn","close","t5","t6","t7","t8","t9","t10","t11","t12","map","d","t13","t14","s","i","Arrow","r","filter","r_0","t15","t16","t17","ColumnsDialog","_c","_Fragment","MagnifyingGlassIcon","XCircleIcon","XIcon","useState","Ref","useDelay","useDataTableContext","SearchBox","t0","$","_c","value","placeholder","onChange","inputRef","onBlur","phone","i18n","draft","setDraft","seen","setSeen","sent","setSent","delay","t1","text","send","t2","text_0","t3","now","undefined","cancel","run","commit","t4","t5","e","target","t6","e_0","key","preventDefault","currentTarget","blur","t7","t8","t","t9","t10","_c","MagnifyingGlassIcon","useImperativeHandle","useRef","useState","ReactNode","Ref","useDataTableContext","SearchBox","ToolbarSize","ToolbarHandle","focusSearch","Toolbar","t0","$","_c","size","view","search","searchPlaceholder","onSearch","filter","display","more","end","ref","i18n","open","setOpen","input","phone","collapsed","phoneSearch","t1","Symbol","for","requestAnimationFrame","current","focus","openSearch","t2","t3","t4","t5","t6","t","t7","t8","t9","t10","t11","_c","_Fragment","AlertDialog","useRef","useDataTableContext","ConfirmDialog","t0","$","_c","open","onOpenChange","title","body","confirmLabel","danger","onConfirm","i18n","cancel","t1","o","t2","Symbol","for","t3","t4","t5","t","t6","t7","t8","t9","t10","t11","t12","_c","Dialog","useRef","useState","useDataTableContext","NameError","ViewSummary","filters","sort","columns","ViewDialog","t0","$","_c","open","onOpenChange","mode","name","initialName","summary","validate","onSave","i18n","setName","makeDefault","setMakeDefault","error","setError","input","t1","o","t2","Symbol","for","t3","current","select","t4","e","preventDefault","err","trim","t5","t","t6","t7","t8","t9","t10","undefined","t11","e_0","target","value","t12","t13","t14","t15","t16","e_1","checked","t17","t18","t19","t20","t21","t22","t23","_c","Popover","CaretDownIcon","CheckIcon","DotsThreeIcon","MagnifyingGlassIcon","PlusIcon","StackIcon","useId","useState","FocusEvent","KeyboardEvent","View","SAVE_KBD","useDataTableContext","BottomSheet","DtMenu","DtMenuItem","DtMenuSeparator","SEARCH_MIN_VIEWS","ViewMenu","t0","$","_c","sections","active","edited","hasDraft","defaultId","canSave","canWrite","open","onOpenChange","onSelect","onSaveChanges","onSaveAs","onDiscard","onRename","onDuplicate","onSetDefault","onDelete","sheet","i18n","q","setQ","moved","setMoved","hl","id","t1","Symbol","for","setHl","listId","after","focusList","groups","setOpen","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","triggerContent","triggerLabel","name","t","needle","toLocaleLowerCase","const","map","t12","key","title","views","filter","v","includes","_temp","isEdited","v_0","searchable","system","length","personal","canEdit","v_1","kind","flat","flatMap","_temp2","t13","o","t14","id_0","pick","t15","id_1","optionId","t16","e","to","relatedTarget","HTMLElement","document","getElementById","contains","leave","t17","fn","setTimeout","t18","t19","t20","t21","t22","t23","onListKey","e_0","i","findIndex","v_2","step","ArrowDown","ArrowUp","preventDefault","next","Math","min","max","at","target","currentTarget","activeDescendant","some","v_3","undefined","e_1","text","value","first","concat","find","v_4","g_1","g","v_5","content","o_0","g_0","_c","_temp","_temp2","_Fragment","DotsThreeIcon","XIcon","Fragment","useState","ReactNode","useDataTableContext","BottomSheet","DtMenu","DtMenuItem","DtMenuSeparator","BulkAction","BulkBar","t0","$","_c","rows","actions","variant","onClear","phone","children","i18n","moreOpen","setMoreOpen","clear","t1","t2","t3","t4","t5","t6","t7","t8","a","when","shown","filter","inBar","_temp","slice","others","a_1","includes","rest","_temp2","_temp3","firstDestructive","findIndex","_temp4","t9","a_5","disabled","disabledOf","t10","a_6","d","description","tipOf","t11","a_7","run","btn","t12","cls","t","t13","length","count","Symbol","for","map","a_8","Icon","icon","id","destructive","label","a_9","i","tip","undefined","a_10","i_0","tip_0","a_4","a_3","a_2","a_0","_c","_temp","_temp2","_Fragment","ArrowClockwiseIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","CircleNotchIcon","useEffect","useState","getFormat","useDataTableContext","Freshness","FooterProps","rowCount","page","number","size","hasMore","total","countable","counting","countedAt","Date","busy","firstLoad","empty","pageSizes","updatedAt","freshness","onRefresh","onCount","onPage","onPageSize","phone","useNow","ms","$","_c","now","setNow","_temp","t0","t1","t","setInterval","clearInterval","Footer","p","i18n","locale","t2","t3","t4","updatedText","fmt","from","to","lastPage","single","t5","d","toLocaleTimeString","hour","minute","time","getTime","relative","count","undefined","int","t6","t7","e","Number","target","value","map","_temp2","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","s","_c","_Fragment","useState","defaultOperator","isComplete","toCondition","Chip","ColumnDef","FilterCondition","useChips","t0","$","_c","defs","filters","setFilters","draft","setDraft","editing","setEditingState","chips","t1","f","has","column","filter","some","c","chip","splice","Math","min","at","length","f_0","t2","column_0","setEditing","t3","findIndex","c_0","rest","f_1","get","type","before","slice","c_1","update","t4","column_1","f_2","remove","t5","column_2","def","c_2","op","value","pick","t6","clear","t7","_c","useEffect","useState","DataTableResult","SLOW_MS","BAR_MS","STILL_LOADING_MS","useElapsed","token","ms","$","_c","done","setDone","t0","t1","t","setTimeout","clearTimeout","Snapshot","identity","page","number","size","data","at","useLoadState","result","pending","status","isFetching","settled","isPlaceholderData","snap","setSnap","dataUpdatedAt","errorKind","rows","length","hasRows","identityChange","dim","slow","refreshing","bar","stillLoading","skeleton","t2","t3","Date","t4","busy","updatedAt","_c","useRef","useState","RowMove","SEP","useRowOrder","rows","rowId","onMove","$","_c","moved","setMoved","pending","setPending","last","keys","t0","map","byId","Map","r","i","base","join","ids","id","get","shown","t1","from","to","next","row","splice","token","current","result","after","before","Promise","then","move","t2","_c","CircleNotchIcon","FunnelIcon","PlusIcon","WarningIcon","lazy","Suspense","useEffect","useEffectEvent","useId","useLayoutEffect","useRef","useState","MouseEvent","ReactNode","optionLabel","exportFile","readPath","RemoteLabels","ColumnPicker","FilterBar","toCondition","ColumnsDialog","default","FiltersSheet","then","m","summarize","Chip","getFormat","HeaderSort","Grid","DelegatedTooltip","isTextInput","useDataTableContext","StateMessage","DisplayPopover","MoreMenu","PhoneMoreSheet","Toolbar","ToolbarHandle","ToolbarSize","ConfirmDialog","nameError","ViewDialog","ViewSummary","ViewMenu","ColumnDef","BulkAction","DataTableResult","RowAction","RowClickMode","RowReorder","FilterCondition","QueryWithoutPage","View","ViewState","BulkBar","Footer","Freshness","useChips","isFilterable","isSearchable","isSortable","DataTableInstance","useLoadState","useRowOrder","NONE","Record","errorInfo","error","message","id","e","undefined","String","DataTable","table","result","label","empty","toolbar","toolbarEnd","notice","searchPlaceholder","autoRefresh","onPrint","exportable","onExport","shortcuts","onRowClick","rowClick","onRowOpen","rowActions","selectable","selectionBar","bulkActions","selectionActions","onSelectionChange","renderExpanded","canExpand","rowError","reorder","Row","payload","query","visibleColumns","format","selection","rows","row","event","href","Array","props","clear","close","i18n","locale","fmt","entity","entityName","q","request","server","load","JSON","stringify","search","filters","sort","page","loaded","order","rowId","onMove","hasRows","length","refetch","busy","defs","Map","columns","map","c","filterable","filter","filterIds","Set","chips","setFilters","pickerOpen","setPickerOpen","sheet","setSheet","key","open","column","openSheet","s","labels","sourceRows","allRows","labelOf","def","v","type","options","remote","summaryOf","chip","get","currenciesOf","currency","of","r","hasFilter","hasSearch","some","toolbarRef","columnsOpen","setColumnsOpen","columnsUsed","setColumnsUsed","columnsFrom","HTMLElement","openColumns","from","current","vw","views","hasViews","viewMenuOpen","setViewMenuOpen","viewDialog","setViewDialog","mode","name","state","summary","view","fromCurrent","confirmDelete","setConfirmDelete","layout","viewSummary","lead","more","pinned","left","right","headerOf","join","f","t","dir","shown","visible","total","openSaveAs","resolveView","selectView","setEditing","select","rowKeys","selectedRows","selectedKey","selectRows","ids","value","next","setSelection","expandKey","setOpen","expanded","toggleExpand","find","requestAnimationFrame","sub","root","querySelectorAll","el","endsWith","count","setSeen","text","primaryLabel","keep","o","Object","fromEntries","entries","has","keys","lastSelected","primaryDef","primary","primaryHref","accessor","rowMenu","handleRowClick","target","Element","closest","querySelector","click","countKey","counted","setCounted","at","Date","counting","setCounting","countCtl","AbortController","abort","ctl","fields","signal","n","aborted","catch","finally","countedNow","data","hasMore","number","size","bodyState","skeleton","pending","errorKind","err","live","setLive","setInterval","clearInterval","freshness","bar","clock","d","toLocaleTimeString","hour","minute","i","index","sortable","header","first","said","updatedAt","getTime","selected","seen","polite","active","filterNews","parse","int","before","prev","changed","trim","gone","HTMLDivElement","width","setWidth","measure","clientWidth","ro","ResizeObserver","observe","disconnect","phone","setPhone","pick","onKey","KeyboardEvent","defaultPrevented","typing","HTMLInputElement","inLayer","clearSelection","altKey","ctrlKey","metaKey","preventDefault","setPage","shiftKey","edited","canSave","writable","saveChanges","focusSearch","window","addEventListener","removeEventListener","filterId","filterLabelledBy","filterText","labelShown","unpaged","print","exportRows","bulkBar","exportHint","runExport","read","env","today","other","moreMenu","prefs","l","navigator","clipboard","writeText","remove","setSearch","density","sections","hasDraft","defaultViewId","discard","setDefault","densityFixed","set","verticalLines","counts","persistent","resetDisplay","panel","arrange","setQuery","time","editing","update","dim","toggleSort","setSort","stillLoading","disabled","move","pageSizes","setPageSize","all","makeDefault","rename","create","_Fragment","useDataTableContext","defaultTrack","cellFillStyle","decimalPlaces","optionLabel","getFormat","alignOf","TYPE_SPECS","Avatar","formatCell","readPath","ValueEditor","renderCellContent","toDate","useDelay","TYPE_ICONS","BottomSheet","isEmptyValue","isNumericType","typeLabelKey","operatorsOf","summarize","toCondition","isComplete","defaultOperator","matches","editorOf","opLabel","changeOperator","shapeOf","DtSwitch","Fragment$1","storage","ls","probe","k","v","mem","readJson","raw","kv","key","fallback","requireScope","scope","fn","newId","now","createLocalStorageViews","options","tableId","read","write","views","view","input","i","id","next","patch","createLocalStoragePreferences","prefs","features$1","tableFeatures","NO_ROWS$1","trackCss","t","trackMin","offsetVarName","alwaysShown","d","useColumnLayout","defs","defById","scale","setScale","useState","phone","setPhone","fixed","d_0","d_1","trackFor","d_2","minOf","d_3","clampWidth","def","px","tanstackColumns","id_0","d_4","row","known","ids","id_1","stateOf","fx","id_2","start","l","id_3","end","id_4","visibility","d_5","id_5","sizing","id_6","w","table","useTable","s","headerById","h","toLayoutColumn","col","e","isPrimary","c","startCols","centerCols","c_0","endCols","isPinnedCol","c_1","start_0","c_2","all","center","c_3","end_0","c_4","i_0","trackOf","resized","col_0","pinned_0","cols","c_5","c_6","c_7","offsets","out","left","c_8","c_9","minWidth","sum","c_10","move","ordered","at","c_11","id_7","me","region","p","list","free","cid","i_1","delta","j","other","ids_0","c_12","apply","st","l_0","state","p_0","c_13","c_14","id_8","w_0","rank","p_1","c_15","panel","a","b","pinned_1","c_16","resizing","id_9","subscribeSizing","a_0","listener","b_0","st_0","l_1","order","d_6","id_10","id_11","free_0","d_7","id_12","left_0","l_2","id_13","s_0","id_14","px_0","id_15","visible","merge","base","usePreferences","$","t0","adapter","first","t1","defaults","setPrefs","ready","setReady","t2","t3","got","live","prev","_temp$8","useEffect","t4","prev_0","_temp2$5","set","t5","t6","t7","defaultView","preferredId","canonical","value","normFilter","f","filtersKey","fs","sorted","sameFilters","sameSort","sameState","ca","cb","x","y","nameError","n","name","lower","locale","selfId","byName","collator","toggleSort","current","column","existing","multi","setSort","dir","isEmpty$1","comparator","empty","ea","eb","features","createFilteredRowModel","createSortedRowModel","createPaginatedRowModel","NO_ROWS","noop","isSortable","isFilterable","isSearchable","isEmpty","useListTable","columns","o","cmp","cond","row_0","columnId","columnId_0","searchable","row_1","columnId_1","needle","r","useViews","saved","setSaved","drafts","setDrafts","defaultId","activeId","active","stored","edited","shown","useRef","activate","keepDraft","vs","replace","dropDraft","writable","ALL_VIEW_ID","PAGE_SIZES","NONE$1","fieldsOf","rowKey","extra","useDataTable","ctx","rowId","appViews","system","inner","setInner","source","opening","v_0","layout","resolve","update","v_1","changed","identity","sent","setSent","fields","request","selected","setSelected","selection","client","v_2","column_0","patch_0","plainText","env","patterns","datePattern","parts","CODE","decimals","dp","wallClock","xlsxCell","code","day","text","listOptions","HEADER","FONT_PT","sheetName","widthOf","texts","toCsv","sep","job","esc","toXlsx","writeXlsxFile","util","data","rows","sample","widths","listed","values","optionsName","ref","validations","optionRows","optionsData","feature","xml","markup","main","download","blob","fileName","exportFile","RemoteLabels","hit","remote","m","batch","flight","ColumnPicker","isOpen","open","onOpenChange","setOpen","q","setQ","picked","T0","T1","T2","T3","T4","groups","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t8","t9","chips","i18n","onPick","trigger","match","chipped","_temp$7","filtered","ch","suggested","taken","_temp2$4","rest","typeHint","_temp3$2","Combobox","o_0","keep","t20","MagnifyingGlassIcon","t21","t22","_temp4$1","t23","t24","t25","g_0","Icon","g","DtMenu","align","Menu","offset","side","className","children","finalFocus","DtMenuItem","destructive","twoLine","cls","disabled","onSelect","DtMenuSeparator","DtMenuLabel","FilterChip","type","chip","shape","complete","count","opText","tip","summary","aria","editor","status","onChange","op","setOp","onEditing","close","body","head","currencies","editing","labels","onOpen","people","content","Popover","_temp$6","type_0","CaretDownIcon","Fragment","op_0","CheckIcon","onRemove","XIcon","FilterBar","el","chipEl","scrolledEnd","setScrolledEnd","el_0","onScroll","el_1","ro","target","useLayoutEffect","focusNext","currenciesOf","defOf","summaryOf","remove","add","onClearAll","INTERACTIVE_SELECTOR","isInteractive","within","isTextInput","hasTextSelection","isPlainRowClick","event","rowEl","downPoint","mac","MOVE_KBD","SAVE_KBD","pinStyle","pinClasses","fillIndex","HeaderCell","numeric","unit","descId","useId","menuOpen","setMenuOpen","toFilter","menuButton","useSyncExternalStore","onMoved","cell","onResizeStart","onSort","e_0","onKeyDown","primarySort","sort","ariaSort","ArrowUpIcon","arrow","index","sortMark","e_1","onFilter","FunnelIcon","t26","t27","t28","e_2","t29","t30","t31","t32","t33","t34","PushPinIcon","t35","t36","t37","t38","t39","DotsThreeIcon","t40","t41","t42","t43","onSortSet","t44","t45","t46","t47","t48","t49","t50","t51","t52","t53","t54","t55","t56","t57","t58","onColumns","t59","t60","t61","t62","t63","inlineActionsOf","actions","CellActions","always","_temp$5","buttons","overflow","a_1","disabledOf","a_2","tipOf","a_3","run","items","menuItems","Icon_0","a_4","RowMenu","inline","href","label","_temp$4","_temp2$3","firstDestructive","_temp3$1","subOf","isDisabled","a_5","sub","FillCell","withFill","render","Cell","expand","lead","style","secondaryVisible","CaretRightIcon","InlineAction","reason","uid","Row","sel","extras","handle","menu","error","errorId","WarningCircleIcon","errorIcon","DotsSixVerticalIcon","rowIndex","WIDTHS","SkeletonRow","width","useVirtualRows","useVirtualizer","range","size","SortableRows","lazy","SKELETON_ROWS","FALLBACK_ROW_H","FALLBACK_HEAD_H","coarse","SELECT_W","SELECT_W_PHONE","HANDLE_W","HANDLE_W_PHONE","Grid","requested","root","scroll","density","labelsVersion","metrics","setMetrics","scrolled","setScrolled","focused","setFocused","dragging","setDragging","selectable","onSelectRows","expandable","renderExpanded","selW","handleW","reorder","leadW","sortable","skeleton","maxInline","rowActions","errorOf","rowError","anyError","menuW","rowMenu","expanded","virtual","openIds","lastOpen","min","css","lastScrollKey","scrollKey","onFocus","down","onClick","link","onRowOpen","onRowClick","rowKeys","anchor","from","to","shift","selectedCount","allSelected","extrasOf","subrow","primaryLabel","canExpand","onToggleExpand","primaryHref","focusHeader","dim","verticalLines","header","canSort","additive","canFilter","itemEl","item","measure","drag","rowIndexOffset","rowCount","Suspense","refreshing","notice","DELAY","EDGE","overflows","clips","tipped","DelegatedTooltip","setTip","right","timer","hide","show","onOver","onOut","onFocusin","hit_0","ICONS","PackageIcon","FileIcon","StateMessage","lines","kind","title","_temp$3","after","line","DENSITIES$1","DisplayPopover","openColumns","iconOnly","SlidersHorizontalIcon","onDensity","ToggleGroup","Toggle","onVerticalLines","counts","persistent","onReset","MoreMenu","hintId","exportHint","onExport","onPrint","autoRefresh","onRefresh","autoRefreshOn","onAutoRefresh","ColumnsDialog$1","DENSITIES","TITLES","PhoneMoreSheet","level","setLevel","columnsOpen","setColumnsOpen","columnsUsed","setColumnsUsed","headerOf","sortSummary","hasActions","setOpenAll","CaretLeftIcon","Arrow","ArrowDownIcon","r_0","onColumnsSave","SearchBox","draft","setDraft","seen","setSeen","delay","send","text_0","commit","inputRef","placeholder","XCircleIcon","onBlur","Toolbar","collapsed","search","phoneSearch","openSearch","useImperativeHandle","onSearch","searchPlaceholder","filter","display","more","ConfirmDialog","cancel","AlertDialog","danger","onConfirm","confirmLabel","ViewDialog","initialName","setName","makeDefault","setMakeDefault","setError","Dialog","onSave","validate","err","mode","SEARCH_MIN_VIEWS","ViewMenu","moved","setMoved","hl","setHl","listId","focusList","triggerContent","triggerLabel","canSave","hasDraft","onDelete","onDuplicate","onRename","onSetDefault","sections","sheet","_temp$2","isEdited","canEdit","flat","_temp2$2","pick","optionId","leave","StackIcon","onListKey","step","activeDescendant","v_3","v_4","g_1","v_5","canWrite","onDiscard","onSaveAs","onSaveChanges","PlusIcon","BulkBar","moreOpen","setMoreOpen","clear","onClear","variant","inBar","_temp$1","others","_temp2$1","_temp3","_temp4","a_6","a_7","btn","a_8","a_9","tip_0","a_10","useNow","setNow","_temp","ms","Footer","updatedText","fmt","lastPage","single","time","CircleNotchIcon","ArrowClockwiseIcon","_temp2","useChips","setEditingState","filters","f_0","has","setEditing","setFilters","f_1","before","column_1","f_2","column_2","SLOW_MS","BAR_MS","STILL_LOADING_MS","useElapsed","done","setDone","token","useLoadState","pending","result","settled","snap","setSnap","errorKind","hasRows","identityChange","slow","bar","stillLoading","page","SEP","useRowOrder","setPending","last","keys","byId","onMove","ColumnsDialog","FiltersSheet","NONE","errorInfo","DataTable","entity","server","load","refetch","busy","filterable","filterIds","pickerOpen","setPickerOpen","setSheet","openSheet","sourceRows","labelOf","of","hasFilter","toolbar","hasSearch","toolbarRef","columnsFrom","vw","hasViews","viewMenuOpen","setViewMenuOpen","viewDialog","setViewDialog","confirmDelete","setConfirmDelete","viewSummary","pinned","openSaveAs","selectView","selectedRows","selectedKey","selectRows","expandKey","toggleExpand","lastSelected","onSelectionChange","primaryDef","handleRowClick","rowClick","countKey","counted","setCounted","counting","setCounting","countCtl","ctl","countedNow","total","hasMore","bodyState","setLive","freshness","clock","said","polite","filterNews","gone","setWidth","onKey","useEffectEvent","typing","shortcuts","filterId","filterLabelledBy","filterText","labelShown","unpaged","visibleColumns","print","exportRows","bulkBar","bulkActions","selectionActions","exportable","runExport","moreMenu","selectionBar","toolbarEnd","WarningIcon","DataTableProvider"],"sources":["../src/core/adapters/local-storage.ts","../src/core/columns/use-column-layout.ts","../src/core/preferences/use-preferences.ts","../src/core/views/model.ts","../src/list/sort.ts","../src/core/cells/compare.ts","../src/list/use-list-table.ts","../src/list/use-views.ts","../src/list/use-data-table.ts","../src/core/export/cells.ts","../src/core/export/write.ts","../src/core/cells/remote-labels.ts","../src/core/filters/column-picker.tsx","../src/core/ui/menu.tsx","../src/core/filters/filter-chip.tsx","../src/core/filters/filter-bar.tsx","../src/core/interaction/is-interactive.ts","../src/core/interaction/kbd.ts","../src/core/grid/pin.ts","../src/core/grid/header-cell.tsx","../src/core/grid/inline-actions.ts","../src/core/cells/cell-actions.tsx","../src/core/grid/row-menu.tsx","../src/core/grid/row.tsx","../src/core/grid/skeleton-row.tsx","../src/core/grid/use-virtual-rows.ts","../src/core/grid/grid.tsx","../src/core/grid/tooltip.tsx","../src/core/states/state-message.tsx","../src/core/toolbar/display-popover.tsx","../src/core/toolbar/more-menu.tsx","../src/core/toolbar/phone-more-sheet.tsx","../src/core/toolbar/search-box.tsx","../src/core/toolbar/toolbar.tsx","../src/core/ui/confirm-dialog.tsx","../src/core/views/view-dialog.tsx","../src/core/views/view-menu.tsx","../src/list/bulk-bar.tsx","../src/list/footer.tsx","../src/list/use-chips.ts","../src/list/use-load-state.ts","../src/list/use-row-order.ts","../src/list/data-table.tsx"],"sourcesContent":["// Hazır adapter'lar (01 · plugin ve adapter'lar): tarayıcıda saklar; `scope` zorunlu, değişince eski veri taşınmaz.\nimport type { TableId } from '../../types/core'\nimport type { Preferences, PreferencesAdapter, View, ViewsAdapter } from '../../types/views'\n\ninterface KV {\n get: (key: string) => string | null\n set: (key: string, value: string) => void\n}\n\n/** localStorage yoksa ya da kapalıysa (gizli pencere, kota) bellek içi düşer; hata fırlatmaz. */\nfunction storage(): KV {\n try {\n const ls = globalThis.localStorage\n const probe = '__dt_probe__'\n ls.setItem(probe, '1')\n ls.removeItem(probe)\n return { get: (k) => ls.getItem(k), set: (k, v) => ls.setItem(k, v) }\n } catch {\n const mem = new Map<string, string>()\n return {\n get: (k) => mem.get(k) ?? null,\n set: (k, v) => {\n mem.set(k, v)\n },\n }\n }\n}\n\nfunction readJson<T>(kv: KV, key: string, fallback: T): T {\n const raw = kv.get(key)\n if (raw === null) return fallback\n try {\n return JSON.parse(raw) as T\n } catch {\n return fallback\n }\n}\n\nconst requireScope = (scope: unknown, fn: string): string => {\n if (typeof scope !== 'string' || scope === '')\n throw new TypeError(`${fn}: 'scope' zorunlu (uygulama/kiracı anahtarı)`)\n return scope\n}\n\nconst newId = (): string => globalThis.crypto?.randomUUID?.() ?? Math.random().toString(36).slice(2)\nconst now = (): string => new Date().toISOString()\n\nexport function createLocalStorageViews(options: { scope: string }): ViewsAdapter {\n const scope = requireScope(options?.scope, 'createLocalStorageViews')\n const kv = storage()\n const key = (tableId: TableId) => `dt:${scope}:views:${tableId}`\n const read = (tableId: TableId) => readJson<View[]>(kv, key(tableId), [])\n const write = (tableId: TableId, views: View[]) => kv.set(key(tableId), JSON.stringify(views))\n\n return {\n async list(tableId) {\n return read(tableId)\n },\n async create(tableId, input) {\n const view: View = {\n id: newId(),\n name: input.name,\n kind: 'personal',\n state: input.state,\n updatedAt: now(),\n }\n write(tableId, [...read(tableId), view])\n return view\n },\n async update(tableId, id, patch) {\n const views = read(tableId)\n const i = views.findIndex((v) => v.id === id)\n if (i < 0) throw new Error(`createLocalStorageViews: görünüm yok: ${id}`)\n const next: View = {\n ...views[i]!,\n ...(patch.name !== undefined && { name: patch.name }),\n ...(patch.state !== undefined && { state: patch.state }),\n updatedAt: now(),\n }\n views[i] = next\n write(tableId, views)\n return next\n },\n async remove(tableId, id) {\n write(\n tableId,\n read(tableId).filter((v) => v.id !== id),\n )\n },\n }\n}\n\nexport function createLocalStoragePreferences(options: { scope: string }): PreferencesAdapter {\n const scope = requireScope(options?.scope, 'createLocalStoragePreferences')\n const kv = storage()\n const key = (tableId: TableId) => `dt:${scope}:prefs:${tableId}`\n return {\n get(tableId) {\n return readJson<Partial<Preferences>>(kv, key(tableId), {})\n },\n set(tableId, prefs) {\n kv.set(key(tableId), JSON.stringify({ ...readJson<Partial<Preferences>>(kv, key(tableId), {}), ...prefs }))\n },\n }\n}\n","'use no memo'\n// TanStack Table'ın sütun modeli (01 · TanStack sınırı, D23): sıra, görünürlük, genişlik, resize, sabitleme.\n// Bu dosya dışında (grid/, cells/ …) TanStack import edilmez; dışarıya kendi tiplerimiz çıkar.\n//\n// R11: TanStack örneği kendi atom'larını değiştirerek çalışır; React Compiler bu nesneleri önbelleğe alırsa ekran\n// eski durumda donar. Dosya derleyicinin dışındadır.\n//\n// Performans (05 · Resize): hook genişlik değişiminde yeniden çizilmez (useTable seçicisi genişliği içermez).\n// Izgara `subscribeSizing` ile `--cols` ve sabit ofsetlerini React render'ı dışında yazar.\nimport {\n columnOrderingFeature,\n columnPinningFeature,\n columnResizingFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n tableFeatures,\n useTable,\n type Column,\n type ColumnDef as TanstackColumnDef,\n type Header,\n} from '@tanstack/react-table'\nimport { useState } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport type { ColumnLayout } from '../../types/query'\nimport { defaultTrack, type Track } from '../cells/specs'\nimport { readPath } from './read-path'\n\nexport const MIN_COLUMN_WIDTH = 80\n\nconst features = tableFeatures({\n columnSizingFeature,\n columnResizingFeature,\n columnOrderingFeature,\n columnPinningFeature,\n columnVisibilityFeature,\n})\ntype Features = typeof features\ntype TColumn<Row extends object> = Column<Features, Row, unknown>\n\nexport type PinSide = 'start' | 'end' | null\n\n/** Izgaranın çizdiği, TanStack'ten bağımsız sütun görünümü. Genişlik burada değil, `cols()`/`offsets()`'ta. */\nexport interface LayoutColumn<Row extends object = object> {\n id: string\n def: ColumnDef<Row>\n pinned: PinSide\n /** Bölgenin kenarındaki sabit sütun: kaydırma gölgesini bu taşır. */\n pinEdge: boolean\n /** Sabit hücrelerin sticky ofsetini taşıyan CSS değişkeni (`--dt-off-…`). */\n offsetVar: string\n canHide: boolean\n /** Resize tutamacının TanStack işleyicisi (fare ve dokunma). */\n resizeHandler: (event: unknown) => void\n}\n\n/** Columns dialog'unun satırı (05 §5, D45): tüm sütunlar ekran sırasıyla. */\nexport interface PanelColumn<Row extends object = object> {\n id: string\n def: ColumnDef<Row>\n visible: boolean\n pinned: PinSide\n canHide: boolean\n /** Her zaman sola sabit (birincil): listede kilitli, taşınmaz, gizlenmez. */\n fixed: boolean\n}\n\n/** Dialog taslağı: sıra, görünürler ve konumsal sabitleme (ilk `start`, son `end` görünür sütun). */\nexport interface ColumnsDraft {\n order: string[]\n visible: string[]\n start: number\n end: number\n}\n\nexport interface ColumnLayoutOptions<Row extends object> {\n columns: Array<ColumnDef<Row>>\n /** Görünümden gelen düzen (Faz 3b); verilmezse sütun tanımları. */\n layout?: Partial<ColumnLayout>\n}\n\nconst NO_ROWS: never[] = []\nconst trackCss = (t: Track): string => (typeof t === 'number' ? `${t}px` : `minmax(${t.min}px, ${t.fr}fr)`)\nconst trackMin = (t: Track): number => (typeof t === 'number' ? t : t.min)\n/** Sütun id'si CSS özel özellik adına: 'product.name' → '--dt-off-product_name'. */\nexport const offsetVarName = (id: string): string => `--dt-off-${id.replace(/[^a-zA-Z0-9_-]/g, '_')}`\n\n/** Gizlenemeyen sütun: `alwaysVisible` ve birincil. */\nconst alwaysShown = (d: ColumnDef): boolean => !!(d.alwaysVisible || d.primary)\n\nexport function useColumnLayout<Row extends object>(options: ColumnLayoutOptions<Row>) {\n const defs = options.columns\n const defById = new Map(defs.map((d) => [d.id as string, d]))\n // Tip varsayılanları ve geliştiricinin `width`'i 13 px yazıya göre (02 · Ölçek); ızgara yoğunluğun --dt-fs'ini ölçüp\n // oranı bildirir. Kullanıcının sürüklediği genişlik (columnSizing) ölçeklenmez.\n const [scale, setScale] = useState(1)\n // Telefonda (05 §11) yalnızca birincil sütun sola sabit, sağa sabit yok; kayıtlı sabitleme durumu değişmez. Kartın genişliğini\n // DataTable ölçer ve bildirir.\n const [phone, setPhone] = useState(false)\n const fixed = defs.filter((d) => d.primary).map((d) => d.id as string)\n\n const trackFor = (d: ColumnDef<Row>): Track => {\n const t = defaultTrack(d)\n return typeof t === 'number' ? Math.round(t * scale) : { ...t, min: Math.round(t.min * scale) }\n }\n const minOf = (d: ColumnDef<Row>): number => Math.min(d.minWidth ?? MIN_COLUMN_WIDTH, trackMin(trackFor(d)))\n /** Kaydedilen / uygulanan genişlik sütunun min–max aralığında (05 · Resize: min 80). */\n const clampWidth = (id: string, px: number): number => {\n const def = defById.get(id)\n return Math.min(def?.maxWidth ?? Infinity, Math.max(def ? minOf(def) : MIN_COLUMN_WIDTH, Math.round(px)))\n }\n\n // Her zaman açık id + accessorFn (accessorKey asla: nokta → alt çizgi çakışması, 01).\n const tanstackColumns: Array<TanstackColumnDef<Features, Row, unknown>> = defs.map((d) => {\n const id = d.id as string\n return {\n id,\n accessorFn: d.accessor ?? ((row: Row) => readPath(row, id)),\n size: trackMin(trackFor(d)),\n // Açık `width` 80'in altındaysa (ör. 56 px aksiyon sütunu) o geçerli.\n minSize: minOf(d),\n maxSize: d.maxWidth,\n enableHiding: !alwaysShown(d),\n }\n })\n\n /** Görünümden gelen düzen → TanStack durumu (04 §7): bilinmeyen sütun atlanır; `visible` varsa beyaz listedir; gizlenemeyen hep açık. */\n const known = (ids: string[] | undefined) => ids?.filter((id) => defById.has(id))\n const stateOf = (l: Partial<ColumnLayout> | undefined) => {\n const fx = fixed.filter((id) => defById.has(id))\n const start = [...fx, ...(known(l?.pinned?.left) ?? []).filter((id) => !fx.includes(id))]\n const end = (known(l?.pinned?.right) ?? []).filter((id) => !fx.includes(id))\n const visibility: Record<string, boolean> = {}\n for (const d of defs) {\n const id = d.id as string\n visibility[id] = alwaysShown(d) || (l?.visible ? l.visible.includes(id) : !d.hidden)\n }\n const sizing: Record<string, number> = {}\n for (const [id, w] of Object.entries(l?.widths ?? {})) if (defById.has(id)) sizing[id] = clampWidth(id, w)\n return {\n columnPinning: { start, end },\n columnVisibility: visibility,\n columnOrder: known(l?.order) ?? [],\n columnSizing: sizing,\n }\n }\n\n const table = useTable(\n {\n features,\n columns: tanstackColumns,\n data: NO_ROWS,\n initialState: stateOf(options.layout),\n columnResizeMode: 'onChange',\n },\n // Genişlik ve resize durumu bilerek yok: sürüklerken ekran yeniden çizilmez (05 · Resize).\n (s) => ({ columnOrder: s.columnOrder, columnVisibility: s.columnVisibility, columnPinning: s.columnPinning }),\n )\n\n const headerById = new Map(table.getFlatHeaders().map((h) => [h.column.id, h as Header<Features, Row, unknown>]))\n const toLayoutColumn = (col: TColumn<Row>, pinned: PinSide, pinEdge: boolean): LayoutColumn<Row> => ({\n id: col.id,\n def: defById.get(col.id)!,\n pinned,\n pinEdge,\n offsetVar: offsetVarName(col.id),\n canHide: col.getCanHide(),\n resizeHandler: (e) => headerById.get(col.id)?.getResizeHandler()(e),\n })\n\n const isPrimary = (c: TColumn<Row>) => !!defById.get(c.id)?.primary\n const startCols = phone ? table.getVisibleLeafColumns().filter(isPrimary) : table.getStartVisibleLeafColumns()\n const centerCols = phone\n ? table.getVisibleLeafColumns().filter((c) => !isPrimary(c))\n : table.getCenterVisibleLeafColumns()\n const endCols = phone ? [] : table.getEndVisibleLeafColumns()\n const isPinnedCol = (c: TColumn<Row>) => (phone ? isPrimary(c) : c.getIsPinned() !== false)\n const start = startCols.map((c, i, all) => toLayoutColumn(c, 'start', i === all.length - 1))\n const center = centerCols.map((c) => toLayoutColumn(c, null, false))\n const end = endCols.map((c, i) => toLayoutColumn(c, 'end', i === 0))\n\n /** Sütunun gerçek track'i: sabit ve resize edilmiş sütunlar px, diğerleri tip varsayılanı (minmax olabilir). */\n const trackOf = (col: TColumn<Row>, pinned: boolean): Track => {\n // Ham columnSizing sürüklerken min/max'ı aşabilir; getSize() kırpar (min 80, 05 · Resize).\n const resized = table.atoms.columnSizing.get()[col.id] !== undefined\n return pinned || resized ? col.getSize() : trackFor(defById.get(col.id)!)\n }\n\n /** grid-template-columns: sabit px, orta track'ler, bölge sonunda `auto` dolgu (05 · Resize). */\n const cols = (): string =>\n [\n ...startCols.map((c) => trackCss(trackOf(c, true))),\n ...centerCols.map((c) => trackCss(trackOf(c, false))),\n 'auto',\n ...endCols.map((c) => trackCss(trackOf(c, true))),\n ].join(' ')\n\n /** Sabit hücrelerin sticky ofsetleri: start için left, end için right (TanStack getStart / getAfter). */\n const offsets = (): Record<string, string> => {\n const out: Record<string, string> = {}\n let left = 0\n for (const c of startCols) {\n out[offsetVarName(c.id)] = `${left}px`\n left += c.getSize()\n }\n for (const c of endCols) out[offsetVarName(c.id)] = `${c.getAfter('end')}px`\n return out\n }\n\n /** Satır ve header'ın en az genişliği; kabı aşarsa yatay kayar. */\n const minWidth = (): number =>\n table.getVisibleLeafColumns().reduce((sum, c) => sum + trackMin(trackOf(c, isPinnedCol(c))), 0)\n\n /** Move left/right (D22: sürükleme yok): aynı sabitleme bölgesindeki görünür komşuyla yer değiştirir. */\n const move = (id: string, delta: -1 | 1) => {\n const ordered = table.getOrderColumnsFn()(table.getAllLeafColumns())\n const at = ordered.findIndex((c) => c.id === id)\n const me = ordered[at]\n if (!me) return\n const region = me.getIsPinned()\n // TanStack sabit sütunları columnOrder'a değil sabitleme dizisinin sırasına göre çizer; birincil sütun başta kalır.\n if (region) {\n const p = table.atoms.columnPinning.get()\n const list = [...(p[region] ?? [])]\n const free = (cid: string) => !fixed.includes(cid) && table.getColumn(cid)?.getIsVisible() === true\n const i = list.indexOf(id)\n let k = i + delta\n while (k >= 0 && k < list.length && !free(list[k]!)) k += delta\n if (!free(id) || k < 0 || k >= list.length) return\n list[i] = list[k]!\n list[k] = id\n table.setColumnPinning({ ...p, [region]: list })\n return\n }\n let j = at + delta\n while (j >= 0 && j < ordered.length && !(ordered[j]!.getIsVisible() && ordered[j]!.getIsPinned() === region))\n j += delta\n const other = ordered[j]\n if (!other) return\n const ids = ordered.map((c) => c.id)\n ids[at] = other.id\n ids[j] = me.id\n table.setColumnOrder(ids)\n }\n\n const apply = (l?: Partial<ColumnLayout>) => {\n const st = stateOf(l)\n table.setColumnOrder(st.columnOrder)\n table.setColumnVisibility(st.columnVisibility)\n table.setColumnPinning(st.columnPinning)\n table.setColumnSizing(st.columnSizing)\n }\n\n /** Etkin düzen (görünüme yazılan biçim): sıra, görünürler, yalnızca değiştirilmiş genişlikler, sabitler. */\n const state = (): ColumnLayout => {\n const p = table.atoms.columnPinning.get()\n return {\n order: table\n .getOrderColumnsFn()(table.getAllLeafColumns())\n .map((c) => c.id),\n visible: table.getVisibleLeafColumns().map((c) => c.id),\n widths: Object.fromEntries(\n Object.entries(table.atoms.columnSizing.get()).map(([id, w]) => [id, clampWidth(id, w)]),\n ),\n pinned: { left: [...(p.start ?? [])], right: [...(p.end ?? [])] },\n }\n }\n\n const rank = (c: TColumn<Row>) => {\n const p = c.getIsPinned()\n return p === 'start' ? 0 : p === 'end' ? 2 : 1\n }\n const panel: Array<PanelColumn<Row>> = [...table.getOrderColumnsFn()(table.getAllLeafColumns())]\n .sort((a, b) => rank(a) - rank(b))\n .map((c) => {\n const pinned = c.getIsPinned()\n return {\n id: c.id,\n def: defById.get(c.id)!,\n visible: c.getIsVisible(),\n pinned: pinned === false ? null : pinned,\n canHide: c.getCanHide(),\n fixed: fixed.includes(c.id),\n }\n })\n\n /** Canlı sürükleme genişliği; sürüklenmiyorsa null. */\n const resizing = (): { id: string; size: number } | null => {\n const id = table.atoms.columnResizing.get().isResizingColumn\n return id ? { id, size: table.getColumn(id)?.getSize() ?? 0 } : null\n }\n\n /** Genişlik ya da resize durumu değişince çağrılır; abonelikten çıkış fonksiyonu döner. */\n const subscribeSizing = (listener: () => void): (() => void) => {\n const a = table.atoms.columnSizing.subscribe(listener)\n const b = table.atoms.columnResizing.subscribe(listener)\n return () => {\n a.unsubscribe()\n b.unsubscribe()\n }\n }\n\n return {\n columns: [...start, ...center, ...end],\n start,\n center,\n end,\n scale,\n setScale,\n phone,\n setPhone,\n cols,\n offsets,\n minWidth,\n resizing,\n subscribeSizing,\n move,\n panel,\n counts: { shown: table.getVisibleLeafColumns().length, total: table.getAllLeafColumns().length },\n state,\n /** Görünümün düzeni uygulanmadan `state()` biçiminde (04 §7 \"edited\" karşılaştırması). */\n resolve: (l: Partial<ColumnLayout> | undefined): ColumnLayout => {\n const st = stateOf(l)\n const order = [...st.columnOrder, ...defs.map((d) => d.id as string).filter((id) => !st.columnOrder.includes(id))]\n return {\n order,\n visible: order.filter((id) => st.columnVisibility[id]),\n widths: st.columnSizing,\n pinned: { left: st.columnPinning.start, right: st.columnPinning.end },\n }\n },\n /** Dialog'un Save'i (D45): sabitleme konumsaldır, sabitlerden sonraki ilk `start` ve son `end` görünür sütun. */\n arrange: (d: ColumnsDraft) => {\n const free = d.order.filter((id) => d.visible.includes(id) && !fixed.includes(id))\n const left = free.slice(0, d.start)\n apply({\n order: d.order,\n visible: d.visible,\n widths: state().widths,\n pinned: { left, right: d.end ? free.slice(left.length).slice(-d.end) : [] },\n })\n },\n /** Display › Reset: verilmezse `layout` seçeneğine, o da yoksa sütun tanımlarına döner. */\n reset: (l: Partial<ColumnLayout> | undefined = options.layout) => apply(l),\n widthOf: (id: string): number => table.getColumn(id)?.getSize() ?? 0,\n setWidth: (id: string, px: number) => table.setColumnSizing((s) => ({ ...s, [id]: clampWidth(id, px) })),\n setVisible: (id: string, visible: boolean) => table.getColumn(id)?.toggleVisibility(visible),\n }\n}\n\nexport type ColumnLayoutApi<Row extends object = object> = ReturnType<typeof useColumnLayout<Row>>\n","// Kişisel tercihler (05 §9, 04 §8, D5): yoğunluk, dikey çizgiler, sayfa boyutu, varsayılan görünüm. Görünüme değil, tablo\n// kimliği başına yazılır. Adapter yoksa oturumluk; senkron `get` ilk render'da, Promise dönen `get` gelince uygulanır.\nimport { useEffect, useState } from 'react'\nimport type { TableId } from '../../types/core'\nimport type { Preferences, PreferencesAdapter } from '../../types/views'\n\n/** Bozuk ya da eski kayıt tercihleri bozmaz: yalnızca tipi doğru alanlar alınır. */\nfunction merge(base: Preferences, p: Partial<Preferences> | undefined): Preferences {\n if (!p) return base\n const next = { ...base }\n if (p.density === 'comfortable' || p.density === 'standard' || p.density === 'compact') next.density = p.density\n if (typeof p.verticalLines === 'boolean') next.verticalLines = p.verticalLines\n if (typeof p.pageSize === 'number' && p.pageSize > 0) next.pageSize = p.pageSize\n if ('defaultViewId' in p) next.defaultViewId = p.defaultViewId ?? null\n return next\n}\n\nexport function usePreferences(tableId: TableId, adapter: PreferencesAdapter | null, defaults: Preferences) {\n const [first] = useState(() => adapter?.get(tableId))\n const [prefs, setPrefs] = useState<Preferences>(() => (first instanceof Promise ? defaults : merge(defaults, first)))\n // Promise dönen adapter'da tercih gelene (ya da hata verene) kadar false: kullanıcı varsayılanı ancak o zaman bilinir.\n const [ready, setReady] = useState(!(first instanceof Promise))\n\n useEffect(() => {\n const got = adapter?.get(tableId)\n if (!(got instanceof Promise)) return\n let live = true\n got\n .then((p) => live && setPrefs((prev) => merge(prev, p)))\n .catch(() => {})\n .finally(() => live && setReady(true))\n return () => {\n live = false\n }\n }, [adapter, tableId])\n\n const set = (patch: Partial<Preferences>) => {\n setPrefs((prev) => merge(prev, patch))\n if (adapter) void Promise.resolve(adapter.set(tableId, patch)).catch(() => {})\n }\n\n return {\n prefs,\n set,\n /** Display › Reset: ekran ayarları; varsayılan görünüm seçimi kalır (görünüm menüsünden yönetilir). */\n reset: () => set({ density: defaults.density, verticalLines: defaults.verticalLines, pageSize: defaults.pageSize }),\n /** Arayüz \"Saved for you only\" notunu yalnızca kalıcı depoda gösterir. */\n persistent: adapter !== null,\n ready,\n }\n}\n","// Görünüm modeli (04 §7, D4, D5): varsayılan görünüm sırası, düzenlenmiş durum karşılaştırması, ad doğrulama, sıralama.\nimport type { FilterCondition } from '../../types/query'\nimport type { View, ViewState } from '../../types/views'\n\n/** Ekran açılırken: kullanıcı varsayılanı (tercih) → system `default` → ilk system view → yok (tablonun varsayılanı). */\nexport function defaultView(views: View[], preferredId: string | null | undefined): View | null {\n return (\n (preferredId ? views.find((v) => v.id === preferredId) : undefined) ??\n views.find((v) => v.kind === 'system' && v.default) ??\n views.find((v) => v.kind === 'system') ??\n null\n )\n}\n\n// Anahtarları her seviyede sıralı metin: jsonb saklayan sunucu nesne anahtarlarının sırasını korumaz, aynı koşul\n// farklı sırayla döner.\nconst canonical = (value: unknown): string =>\n Array.isArray(value)\n ? `[${value.map(canonical).join(',')}]`\n : value !== null && typeof value === 'object'\n ? `{${Object.keys(value)\n .sort()\n .map((k) => `${JSON.stringify(k)}:${canonical((value as Record<string, unknown>)[k])}`)\n .join(',')}}`\n : JSON.stringify(value)\nconst normFilter = (f: FilterCondition) => {\n const v = 'value' in f ? f.value : undefined\n return { ...f, value: Array.isArray(v) ? [...(v as unknown[])].sort() : v }\n}\nconst filtersKey = (fs: FilterCondition[]) =>\n canonical(fs.map(normFilter).sort((a, b) => a.column.localeCompare(b.column)))\nconst sorted = (ids: string[]) => [...ids].sort().join('\\u0000')\n\n/** Sırasız filtre eşitliği; adrese yalnızca görünümden farklı olan yazılır (R5). */\nexport const sameFilters = (a: FilterCondition[], b: FilterCondition[]) => filtersKey(a) === filtersKey(b)\nexport const sameSort = (a: ViewState['sort'], b: ViewState['sort']) => canonical(a) === canonical(b)\n\n/** Normalize karşılaştırma: `in` değerleri sırasız, görünürler küme, genişlikte ±2 px tolerans. */\nexport function sameState(a: ViewState, b: ViewState): boolean {\n if (!sameFilters(a.filters, b.filters) || !sameSort(a.sort, b.sort)) return false\n const ca = a.columns\n const cb = b.columns\n if (ca.order.join('\\u0000') !== cb.order.join('\\u0000') || sorted(ca.visible) !== sorted(cb.visible)) return false\n if (ca.pinned.left.join('\\u0000') !== cb.pinned.left.join('\\u0000')) return false\n if (ca.pinned.right.join('\\u0000') !== cb.pinned.right.join('\\u0000')) return false\n for (const id of new Set([...Object.keys(ca.widths), ...Object.keys(cb.widths)])) {\n const x = ca.widths[id]\n const y = cb.widths[id]\n if (x === undefined || y === undefined ? x !== y : Math.abs(x - y) > 2) return false\n }\n return true\n}\n\nexport type NameError = 'required' | 'tooLong' | 'taken'\n/** Save as new view / Rename (04 §7): zorunlu, en fazla 60, kişisel görünümler arasında benzersiz (büyük/küçük harf duyarsız). */\nexport function nameError(name: string, views: View[], locale: string, selfId?: string): NameError | null {\n const n = name.trim()\n if (!n) return 'required'\n if (n.length > 60) return 'tooLong'\n const lower = n.toLocaleLowerCase(locale)\n const taken = views.some(\n (v) => v.kind === 'personal' && v.id !== selfId && v.name.toLocaleLowerCase(locale) === lower,\n )\n return taken ? 'taken' : null\n}\n\n/** Kişisel görünümler ada göre (yerel ayar karşılaştırması); system kod sırasında kalır. */\nexport const byName = (views: View[], collator: Intl.Collator): View[] =>\n [...views].sort((a, b) => collator.compare(a.name, b.name))\n","// Sıralama kuralları (04 §6): tık asc → desc → kapalı ve diğerleri kalkar; ⇧ ile ikincil, en fazla 3 (dördüncüde en eski düşer).\nimport type { SortRule } from '../types/query'\n\nexport const MAX_SORT = 3\n\nexport function toggleSort(current: SortRule[], column: string, multi: boolean): SortRule[] {\n const at = current.findIndex((s) => s.column === column)\n const existing = at >= 0 ? current[at]! : null\n const next: SortRule | null = !existing\n ? { column, dir: 'asc' }\n : existing.dir === 'asc'\n ? { column, dir: 'desc' }\n : null\n if (!multi) return next ? [next] : []\n if (!next) return current.filter((s) => s.column !== column)\n if (at >= 0) return current.map((s) => (s.column === column ? next : s))\n return [...current, next].slice(-MAX_SORT)\n}\n\n/** Sütun menüsü: yön seçmek tek sıralama yapar; kaldırmak yalnızca o sütunu çıkarır. */\nexport const setSort = (current: SortRule[], column: string, dir: 'asc' | 'desc' | null): SortRule[] =>\n dir ? [{ column, dir }] : current.filter((s) => s.column !== column)\n","// Tipe göre sıralama karşılaştırıcısı (04 §6): boş değer \"en büyük\" (artanda sonda, azalanda başta — PostgreSQL varsayılanı).\n// Liste (useListTable) ve sheet (yerel sıralama, 07 §10) aynı kuralı kullanır.\nimport type { ColumnDef } from '../../types/columns'\nimport { getFormat } from '../format'\nimport { TYPE_SPECS } from './specs'\n\nconst isEmpty = (v: unknown) => v === null || v === undefined || v === ''\n\nexport function comparator(def: ColumnDef, locale: string): (a: unknown, b: unknown) => number {\n const empty = (a: unknown, b: unknown): number | null => {\n const ea = isEmpty(a)\n const eb = isEmpty(b)\n if (ea && eb) return 0\n if (ea) return 1\n if (eb) return -1\n return null\n }\n const spec = TYPE_SPECS[def.type]\n if (spec.numeric || def.type === 'boolean' || def.type === 'star') {\n return (a, b) => empty(a, b) ?? Number(a) - Number(b)\n }\n if (def.type === 'date' || def.type === 'datetime') {\n return (a, b) => empty(a, b) ?? new Date(a as string).getTime() - new Date(b as string).getTime()\n }\n const collator = getFormat(locale).collator()\n return (a, b) => empty(a, b) ?? collator.compare(String(a), String(b))\n}\n","'use no memo'\n// İstemci modunun satır modeli (01 · TanStack sınırı, D23): filtre, arama, sıralama ve sayfalama TanStack row model'leriyle. Sunucu modunda\n// kullanılmaz: işlemi sunucu yapar, satırlar olduğu gibi çizilir. R11: TanStack örneği kendi atom'larını değiştirir;\n// dosya derleyicinin dışındadır.\nimport {\n columnFilteringFeature,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n globalFilteringFeature,\n rowPaginationFeature,\n rowSortingFeature,\n tableFeatures,\n useTable,\n type ColumnDef as TanstackColumnDef,\n} from '@tanstack/react-table'\nimport { comparator } from '../core/cells/compare'\nimport { TYPE_SPECS } from '../core/cells/specs'\nimport { readPath } from '../core/columns/read-path'\nimport { matches } from '../core/filters/model'\nimport type { ColumnDef } from '../types/columns'\nimport type { FilterCondition, SortRule } from '../types/query'\nimport { MAX_SORT } from './sort'\n\nconst features = tableFeatures({\n // globalFiltering, columnFiltering'i ön koşul ister (TanStack).\n columnFilteringFeature,\n globalFilteringFeature,\n filteredRowModel: createFilteredRowModel(),\n rowSortingFeature,\n sortedRowModel: createSortedRowModel(),\n rowPaginationFeature,\n paginatedRowModel: createPaginatedRowModel(),\n})\ntype Features = typeof features\n\nconst NO_ROWS: never[] = []\nconst noop = () => {}\n\nexport const isSortable = (def: ColumnDef): boolean => def.sortable ?? TYPE_SPECS[def.type].sortable\nexport const isFilterable = (def: ColumnDef): boolean => def.filterable ?? TYPE_SPECS[def.type].filterable\nexport const isSearchable = (def: ColumnDef): boolean => def.searchable ?? TYPE_SPECS[def.type].searchable\nconst isEmpty = (v: unknown) => v === null || v === undefined || v === '' || (Array.isArray(v) && v.length === 0)\n\nexport interface ListTableOptions<Row extends object> {\n columns: Array<ColumnDef<Row>>\n /** Verilmezse sunucu modu: hook boş döner. */\n rows: Row[] | undefined\n rowId: (row: Row) => string\n locale: string\n search: string\n /** Yalnızca tam koşullar; sütun başına `filterFn` (04 §1). */\n filters: FilterCondition[]\n sort: SortRule[]\n page: number\n pageSize: number\n}\n\nexport function useListTable<Row extends object>(o: ListTableOptions<Row>) {\n const columns: Array<TanstackColumnDef<Features, Row, unknown>> = o.columns.map((d) => {\n const id = d.id as string\n const cmp = comparator(d as ColumnDef, o.locale)\n return {\n id,\n accessorFn: d.accessor ?? ((row: Row) => readPath(row, id)),\n enableSorting: isSortable(d as ColumnDef),\n enableGlobalFilter: isSearchable(d as ColumnDef),\n enableColumnFilter: isFilterable(d as ColumnDef),\n filterFn: (row, columnId, cond: FilterCondition) => matches(cond, row.getValue(columnId), { locale: o.locale }),\n sortFn: (a, b, columnId) => cmp(a.getValue(columnId), b.getValue(columnId)),\n // Boş değer \"en büyük\": artanda sonda, azalanda başta (PostgreSQL ile aynı).\n sortUndefined: 1,\n }\n })\n\n const searchable = new Set(o.columns.filter((d) => isSearchable(d as ColumnDef)).map((d) => d.id as string))\n // Durum tamamen dışarıda (useDataTable); TanStack'in updater'ları kullanılmaz.\n const table = useTable(\n {\n features,\n columns,\n data: o.rows ?? NO_ROWS,\n getRowId: o.rowId,\n state: {\n // Arama locale'e göre küçültülür (09: I/ı, İ/i doğru eşleşmeli).\n globalFilter: o.search.trim().toLocaleLowerCase(o.locale),\n columnFilters: o.filters.map((f) => ({ id: f.column, value: f })),\n sorting: o.sort.map((s) => ({ id: s.column, desc: s.dir === 'desc' })),\n pagination: { pageIndex: o.page - 1, pageSize: o.pageSize },\n },\n getColumnCanGlobalFilter: (column) => searchable.has(column.id),\n globalFilterFn: (row, columnId, needle: string) => {\n const v = row.getValue(columnId)\n return !isEmpty(v) && String(v).toLocaleLowerCase(o.locale).includes(needle)\n },\n onGlobalFilterChange: noop,\n onColumnFiltersChange: noop,\n onSortingChange: noop,\n onPaginationChange: noop,\n autoResetPageIndex: false,\n maxMultiSortColCount: MAX_SORT,\n },\n (s) => ({\n globalFilter: s.globalFilter,\n columnFilters: s.columnFilters,\n sorting: s.sorting,\n pagination: s.pagination,\n }),\n )\n\n if (!o.rows) return { rows: undefined, total: undefined }\n return {\n /** Sayfadaki satırlar: sıralı ve dilimlenmiş. */\n rows: table.getRowModel().rows.map((r) => r.original),\n /** Filtre ve arama sonrası, sayfalama öncesi toplam. */\n total: table.getPrePaginatedRowModel().rows.length,\n }\n}\n","// Görünümler (04 §7, D4, D5, D30, R6): system görünümler (`views` seçeneği) + adapter'daki kişisel görünümler, etkin görünüm,\n// düzenlenmiş durum, görünüm başına kaydedilmemiş taslak (bellekte, oturum boyu), kaydet / kopyala / yeniden adlandır / sil.\n// Paket veri çekmez (D18): adapter'ı uygulama verir, yoksa kaydetme yoktur.\n//\n// Vue'dan farkı: etkin görünüm tablonun durumundan türetilir (`state.view`, adrese bağlanabilir, R5). Görünüm verilmemişse\n// varsayılandır, filtre ve sıralama verilmemişse görünümün kayıtlısıdır; \"edited\" saklanmaz, her çizimde karşılaştırılır.\n// Böylece temiz adres varsayılan görünümü, adresten gelen görünüm + filtre de sayfa yenilenince doğru \"edited\"i gösterir.\nimport { useEffect, useRef, useState } from 'react'\nimport { byName, defaultView, sameState } from '../core/views/model'\nimport type { FilterCondition, SortRule } from '../types/query'\nimport type { View, ViewPatch, ViewState, ViewsAdapter } from '../types/views'\n\nexport interface ViewsOptions {\n tableId: string\n system: View[]\n adapter: ViewsAdapter | null\n locale: string\n defaultViewId: string | null\n setDefaultViewId: (id: string | null) => void\n /** İstenen görünüm: undefined → varsayılan (kullanıcı varsayılanı → system default → ilk system), null → görünümsüz. */\n requested: string | null | undefined\n /** İstenen filtre ve sıralama; eksikse etkin görünümün kayıtlısı. */\n query: { filters?: FilterCondition[]; sort?: SortRule[] }\n /** Ekrandaki sütun düzeni. */\n columns: ViewState['columns']\n /** Kayıtlı (kısmi) durum → tam durum; eksikler tablonun varsayılanı. */\n resolve: (patch: ViewPatch) => ViewState\n /** Tek adımda uygular (tek istek): görünüm kimliği, filtre, sıralama, sütunlar, sayfa 1. */\n apply: (id: string | null, state: ViewState) => void\n /** Yalnızca sütun düzeni: görünüm dışarıdan değişince (adres, geç gelen liste ya da tercih). */\n restoreColumns: (columns: ViewPatch['columns']) => void\n}\n\nexport function useViews(o: ViewsOptions) {\n const [saved, setSaved] = useState<View[]>([])\n const [drafts, setDrafts] = useState<Record<string, ViewState>>({})\n\n const all = [...o.system, ...saved]\n const defaultId = defaultView(all, o.defaultViewId)?.id ?? null\n const activeId = o.requested === undefined ? defaultId : o.requested\n const active = all.find((v) => v.id === activeId) ?? null\n const stored = o.resolve(active?.state ?? {})\n const current: ViewState = {\n filters: o.query.filters ?? stored.filters,\n sort: o.query.sort ?? stored.sort,\n columns: o.columns,\n }\n const edited = !!active && !sameState(current, stored)\n\n // Sütun düzeni adreste yoktur: ekrandaki düzenin ait olduğu görünüm. Görünüm `activate` dışında değişirse (adres boşaldı,\n // geri tuşu, kişisel liste ya da varsayılan tercihi sonradan geldi) düzen o görünümün kayıtlısına döner.\n const shown = useRef(active?.id ?? null)\n useEffect(() => {\n const id = active?.id ?? null\n if (shown.current === id) return\n shown.current = id\n o.restoreColumns(active?.state.columns)\n // Yalnızca etkin görünüm değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [active?.id])\n\n const activate = (view: View | null, keepDraft = true) => {\n const next = { ...drafts }\n if (active) {\n if (keepDraft && edited) next[active.id] = current\n else delete next[active.id]\n }\n setDrafts(next)\n shown.current = view?.id ?? null\n o.apply(view?.id ?? null, view ? (next[view.id] ?? o.resolve(view.state)) : o.resolve({}))\n }\n\n useEffect(() => {\n if (!o.adapter) return\n let live = true\n o.adapter\n .list(o.tableId)\n .then((vs) => live && setSaved(vs))\n .catch(() => {})\n return () => {\n live = false\n }\n }, [o.adapter, o.tableId])\n\n const replace = (next: View) => setSaved((vs) => vs.map((v) => (v.id === next.id ? next : v)))\n const dropDraft = (id: string) => setDrafts((d) => Object.fromEntries(Object.entries(d).filter(([k]) => k !== id)))\n const writable = (v: View | null) => !!v && !!o.adapter && v.kind !== 'system'\n const collator = new Intl.Collator(o.locale)\n\n return {\n all,\n /** Durumda görünüm verilmezse açılan görünüm. */\n defaultId,\n activeId,\n current,\n sections: { system: o.system, personal: byName(saved, collator) },\n active,\n edited,\n // Adapter varsa ilk görünüm menüden yaratılır; tetik yalnızca ne görünüm ne adapter varken gizlenir (04 §7).\n hasViews: all.length > 0 || !!o.adapter,\n canSave: !!o.adapter,\n hasDraft: (id: string) => id in drafts,\n writable,\n /** Set as default / Remove default; temiz adresteki ekran görünümü değişmez. */\n setDefault: o.setDefaultViewId,\n select: (id: string) => {\n activate(all.find((v) => v.id === id) ?? null)\n },\n saveChanges: async () => {\n if (!writable(active) || !o.adapter) return\n replace(await o.adapter.update(o.tableId, active!.id, { state: current }))\n dropDraft(active!.id)\n },\n discard: () => {\n if (!active) return\n dropDraft(active.id)\n o.apply(active.id, o.resolve(active.state))\n },\n /** Save as new view / New view / Duplicate; kayıt sonrası yeni görünüm aktif. `fromCurrent`: düzenleme yeni görünüme taşındı. */\n create: async (input: { name: string; state: ViewState; makeDefault: boolean; fromCurrent: boolean }) => {\n if (!o.adapter) return\n const v = await o.adapter.create(o.tableId, { name: input.name, state: input.state })\n setSaved((vs) => [...vs, v])\n if (input.makeDefault) o.setDefaultViewId(v.id)\n activate(v, !input.fromCurrent)\n },\n rename: async (id: string, name: string) => {\n if (o.adapter) replace(await o.adapter.update(o.tableId, id, { name }))\n },\n /** Onaydan sonra hemen `remove`; aktif silinirse varsayılana, varsayılan silinirse system default'a (04 §7). */\n remove: async (id: string) => {\n if (!o.adapter) return\n await o.adapter.remove(o.tableId, id)\n setSaved((vs) => vs.filter((v) => v.id !== id))\n dropDraft(id)\n const preferredId = o.defaultViewId === id ? null : o.defaultViewId\n if (o.defaultViewId === id) o.setDefaultViewId(null)\n if (activeId === id)\n activate(\n defaultView(\n all.filter((v) => v.id !== id),\n preferredId,\n ),\n false,\n )\n },\n }\n}\n\nexport type ViewsApi = ReturnType<typeof useViews>\n","// Tablonun durumu ve mantığı (R3, R5). Ekranın başka yerleri de buradan okur; `<DataTable table={…} />` çizer.\nimport { useState, useSyncExternalStore } from 'react'\nimport { useColumnLayout } from '../core/columns/use-column-layout'\nimport { readPath } from '../core/columns/read-path'\nimport { usePreferences } from '../core/preferences/use-preferences'\nimport { useDataTableContext } from '../core/provider'\nimport { defaultView, sameFilters, sameSort } from '../core/views/model'\nimport type { ColumnDef } from '../types/columns'\nimport type { TableState, UseDataTableOptions } from '../types/list'\nimport type { FilterCondition, SortRule, TableQuery } from '../types/query'\nimport type { View, ViewPatch, ViewState } from '../types/views'\nimport { setSort, toggleSort } from './sort'\nimport { useListTable } from './use-list-table'\nimport { useViews } from './use-views'\n\n/** Hazır \"Tümü\" görünümünün kimliği (R19); adreste ve kişisel varsayılan tercihinde bu değerle durur. */\nconst ALL_VIEW_ID = 'all'\nconst PAGE_SIZES = [50, 100, 250, 500]\nconst NONE: Record<string, true> = {}\n\n/** İstenecek alanlar (R4): satır anahtarı, görünür sütunların yolu ve `fields`'i, tablonun `fields`'i; koddaki sırayla. */\nfunction fieldsOf<Row extends object>(\n columns: Array<ColumnDef<Row>>,\n visible: Set<string>,\n rowKey: string,\n extra: string[] = [],\n): string[] {\n const out = new Set([rowKey])\n for (const c of columns) {\n if (!visible.has(c.id as string)) continue\n if (!c.accessor) out.add(c.id as string)\n for (const f of c.fields ?? []) out.add(f)\n }\n for (const f of extra) out.add(f)\n return [...out]\n}\n\nexport function useDataTable<Row extends object>(options: UseDataTableOptions<Row>) {\n const ctx = useDataTableContext()\n const rowKey = options.rowKey ?? 'id'\n const rowId = (row: Row) => String(readPath(row, rowKey))\n const prefs = usePreferences(options.id, ctx.preferences, {\n density: 'standard',\n verticalLines: false,\n pageSize: options.pageSize ?? 100,\n defaultViewId: null,\n })\n // R19: hazır \"Tümü\" görünümü her ekranda ilk sıradadır; uygulama aynı kimlikle verirse onunki geçer. Adapter da görünüm\n // de yoksa menü hiç çizilmez: tek seçenekli menü anlamsız olurdu.\n const appViews = options.views ?? []\n const system: View[] =\n appViews.some((v) => v.id === ALL_VIEW_ID) || (!appViews.length && !ctx.viewsAdapter)\n ? appViews\n : [{ id: ALL_VIEW_ID, name: ctx.i18n.t('views.all'), kind: 'system', state: {} }, ...appViews]\n // R5: `state` verilince durum yalnızca odur, eksik alan varsayılandır; verilmezse içeride (`initialState` ile başlar).\n const [inner, setInner] = useState<Partial<TableState>>(() => ({ ...options.initialState }))\n const source = options.state ?? inner\n // Açılıştaki sütun düzeni: istenen ya da varsayılan system görünümünün; kişisel olan liste gelince (useViews).\n const [opening] = useState(() =>\n source.view === undefined\n ? defaultView(system, prefs.prefs.defaultViewId)\n : system.find((v) => v.id === source.view),\n )\n const layout = useColumnLayout({ columns: options.columns, layout: opening?.state.columns })\n\n // Genişlik değişimi hook'u yeniden çizmez (05 · Resize); \"edited\" için sürükleme bitince bir kez çizilir.\n useSyncExternalStore(layout.subscribeSizing, () => (layout.resizing() ? '' : JSON.stringify(layout.state().widths)))\n const resolve = (p: ViewPatch): ViewState => ({\n filters: p.filters ?? [],\n sort: p.sort ?? [],\n columns: layout.resolve(p.columns),\n })\n const views = useViews({\n tableId: options.id,\n system,\n adapter: ctx.viewsAdapter,\n locale: ctx.locale,\n defaultViewId: prefs.prefs.defaultViewId,\n setDefaultViewId: (id) => {\n // Temiz adres \"varsayılan\" demektir: varsayılan değişince ekrandaki görünüm adreste açıkça kalır.\n if (source.view === undefined) update({}, defaultView(views.all, id)?.id ?? null)\n prefs.set({ defaultViewId: id })\n },\n requested: source.view,\n query: { filters: source.filters, sort: source.sort },\n columns: layout.state(),\n resolve,\n apply: (view, s) => {\n layout.reset(s.columns)\n update({ view, filters: s.filters, sort: s.sort, page: 1 })\n },\n // `reset(undefined)` açılışın düzenine döner; sütunsuz görünüm tablonun varsayılanıdır.\n restoreColumns: (columns) => layout.reset(columns ?? {}),\n })\n const state: TableState = {\n view: views.activeId,\n search: source.search ?? '',\n filters: views.current.filters,\n sort: views.current.sort,\n page: source.page ?? 1,\n pageSize: source.pageSize ?? prefs.prefs.pageSize,\n }\n /**\n * `changed`: varsayılandan farklı alanlar. `defaultId` yalnızca bu değişimle birlikte değişen varsayılan görünüm için.\n * Sayfa boyutu değişimden önceki tercihle karşılaştırılır: tercihi kalıcı saklamayan uygulamada yalnızca adreste yaşar.\n */\n const update = (patch: Partial<TableState>, defaultId = views.defaultId) => {\n const next = { ...state, ...patch }\n setInner(next)\n const stored = resolve(views.all.find((v) => v.id === next.view)?.state ?? {})\n const changed: Partial<TableState> = {\n ...(next.view !== defaultId && { view: next.view }),\n ...(next.search && { search: next.search }),\n ...(!sameFilters(next.filters, stored.filters) && { filters: next.filters }),\n ...(!sameSort(next.sort, stored.sort) && { sort: next.sort }),\n ...(next.page > 1 && { page: next.page }),\n ...(next.pageSize !== prefs.prefs.pageSize && { pageSize: next.pageSize }),\n }\n options.onStateChange?.(next, changed)\n }\n\n // Sütun taşımak ya da gizlemek isteği değiştirmez (R4): alanlar yalnızca yeni görünen sütunla, ya da sorgu değişince\n // yeniden kurulur. Önceki isteğin alanları render'lar arasında saklanır.\n const visible = fieldsOf(options.columns, new Set(layout.columns.map((c) => c.id)), rowKey, options.fields)\n const identity = JSON.stringify([state.search, state.filters, state.sort, state.page, state.pageSize])\n const [sent, setSent] = useState({ identity, fields: visible })\n let fields = sent.fields\n if (sent.identity !== identity || visible.some((f) => !sent.fields.includes(f))) {\n fields = visible\n setSent({ identity, fields })\n }\n const request: TableQuery = {\n search: state.search,\n filters: state.filters,\n sort: state.sort,\n page: { number: state.page, size: state.pageSize },\n fields,\n }\n\n // Seçim sayfa kapsamlı (D19): sayfa, sayfa boyutu, filtre, arama ve sıralama değişince temizlenir; refresh'te kalır.\n const [selected, setSelected] = useState({ identity, ids: NONE })\n if (selected.identity !== identity) setSelected({ identity, ids: NONE })\n const selection = selected.identity === identity ? selected.ids : NONE\n\n const client = useListTable({\n columns: options.columns,\n rows: options.rows,\n rowId,\n locale: ctx.locale,\n search: state.search,\n filters: state.filters,\n sort: state.sort,\n page: state.page,\n pageSize: state.pageSize,\n })\n\n return {\n id: options.id,\n columns: options.columns,\n entityName: options.entityName ?? { one: options.id, other: options.id },\n /** Sunucu modunda `useQuery` anahtarına ve isteğe girer (R4). */\n request,\n state,\n /** İstemci modu: verilen tüm satırlar (filtre öncesi). Sunucu modunda undefined. */\n allRows: options.rows,\n /** İstemci modu: sayfadaki satırlar ve toplam. Sunucu modunda undefined. */\n rows: client.rows,\n total: client.total,\n density: options.density ?? prefs.prefs.density,\n /** Uygulama `density` verdiyse kullanıcının seçimi etkisiz; Display'de seçici gösterilmez. */\n densityFixed: options.density !== undefined,\n prefs,\n views,\n /** Görünümün kayıtlı (kısmi) durumu → tam durum (Duplicate dialog'unun özeti). */\n resolveView: (v: { state: ViewPatch }) => resolve(v.state),\n /** Display › Reset: tercihler ve sütun düzeni aktif görünümün kayıtlı haline döner; filtre ve sıralama kalır (04 §8). */\n resetDisplay: () => {\n prefs.reset()\n layout.reset(views.active?.state.columns ?? {})\n },\n /** Seçili satır anahtarları (05 §6). Satırların kendisi `DataTable`'ın `onSelectionChange`'inde. */\n selection,\n setSelection: (ids: Record<string, true>) => setSelected({ identity, ids }),\n clearSelection: () => setSelected({ identity, ids: NONE }),\n pageSizes: options.pageSizes ?? PAGE_SIZES,\n count: options.count,\n rowId,\n layout,\n /** Header tıklaması ve ⇧ ile ikincil sıralama; sayfa 1'e döner. */\n toggleSort: (column: string, multi: boolean) => update({ sort: toggleSort(state.sort, column, multi), page: 1 }),\n setSort: (column: string, dir: 'asc' | 'desc' | null) =>\n update({ sort: setSort(state.sort, column, dir), page: 1 }),\n /** Arama ve filtre değişince sayfa 1'e döner (D19). */\n setSearch: (search: string) => update({ search, page: 1 }),\n setFilters: (filters: FilterCondition[]) => update({ filters, page: 1 }),\n /** Filtre ve sıralama tek istekte (telefon Filters › Show results, ⋯ › Sort); sayfa 1. */\n setQuery: (patch: { filters?: FilterCondition[]; sort?: SortRule[] }) => update({ ...patch, page: 1 }),\n setPage: (page: number) => update({ page }),\n setPageSize: (pageSize: number) => {\n prefs.set({ pageSize })\n update({ pageSize, page: 1 })\n },\n }\n}\n\nexport type DataTableInstance<Row extends object> = ReturnType<typeof useDataTable<Row>>\n","// Dışa aktarma ve pano için hücre değeri (05 §3, 07 §7, 07 §13, D46). Saf fonksiyonlar; kütüphaneye bağlı değil.\nimport type { ColumnDef } from '../../types/columns'\nimport { decimalPlaces, formatCell, isEmptyValue, optionLabel, type FormatEnv } from '../cells/format'\nimport { toDate } from '../format'\n\n/**\n * Düz metin: görüntülenen biçim, ama geri yapıştırılabilir/içe aktarılabilir (07 §7). Para kodu ve \"—\" yok,\n * tarihler ISO, listeler `; ` ile. Pano ve CSV bunu kullanır.\n */\nexport function plainText<Row extends object>(def: ColumnDef<Row>, row: Row, value: unknown, env: FormatEnv): string {\n if (isEmptyValue(value)) return ''\n switch (def.type) {\n case 'currency':\n return env.fmt.decimal(Number(value), decimalPlaces(def))\n case 'date':\n case 'datetime':\n return value instanceof Date ? value.toISOString() : String(value)\n case 'multiselect':\n return (value as unknown[]).map((v) => optionLabel(def.options, v)).join('; ')\n case 'string':\n case 'text':\n case 'uppercase':\n case 'lowercase':\n case 'email':\n case 'url':\n case 'phone':\n case 'id':\n return String(value)\n default:\n return formatCell(def, row, value, env)\n }\n}\n\n/** write-excel-file hücresi (stil hariç). */\nexport interface XlsxCell {\n value: string | number | Date | null\n type?: StringConstructor | NumberConstructor | DateConstructor\n format?: string\n}\n\n/** Yerel ayarın gün/ay/yıl sırası Excel biçimi olarak: tr → `dd.mm.yyyy`, en → `mm/dd/yyyy`. Yerel ayar başına bir kez. */\nconst patterns = new Map<string, string>()\nexport function datePattern(locale: string): string {\n let p = patterns.get(locale)\n if (p === undefined) {\n const parts = new Intl.DateTimeFormat(locale, { year: 'numeric', month: '2-digit', day: '2-digit' }).formatToParts(\n new Date(2026, 9, 24),\n )\n const CODE: Partial<Record<Intl.DateTimeFormatPartTypes, string>> = { year: 'yyyy', month: 'mm', day: 'dd' }\n p = parts.map((x) => CODE[x.type] ?? x.value).join('')\n patterns.set(locale, p)\n }\n return p\n}\n\nconst decimals = (dp: number) => (dp > 0 ? `#,##0.${'0'.repeat(dp)}` : '#,##0')\n\n/**\n * Excel kütüphanesi Date'i UTC'den seri sayıya çevirir; hücrenin duvar saatini korumak için yerel bileşenler UTC'ye\n * yazılır (aksi halde UTC+3'te 24 Ekim gece yarısı 23 Ekim olur).\n */\nconst wallClock = (d: Date) =>\n new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds()))\n\n/**\n * Excel hücresi: sayılar ve tarihler tipli (Excel'de hesaplanabilir, biçimi Excel verir), seçenekler etiketiyle,\n * boolean Yes/No; geri içe aktarılınca aynı değere döner (07 §13).\n */\nexport function xlsxCell<Row extends object>(def: ColumnDef<Row>, row: Row, value: unknown, env: FormatEnv): XlsxCell {\n if (isEmptyValue(value)) return { value: null }\n switch (def.type) {\n case 'int':\n case 'star':\n return { value: Number(value), type: Number, format: '#,##0' }\n case 'float':\n return { value: Number(value), type: Number, format: decimals(decimalPlaces(def)) }\n case 'percentage':\n // Değer 20 = %20 (03); geri içe aktarılınca 20 kalsın diye bölünmez, işaret biçimde.\n return { value: Number(value), type: Number, format: `${decimals(decimalPlaces(def))}\"%\"` }\n case 'currency': {\n const code = typeof def.currency === 'string' ? ` \"${def.currency}\"` : ''\n return { value: Number(value), type: Number, format: decimals(decimalPlaces(def)) + code }\n }\n case 'date':\n case 'datetime': {\n const d = toDate(value as string | Date)\n if (Number.isNaN(d.getTime())) return { value: String(value), type: String }\n const day = datePattern(env.i18n.locale)\n return { value: wallClock(d), type: Date, format: def.type === 'date' ? day : `${day} hh:mm` }\n }\n default: {\n const text = plainText(def, row, value, env)\n return { value: text === '' ? null : text, type: String }\n }\n }\n}\n\n/** Seçenek listesi Excel'de açılır liste olur (seçenek sayfasından, D46): yalnızca tek değerli, sabit seçenekli sütunlar. */\nexport function listOptions<Row extends object>(def: ColumnDef<Row>, env: FormatEnv): string[] | null {\n if (def.type === 'select') return def.options.map((o) => o.label)\n if (def.type === 'boolean') return [env.i18n.t('common.yes'), env.i18n.t('common.no')]\n return null\n}\n","// Yerleşik dışa aktarma (D46): .xlsx `write-excel-file` ile (peer, ilk kullanımda yüklenir), .csv elle. Paket ekranda\n// görünen sütun ve satırları yazar; uygulama `onExport` verirse bu yol hiç çalışmaz.\nimport type { ColumnDef } from '../../types/columns'\nimport type { FormatEnv } from '../cells/format'\nimport { listOptions, plainText, xlsxCell } from './cells'\n\nexport interface ExportJob<Row extends object> {\n format: 'csv' | 'xlsx'\n columns: Array<ColumnDef<Row>>\n rows: Row[]\n /** Hücre değeri (accessor ya da satır yolu). */\n read: (row: Row, def: ColumnDef<Row>) => unknown\n env: FormatEnv\n /** Dosya ve sayfa adı (uzantısız). */\n name: string\n}\n\n// 02 · Dışa aktarma (Excel): dosya her zaman açık temada.\nconst HEADER = {\n fontWeight: 'bold',\n textColor: '#15171C',\n backgroundColor: '#E8EAEE',\n borderColor: '#B4B9C2',\n borderStyle: 'thin',\n alignVertical: 'center',\n} as const\n\n/** Yazı boyutu (pt), tüm hücreler; Excel varsayılanı 11. Genişlik hesabı buna göre ölçeklenir. */\nconst FONT_PT = 16\n\n/** Excel sayfa adı: en çok 31 karakter, `[]:*?/\\` yok. */\nexport const sheetName = (s: string) => s.replace(/[[\\]:*?/\\\\]/g, ' ').slice(0, 31) || 'Sheet1'\n\n/**\n * Sütun genişliği: başlık ve ilk 200 satırın en uzunu, 8–60 karakter. Excel genişliği 11 pt karakter cinsinden\n * ölçtüğü için yazı boyutu oranında büyütülür.\n */\nfunction widthOf(texts: string[]): number {\n let w = 0\n for (const t of texts) w = Math.max(w, ...t.split('\\n').map((l) => l.length))\n return Math.round(Math.min(60, Math.max(8, w + 2)) * (FONT_PT / 11))\n}\n\nexport function toCsv<Row extends object>(job: ExportJob<Row>): string {\n // Ondalık ayırıcı virgülse (tr, de …) Excel `;` bekler.\n const sep = job.env.fmt.decimal(1.5, 1).includes(',') ? ';' : ','\n const esc = (t: string) => (t.includes(sep) || /[\"\\r\\n]/.test(t) ? `\"${t.replace(/\"/g, '\"\"')}\"` : t)\n const lines = [\n job.columns.map((c) => esc(c.header)),\n ...job.rows.map((r) => job.columns.map((c) => esc(plainText(c, r, job.read(r, c), job.env)))),\n ]\n return lines.map((l) => l.join(sep)).join('\\r\\n')\n}\n\nexport async function toXlsx<Row extends object>(job: ExportJob<Row>): Promise<Blob> {\n const [{ default: writeXlsxFile }, util] = await Promise.all([\n import('write-excel-file/browser'),\n import('write-excel-file/utility'),\n ])\n const { columns, rows, env } = job\n const data = [\n columns.map((c) => ({ value: c.header, ...HEADER })),\n ...rows.map((r) => columns.map((c) => xlsxCell(c, r, job.read(r, c), env))),\n ]\n const sample = rows.slice(0, 200)\n const widths = columns.map((c) => ({\n width: widthOf([c.header, ...sample.map((r) => plainText(c, r, job.read(r, c), env))]),\n }))\n\n // Seçimli sütunlar: seçenekler ikinci sayfada birer sütun (görünür); içerik sayfasında hücre o listeden seçilir.\n const listed = columns.flatMap((c, i) => {\n const values = listOptions(c, env)\n return values ? [{ column: i + 1, header: c.header, values }] : []\n })\n const optionsName = sheetName(env.i18n.t('export.optionsSheet'))\n const ref = `'${optionsName.replace(/'/g, \"''\")}'`\n const validations = rows.length\n ? listed.map((l, j) => {\n const col = util.getCellAddress(0, j).replace(/\\d+$/, '')\n const range = util.getCellAddress(1, l.column - 1) + ':' + util.getCellAddress(rows.length, l.column - 1)\n return (\n `<dataValidation type=\"list\" allowBlank=\"1\" showErrorMessage=\"1\" sqref=\"${range}\">` +\n `<formula1>${util.sanitizeTextContent(`${ref}!$${col}$2:$${col}$${l.values.length + 1}`)}</formula1>` +\n `</dataValidation>`\n )\n })\n : []\n const optionRows = Math.max(0, ...listed.map((l) => l.values.length))\n const optionsData = [\n listed.map((l) => ({ value: l.header, ...HEADER })),\n ...Array.from({ length: optionRows }, (_, i) => listed.map((l) => ({ value: l.values[i] ?? null }))),\n ]\n\n const feature = {\n files: {\n transform: {\n 'xl/worksheets/sheet{id}.xml': {\n transform: (xml: string, _o: unknown, p: { sheetIndex: number }) => {\n if (p.sheetIndex !== 0 || !validations.length) return xml\n const order = util.getOrderOfSiblings('xl/worksheets/sheet{id}.xml', 'worksheet')!\n const markup = `<dataValidations count=\"${validations.length}\">${validations.join('')}</dataValidations>`\n return util.insertElementMarkupAccordingToOrderOfSiblings(xml, markup, order, 'worksheet')\n },\n },\n },\n },\n }\n\n const main = { sheet: sheetName(job.name), data, columns: widths, stickyRowsCount: 1 }\n const sheets = listed.length\n ? [\n main,\n {\n sheet: optionsName,\n data: optionsData,\n columns: listed.map((l) => ({ width: widthOf([l.header, ...l.values]) })),\n },\n ]\n : [main]\n // Kütüphanenin tipleri dar (stil birleşimi, feature imzası); yapı README'deki sözleşmeye uyar.\n return writeXlsxFile(sheets as never, { features: [feature], fontSize: FONT_PT } as never).toBlob()\n}\n\nfunction download(blob: Blob, fileName: string) {\n const a = document.createElement('a')\n a.href = URL.createObjectURL(blob)\n a.download = fileName\n a.click()\n setTimeout(() => URL.revokeObjectURL(a.href), 1000)\n}\n\nexport async function exportFile<Row extends object>(job: ExportJob<Row>): Promise<void> {\n const blob =\n job.format === 'csv'\n ? // BOM: Excel UTF-8'i (Türkçe karakterler) ancak böyle tanır.\n new Blob(['' + toCsv(job)], { type: 'text/csv;charset=utf-8' })\n : await toXlsx(job)\n download(blob, `${job.name}.${job.format}`)\n}\n","// `ajax` ve `user` hücreleri için etiket önbelleği: id'ler toplanır, bir mikro görevde tek `resolve` çağrısıyla çözülür (03).\n// Çözülene kadar ham değer görünür; çözülünce `version` artar, ızgara `useSyncExternalStore` ile yeniden çizer.\nimport type { OptionDef, RemoteOptions } from '../../types/columns'\n\nexport class RemoteLabels {\n private readonly cache = new Map<string, Map<string | number, OptionDef>>()\n private readonly pending = new Map<string, { remote: RemoteOptions; ids: Set<string | number> }>()\n private readonly inFlight = new Map<string, Set<string | number>>()\n private scheduled = false\n private readonly listeners = new Set<() => void>()\n /** Her çözümde artar. */\n version = 0\n\n readonly subscribe = (listener: () => void): (() => void) => {\n this.listeners.add(listener)\n return () => this.listeners.delete(listener)\n }\n readonly getVersion = (): number => this.version\n\n option(columnId: string, remote: RemoteOptions | undefined, id: string | number): OptionDef | undefined {\n const hit = this.cache.get(columnId)?.get(id)\n if (hit || !remote) return hit\n if (!this.inFlight.get(columnId)?.has(id)) {\n let p = this.pending.get(columnId)\n if (!p) this.pending.set(columnId, (p = { remote, ids: new Set() }))\n p.ids.add(id)\n this.schedule()\n }\n return undefined\n }\n\n label(columnId: string, remote: RemoteOptions | undefined, id: string | number): string {\n return this.option(columnId, remote, id)?.label ?? String(id)\n }\n\n /** Testler ve uygulama için: dış kaynaktan gelen etiketleri doğrudan yaz. */\n seed(columnId: string, options: OptionDef[]) {\n let m = this.cache.get(columnId)\n if (!m) this.cache.set(columnId, (m = new Map()))\n for (const o of options) m.set(o.value, o)\n this.version++\n for (const l of this.listeners) l()\n }\n\n private schedule() {\n if (this.scheduled) return\n this.scheduled = true\n queueMicrotask(() => {\n this.scheduled = false\n for (const [columnId, { remote, ids }] of this.pending) {\n this.pending.delete(columnId)\n const batch = [...ids]\n let flight = this.inFlight.get(columnId)\n if (!flight) this.inFlight.set(columnId, (flight = new Set()))\n batch.forEach((id) => flight.add(id))\n remote\n .resolve(batch, { signal: new AbortController().signal })\n .then((options) => this.seed(columnId, options))\n .catch(() => {\n /* ham değer görünür kalır; yeniden deneme uygulamanın (D18) */\n })\n .finally(() => batch.forEach((id) => flight.delete(id)))\n }\n })\n }\n}\n","// Column picker (04 §2, handoff 03 §3.2, T2-01): arama (odaklı) + Filtered (\"opens its chip\", D2) · Suggested (≤ 4) · All\n// columns. Base UI Combobox: yazı alanı popup'ın içinde, ↑↓ ile gezinme, Enter seçer.\nimport { Combobox } from '@base-ui/react/combobox'\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react'\nimport { useRef, useState, type ReactElement } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport { typeLabelKey } from '../cells/specs'\nimport { useDataTableContext } from '../provider'\nimport type { Chip } from './model'\nimport { TYPE_ICONS } from './type-icons'\n\nexport function ColumnPicker({\n columns,\n chips,\n trigger,\n open,\n onOpenChange,\n onPick,\n}: {\n /** Yalnızca filtrelenebilir sütunlar. */\n columns: ColumnDef[]\n chips: Chip[]\n trigger: ReactElement\n open?: boolean\n onOpenChange?: (open: boolean) => void\n onPick: (columnId: string) => void\n}) {\n const { i18n } = useDataTableContext()\n const [inner, setInner] = useState(false)\n const isOpen = open ?? inner\n const setOpen = (o: boolean) => {\n setInner(o)\n onOpenChange?.(o)\n }\n const [q, setQ] = useState('')\n // Seçimle kapanınca odak tetikleyiciye dönmez: açılan çip editörü alır (08 §2 · Popover). Esc'te döner.\n const picked = useRef(false)\n\n const needle = q.toLocaleLowerCase()\n const match = (c: ColumnDef) => !q || c.header.toLocaleLowerCase().includes(needle)\n const chipped = new Set(chips.map((c) => c.column))\n const filtered = chips\n .map((ch) => columns.find((c) => c.id === ch.column))\n .filter((c): c is ColumnDef => !!c && match(c))\n const suggested = columns.filter((c) => c.suggested && !chipped.has(c.id as string) && match(c)).slice(0, 4)\n const taken = new Set([...chipped, ...suggested.map((c) => c.id as string)])\n const rest = columns.filter((c) => !taken.has(c.id as string) && match(c))\n const typeHint = (c: ColumnDef) => i18n.t(typeLabelKey(c.type))\n const groups = [\n { key: 'filtered', label: i18n.t('picker.filtered'), items: filtered, hint: () => i18n.t('picker.filteredHint') },\n { key: 'suggested', label: i18n.t('picker.suggested'), items: suggested, hint: typeHint },\n { key: 'all', label: i18n.t('picker.allColumns'), items: rest, hint: typeHint },\n ].filter((g) => g.items.length)\n\n return (\n <Combobox.Root<string>\n open={isOpen}\n onOpenChange={(o) => {\n setOpen(o)\n if (!o) setQ('')\n }}\n value={null}\n onValueChange={(id) => {\n if (typeof id !== 'string') return\n picked.current = true\n setOpen(false)\n setQ('')\n onPick(id)\n }}\n inputValue={q}\n onInputValueChange={(v) => setQ(v)}\n filter={null}\n autoHighlight\n >\n <Combobox.Trigger render={trigger} />\n <Combobox.Portal>\n <Combobox.Positioner className=\"dt-positioner\" align=\"start\" sideOffset={4}>\n <Combobox.Popup\n className=\"dt-pop dt-picker\"\n finalFocus={() => {\n const keep = !picked.current\n picked.current = false\n return keep\n }}\n >\n <label className=\"dt-input has-icon dt-picker-search\">\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={14} aria-hidden=\"true\" />\n </span>\n <Combobox.Input placeholder={i18n.t('picker.search')} aria-label={i18n.t('picker.search')} />\n </label>\n <Combobox.List className=\"dt-picker-list\" aria-label={i18n.t('display.columns')}>\n {groups.map((g) => (\n <Combobox.Group key={g.key}>\n <Combobox.GroupLabel className=\"dt-pop-label\">{g.label}</Combobox.GroupLabel>\n {g.items.map((c) => {\n const Icon = TYPE_ICONS[c.type]\n return (\n <Combobox.Item key={c.id as string} value={c.id as string} className=\"dt-picker-item\">\n <Icon size={14} aria-hidden=\"true\" />\n <span className=\"dt-picker-name\">{c.header}</span>\n <span className=\"dt-picker-hint\">{g.hint(c)}</span>\n </Combobox.Item>\n )\n })}\n </Combobox.Group>\n ))}\n </Combobox.List>\n {groups.length === 0 && <div className=\"dt-options-empty\">{i18n.t('picker.noMatch')}</div>}\n </Combobox.Popup>\n </Combobox.Positioner>\n </Combobox.Portal>\n </Combobox.Root>\n )\n}\n","// Paketin menü dili (handoff 02-ortak): Base UI Menu + `dt-menu` sınıfları. Vue'daki reka DropdownMenu'nün karşılığı;\n// Base UI de vurgulu ve pasif öğeyi `data-highlighted` / `data-disabled` ile işaretler, ui.css aynen geçerli.\nimport { Menu } from '@base-ui/react/menu'\nimport type { ReactElement, ReactNode } from 'react'\n\nexport function DtMenu({\n trigger,\n children,\n open,\n onOpenChange,\n className,\n finalFocus,\n align = 'end',\n side,\n offset,\n}: {\n /** Tetikleyici öğe (düğme); Base UI ona aria ve olay işleyicilerini ekler. */\n trigger: ReactElement\n children: ReactNode\n open?: boolean\n onOpenChange?: (open: boolean) => void\n className?: string\n /** false: kapanınca odak tetikleyiciye dönmez (ör. menü bir editör açtıysa); fonksiyon kapanışta karar verir. */\n finalFocus?: boolean | (() => boolean)\n align?: 'start' | 'end'\n /** Görünüm satırının ⋯ menüsü sağa, yüzer bulk bar'ın ⋯ menüsü yukarı açılır. */\n side?: 'right' | 'top'\n /** Varsayılan: sağa 8, start 6, end 4. */\n offset?: number\n}) {\n return (\n <Menu.Root open={open} onOpenChange={onOpenChange ? (o) => onOpenChange(o) : undefined}>\n <Menu.Trigger render={trigger} />\n <Menu.Portal>\n <Menu.Positioner\n className=\"dt-positioner\"\n side={side}\n align={align}\n sideOffset={offset ?? (side === 'right' ? 8 : align === 'start' ? 6 : 4)}\n >\n <Menu.Popup className={className ? `dt-menu ${className}` : 'dt-menu'} finalFocus={finalFocus}>\n {children}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n )\n}\n\nexport function DtMenuItem({\n children,\n onSelect,\n disabled,\n destructive,\n selected,\n twoLine,\n}: {\n children: ReactNode\n onSelect: () => void\n disabled?: boolean\n destructive?: boolean\n selected?: boolean\n /** Etiket altında açıklama / gerekçe satırı (D36). */\n twoLine?: boolean\n}) {\n const cls = ['dt-menu-item', destructive && 'is-destructive', selected && 'is-selected', twoLine && 'is-two-line']\n return (\n <Menu.Item className={cls.filter(Boolean).join(' ')} disabled={disabled} onClick={onSelect}>\n {children}\n </Menu.Item>\n )\n}\n\nexport const DtMenuSeparator = () => <Menu.Separator className=\"dt-menu-sep\" />\n\nexport const DtMenuLabel = ({ children }: { children: ReactNode }) => (\n <Menu.Group>\n <Menu.GroupLabel className=\"dt-menu-label\">{children}</Menu.GroupLabel>\n </Menu.Group>\n)\n","// Filtre çipi (04 §3, handoff 02 §5): `[ikon] Alan · operatör · değer │ ×`, iki tıklama hedefi. Gövde değer popover'ını\n// açar (üstte operatör menüsü, tipe göre editör, altta durum + Clear); `boolean`'da popover yok, tıklama Yes ↔ No.\nimport { Popover } from '@base-ui/react/popover'\nimport { CaretDownIcon, CheckIcon, XIcon } from '@phosphor-icons/react'\nimport { Fragment, useRef } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport { ME, type FilterOp } from '../../types/query'\nimport { Avatar } from '../cells/render-cell'\nimport type { RemoteLabels } from '../cells/remote-labels'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\nimport { changeOperator, editorOf, isComplete, opLabel, operatorsOf, shapeOf, type Chip, type Summary } from './model'\nimport { TYPE_ICONS } from './type-icons'\nimport { ValueEditor } from './value-editor'\n\nexport function FilterChip({\n chip,\n column,\n editing,\n summary,\n rows,\n labels,\n currencies,\n onChange,\n onEditing,\n onRemove,\n onOpen,\n}: {\n chip: Chip\n column: ColumnDef\n editing: boolean\n summary: Summary\n rows: object[]\n labels: RemoteLabels\n currencies: string[]\n onChange: (chip: Chip) => void\n onEditing: (open: boolean) => void\n onRemove: () => void\n /** Telefon çipi (handoff 04 §3): operatör ve × yok; tamamı tek düğme, Filters alt sayfasını açar. */\n onOpen?: () => void\n}) {\n const { i18n } = useDataTableContext()\n const type = column.type\n const Icon = TYPE_ICONS[type]\n const shape = shapeOf(chip.op, type)\n const complete = isComplete(chip, type)\n const count = Array.isArray(chip.value) ? chip.value.length : 1\n const opText = opLabel(i18n, chip.op, type, count)\n const tip = summary.full && summary.full !== summary.text ? summary.full : undefined\n const aria = complete\n ? i18n.t('filter.valueAria', { column: column.header, op: opText, value: summary.text })\n : i18n.t('filter.chooseValueAria', { column: column.header, op: opText, value: i18n.t('filter.selectValue') })\n const editor = editorOf(chip.op, type)\n const status =\n editor === 'options' && Array.isArray(chip.value) && chip.value.length\n ? i18n.t('option.selected', { count: chip.value.length })\n : shape === 'range'\n ? i18n.t('number.boundsIncluded')\n : ''\n\n const update = (patch: Partial<Chip>) => onChange({ ...chip, ...patch })\n const setOp = (op: FilterOp) => onChange(changeOperator(chip, op, type))\n const close = () => onEditing(false)\n // Açılınca odak editörün ilk alanına (08 §2 · Popover); Base UI varsayılanı üstteki operatör düğmesini seçerdi.\n const body = useRef<HTMLDivElement>(null)\n // Kapanınca odak çip gövdesine (Esc, Enter): editör seçiciden açıldıysa \"önceki odak\" artık yok. Fareyle dışarı\n // tıklanınca odak tıklanan yerde kalır.\n const trigger = useRef<HTMLButtonElement>(null)\n\n const head = (\n <>\n <Icon size={14} className=\"dt-chip-icon\" aria-hidden=\"true\" />\n {/* Boşluklar görünmez (flex) ama metni \"Status is Draft\" yapar: erişilebilir ad görünen metni içermeli (WCAG 2.5.3). */}\n <span className=\"dt-chip-field\">{column.header}</span> <span className=\"dt-chip-op\">{opText}</span>{' '}\n </>\n )\n const people = complete ? (summary.people?.slice(0, 3) ?? []) : []\n\n const content = editor && (\n <ValueEditor\n chip={chip}\n column={column}\n rows={rows}\n labels={labels}\n currencies={currencies}\n onChange={onChange}\n onDone={close}\n />\n )\n\n const cls = ['dt-chip', editing && 'is-editing', !complete && 'is-incomplete', onOpen && 'is-phone']\n return (\n <span className={cls.filter(Boolean).join(' ')} data-col={chip.column}>\n {onOpen ? (\n <button\n type=\"button\"\n className=\"dt-chip-body\"\n aria-label={i18n.t('mobile.chipAria', { summary: `${column.header} ${opText} ${summary.text}`.trim() })}\n onClick={onOpen}\n >\n <Icon size={14} className=\"dt-chip-icon\" aria-hidden=\"true\" />\n <span className=\"dt-chip-field\">{column.header}</span> <span className=\"dt-chip-op\">{opText}</span>{' '}\n <span className=\"dt-chip-value\">{summary.text}</span>\n </button>\n ) : type === 'boolean' ? (\n <button\n type=\"button\"\n className=\"dt-chip-body\"\n aria-label={aria}\n onClick={() => update({ value: chip.value !== true })}\n >\n {head}\n <span className=\"dt-chip-value\">{summary.text}</span>\n </button>\n ) : (\n <Popover.Root open={editing} onOpenChange={(o) => onEditing(o)}>\n <Popover.Trigger ref={trigger} className=\"dt-chip-body\" aria-label={aria}>\n {head}\n {shape !== 'none' && (\n <span className={complete ? 'dt-chip-value' : 'dt-chip-value is-placeholder'} data-dt-tip={tip}>\n {people.length > 0 && (\n <span className=\"dt-chip-avatars\">\n {people.map((p) => (\n <Avatar key={String(p.value)} user={p} />\n ))}\n </span>\n )}\n {complete ? summary.text : i18n.t('filter.selectValue')}\n </span>\n )}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner className=\"dt-positioner\" align=\"start\" sideOffset={4}>\n <Popover.Popup\n className={`dt-pop dt-chip-pop is-${editor ?? 'none'}`}\n initialFocus={() => body.current?.querySelector<HTMLElement>('input, textarea') ?? true}\n finalFocus={(type) =>\n type === 'mouse' || type === 'touch' || type === 'pen' ? false : trigger.current\n }\n >\n <div className=\"dt-chip-pop-head\">\n <span className=\"dt-chip-pop-field\">{column.header}</span>\n <DtMenu\n align=\"start\"\n className=\"dt-op-menu\"\n trigger={\n <button type=\"button\" className=\"dt-op-btn\">\n {opText}\n <CaretDownIcon size={12} aria-hidden=\"true\" />\n </button>\n }\n >\n {type === 'user' && (\n // \"is me\" operatör değil, kısayol: `in ['@me']` kurar (03).\n <DtMenuItem onSelect={() => onChange({ ...chip, op: 'in', value: [ME] })}>\n {i18n.t('op.isMe')}\n </DtMenuItem>\n )}\n {operatorsOf(column).map((op) => (\n <Fragment key={op}>\n {op === 'is_empty' && <DtMenuSeparator />}\n <DtMenuItem selected={op === chip.op} onSelect={() => setOp(op)}>\n {opLabel(i18n, op, type, count)}\n {op === chip.op && <CheckIcon size={14} className=\"dt-pop-end\" aria-hidden=\"true\" />}\n </DtMenuItem>\n </Fragment>\n ))}\n </DtMenu>\n </div>\n {content && (\n <div ref={body} className=\"dt-chip-pop-body\">\n {content}\n </div>\n )}\n <div className=\"dt-pop-foot\">\n <span>{status}</span>\n <button\n type=\"button\"\n className=\"dt-pop-action\"\n disabled={chip.value === undefined}\n onClick={() => {\n // Devre dışı kalacak düğmeden odak body'ye düşmesin: sıradaki adım yeni değer.\n body.current?.querySelector<HTMLElement>('input, textarea, button')?.focus()\n update({ value: undefined })\n }}\n >\n {i18n.t('common.clear')}\n </button>\n </div>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n )}\n {!onOpen && (\n <button\n type=\"button\"\n className=\"dt-chip-remove\"\n aria-label={i18n.t('filter.removeAria', { column: column.header })}\n onClick={onRemove}\n >\n <XIcon size={12} aria-hidden=\"true\" />\n </button>\n )}\n </span>\n )\n}\n","// Filtre satırı (04 §4, D29): tek satır, çipler → Add filter; sağda Clear all sabit. Sığmayan çipler yatay kayar, sağ\n// kenarda solma; düzenlenen / yeni eklenen çip görünür alana kaydırılır. Add filter kayan alanın dışında: çipler sığarken\n// son çipin yanında, taşınca sağda. Sarma ve `+N more` yok (D2 çip sayısını sınırlar).\nimport { useEffect, useLayoutEffect, useRef, useState, type ReactNode } from 'react'\nimport type { ColumnDef } from '../../types/columns'\nimport type { RemoteLabels } from '../cells/remote-labels'\nimport { useDataTableContext } from '../provider'\nimport { FilterChip } from './filter-chip'\nimport type { Chip, Summary } from './model'\n\nexport function FilterBar({\n chips,\n defOf,\n editing,\n rows,\n labels,\n summaryOf,\n currenciesOf,\n add,\n onChange,\n onRemove,\n onEditing,\n onClearAll,\n onOpen,\n}: {\n chips: Chip[]\n defOf: (column: string) => ColumnDef\n editing: string | null\n rows: object[]\n labels: RemoteLabels\n summaryOf: (chip: Chip) => Summary\n currenciesOf: (def: ColumnDef) => string[]\n /** Add filter düğmesi (column picker tetikleyicisi). */\n add: ReactNode\n onChange: (chip: Chip) => void\n onRemove: (column: string) => void\n onEditing: (column: string | null) => void\n onClearAll: () => void\n /** Telefon (handoff 04 §3): çipler Filters alt sayfasını açar; Add filter ve Clear all orada. */\n onOpen?: (column: string) => void\n}) {\n const { i18n } = useDataTableContext()\n const row = useRef<HTMLDivElement>(null)\n /** Sütun id'sinde nokta olabilir: seçici yerine dataset karşılaştırması. */\n const chipEl = (column: string | undefined) =>\n column\n ? [...(row.current?.querySelectorAll<HTMLElement>('.dt-chip') ?? [])].find((el) => el.dataset.col === column)\n : undefined\n\n const [scrolledEnd, setScrolledEnd] = useState(false)\n const onScroll = () => {\n const el = row.current\n if (el) setScrolledEnd(el.scrollLeft + el.clientWidth < el.scrollWidth - 1)\n }\n useEffect(() => {\n const el = row.current\n if (!el || typeof ResizeObserver === 'undefined') return\n const ro = new ResizeObserver(onScroll)\n ro.observe(el)\n return () => ro.disconnect()\n }, [])\n const target = editing ?? chips.at(-1)?.column\n useLayoutEffect(() => {\n onScroll()\n chipEl(target)?.scrollIntoView?.({ inline: 'nearest', block: 'nearest' })\n }, [chips.length, target])\n\n // × sonrası odak sonraki çipe, yoksa Add filter'a (04 §3): çip DOM'dan çıktıktan sonra.\n const focusNext = useRef<string | null | undefined>(undefined)\n useEffect(() => {\n if (focusNext.current === undefined) return\n const next = focusNext.current\n focusNext.current = undefined\n const el =\n chipEl(next ?? undefined)?.querySelector<HTMLElement>('.dt-chip-body') ??\n row.current?.parentElement?.querySelector<HTMLElement>('.dt-filter-add')\n el?.focus()\n })\n const remove = (column: string) => {\n const i = chips.findIndex((c) => c.column === column)\n focusNext.current = chips[i + 1]?.column ?? null\n onRemove(column)\n }\n\n return (\n <div className={scrolledEnd ? 'dt-filter-row is-scrolled-end' : 'dt-filter-row'}>\n <div ref={row} className=\"dt-chips\" onScroll={onScroll}>\n {chips.map((c) => (\n <FilterChip\n key={c.column}\n chip={c}\n column={defOf(c.column)}\n editing={editing === c.column}\n summary={summaryOf(c)}\n rows={rows}\n labels={labels}\n currencies={currenciesOf(defOf(c.column))}\n onChange={onChange}\n onEditing={(open) => onEditing(open ? c.column : null)}\n onRemove={() => remove(c.column)}\n onOpen={onOpen && (() => onOpen(c.column))}\n />\n ))}\n </div>\n {!onOpen && (\n <>\n {add}\n <button type=\"button\" className=\"dt-btn dt-btn-ghost dt-filter-clear\" onClick={onClearAll}>\n {i18n.t('filter.clearAll')}\n </button>\n </>\n )}\n </div>\n )\n}\n","// Tek guard (05 §7, 07 §5, brief §5.4): hücredeki etkileşimli öğeye tıklama yalnızca o öğeyi çalıştırır;\n// satır tıklaması, seçim ve düzenleme başlatma tetiklenmez. Geliştirici stopPropagation yazmaz.\n\nexport const INTERACTIVE_SELECTOR =\n 'a[href], button, input, select, textarea, summary, label, [role=\"button\"], [role=\"menuitem\"], [role=\"checkbox\"], [role=\"combobox\"], [role=\"switch\"], [contenteditable=\"true\"]'\n\n/** `target`, `within` içindeki etkileşimli bir öğenin içinde mi? */\nexport function isInteractive(target: EventTarget | null, within: Element): boolean {\n if (!(target instanceof Element)) return false\n const hit = target.closest(INTERACTIVE_SELECTOR)\n return hit !== null && hit !== within && within.contains(hit)\n}\n\n/** Odak alınca kendi ok tuşlarını kullanan öğeler: ızgara bunlara karışmaz. */\nexport const isTextInput = (el: Element | null): boolean =>\n el instanceof HTMLInputElement ||\n el instanceof HTMLTextAreaElement ||\n el instanceof HTMLSelectElement ||\n el?.getAttribute('role') === 'combobox' ||\n (el as HTMLElement | null)?.isContentEditable === true\n\n/** Metin seçimiyle biten tıklama satır tıklaması sayılmaz. */\nexport const hasTextSelection = (): boolean => (globalThis.getSelection?.()?.toString().length ?? 0) > 0\n\n/** Satır tıklaması sayılmayan durumlar: etkileşimli hedef, metin seçimi, sürükleme, değiştirici tuş, sol dışı düğme. */\nexport function isPlainRowClick(\n event: MouseEvent,\n rowEl: Element,\n downPoint: { x: number; y: number } | null,\n): boolean {\n if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return false\n if (isInteractive(event.target, rowEl)) return false\n if (hasTextSelection()) return false\n if (downPoint && Math.hypot(event.clientX - downPoint.x, event.clientY - downPoint.y) > 4) return false\n return true\n}\n","// Platforma göre kısayol gösterimi (08 §3): macOS `⌘ ⌥ ⇧`, diğerleri `Ctrl Alt Shift`.\nexport const mac = typeof navigator !== 'undefined' && /Mac|iPhone|iPad/.test(navigator.platform)\nexport const MOVE_KBD = { left: mac ? '⌥⇧←' : 'Alt+Shift+←', right: mac ? '⌥⇧→' : 'Alt+Shift+→' }\nexport const SAVE_KBD = mac ? '⌘S' : 'Ctrl+S'\nexport const UNDO_KBD = mac ? '⌘Z' : 'Ctrl+Z'\nexport const REDO_KBD = mac ? '⌘⇧Z' : 'Ctrl+Y'\nexport const FIND_KBD = mac ? '⌘F' : 'Ctrl+F'\nexport const FILL_KBD = mac ? '⌘D' : 'Ctrl+D'\nexport const REMOVE_KBD = mac ? '⌘−' : 'Ctrl+−'\n","import type { CSSProperties } from 'react'\nimport type { LayoutColumn } from '../columns/use-column-layout'\n\n/** Sabit hücrenin sticky ofseti: değer kökteki `--dt-off-…` değişkeninde, resize'da React dışında yazılır. */\nexport const pinStyle = <Row extends object>(col: LayoutColumn<Row>): CSSProperties | undefined =>\n col.pinned === 'start'\n ? { left: `var(${col.offsetVar})` }\n : col.pinned === 'end'\n ? { right: `var(${col.offsetVar})` }\n : undefined\n\nexport const pinClasses = <Row extends object>(col: LayoutColumn<Row>): string[] =>\n [\n col.pinned === 'start' && 'is-pinned-start',\n col.pinned === 'end' && 'is-pinned-end',\n col.pinEdge && 'is-pin-edge',\n ].filter((c): c is string => !!c)\n\n/** Orta ile sağ sabit sütunlar arasındaki `auto` dolgu track'i (use-column-layout `cols()`) için bölme noktası. */\nexport const fillIndex = <Row extends object>(columns: Array<LayoutColumn<Row>>): number => {\n const at = columns.findIndex((c) => c.pinned === 'end')\n return at < 0 ? columns.length : at\n}\n","// Header hücresi (05 §4 · Header, T4): etiket düğmesi, birim, sıralama oku, raptiye, ⋯ sütun menüsü, resize tutamacı.\n// Klavye (08 §3): ↵/Space sırala, ⇧F10 menü, ⇧←/→ ±16 px, ⌥⇧←/→ taşı. Filtrelenen sütunda huni çipi açar.\nimport { ArrowUpIcon, DotsThreeIcon, FunnelIcon, PushPinIcon } from '@phosphor-icons/react'\nimport {\n useId,\n useRef,\n useState,\n useSyncExternalStore,\n type KeyboardEvent,\n type MouseEvent,\n type TouchEvent,\n} from 'react'\nimport { alignOf, isNumericType, typeLabelKey } from '../cells/specs'\nimport type { ColumnLayoutApi, LayoutColumn } from '../columns/use-column-layout'\nimport { MOVE_KBD } from '../interaction/kbd'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuLabel, DtMenuSeparator } from '../ui/menu'\nimport { pinStyle } from './pin'\n\nexport interface HeaderSort {\n dir: 'asc' | 'desc'\n /** Çoklu sıralamada öncelik (1 tabanlı); tek sıralamada null. */\n index: number | null\n}\n\nexport function HeaderCell<Row extends object>({\n column,\n layout,\n onMoved,\n sort,\n onSort,\n onSortSet,\n filtered,\n onFilter,\n onColumns,\n}: {\n column: LayoutColumn<Row>\n layout: ColumnLayoutApi<Row>\n /** Taşınan başlığın odağı korunur: ızgara yeni yerindeki etiketi odaklar. */\n onMoved: (id: string) => void\n sort?: HeaderSort\n /** Verilmezse sütun sıralanamaz. */\n onSort?: (additive: boolean) => void\n onSortSet?: (dir: 'asc' | 'desc' | null) => void\n filtered?: boolean\n /** Verilmezse sütun filtrelenemez. Çipi açar, yoksa oluşturur. */\n onFilter?: () => void\n /** Columns dialog'unu açar; odak dönsün diye ⋯ düğmesini verir. Verilmezse menüde yok. */\n onColumns?: (from: HTMLElement | null) => void\n}) {\n const { i18n } = useDataTableContext()\n const def = column.def\n const numeric = isNumericType(def.type)\n const unit = typeof def.unit === 'string' ? def.unit : undefined\n // D33: açıklama tooltip'te ikinci satır, ekran okuyucuya aria-describedby; düğme metnine girmez.\n const descId = useId()\n const tip = def.description ? `${def.header}\\n${def.description}` : def.header\n const [menuOpen, setMenuOpen] = useState(false)\n // Filter by this column… ile kapanınca odak ⋯'ya dönmez: açılan çip editörü alır (08 §2 · Popover).\n const toFilter = useRef(false)\n const menuButton = useRef<HTMLButtonElement>(null)\n // Yalnızca sürüklenen sütunun başlığı yeniden çizilir; diğerleri sabit -1 okur.\n const resizing = useSyncExternalStore(layout.subscribeSizing, () => {\n const r = layout.resizing()\n return r?.id === column.id ? r.size : -1\n })\n\n const move = (delta: -1 | 1) => {\n layout.move(column.id, delta)\n onMoved(column.id)\n }\n\n const onResizeStart = (e: MouseEvent | TouchEvent) => {\n // Sürükleme başlarken çizilen genişlik modele yazılır: minmax sütun ilk harekette zıplamasın.\n const cell = e.currentTarget.parentElement!\n layout.setWidth(column.id, cell.getBoundingClientRect().width)\n column.resizeHandler(e)\n }\n\n const onKeyDown = (e: KeyboardEvent) => {\n const k = e.key\n if (k === 'Enter' || k === ' ') {\n if (onSort) {\n e.preventDefault()\n onSort(e.shiftKey)\n }\n return\n }\n if ((k === 'F10' && e.shiftKey) || k === 'ContextMenu') {\n e.preventDefault()\n setMenuOpen(true)\n return\n }\n if ((k === 'ArrowLeft' || k === 'ArrowRight') && e.shiftKey) {\n e.preventDefault()\n const left = k === 'ArrowLeft'\n if (e.altKey) move(left ? -1 : 1)\n else layout.setWidth(column.id, layout.widthOf(column.id) + (left ? -16 : 16))\n }\n }\n\n // ARIA tek sıralama sütunu tanır: çoklu sıralamada yalnızca birincil (04 §6).\n const primarySort = sort && (sort.index ?? 1) === 1 ? sort.dir : undefined\n const ariaSort = primarySort === 'asc' ? 'ascending' : primarySort === 'desc' ? 'descending' : undefined\n const arrow = <ArrowUpIcon size={12} className={sort?.dir === 'desc' ? 'is-desc' : undefined} />\n const index = sort?.index && <span className=\"dt-head-sort-index\">{sort.index}</span>\n const sortMark = (\n <span className=\"dt-head-sort\" aria-hidden=\"true\">\n {numeric ? (\n <>\n {index}\n {arrow}\n </>\n ) : (\n <>\n {arrow}\n {index}\n </>\n )}\n </span>\n )\n\n const cls = [\n 'dt-head-cell',\n `is-${alignOf(def)}`,\n numeric && 'is-numeric',\n sort && 'is-sorted',\n column.pinned === 'start' && 'is-pinned-start',\n column.pinned === 'end' && 'is-pinned-end',\n column.pinEdge && 'is-pin-edge',\n resizing >= 0 && 'is-resizing',\n menuOpen && 'is-menu-open',\n ]\n\n return (\n <div\n className={cls.filter(Boolean).join(' ')}\n style={pinStyle(column)}\n role=\"columnheader\"\n aria-sort={ariaSort}\n data-col={column.id}\n onContextMenu={(e) => {\n e.preventDefault()\n setMenuOpen(true)\n }}\n >\n {filtered && onFilter && (\n <button\n type=\"button\"\n className=\"dt-head-icon dt-head-filtered\"\n aria-label={i18n.t('header.filterBy')}\n onClick={onFilter}\n >\n <FunnelIcon size={14} weight=\"fill\" aria-hidden=\"true\" />\n </button>\n )}\n <button\n type=\"button\"\n className={onSort ? 'dt-head-label' : 'dt-head-label is-static'}\n aria-disabled={onSort ? undefined : 'true'}\n data-dt-tip={tip}\n aria-describedby={def.description ? descId : undefined}\n onClick={(e) => onSort?.(e.shiftKey)}\n onKeyDown={onKeyDown}\n >\n {/* Sayısal sütunda ok metnin solunda: sağa yaslı başlıkta metin kenara oturur. */}\n {sort && numeric && sortMark}\n <span className=\"dt-head-text\">{(layout.phone && def.headerShort) || def.header}</span>\n {unit && <span className=\"dt-head-unit\">{unit}</span>}\n {sort && !numeric && sortMark}\n {column.pinned && <PushPinIcon size={12} className=\"dt-head-pin\" aria-hidden=\"true\" />}\n </button>\n {def.description && (\n <span id={descId} className=\"dt-sr-only\">\n {def.description}\n </span>\n )}\n <DtMenu\n open={menuOpen}\n onOpenChange={setMenuOpen}\n className=\"dt-col-menu\"\n finalFocus={() => {\n const keep = !toFilter.current\n toFilter.current = false\n return keep\n }}\n trigger={\n <button\n ref={menuButton}\n type=\"button\"\n className=\"dt-head-icon dt-head-menu\"\n aria-label={i18n.t('header.optionsAria', { column: def.header })}\n >\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n <DtMenuLabel>{i18n.t(typeLabelKey(def.type))}</DtMenuLabel>\n {onSortSet && (\n <>\n <DtMenuItem onSelect={() => onSortSet('asc')}>{i18n.t('header.sortAsc')}</DtMenuItem>\n <DtMenuItem onSelect={() => onSortSet('desc')}>{i18n.t('header.sortDesc')}</DtMenuItem>\n <DtMenuItem disabled={!sort} onSelect={() => onSortSet(null)}>\n {i18n.t('header.clearSort')}\n </DtMenuItem>\n <DtMenuSeparator />\n </>\n )}\n {onFilter && (\n <>\n <DtMenuItem\n onSelect={() => {\n toFilter.current = true\n onFilter()\n }}\n >\n {i18n.t('header.filterBy')}\n </DtMenuItem>\n <DtMenuSeparator />\n </>\n )}\n <DtMenuItem onSelect={() => move(-1)}>\n {i18n.t('header.moveLeft')}\n <kbd className=\"dt-kbd\">{MOVE_KBD.left}</kbd>\n </DtMenuItem>\n <DtMenuItem onSelect={() => move(1)}>\n {i18n.t('header.moveRight')}\n <kbd className=\"dt-kbd\">{MOVE_KBD.right}</kbd>\n </DtMenuItem>\n <DtMenuSeparator />\n <DtMenuItem disabled={!!column.pinned || !column.canHide} onSelect={() => layout.setVisible(column.id, false)}>\n {i18n.t('header.hide')}\n </DtMenuItem>\n {onColumns && (\n <DtMenuItem onSelect={() => onColumns(menuButton.current)}>{i18n.t('header.columnSettings')}</DtMenuItem>\n )}\n </DtMenu>\n <span className=\"dt-head-sep\" aria-hidden=\"true\" />\n <span className=\"dt-resize\" aria-hidden=\"true\" onMouseDown={onResizeStart} onTouchStart={onResizeStart}>\n {resizing >= 0 && <span className=\"dt-resize-badge\">{Math.round(resizing)} px</span>}\n </span>\n </div>\n )\n}\n","import type { RowAction } from '../../types/list'\n\n/** Satırda inline çizilen aksiyonlar (D36): `inline` + `icon` + `when(row)`; ilk 2. Izgara genişlik için, menü düşmek için kullanır. */\nexport const inlineActionsOf = <Row extends object>(actions: Array<RowAction<Row>>, row: Row): Array<RowAction<Row>> =>\n actions.filter((a) => a.inline && a.icon && (!a.when || a.when(row))).slice(0, 2)\n","// Hücre aksiyonları overlay'i (03 · actions, T7): sağ kenarda ≤ 2 düğme, fazlası ⋯ menüsünde; metin yerleşimi değişmez.\nimport { DotsThreeIcon } from '@phosphor-icons/react'\nimport type { CellAction } from '../../types/columns'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem } from '../ui/menu'\n\ntype Item<Row> = Omit<CellAction<Row>, 'reveal' | 'menu'> & { menu?: Array<Omit<CellAction<Row>, 'reveal' | 'menu'>> }\n\nexport function CellActions<Row extends object>({ actions, row }: { actions: Array<CellAction<Row>>; row: Row }) {\n const { i18n } = useDataTableContext()\n const visible = actions.filter((a) => a.when?.(row) ?? true)\n if (!visible.length) return null\n const always = visible.some((a) => a.reveal === 'always')\n // 2'den çoksa: ilk aksiyon + ⋯ (kalanlar menüde). Tek aksiyonun kendi `menu`'sü ⋯ olarak çizilir.\n const buttons: Array<Item<Row>> = visible.length > 2 ? visible.slice(0, 1) : visible\n const overflow: Array<Item<Row>> = visible.length > 2 ? visible.slice(1) : []\n\n const disabledOf = (a: Item<Row>): string | boolean => a.disabled?.(row) ?? false\n const tipOf = (a: Item<Row>): string => {\n const d = disabledOf(a)\n return typeof d === 'string' ? `${a.label} — ${d}` : a.label\n }\n const run = (a: Item<Row>) => {\n if (!disabledOf(a)) void a.run?.(row)\n }\n const menuItems = (items: Array<Item<Row>>) =>\n items.map((m) => {\n const Icon = m.icon\n return (\n <DtMenuItem key={m.id} destructive={m.destructive} disabled={!!disabledOf(m)} onSelect={() => run(m)}>\n <Icon size={16} aria-hidden=\"true\" />\n {m.label}\n </DtMenuItem>\n )\n })\n\n return (\n <span className={always ? 'dt-cell-actions is-always' : 'dt-cell-actions'}>\n {buttons.map((a) => {\n const Icon = a.icon\n const cls = a.destructive ? 'dt-cell-action is-destructive' : 'dt-cell-action'\n if (a.menu?.length)\n return (\n <DtMenu\n key={a.id}\n className=\"dt-menu-cell\"\n trigger={\n <button type=\"button\" className={cls} aria-label={a.label} data-dt-tip={a.label}>\n <Icon size={14} aria-hidden=\"true\" />\n </button>\n }\n >\n {menuItems(a.menu)}\n </DtMenu>\n )\n return (\n <button\n key={a.id}\n type=\"button\"\n className={cls}\n aria-label={a.label}\n aria-disabled={disabledOf(a) ? 'true' : undefined}\n data-dt-tip={tipOf(a)}\n onClick={() => run(a)}\n >\n <Icon size={14} aria-hidden=\"true\" />\n </button>\n )\n })}\n {overflow.length > 0 && (\n <DtMenu\n className=\"dt-menu-cell\"\n trigger={\n <button\n type=\"button\"\n className=\"dt-cell-action\"\n aria-label={i18n.t('common.more')}\n data-dt-tip={i18n.t('common.more')}\n >\n <DotsThreeIcon size={14} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {menuItems(overflow)}\n </DtMenu>\n )}\n </span>\n )\n}\n","// Satır menüsü (05 §4, handoff 03 §8, T6-03; 268 px): Open ↵ (gerçek <a href>) · Open in new tab · ─ ·\n// uygulamanın `rowActions`'ı (pasif olan gerekçesiyle iki satır; yıkıcı en altta, kırmızı). `run` beklenmez (D20).\nimport { Menu } from '@base-ui/react/menu'\nimport { DotsThreeIcon } from '@phosphor-icons/react'\nimport { Fragment, type MouseEvent } from 'react'\nimport type { RowAction } from '../../types/list'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\nimport { inlineActionsOf } from './inline-actions'\n\nexport function RowMenu<Row extends object>({\n row,\n label,\n href,\n actions,\n onOpen,\n}: {\n row: Row\n /** Birincil hücre metni (aria etiketleri). */\n label: string\n href?: string\n actions: Array<RowAction<Row>>\n onOpen: (event: MouseEvent) => void\n}) {\n const { i18n } = useDataTableContext()\n // `when(row)` false olan yok (D34); satırda inline çizilen menüde yok (D36); yıkıcılar en altta.\n const inline = new Set(inlineActionsOf(actions, row))\n const shown = actions.filter((a) => !inline.has(a) && (!a.when || a.when(row)))\n const ordered = [...shown.filter((a) => !a.destructive), ...shown.filter((a) => a.destructive)]\n // Menüde bir şey yoksa ⋯ çizilmez; hizalama için yeri kalır.\n if (!href && !ordered.length) return <span className=\"dt-row-more-space\" aria-hidden=\"true\" />\n const firstDestructive = ordered.findIndex((a) => a.destructive)\n const subOf = (a: RowAction<Row>): string | null => {\n const d = a.disabled?.(row)\n return typeof d === 'string' ? d : (a.description ?? null)\n }\n const isDisabled = (a: RowAction<Row>) => !!a.disabled?.(row)\n\n return (\n <DtMenu\n className=\"dt-row-menu\"\n trigger={\n <button type=\"button\" className=\"dt-row-more\" aria-label={i18n.t('row.actionsAria', { id: label })}>\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {href && (\n <>\n <Menu.LinkItem\n className=\"dt-menu-item\"\n href={href}\n closeOnClick\n onClick={(e) => {\n // Düz sol tık `onRowOpen`; ⌘/Ctrl, orta ve sağ tık tarayıcıya kalır (D6).\n if (e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey) onOpen(e)\n }}\n >\n {i18n.t('row.open')}\n <kbd className=\"dt-kbd\">↵</kbd>\n </Menu.LinkItem>\n <Menu.LinkItem className=\"dt-menu-item\" href={href} target=\"_blank\" rel=\"noopener\" closeOnClick>\n {i18n.t('row.openNewTab')}\n </Menu.LinkItem>\n </>\n )}\n {href && ordered.length > 0 && <DtMenuSeparator />}\n {ordered.map((a, i) => {\n const Icon = a.icon\n const sub = subOf(a)\n return (\n <Fragment key={a.id}>\n {i > 0 && (a.separatorBefore || i === firstDestructive) && <DtMenuSeparator />}\n <DtMenuItem\n destructive={a.destructive}\n twoLine={!!sub}\n disabled={isDisabled(a)}\n onSelect={() => {\n if (!isDisabled(a)) void a.run(row)\n }}\n >\n {Icon && <Icon size={16} aria-hidden=\"true\" />}\n <span className=\"dt-menu-text\">\n <span>{a.label}</span>\n {sub && <span className=\"dt-menu-sub\">{sub}</span>}\n </span>\n {a.shortcut && <kbd className=\"dt-kbd\">{a.shortcut}</kbd>}\n </DtMenuItem>\n </Fragment>\n )\n })}\n </DtMenu>\n )\n}\n","// Satır + hücreler. Kabuk burada: hizalama, kesme, sabit sütun sticky'si, --dt-row-bg, ikinci satır, aksiyon overlay'i (05 §4, 03);\n// seçim hücresi (40 px, sol sabit), birincil hücrede expand chevron'u, sağ sabit ⋯ hücresi, inline aksiyonlar ve satır hatası\n// (05 §4, §6–7, D28, D35, D36).\nimport { CaretRightIcon, DotsSixVerticalIcon, WarningCircleIcon } from '@phosphor-icons/react'\nimport type { CSSProperties, MouseEvent, ReactNode } from 'react'\nimport type { RowAction } from '../../types/list'\nimport { CellActions } from '../cells/cell-actions'\nimport { cellFillStyle, renderCellContent, type RenderEnv } from '../cells/render-cell'\nimport { alignOf, isNumericType } from '../cells/specs'\nimport type { LayoutColumn } from '../columns/use-column-layout'\nimport { readPath } from '../columns/read-path'\nimport { inlineActionsOf } from './inline-actions'\nimport { fillIndex, pinClasses, pinStyle } from './pin'\nimport { RowMenu } from './row-menu'\nimport type { HandleBind } from './sortable-rows'\n\nexport const FillCell = () => <div className=\"dt-cell dt-cell-fill\" role=\"presentation\" aria-hidden=\"true\" />\n\n/** Sütunları çizer, orta ile sağ sabitler arasına dolgu hücresini koyar. */\nexport function withFill<Row extends object>(\n columns: Array<LayoutColumn<Row>>,\n render: (col: LayoutColumn<Row>, i: number) => ReactNode,\n): ReactNode[] {\n const at = fillIndex(columns)\n return [\n ...columns.slice(0, at).map((c, i) => render(c, i)),\n <FillCell key=\"__fill\" />,\n ...columns.slice(at).map((c, i) => render(c, at + i)),\n ]\n}\n\n/** Birincil hücredeki chevron (05 §7): `canExpand` değilse aynı genişlikte boşluk (hizalama). */\ninterface Expand {\n can: boolean\n open: boolean\n controls: string\n label: string\n onToggle: () => void\n}\n\nfunction Cell<Row extends object>({\n col,\n row,\n env,\n secondaryVisible,\n expand,\n lead,\n}: {\n col: LayoutColumn<Row>\n row: Row\n env: RenderEnv\n secondaryVisible: boolean\n expand?: Expand\n /** ⋯ hücresi yokken satır hatası ikonu ilk görünür hücrenin başında. */\n lead?: ReactNode\n}) {\n const def = col.def\n const value = def.accessor ? def.accessor(row) : readPath(row, col.id)\n let content = renderCellContent(def, row, value, env)\n // `id` ve `ajax` linki kendi içeriğinde çizer.\n const href = def.primary && def.type !== 'id' && def.type !== 'ajax' ? def.href?.(row) : undefined\n if (href)\n content = (\n <a className=\"dt-link dt-primary-link\" href={href}>\n {content}\n </a>\n )\n const cls = [\n 'dt-cell',\n `is-${alignOf(def)}`,\n isNumericType(def.type) && 'is-numeric',\n def.primary && 'is-primary',\n (expand || lead) && 'has-expand',\n ...pinClasses(col),\n ]\n const style: CSSProperties = { ...pinStyle(col), ...cellFillStyle(def, value) }\n const main = (\n <>\n <span className=\"dt-cell-content\">{content}</span>\n {secondaryVisible && def.secondary && <span className=\"dt-secondary\">{def.secondary(row) ?? ''}</span>}\n </>\n )\n return (\n <div className={cls.filter(Boolean).join(' ')} style={style} role=\"cell\" data-col={col.id}>\n {expand || lead ? (\n <>\n {!expand ? null : expand.can ? (\n <button\n type=\"button\"\n className={expand.open ? 'dt-expand is-open' : 'dt-expand'}\n aria-expanded={expand.open}\n aria-controls={expand.controls}\n aria-label={env.i18n.t('expand.showAria', { id: expand.label })}\n onClick={expand.onToggle}\n >\n <CaretRightIcon size={14} aria-hidden=\"true\" />\n </button>\n ) : (\n <span className=\"dt-expand-space\" aria-hidden=\"true\" />\n )}\n {lead}\n <span className=\"dt-cell-main\">{main}</span>\n </>\n ) : (\n main\n )}\n {def.actions?.length ? <CellActions actions={def.actions} row={row} /> : null}\n </div>\n )\n}\n\n/** Inline satır aksiyonu (D36): ⋯ ile aynı 28 px düğme; label aria'da, açıklama tooltip'te ve gizli span'da. */\nfunction InlineAction<Row extends object>({ action: a, row, uid }: { action: RowAction<Row>; row: Row; uid: string }) {\n const Icon = a.icon!\n const d = a.disabled?.(row)\n const reason = typeof d === 'string' ? d : null\n const descId = a.description ? `${uid}-${a.id}` : undefined\n return (\n <span className=\"dt-row-inline-wrap\">\n <button\n type=\"button\"\n className=\"dt-row-inline\"\n disabled={!!d}\n aria-label={a.label}\n aria-describedby={descId}\n data-dt-tip={reason ?? (a.description ? `${a.label} — ${a.description}` : a.label)}\n onClick={() => void a.run(row)}\n >\n <Icon size={16} aria-hidden=\"true\" />\n </button>\n {descId && (\n <span id={descId} className=\"dt-sr-only\">\n {a.description}\n </span>\n )}\n </span>\n )\n}\n\n/** Satırın seçim, expand, menü ve hata bağlamı; ızgara verir. */\nexport interface RowExtras<Row extends object> {\n /** Birincil hücre metni: aria etiketleri ve Copy. */\n label: string\n /** Satıra özgü id öneki: hata ikonu ve inline açıklamaları. */\n uid: string\n /** Satır hatası mesajları (D35); boş = yok. */\n error: string[]\n /** Sıra tutamağı (R21): `bind` yalnızca sürükleme açıkken; pasifken gerekçe tooltip'te. */\n handle?: { disabled: boolean; reason?: string; edge: boolean; bind?: HandleBind }\n /** `left`: önündeki tutamak sütununun genişliği. */\n select?: { selected: boolean; edge: boolean; left: number; onChange: (value: boolean, shift: boolean) => void }\n expand?: Omit<Expand, 'label'>\n menu?: {\n edge: boolean\n actions: Array<RowAction<Row>>\n href?: string\n onOpen: (event: MouseEvent) => void\n }\n}\n\nexport function Row<Row extends object>({\n row,\n index,\n rowIndex,\n columns,\n env,\n extras,\n}: {\n row: Row\n index: number\n /** aria-rowindex: header 1, ilk satır 2. */\n rowIndex: number\n columns: Array<LayoutColumn<Row>>\n env: RenderEnv\n extras?: RowExtras<Row>\n}) {\n // Comfortable: `secondary` görünür (02 · Yoğunluk).\n const secondaryVisible = env.density === 'comfortable'\n const sel = extras?.select\n const handle = extras?.handle\n const menu = extras?.menu\n const expand = extras?.expand && { ...extras.expand, label: extras.label }\n const error = extras?.error ?? []\n const tip = error.join('\\n')\n const errorId = `${extras?.uid}-err`\n const errorIcon = error.length > 0 && (\n <span id={errorId} className=\"dt-row-error\" role=\"img\" aria-label={tip} data-dt-tip={tip}>\n <WarningCircleIcon size={14} weight=\"fill\" aria-hidden=\"true\" />\n </span>\n )\n const cls = ['dt-row', sel?.selected && 'is-selected', expand?.open && 'is-expanded', error.length && 'is-error']\n return (\n <div\n className={cls.filter(Boolean).join(' ')}\n role=\"row\"\n aria-rowindex={rowIndex}\n aria-describedby={errorIcon ? errorId : undefined}\n // Satırın tamamı tooltip anchor'ı: hatalı satırda nereye gelinirse gelinsin mesaj görünür (05 §4).\n data-dt-tip={tip || undefined}\n data-index={index}\n >\n {handle && (\n <div\n className={\n handle.edge\n ? 'dt-cell dt-cell-handle is-pinned-start is-pin-edge'\n : 'dt-cell dt-cell-handle is-pinned-start'\n }\n style={{ left: 0 }}\n role=\"cell\"\n >\n <button\n type=\"button\"\n className=\"dt-row-handle\"\n {...handle.bind?.props}\n ref={handle.bind?.ref}\n aria-label={env.i18n.t('reorder.handleAria', { row: extras.label })}\n // Pasif tutamak odaklanabilir kalır: gerekçe tooltip'te okunur.\n aria-disabled={handle.disabled || undefined}\n data-dt-tip={handle.reason}\n >\n <DotsSixVerticalIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n </div>\n )}\n {sel && (\n // 40 px'in tamamı tıklanır; ⇧ aralığı ızgarada.\n <label\n className={\n sel.edge ? 'dt-cell dt-cell-select is-pinned-start is-pin-edge' : 'dt-cell dt-cell-select is-pinned-start'\n }\n style={{ left: sel.left }}\n role=\"cell\"\n >\n <input\n type=\"checkbox\"\n className=\"dt-checkbox dt-select-box\"\n checked={sel.selected}\n aria-label={env.i18n.t('row.selectAria', { id: extras.label })}\n onChange={(e) => sel.onChange(e.target.checked, (e.nativeEvent as globalThis.MouseEvent).shiftKey === true)}\n />\n </label>\n )}\n {withFill(columns, (col) => (\n <Cell\n key={col.id}\n col={col}\n row={row}\n env={env}\n secondaryVisible={secondaryVisible}\n expand={col.def.primary ? expand : undefined}\n lead={!menu && col.id === columns[0]?.id ? errorIcon : undefined}\n />\n ))}\n {menu && (\n <div\n className={\n menu.edge ? 'dt-cell dt-cell-menu is-pinned-end is-pin-edge' : 'dt-cell dt-cell-menu is-pinned-end'\n }\n style={{ right: 0 }}\n role=\"cell\"\n >\n {errorIcon}\n {inlineActionsOf(menu.actions, row).map((a) => (\n <InlineAction key={a.id} action={a} row={row} uid={extras.uid} />\n ))}\n <RowMenu row={row} label={extras.label} href={menu.href} actions={menu.actions} onOpen={menu.onOpen} />\n </div>\n )}\n </div>\n )\n}\n","// Yükleme iskeleti (03 · Skeleton, T8-02): tipe göre biçim; metin çubuğu satırdan satıra %55–80 arası değişir.\nimport { TYPE_SPECS, alignOf } from '../cells/specs'\nimport type { LayoutColumn } from '../columns/use-column-layout'\nimport { pinClasses, pinStyle } from './pin'\nimport { withFill } from './row'\n\nconst WIDTHS = [72, 58, 80, 64, 55, 76, 61, 69]\n\nexport function SkeletonRow<Row extends object>({\n index,\n columns,\n}: {\n index: number\n columns: Array<LayoutColumn<Row>>\n}) {\n return (\n <div className=\"dt-row dt-row-skeleton\" role=\"row\" aria-hidden=\"true\">\n {withFill(columns, (col, i) => {\n const shape = TYPE_SPECS[col.def.type].skeleton\n const width = `${WIDTHS[(index + i) % WIDTHS.length]}%`\n const cls = ['dt-cell', `is-${alignOf(col.def)}`, ...pinClasses(col)].join(' ')\n return (\n <div key={col.id} className={cls} style={pinStyle(col)} role=\"cell\">\n {shape === 'person' ? (\n <>\n <span className=\"dt-sk dt-sk-circle\" />\n <span className=\"dt-sk dt-sk-bar\" style={{ width }} />\n </>\n ) : shape === 'badge' ? (\n <span className=\"dt-sk dt-sk-pill\" />\n ) : shape === 'number' ? (\n <span className=\"dt-sk dt-sk-bar dt-sk-num\" />\n ) : (\n <span className=\"dt-sk dt-sk-bar\" style={{ width }} />\n )}\n </div>\n )\n })}\n </div>\n )\n}\n","'use no memo'\n// R11: Virtualizer örneği kendini değiştirerek çalışır; derleyici onu önbelleğe alırsa satırlar kaymaz. Bu dosya\n// derleyicinin dışındadır ve her render'da düz veri döner, onu kullanan ızgara derlenmeye devam eder.\nimport { useVirtualizer, type Range } from '@tanstack/react-virtual'\nimport { useLayoutEffect, type RefObject } from 'react'\n\nexport interface VirtualRowsOptions {\n count: number\n scrollRef: RefObject<HTMLElement | null>\n /** Satır yüksekliği + 1 px alt kenarlık (02). */\n itemHeight: number\n /** Sticky header akış içinde: sanal öğeler header kadar aşağıda başlar, header görünür alanın üstünü örter (08 §2). */\n headHeight: number\n /** Yatay kaydırma çubuğu görünür alanın altını örter. */\n barHeight: number\n keyOf: (index: number) => string\n /** Odaktaki widget'ın satırı (−1 yok): kaydırınca DOM'dan çıkmaz, odak kaybolmaz (08 §2). */\n keepIndex: number\n /** Değişince ölçüm önbelleği sıfırlanır (sorgu / sayfa: açık detaylar kapandı, 05 §7). */\n resetKey?: string\n}\n\nexport function useVirtualRows(o: VirtualRowsOptions) {\n // eslint-disable-next-line react-hooks/incompatible-library -- dosya derleyicinin dışında (\"use no memo\")\n const v = useVirtualizer({\n count: o.count,\n getScrollElement: () => o.scrollRef.current,\n estimateSize: () => o.itemHeight,\n scrollMargin: o.headHeight,\n scrollPaddingStart: o.headHeight,\n scrollPaddingEnd: o.barHeight,\n overscan: 10,\n getItemKey: o.keyOf,\n rangeExtractor: (range: Range) => {\n const start = Math.max(0, range.startIndex - range.overscan)\n const end = Math.min(range.count - 1, range.endIndex + range.overscan)\n const out: number[] = []\n const f = o.keepIndex\n if (f >= 0 && f < start && f < range.count) out.push(f)\n for (let i = start; i <= end; i++) out.push(i)\n if (f > end && f < range.count) out.push(f)\n return out\n },\n })\n // Yoğunluk değişince ölçüm önbelleği sıfırlanır: estimateSize değişimi tek başına yenilemez.\n useLayoutEffect(() => v.measure(), [v, o.itemHeight, o.resetKey])\n return {\n items: v.getVirtualItems().map((i) => ({ key: String(i.key), index: i.index, start: i.start })),\n total: v.getTotalSize(),\n /** Açık detaylı öğenin ref'i: yüksekliği ölçülür, anahtarla önbellekte kalır. */\n measureElement: v.measureElement,\n /** Detay kapanınca öğe satır yüksekliğine döner. */\n resizeItem: (index: number, size: number) => v.resizeItem(index, size),\n }\n}\n","// Izgara kökü (05 §2–4, §6–7; 08 §1–2; brief §5.5): tek kayan alan, sticky header, sabit sütunlar + koşullu kenar gölgesi,\n// sanal satırlar (öğe = satır + açık detay, ölçülen yükseklik), seçim sütunu (40 px) ve ⋯ sütunu. Veri çekmez; sütun düzenini\n// use-column-layout'tan, seçim ve expand durumunu üstten alır. Satır klavyesi yok (D40): widget'lar doğal Tab sırasında.\nimport {\n lazy,\n Suspense,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n useSyncExternalStore,\n type FocusEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport type { Density } from '../../types/core'\nimport type { RowAction } from '../../types/list'\nimport { RemoteLabels } from '../cells/remote-labels'\nimport type { RenderEnv } from '../cells/render-cell'\nimport type { ColumnLayoutApi } from '../columns/use-column-layout'\nimport { getFormat } from '../format'\nimport { isPlainRowClick } from '../interaction/is-interactive'\nimport { useDataTableContext } from '../provider'\nimport { HeaderCell, type HeaderSort } from './header-cell'\nimport { inlineActionsOf } from './inline-actions'\nimport { Row, type RowExtras } from './row'\nimport { SkeletonRow } from './skeleton-row'\nimport type { HandleBind, SortableState } from './sortable-rows'\nimport { useVirtualRows } from './use-virtual-rows'\n\n// lazy() generic bileşenin tip parametresini düşürür; öğe tipi aynen geçer. @dnd-kit yalnızca sıralama açıkken yüklenir (R21).\nconst SortableRows = lazy(() => import('./sortable-rows')) as unknown as typeof import('./sortable-rows').default\n\nconst SKELETON_ROWS = 12\n// jsdom ve ilk render: token okunamazsa standard yoğunluk.\nconst FALLBACK_ROW_H = 44\nconst FALLBACK_HEAD_H = 36\n\n// Dokunmatikte Compact → Standard (02 · Yoğunluk); satır yüksekliği buna göre.\nconst coarse = typeof matchMedia === 'function' && matchMedia('(pointer: coarse)').matches\n\n// Seçim ve ⋯ sütunları düzenin dışında: track'ler başa / sona eklenir, sabit sütun ofsetleri o kadar kayar (05 §4, §6).\n// ⋯ sütunu içeriğe göre: dolgu 8 + ⋯ + 8; sayfada hatalı satır varsa (D35) + ikon + gap; inline aksiyon başına (D36, sayfadaki\n// en kalabalık satır) + düğme + gap.\nconst SELECT_W = 40\nconst SELECT_W_PHONE = 48\n// Sıra tutamağı (R21): seçimden önce, 28 px düğme + dolgu; telefonda dokunma payı.\nconst HANDLE_W = 32\nconst HANDLE_W_PHONE = 44\nconst MENU_PAD = 8\n\nexport interface GridProps<Row extends object> {\n layout: ColumnLayoutApi<Row>\n rows: Row[]\n rowId: (row: Row) => string\n /** role=table aria-label. */\n label: string\n density: Density\n /** 12 iskelet satır (ilk yükleme). */\n skeleton?: boolean\n /** aria-rowcount; bilinmiyorsa -1. */\n rowCount?: number\n /** Önceki sayfaların satırları: aria-rowindex sayfa boyunca sürer. */\n rowIndexOffset?: number\n /** Kimlik değiştiren istek sürüyor: satırlar soluk ve `inert` (05 §10). */\n dim?: boolean\n /** Yenileme çubuğu. */\n refreshing?: boolean\n /** Gövde üstünde durum notu (\"Still loading…\"). */\n notice?: ReactNode\n /** Satır yokken gövdenin ortasında. */\n state?: ReactNode\n verticalLines?: boolean\n /** Değişince gövde başa kayar (sayfa değişimi, 05 §8). */\n scrollKey?: string | number\n sort?: Map<string, HeaderSort>\n /** Verilirse sıralanabilir sütunlarda header sıralar. */\n canSort?: (id: string) => boolean\n onSort?: (id: string, additive: boolean) => void\n onSortSet?: (id: string, dir: 'asc' | 'desc' | null) => void\n /** Filtrelenen sütunlar: header'da huni. */\n filtered?: ReadonlySet<string>\n /** Verilirse filtrelenebilir sütunlarda header menüsünde \"Filter by this column…\". */\n canFilter?: (id: string) => boolean\n onFilter?: (id: string) => void\n /** Sütun menüsünde Column settings; verilmezse yok. */\n onColumns?: (from: HTMLElement | null) => void\n /** Satır gövdesine düz tık (05 §7): hücredeki widget'a, metin seçimine, sürüklemeye ve değiştirici tuşa karşı tek guard. */\n onRowClick?: (row: Row, event: MouseEvent) => void\n /** Seçim sütunu (05 §6): anahtar → seçili. */\n selection?: Record<string, true>\n onSelectRows?: (ids: string[], value: boolean) => void\n /** Birincil hücrede chevron + alt satır (05 §7): anahtar → açık. */\n expanded?: Record<string, true>\n canExpand?: (row: Row) => boolean\n onToggleExpand?: (id: string, value: boolean) => void\n renderExpanded?: (row: Row, close: () => void) => ReactNode\n /** Değişince açık detayların ölçümü sıfırlanır (sorgu / sayfa). */\n resetKey?: string\n /** ⋯ sütunu ve satır menüsü: Open / Copy yerleşik, `rowActions` uygulamanın. */\n rowMenu?: boolean\n rowActions?: Array<RowAction<Row>>\n primaryHref?: (row: Row) => string | undefined\n primaryLabel?: (row: Row) => string\n /** Satır hatası (05 §4, D35): metin ya da metin listesi; boş → yok. Harita uygulamanın. */\n rowError?: (row: Row) => string | string[] | null | undefined\n /** Birincil linke düz sol tık, menüde Open (05 §7). Tarayıcı gezinmesi dinleyicide durdurulabilir. */\n onRowOpen?: (row: Row, event: MouseEvent) => void\n /** Satır sıralama (R21): tutamak sütunu; `disabled` gerekçesi tooltip'te, `pending` önceki taşıma sürerken. */\n reorder?: { disabled: boolean | string; pending: boolean; onMove: (from: number, to: number) => void }\n}\n\nexport function Grid<Row extends object>({\n layout,\n rows,\n rowId,\n label,\n density: requested,\n skeleton = false,\n rowCount = -1,\n rowIndexOffset = 0,\n dim = false,\n refreshing = false,\n notice,\n state,\n verticalLines = false,\n scrollKey,\n sort,\n canSort,\n onSort,\n onSortSet,\n filtered,\n canFilter,\n onFilter,\n onColumns,\n onRowClick,\n selection,\n onSelectRows,\n expanded,\n canExpand,\n onToggleExpand,\n renderExpanded,\n resetKey,\n rowMenu = false,\n rowActions = [],\n primaryHref,\n primaryLabel,\n onRowOpen,\n rowError,\n reorder,\n}: GridProps<Row>) {\n const ctx = useDataTableContext()\n const root = useRef<HTMLDivElement>(null)\n const scroll = useRef<HTMLDivElement>(null)\n const density: Density = coarse && requested === 'compact' ? 'standard' : requested\n const [labels] = useState(() => new RemoteLabels())\n const labelsVersion = useSyncExternalStore(labels.subscribe, labels.getVersion)\n\n // Satır ve header yüksekliği, kaydırma çubuğu payı token'dan ve DOM'dan ölçülür (02 tek kaynak).\n const [metrics, setMetrics] = useState({ row: FALLBACK_ROW_H, head: FALLBACK_HEAD_H, bar: 0 })\n const [scrolled, setScrolled] = useState({ start: false, end: false })\n const [focused, setFocused] = useState(-1)\n const [dragging, setDragging] = useState(-1)\n\n const selectable = !!onSelectRows\n const expandable = !!renderExpanded\n const phone = layout.phone\n const selW = selectable ? (phone ? SELECT_W_PHONE : SELECT_W) : 0\n const handleW = reorder ? (phone ? HANDLE_W_PHONE : HANDLE_W) : 0\n /** Düzenin önündeki sütunlar: tutamak + seçim. */\n const leadW = handleW + selW\n const sortable = !!reorder && !reorder.disabled && !skeleton\n const maxInline = rowActions.some((a) => a.inline)\n ? rows.reduce((m, r) => Math.max(m, inlineActionsOf(rowActions, r).length), 0)\n : 0\n /** `rowError` sonucu mesaj listesine iner; boş metinler düşer, boş liste = hata yok. */\n const errorOf = (row: Row): string[] => {\n const e = rowError?.(row)\n return (Array.isArray(e) ? e : [e]).filter((m): m is string => !!m)\n }\n const anyError = !!rowError && rows.some((r) => errorOf(r).length > 0)\n const menuW = rowMenu\n ? `calc(${2 * MENU_PAD}px${anyError ? ' + var(--dt-icon) - 2px + var(--dt-space)' : ''} + ${maxInline + 1} * var(--dt-control-h-sm) + ${maxInline} * var(--dt-space))`\n : ''\n const isOpen = (row: Row) => !!expanded?.[rowId(row)]\n\n const count = skeleton ? SKELETON_ROWS : rows.length\n const virtual = useVirtualRows({\n count,\n scrollRef: scroll,\n itemHeight: metrics.row + 1,\n headHeight: metrics.head,\n barHeight: metrics.bar,\n keyOf: (i) => (skeleton ? `sk-${i}` : rowId(rows[i]!)),\n keepIndex: skeleton ? -1 : dragging >= 0 ? dragging : focused,\n resetKey,\n })\n\n // Kapanan detay: öğe satır yüksekliğine döner (açıkken ölçülmüştü).\n const openIds = Object.keys(expanded ?? {}).join('\\u0000')\n const lastOpen = useRef<string[]>([])\n useLayoutEffect(() => {\n const now = new Set(Object.keys(expanded ?? {}))\n for (const id of lastOpen.current) {\n if (now.has(id)) continue\n const i = rows.findIndex((r) => rowId(r) === id)\n if (i >= 0) virtual.resizeItem(i, metrics.row + 1)\n }\n lastOpen.current = [...now]\n // Yalnızca açık anahtarlar değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [openIds])\n\n // Genişlikler ve sabit ofsetler React render'ı dışında (05 · Resize): sürüklerken yalnızca CSS değişkenleri değişir.\n useLayoutEffect(() => {\n const el = root.current\n if (!el) return\n const write = () => {\n const lead = [handleW ? `${handleW}px` : '', selW ? `${selW}px` : '']\n el.style.setProperty('--cols', [...lead, layout.cols(), menuW].filter(Boolean).join(' '))\n const min = `${layout.minWidth() + leadW}px`\n el.style.setProperty('--dt-min-w', menuW ? `calc(${min} + ${menuW})` : min)\n // Detay satırı düzenin ilk sütunuyla hizalanır: tutamak ve seçim payı birlikte.\n el.style.setProperty('--dt-sel-w', `${leadW}px`)\n el.style.setProperty('--dt-menu-w', menuW || '0px')\n const start = new Set(layout.start.map((c) => c.offsetVar))\n const end = new Set(layout.end.map((c) => c.offsetVar))\n for (const [name, value] of Object.entries(layout.offsets())) {\n if (start.has(name)) el.style.setProperty(name, `${parseFloat(value) + leadW}px`)\n else if (end.has(name) && menuW) el.style.setProperty(name, `calc(${value} + ${menuW})`)\n else el.style.setProperty(name, value)\n }\n }\n write()\n return layout.subscribeSizing(write)\n }, [layout, selW, handleW, leadW, menuW])\n\n // Yoğunluk değişince: satır yüksekliği, header yüksekliği ve sütun ölçeği (--dt-fs / 13) yeniden okunur.\n const { setScale, scale } = layout\n useLayoutEffect(() => {\n const el = root.current\n if (!el) return\n const css = getComputedStyle(el)\n const row = parseFloat(css.getPropertyValue('--dt-row-h'))\n const fs = parseFloat(css.getPropertyValue('--dt-fs'))\n const head = el.querySelector<HTMLElement>('.dt-head')?.offsetHeight\n const s = scroll.current\n const next = {\n row: Number.isFinite(row) ? row : FALLBACK_ROW_H,\n head: head || FALLBACK_HEAD_H,\n bar: s ? Math.max(0, s.offsetHeight - s.clientHeight) : 0,\n }\n setMetrics((p) => (p.row === next.row && p.head === next.head && p.bar === next.bar ? p : next))\n const k = Number.isFinite(fs) ? fs / 13 : 1\n if (k !== scale) setScale(k)\n }, [density, phone, setScale, scale])\n\n // İlk çizimde değil, anahtar değişince başa (05 §8).\n const lastScrollKey = useRef(scrollKey)\n useLayoutEffect(() => {\n if (lastScrollKey.current === scrollKey) return\n lastScrollKey.current = scrollKey\n if (scroll.current) scroll.current.scrollTop = 0\n }, [scrollKey])\n\n // Sabit sütun kenar gölgesi yalnızca o yöne kaydırılmışken (05 §4 · Pinned); kap boyu değişince de yeniden bakılır.\n useLayoutEffect(() => {\n const el = scroll.current\n if (!el) return\n const update = () => {\n const start = el.scrollLeft > 0\n const end = el.scrollLeft + el.clientWidth < el.scrollWidth - 1\n setScrolled((p) => (p.start === start && p.end === end ? p : { start, end }))\n }\n update()\n el.addEventListener('scroll', update, { passive: true })\n const ro = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(update)\n ro?.observe(el)\n return () => {\n el.removeEventListener('scroll', update)\n ro?.disconnect()\n }\n }, [])\n\n const onFocus = (e: FocusEvent) => {\n const row = (e.target as HTMLElement).closest<HTMLElement>('.dt-row[data-index]')\n setFocused(row ? Number(row.dataset.index) : -1)\n }\n\n // Sürükleme tespiti için mousedown noktası; render'a girmez.\n const down = useRef<{ x: number; y: number } | null>(null)\n const onClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement\n const rowEl = target.closest<HTMLElement>('.dt-row[data-index]')\n const row = rowEl && rows[Number(rowEl.dataset.index)]\n if (!row) return\n // Birincil linke düz sol tık → onRowOpen; değiştirici tuş / orta tık tarayıcıya (D6).\n const link = target.closest('a.dt-link')\n if (link && link.closest('.dt-cell.is-primary') && rowEl.contains(link)) {\n if (e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey) onRowOpen?.(row, e)\n return\n }\n if (onRowClick && isPlainRowClick(e.nativeEvent, rowEl, down.current)) onRowClick(row, e)\n }\n\n // Checkbox ⇧ aralığının çapası (05 §6); satır anahtarları değişince (sayfa / sorgu) sıfırlanır.\n const rowKeys = rows.map(rowId).join('\\u0000')\n const anchor = useRef({ keys: rowKeys, index: -1 })\n const onSelect = (i: number, value: boolean, shift: boolean) => {\n if (anchor.current.keys !== rowKeys) anchor.current = { keys: rowKeys, index: -1 }\n const a = anchor.current.index\n const [from, to] = a < i ? [a, i] : [i, a]\n onSelectRows?.(shift && a >= 0 ? rows.slice(from, to + 1).map(rowId) : [rowId(rows[i]!)], value)\n anchor.current = { keys: rowKeys, index: i }\n }\n const selectedCount = selectable ? rows.reduce((n, r) => n + (selection?.[rowId(r)] ? 1 : 0), 0) : 0\n const allSelected = rows.length > 0 && selectedCount === rows.length\n const uid = useId()\n const extrasOf = (row: Row, i: number, bind?: HandleBind): RowExtras<Row> => {\n const id = rowId(row)\n const subrow = `${uid}-sub-${id}`\n return {\n label: primaryLabel?.(row) ?? id,\n uid: `${uid}-r-${id}`,\n error: errorOf(row),\n handle: reorder\n ? {\n disabled: !!reorder.disabled || reorder.pending,\n reason: typeof reorder.disabled === 'string' ? reorder.disabled : undefined,\n edge: !selectable && !layout.start.length,\n bind,\n }\n : undefined,\n select: selectable\n ? {\n selected: !!selection?.[id],\n edge: !layout.start.length,\n left: handleW,\n onChange: (v, shift) => onSelect(i, v, shift),\n }\n : undefined,\n expand: expandable\n ? {\n can: canExpand?.(row) ?? true,\n open: isOpen(row),\n controls: subrow,\n onToggle: () => onToggleExpand?.(id, !isOpen(row)),\n }\n : undefined,\n menu: rowMenu\n ? {\n edge: !layout.end.length,\n actions: rowActions,\n href: primaryHref?.(row),\n onOpen: (e) => onRowOpen?.(row, e),\n }\n : undefined,\n }\n }\n\n /** Taşınan başlık yeni yerinde odakta kalır (⌥⇧←/→ ve menü). */\n const focusHeader = (id: string) =>\n requestAnimationFrame(() => {\n const cell = [...(root.current?.querySelectorAll<HTMLElement>('.dt-head-cell[data-col]') ?? [])].find(\n (c) => c.dataset.col === id,\n )\n cell?.querySelector<HTMLElement>('.dt-head-label')?.focus()\n })\n\n // labelsVersion bağımlılık olarak env'de: derleyici env'i önbelleğe alır, etiket çözülünce yenisi kurulmalı.\n const env: RenderEnv & { labelsVersion: number } = {\n fmt: getFormat(ctx.locale),\n i18n: ctx.i18n,\n today: new Date(),\n labels,\n density,\n coarse,\n labelsVersion,\n }\n\n const cls = [\n 'dt-grid',\n scrolled.start && 'is-scrolled-start',\n scrolled.end && 'is-scrolled-end',\n skeleton && 'is-skeleton',\n dim && 'is-dim',\n verticalLines && 'has-vlines',\n phone && 'is-phone',\n ]\n const header = (col: (typeof layout.columns)[number]) => {\n const sortable = !!onSort && (canSort?.(col.id) ?? false)\n return (\n <HeaderCell\n key={col.id}\n column={col}\n layout={layout}\n onMoved={focusHeader}\n sort={sort?.get(col.id)}\n onSort={sortable ? (additive) => onSort(col.id, additive) : undefined}\n onSortSet={sortable && onSortSet ? (dir) => onSortSet(col.id, dir) : undefined}\n filtered={filtered?.has(col.id)}\n onFilter={onFilter && canFilter?.(col.id) ? () => onFilter(col.id) : undefined}\n onColumns={onColumns}\n />\n )\n }\n\n const itemEl = (item: (typeof virtual.items)[number], drag?: SortableState) => {\n const row = skeleton ? undefined : rows[item.index]\n const open = !!row && expandable && isOpen(row)\n // Yalnızca açık öğeler ölçülür; kapalı satır sabit yükseklikte.\n const measure = open ? virtual.measureElement : undefined\n return (\n <div\n key={item.key}\n ref={\n drag\n ? (el) => {\n drag.setNodeRef(el)\n measure?.(el)\n }\n : measure\n }\n className={drag?.dragging ? 'dt-item is-dragging' : 'dt-item'}\n data-index={item.index}\n style={\n drag\n ? // @dnd-kit satır yerlerini transform'u yok sayarak ölçer: konum top'ta, transform yalnızca sürükleme kayması.\n {\n top: item.start - metrics.head,\n transform: drag.y ? `translateY(${drag.y}px)` : undefined,\n transition: drag.transition,\n }\n : { transform: `translateY(${item.start - metrics.head}px)` }\n }\n >\n {!row ? (\n <SkeletonRow index={item.index} columns={layout.columns} />\n ) : (\n <>\n <Row\n row={row}\n index={item.index}\n rowIndex={2 + rowIndexOffset + item.index}\n columns={layout.columns}\n env={env}\n extras={extrasOf(row, item.index, drag?.handle)}\n />\n {open && (\n <div\n id={`${uid}-sub-${rowId(row)}`}\n className=\"dt-subrow\"\n role=\"row\"\n aria-rowindex={2 + rowIndexOffset + item.index}\n >\n <div role=\"cell\" aria-colspan={layout.columns.length}>\n {renderExpanded!(row, () => onToggleExpand?.(rowId(row), false))}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n )\n }\n\n return (\n <div\n ref={root}\n className={cls.filter(Boolean).join(' ')}\n role=\"table\"\n aria-label={label}\n aria-rowcount={rowCount}\n aria-colcount={layout.columns.length + (reorder ? 1 : 0) + (selectable ? 1 : 0) + (rowMenu ? 1 : 0)}\n aria-busy={skeleton || dim || undefined}\n data-density={density}\n onFocus={onFocus}\n onMouseDown={(e) => (down.current = { x: e.clientX, y: e.clientY })}\n onClick={onClick}\n >\n {/* Tab ile odaklanan widget'ı tarayıcı kaydırır: sticky header ve yatay çubuk payı (08 §2). */}\n <div\n ref={scroll}\n className=\"dt-scroll\"\n style={{ scrollPaddingTop: metrics.head, scrollPaddingBottom: metrics.bar }}\n >\n <div className=\"dt-head\" role=\"row\" aria-rowindex={1}>\n {reorder && (\n <div\n className={\n selectable || layout.start.length\n ? 'dt-head-cell dt-head-handle is-pinned-start'\n : 'dt-head-cell dt-head-handle is-pinned-start is-pin-edge'\n }\n style={{ left: 0 }}\n role=\"columnheader\"\n >\n <span className=\"dt-sr-only\">{ctx.i18n.t('reorder.column')}</span>\n </div>\n )}\n {selectable && (\n <div\n className={\n layout.start.length\n ? 'dt-head-cell dt-head-select is-pinned-start'\n : 'dt-head-cell dt-head-select is-pinned-start is-pin-edge'\n }\n style={{ left: handleW }}\n role=\"columnheader\"\n >\n <input\n type=\"checkbox\"\n className=\"dt-checkbox\"\n checked={allSelected}\n ref={(el) => {\n if (el) el.indeterminate = selectedCount > 0 && !allSelected\n }}\n aria-label={ctx.i18n.t('row.selectPageAria')}\n onChange={() => onSelectRows?.(rows.map(rowId), !allSelected)}\n />\n </div>\n )}\n {[...layout.start, ...layout.center].map(header)}\n <div className=\"dt-head-cell dt-cell-fill\" role=\"presentation\" aria-hidden=\"true\" />\n {layout.end.map(header)}\n {rowMenu && (\n <div\n className={\n layout.end.length\n ? 'dt-head-cell dt-head-menu-col is-pinned-end'\n : 'dt-head-cell dt-head-menu-col is-pinned-end is-pin-edge'\n }\n style={{ right: 0 }}\n role=\"columnheader\"\n />\n )}\n </div>\n <div className=\"dt-body\" role=\"presentation\" inert={dim || undefined} style={{ height: virtual.total }}>\n {sortable && reorder ? (\n // Yüklenene kadar satırlar sürüklenemeden çizilir.\n <Suspense fallback={virtual.items.map((item) => itemEl(item))}>\n <SortableRows\n ids={rows.map(rowId)}\n labelOf={(id) => {\n const row = rows.find((r) => rowId(r) === id)\n return row ? (primaryLabel?.(row) ?? id) : id\n }}\n disabled={reorder.pending}\n onMove={reorder.onMove}\n onActive={setDragging}\n items={virtual.items}\n keyOf={(item) => item.key}\n render={itemEl}\n />\n </Suspense>\n ) : (\n virtual.items.map((item) => itemEl(item))\n )}\n </div>\n </div>\n {refreshing && <div className=\"dt-refresh-bar\" aria-hidden=\"true\" />}\n {notice && (\n <div className=\"dt-notice\" role=\"status\">\n {notice}\n </div>\n )}\n {state && !skeleton && rows.length === 0 && <div className=\"dt-body-state\">{state}</div>}\n </div>\n )\n}\n","// Tek tooltip, delegasyonla (02 · Tooltip 400 ms): kesilmiş hücre metni ve `data-dt-tip` taşıyan öğeler.\n// Hücre başına Base UI Tooltip örneği 500 satırda ağır olurdu; kökte tek dinleyici + tek DOM düğümü.\nimport { useEffect, useLayoutEffect, useRef, useState, type RefObject } from 'react'\n\nconst DELAY = 400\n/** Tooltip ile pencere kenarı arasında kalan en az boşluk. */\nconst EDGE = 8\n\ninterface Tip {\n text: string\n left: number\n top: number\n}\n\nconst overflows = (el: HTMLElement) => el.scrollWidth > el.clientWidth + 1\n/** Metni içteki öğe de kesebilir (etiket, kişi adı, başlık metni, özel hücre); taşıp görünen öğe kesmez. */\nconst clips = (el: HTMLElement) => overflows(el) && getComputedStyle(el).overflowX !== 'visible'\n\nexport const tipOf = (target: Element | null): { el: HTMLElement; text: string } | null => {\n const tipped = target?.closest<HTMLElement>('[data-dt-tip]')\n if (tipped?.dataset.dtTip) return { el: tipped, text: tipped.dataset.dtTip }\n const content = target?.closest<HTMLElement>('.dt-cell-content, .dt-head-label')\n if (content && (overflows(content) || [...content.querySelectorAll<HTMLElement>('*')].some(clips)))\n return { el: content, text: content.textContent?.trim() ?? '' }\n return null\n}\n\nexport function DelegatedTooltip({ root }: { root: RefObject<HTMLElement | null> }) {\n const [tip, setTip] = useState<Tip | null>(null)\n const ref = useRef<HTMLDivElement>(null)\n\n // Ortalanır ama pencereden taşmaz. `left` + `translateX(-50%)` sağ kenardaki öğede (satır hatası) genişliği\n // kenara kalan boşlukla sınırlıyor, metin harf harf bölünüyordu; genişlik artık metinden gelir.\n useLayoutEffect(() => {\n const el = ref.current\n if (!el || !tip) return\n const right = document.documentElement.clientWidth - EDGE - el.offsetWidth\n el.style.left = `${Math.max(EDGE, Math.min(tip.left - el.offsetWidth / 2, right))}px`\n }, [tip])\n\n useEffect(() => {\n const el = root.current\n if (!el) return\n let timer: ReturnType<typeof setTimeout> | undefined\n let anchor: HTMLElement | null = null\n\n const hide = () => {\n clearTimeout(timer)\n anchor = null\n setTip(null)\n }\n const show = (target: HTMLElement, text: string, x?: number) => {\n const r = target.getBoundingClientRect()\n // Geniş anchor'da (hatalı satır) imlecin altında, dar anchor'da ortada.\n const left = x !== undefined && r.width > 320 ? x : r.left + r.width / 2\n setTip({ text, left: Math.round(left), top: Math.round(r.bottom + 6) })\n }\n const onOver = (e: MouseEvent) => {\n const hit = tipOf(e.target as Element)\n if (!hit || hit.el === anchor) return\n hide()\n anchor = hit.el\n timer = setTimeout(() => show(hit.el, hit.text, e.clientX), DELAY)\n }\n const onOut = (e: MouseEvent) => {\n if (anchor && !anchor.contains(e.relatedTarget as Node | null)) hide()\n }\n const onFocusin = (e: FocusEvent) => {\n const hit = tipOf(e.target as Element)\n if (!hit) return\n hide()\n anchor = hit.el\n show(hit.el, hit.text)\n }\n\n el.addEventListener('mouseover', onOver)\n el.addEventListener('mouseout', onOut)\n el.addEventListener('focusin', onFocusin)\n el.addEventListener('focusout', hide)\n el.addEventListener('scroll', hide, true)\n el.addEventListener('mousedown', hide)\n return () => {\n clearTimeout(timer)\n el.removeEventListener('mouseover', onOver)\n el.removeEventListener('mouseout', onOut)\n el.removeEventListener('focusin', onFocusin)\n el.removeEventListener('focusout', hide)\n el.removeEventListener('scroll', hide, true)\n el.removeEventListener('mousedown', hide)\n }\n }, [root])\n\n if (!tip) return null\n // position: fixed; kökün içinde kalır, yoğunluk ve font token'larını oradan alır.\n return (\n <div ref={ref} className=\"dt-tip\" role=\"tooltip\" style={{ top: tip.top }}>\n {tip.text}\n </div>\n )\n}\n","// Durum mesajı bloğu (handoff 02-ortak §9, T9): gövdenin ortasında, en fazla 440 px; ikon kutusu 40, başlık 15/600, satırlar 13.\nimport { FileIcon, FunnelIcon, MagnifyingGlassIcon, PackageIcon, WarningCircleIcon } from '@phosphor-icons/react'\nimport type { ReactNode } from 'react'\n\nconst ICONS = {\n empty: PackageIcon,\n noResults: FunnelIcon,\n noResultsSearch: MagnifyingGlassIcon,\n error: WarningCircleIcon,\n noRowsOnPage: FileIcon,\n}\n\nexport function StateMessage({\n kind,\n title,\n lines = [],\n actions,\n after,\n}: {\n kind: keyof typeof ICONS\n title: string\n lines?: string[]\n actions?: ReactNode\n after?: ReactNode\n}) {\n const Icon = ICONS[kind]\n return (\n <div className={`dt-state is-${kind}`} role={kind === 'error' ? 'alert' : 'status'}>\n <span className=\"dt-state-icon\" aria-hidden=\"true\">\n <Icon size={20} />\n </span>\n <strong className=\"dt-state-title\">{title}</strong>\n {lines.map((line) => (\n <p key={line} className=\"dt-state-line\">\n {line}\n </p>\n ))}\n {actions && <div className=\"dt-state-actions\">{actions}</div>}\n {after}\n </div>\n )\n}\n","// Display popover'ı (05 §3, §5; T3-06, T4-04/05): Density · Vertical grid lines · Columns › · Saved for you only + Reset.\n// Columns › dialog'u açar (D45); dialog tabloya aittir, sütun menüsü de açar. Sort › yok: sıralama header'dan.\nimport { Popover } from '@base-ui/react/popover'\nimport { Toggle } from '@base-ui/react/toggle'\nimport { ToggleGroup } from '@base-ui/react/toggle-group'\nimport { CaretRightIcon, SlidersHorizontalIcon } from '@phosphor-icons/react'\nimport { useRef, useState } from 'react'\nimport type { Density } from '../../types/core'\nimport { useDataTableContext } from '../provider'\nimport { DtSwitch } from '../ui/switch'\n\nconst DENSITIES: Density[] = ['comfortable', 'standard', 'compact']\n\nexport function DisplayPopover({\n density,\n onDensity,\n verticalLines,\n onVerticalLines,\n counts,\n onColumns,\n persistent,\n onReset,\n iconOnly,\n}: {\n density: Density\n /** Verilmezse (yoğunluk uygulamada sabit) seçici yok. */\n onDensity?: (d: Density) => void\n verticalLines: boolean\n onVerticalLines: (on: boolean) => void\n counts: { shown: number; total: number }\n /** Columns dialog'unu açar; dialog kapanınca odak Display düğmesine döner. */\n onColumns: (from: HTMLElement | null) => void\n /** Tercih deposu varsa \"Saved for you only\". */\n persistent: boolean\n onReset: () => void\n iconOnly?: boolean\n}) {\n const { i18n } = useDataTableContext()\n const [open, setOpen] = useState(false)\n const trigger = useRef<HTMLButtonElement>(null)\n const openColumns = () => {\n setOpen(false)\n onColumns(trigger.current)\n }\n\n return (\n <Popover.Root open={open} onOpenChange={(o) => setOpen(o)}>\n <Popover.Trigger\n ref={trigger}\n className={iconOnly ? 'dt-btn has-icon dt-btn-icon' : 'dt-btn has-icon'}\n aria-label={i18n.t('toolbar.display')}\n data-dt-tip={iconOnly ? i18n.t('toolbar.display') : undefined}\n >\n <SlidersHorizontalIcon size={16} aria-hidden=\"true\" />\n {!iconOnly && <span>{i18n.t('toolbar.display')}</span>}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner className=\"dt-positioner\" align=\"end\" sideOffset={4}>\n <Popover.Popup className=\"dt-pop dt-display\">\n {onDensity && (\n <>\n <div className=\"dt-pop-label\">{i18n.t('display.density')}</div>\n <ToggleGroup\n className=\"dt-seg dt-seg-sm dt-display-density\"\n value={[density]}\n onValueChange={(v) => v[0] && onDensity(v[0] as Density)}\n >\n {DENSITIES.map((d) => (\n <Toggle key={d} className=\"dt-seg-item\" value={d} data-state={d === density ? 'on' : 'off'}>\n {i18n.t(`display.${d}`)}\n </Toggle>\n ))}\n </ToggleGroup>\n </>\n )}\n <label className=\"dt-pop-item\">\n {i18n.t('display.verticalLines')}\n <DtSwitch className=\"dt-pop-end\" checked={verticalLines} onChange={onVerticalLines} />\n </label>\n <div className=\"dt-pop-sep\" />\n <button type=\"button\" className=\"dt-pop-item\" onClick={openColumns}>\n {i18n.t('display.columns')}\n <span className=\"dt-pop-value\">{i18n.t('columns.shownOf', counts)}</span>\n <CaretRightIcon size={14} aria-hidden=\"true\" />\n </button>\n <div className=\"dt-pop-foot\">\n <span>{persistent ? i18n.t('display.savedForYou') : ''}</span>\n <button type=\"button\" className=\"dt-pop-action\" onClick={onReset}>\n {i18n.t('common.reset')}\n </button>\n </div>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n","// More ⋯ menüsü (05 §3): yalnızca uygulamanın verdiği eylemler ve ayarlar; Refresh `R`, Auto-refresh anahtarı.\n// Export › CSV / Excel (D46); içe aktarma bu sürümde yok (R1).\nimport { Menu } from '@base-ui/react/menu'\nimport { DotsThreeIcon } from '@phosphor-icons/react'\nimport { useId } from 'react'\nimport { useDataTableContext } from '../provider'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\n\nexport function MoreMenu({\n exportHint,\n onExport,\n onRefresh,\n onPrint,\n autoRefresh,\n autoRefreshOn,\n onAutoRefresh,\n}: {\n /** Export'un altındaki satır: \"100 satır dışa aktarılır\"; verilmezse Export yok. */\n exportHint?: string\n onExport: (format: 'csv' | 'xlsx') => void\n onRefresh?: () => void\n onPrint?: () => void\n /** Uygulama `autoRefresh` saniyesi verdiyse anahtar görünür. */\n autoRefresh: boolean\n autoRefreshOn: boolean\n onAutoRefresh: (on: boolean) => void\n}) {\n const { i18n } = useDataTableContext()\n const hintId = useId()\n return (\n <DtMenu\n className=\"dt-more-menu\"\n trigger={\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-icon\"\n aria-label={i18n.t('toolbar.more')}\n data-dt-tip={i18n.t('toolbar.more')}\n >\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {exportHint && (\n <Menu.SubmenuRoot>\n <Menu.SubmenuTrigger className=\"dt-menu-item\" aria-label={i18n.t('sheet.export')} aria-describedby={hintId}>\n <span className=\"dt-item-lines\">\n {i18n.t('sheet.export')}\n <span id={hintId} className=\"dt-item-hint\">\n {exportHint}\n </span>\n </span>\n </Menu.SubmenuTrigger>\n <Menu.Portal>\n <Menu.Positioner className=\"dt-positioner\" sideOffset={4}>\n <Menu.Popup className=\"dt-menu\">\n <DtMenuItem onSelect={() => onExport('csv')}>{i18n.t('toolbar.csv')}</DtMenuItem>\n <DtMenuItem onSelect={() => onExport('xlsx')}>{i18n.t('toolbar.xlsx')}</DtMenuItem>\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.SubmenuRoot>\n )}\n {onPrint && <DtMenuItem onSelect={onPrint}>{i18n.t('toolbar.print')}</DtMenuItem>}\n {(exportHint || onPrint) && (onRefresh || autoRefresh) && <DtMenuSeparator />}\n {onRefresh && (\n <DtMenuItem onSelect={onRefresh}>\n {i18n.t('toolbar.refresh')}\n <kbd className=\"dt-kbd\">R</kbd>\n </DtMenuItem>\n )}\n {autoRefresh && (\n <Menu.CheckboxItem\n className=\"dt-menu-item\"\n checked={autoRefreshOn}\n onCheckedChange={(v) => onAutoRefresh(v)}\n closeOnClick\n >\n {i18n.t('toolbar.autoRefresh')}\n <span\n className=\"dt-switch dt-pop-end\"\n data-state={autoRefreshOn ? 'checked' : 'unchecked'}\n aria-hidden=\"true\"\n >\n <span className=\"dt-switch-thumb\" />\n </span>\n </Menu.CheckboxItem>\n )}\n </DtMenu>\n )\n}\n","// Telefon ⋯ alt sayfası (handoff 04 §6.4, T13-07): Display (Density › · Columns (dialog, D45) · Sort ›) · Print · Refresh ·\n// Export › (D46) · Auto-refresh · \"Saved for you only\" + Reset. Masaüstündeki Display popover'ının ve ⋯ menüsünün yerini\n// alır. Sort paneli yalnızca burada: masaüstünde sıralama header'dan.\nimport {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CheckIcon,\n DotsThreeIcon,\n XIcon,\n} from '@phosphor-icons/react'\nimport { lazy, Suspense, useId, useRef, useState } from 'react'\nimport type { Density } from '../../types/core'\nimport type { SortRule } from '../../types/query'\nimport type { ColumnsDraft, PanelColumn } from '../columns/use-column-layout'\nimport { useDataTableContext } from '../provider'\nimport { BottomSheet } from '../ui/bottom-sheet'\nimport { DtSwitch } from '../ui/switch'\n\nconst ColumnsDialog = lazy(() => import('./columns-dialog')) as unknown as typeof import('./columns-dialog').default\nconst DENSITIES: Density[] = ['comfortable', 'standard', 'compact']\nconst TITLES = {\n main: 'toolbar.more',\n density: 'display.density',\n sort: 'display.sort',\n export: 'sheet.export',\n} as const\ntype Level = keyof typeof TITLES\n\nexport function PhoneMoreSheet<Row extends object>({\n density,\n onDensity,\n columns,\n counts,\n onColumnsSave,\n sort,\n onSort,\n persistent,\n onReset,\n exportHint,\n onExport,\n onRefresh,\n onPrint,\n autoRefresh,\n autoRefreshOn,\n onAutoRefresh,\n}: {\n density: Density\n /** Verilmezse (yoğunluk uygulamada sabit) Density › yok. */\n onDensity?: (d: Density) => void\n columns: Array<PanelColumn<Row>>\n counts: { shown: number; total: number }\n onColumnsSave: (draft: ColumnsDraft) => void\n sort: SortRule[]\n /** Yön değişimi, kaldırma, temizleme: yeni kural listesi (sayfa 1). */\n onSort: (sort: SortRule[]) => void\n persistent: boolean\n onReset: () => void\n /** Export'un altındaki satır: \"100 satır dışa aktarılır\"; verilmezse Export yok. */\n exportHint?: string\n onExport: (format: 'csv' | 'xlsx') => void\n onRefresh?: () => void\n onPrint?: () => void\n autoRefresh: boolean\n autoRefreshOn: boolean\n onAutoRefresh: (on: boolean) => void\n}) {\n const { i18n } = useDataTableContext()\n const hintId = useId()\n const [open, setOpen] = useState(false)\n const [level, setLevel] = useState<Level>('main')\n const [columnsOpen, setColumnsOpen] = useState(false)\n const [columnsUsed, setColumnsUsed] = useState(false)\n const trigger = useRef<HTMLButtonElement>(null)\n const headerOf = (id: string) => columns.find((c) => c.id === id)?.def.header ?? id\n const lead = sort[0]\n const sortSummary = lead\n ? `${headerOf(lead.column)} ${lead.dir === 'asc' ? '↑' : '↓'}${sort.length > 1 ? ` +${sort.length - 1}` : ''}`\n : i18n.t('common.empty')\n const hasActions = !!(exportHint || onPrint || onRefresh || autoRefresh)\n const setOpenAll = (o: boolean) => {\n setOpen(o)\n if (!o) setLevel('main')\n }\n const close = (fn: () => void) => {\n setOpenAll(false)\n fn()\n }\n\n return (\n <>\n <BottomSheet\n open={open}\n onOpenChange={setOpenAll}\n title={i18n.t(TITLES[level])}\n hideTitle={level === 'main'}\n className=\"dt-more-sheet\"\n trigger={\n <button\n ref={trigger}\n type=\"button\"\n className=\"dt-btn dt-btn-icon dt-more-trigger\"\n aria-label={i18n.t('toolbar.more')}\n >\n <DotsThreeIcon size={20} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n headStart={\n level !== 'main' && (\n <button\n type=\"button\"\n className=\"dt-bsheet-back\"\n aria-label={i18n.t('common.back')}\n onClick={() => setLevel('main')}\n >\n <CaretLeftIcon size={20} aria-hidden=\"true\" />\n </button>\n )\n }\n >\n {level === 'main' && (\n <>\n <div className=\"dt-bsheet-label\">{i18n.t('toolbar.display')}</div>\n {onDensity && (\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => setLevel('density')}>\n {i18n.t('display.density')}\n <span className=\"dt-bsheet-value\">{i18n.t(`display.${density}`)}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n )}\n <button\n type=\"button\"\n className=\"dt-bsheet-row\"\n onClick={() =>\n close(() => {\n setColumnsUsed(true)\n setColumnsOpen(true)\n })\n }\n >\n {i18n.t('display.columns')}\n <span className=\"dt-bsheet-value\">{i18n.t('columns.shownOf', counts)}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => setLevel('sort')}>\n {i18n.t('display.sort')}\n <span className=\"dt-bsheet-value\">{sortSummary}</span>\n <CaretRightIcon size={16} aria-hidden=\"true\" />\n </button>\n {hasActions && <div className=\"dt-bsheet-sep\" />}\n {exportHint && (\n <button\n type=\"button\"\n className=\"dt-bsheet-row\"\n aria-label={i18n.t('sheet.export')}\n aria-describedby={hintId}\n onClick={() => setLevel('export')}\n >\n <span className=\"dt-item-lines\">\n {i18n.t('sheet.export')}\n <span id={hintId} className=\"dt-item-hint\">\n {exportHint}\n </span>\n </span>\n <CaretRightIcon size={16} className=\"dt-bsheet-end\" aria-hidden=\"true\" />\n </button>\n )}\n {onPrint && (\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(onPrint)}>\n {i18n.t('toolbar.print')}\n </button>\n )}\n {onRefresh && (\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(onRefresh)}>\n {i18n.t('toolbar.refresh')}\n </button>\n )}\n {autoRefresh && (\n <label className=\"dt-bsheet-row\">\n {i18n.t('toolbar.autoRefresh')}\n <DtSwitch className=\"dt-bsheet-end\" checked={autoRefreshOn} onChange={onAutoRefresh} />\n </label>\n )}\n <div className=\"dt-bsheet-note\">\n <span>{persistent ? i18n.t('display.savedForYou') : ''}</span>\n <button type=\"button\" className=\"dt-bsheet-action\" onClick={onReset}>\n {i18n.t('common.reset')}\n </button>\n </div>\n </>\n )}\n\n {level === 'density' &&\n DENSITIES.map((d) => (\n <button\n key={d}\n type=\"button\"\n className=\"dt-bsheet-row\"\n onClick={() => {\n onDensity?.(d)\n setLevel('main')\n }}\n >\n {i18n.t(`display.${d}`)}\n {d === density && <CheckIcon size={18} className=\"dt-bsheet-end dt-bsheet-check\" aria-hidden=\"true\" />}\n </button>\n ))}\n\n {level === 'export' && (\n <>\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(() => onExport('csv'))}>\n {i18n.t('toolbar.csv')}\n </button>\n <button type=\"button\" className=\"dt-bsheet-row\" onClick={() => close(() => onExport('xlsx'))}>\n {i18n.t('toolbar.xlsx')}\n </button>\n </>\n )}\n\n {level === 'sort' && (\n <>\n {sort.map((s, i) => {\n const Arrow = s.dir === 'asc' ? ArrowUpIcon : ArrowDownIcon\n return (\n <div key={s.column} className=\"dt-col-row dt-sort-row\">\n <span className=\"dt-head-sort-index\">{i + 1}</span>\n <span className=\"dt-col-name\">{headerOf(s.column)}</span>\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-xs has-icon\"\n onClick={() =>\n onSort(\n sort.map((r) => (r.column === s.column ? { ...r, dir: r.dir === 'asc' ? 'desc' : 'asc' } : r)),\n )\n }\n >\n <Arrow size={12} aria-hidden=\"true\" />\n {i18n.t(s.dir === 'asc' ? 'sr.asc' : 'sr.desc')}\n </button>\n <button\n type=\"button\"\n className=\"dt-icon-btn-sm\"\n aria-label={i18n.t('header.clearSort')}\n onClick={() => onSort(sort.filter((r) => r.column !== s.column))}\n >\n <XIcon size={14} aria-hidden=\"true\" />\n </button>\n </div>\n )\n })}\n <div className=\"dt-pop-foot\">\n <span>{i18n.t('sort.addHint')}</span>\n <button type=\"button\" className=\"dt-pop-action\" disabled={!sort.length} onClick={() => onSort([])}>\n {i18n.t('header.clearSort')}\n </button>\n </div>\n </>\n )}\n </BottomSheet>\n {columnsUsed && (\n <Suspense fallback={null}>\n <ColumnsDialog\n open={columnsOpen}\n onOpenChange={setColumnsOpen}\n columns={columns}\n onSave={onColumnsSave}\n finalFocus={trigger}\n phone\n />\n </Suspense>\n )}\n </>\n )\n}\n","// Toolbar araması (04 §5, D3): çip üretmez; 250 ms gecikme; Esc önce temizler, ikinci Esc odaktan çıkar; `/` dışarıdan odaklar.\nimport { MagnifyingGlassIcon, XCircleIcon, XIcon } from '@phosphor-icons/react'\nimport { useState, type Ref } from 'react'\nimport { useDelay } from '../interaction/use-delay'\nimport { useDataTableContext } from '../provider'\n\nexport function SearchBox({\n value,\n placeholder,\n onChange,\n inputRef,\n onBlur,\n phone,\n}: {\n value: string\n placeholder: string\n onChange: (value: string) => void\n inputRef?: Ref<HTMLInputElement>\n onBlur?: () => void\n /** Telefon araması (T13-03): ikon 18, dolu XCircle temizleme, kısayol rozeti yok. */\n phone?: boolean\n}) {\n const { i18n } = useDataTableContext()\n const [draft, setDraft] = useState(value)\n // Dışarıdan gelen değer (Clear search, geri tuşu) taslağa yazılır. Kendi gönderdiğimiz değer URL'den geç dönebilir:\n // o arada yazılanlar ezilmesin.\n const [seen, setSeen] = useState(value)\n const [sent, setSent] = useState(value)\n if (seen !== value) {\n setSeen(value)\n if (value !== sent) setDraft(value)\n }\n const delay = useDelay(250)\n const send = (text: string) => {\n setSent(text)\n onChange(text)\n }\n const commit = (text: string, now = false) => {\n setDraft(text)\n if (now) {\n delay.cancel()\n send(text)\n } else delay.run(() => send(text))\n }\n\n return (\n <label className=\"dt-input dt-search has-icon\" onBlur={onBlur}>\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={phone ? 18 : 16} aria-hidden=\"true\" />\n </span>\n <input\n ref={inputRef}\n type=\"search\"\n value={draft}\n placeholder={placeholder}\n aria-label={placeholder}\n autoComplete=\"off\"\n onChange={(e) => commit(e.target.value)}\n onKeyDown={(e) => {\n if (e.key !== 'Escape') return\n e.preventDefault()\n if (draft) commit('', true)\n else e.currentTarget.blur()\n }}\n />\n <span className=\"dt-input-end\">\n {draft ? (\n <button\n type=\"button\"\n className=\"dt-input-clear\"\n aria-label={i18n.t('common.clear')}\n onClick={() => commit('', true)}\n >\n {phone ? (\n <XCircleIcon size={20} weight=\"fill\" aria-hidden=\"true\" />\n ) : (\n <XIcon size={14} aria-hidden=\"true\" />\n )}\n </button>\n ) : (\n !phone && (\n <kbd className=\"dt-kbd\" aria-hidden=\"true\">\n /\n </kbd>\n )\n )}\n </span>\n </label>\n )\n}\n","// Toolbar (05 §3, §11; T1, T13): yalnızca yapılandırılmış yuvalar; daralma kartın genişliğiyle (`size`, DataTable ölçer).\n// Sıra: görünüm · [arama · Filter] (tam ortada) · [Display · ⋯] │ birincil (köşeli parantez: birleşik düğme grubu, D43).\n// 640–1023 px'de arama ikona döner, tıklanınca açılır. <640 telefon (yanlar ve gruplar display: contents, düz flex sırası):\n// görünüm · boşluk · arama · Filter · ⋯ · ayırıcı · birincil (CSS order); arama açılınca araç çubuğunun yerini alır (T13-03),\n// Cancel temizleyip kapatır.\nimport { MagnifyingGlassIcon } from '@phosphor-icons/react'\nimport { useImperativeHandle, useRef, useState, type ReactNode, type Ref } from 'react'\nimport { useDataTableContext } from '../provider'\nimport { SearchBox } from './search-box'\n\nexport type ToolbarSize = 'full' | 'narrow' | 'phone'\nexport interface ToolbarHandle {\n /** `/` kısayolu: dar kartta önce aramayı açar. */\n focusSearch: () => void\n}\n\nexport function Toolbar({\n size,\n view,\n search,\n searchPlaceholder,\n onSearch,\n filter,\n display,\n more,\n end,\n ref,\n}: {\n size: ToolbarSize\n /** Görünüm menüsü (04 §7), en solda. */\n view?: ReactNode\n /** null: arama yuvası yok. */\n search: string | null\n searchPlaceholder: string\n onSearch: (value: string) => void\n filter?: ReactNode\n display?: ReactNode\n more?: ReactNode\n /** Ekrana özgü birincil aksiyon (R3: Vue'daki `#toolbar-end` slot'u). */\n end?: ReactNode\n ref?: Ref<ToolbarHandle>\n}) {\n const { i18n } = useDataTableContext()\n const [open, setOpen] = useState(false)\n const input = useRef<HTMLInputElement>(null)\n const phone = size === 'phone'\n const collapsed = size !== 'full' && !open && !search\n const phoneSearch = phone && !collapsed\n const openSearch = () => {\n setOpen(true)\n requestAnimationFrame(() => input.current?.focus())\n }\n useImperativeHandle(ref, () => ({\n focusSearch: () => (collapsed ? openSearch() : input.current?.focus()),\n }))\n\n if (phoneSearch)\n return (\n <div className=\"dt-toolbar is-phone\" role=\"toolbar\">\n <SearchBox value={search ?? ''} placeholder={searchPlaceholder} onChange={onSearch} inputRef={input} phone />\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-ghost dt-search-cancel\"\n onClick={() => {\n setOpen(false)\n onSearch('')\n }}\n >\n {i18n.t('common.cancel')}\n </button>\n </div>\n )\n\n return (\n <div className={`dt-toolbar is-${size} is-zoned`} role=\"toolbar\">\n <div className=\"dt-toolbar-side is-start\">{view}</div>\n <div className=\"dt-btn-group\">\n {search !== null &&\n (collapsed ? (\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-icon dt-search-open\"\n aria-label={searchPlaceholder}\n data-dt-tip={searchPlaceholder}\n onClick={openSearch}\n >\n <MagnifyingGlassIcon size={phone ? 20 : 16} aria-hidden=\"true\" />\n </button>\n ) : (\n <SearchBox\n value={search}\n placeholder={searchPlaceholder}\n onChange={onSearch}\n inputRef={input}\n onBlur={() => setOpen(false)}\n />\n ))}\n {filter}\n </div>\n <span className=\"dt-toolbar-spacer\" />\n <div className=\"dt-toolbar-side is-end\">\n <div className=\"dt-btn-group\">\n {display}\n {more}\n </div>\n {end && (\n <>\n <span className=\"dt-toolbar-sep\" aria-hidden=\"true\" />\n <span className=\"dt-toolbar-end\">{end}</span>\n </>\n )}\n </div>\n </div>\n )\n}\n","// Onay dialog'u (brief §5.7, handoff 02 §6, 08): `alertdialog`, 460 px, ilk odak güvenli düğme (Cancel), yıkıcı düğme kırmızı.\nimport { AlertDialog } from '@base-ui/react/alert-dialog'\nimport { useRef } from 'react'\nimport { useDataTableContext } from '../provider'\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n body,\n confirmLabel,\n danger,\n onConfirm,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n title: string\n body?: string\n confirmLabel: string\n danger?: boolean\n onConfirm: () => void\n}) {\n const { i18n } = useDataTableContext()\n const cancel = useRef<HTMLButtonElement>(null)\n return (\n <AlertDialog.Root open={open} onOpenChange={(o) => onOpenChange(o)}>\n <AlertDialog.Portal>\n <AlertDialog.Backdrop className=\"dt-scrim\" />\n <AlertDialog.Popup className=\"dt-dialog dt-dialog-confirm\" initialFocus={cancel}>\n <AlertDialog.Title className=\"dt-dialog-title\">{title}</AlertDialog.Title>\n {body && <AlertDialog.Description className=\"dt-dialog-body\">{body}</AlertDialog.Description>}\n <div className=\"dt-dialog-actions\">\n <AlertDialog.Close ref={cancel} className=\"dt-btn\">\n {i18n.t('common.cancel')}\n </AlertDialog.Close>\n <button\n type=\"button\"\n className={danger ? 'dt-btn dt-btn-danger' : 'dt-btn dt-btn-primary'}\n onClick={() => {\n onConfirm()\n onOpenChange(false)\n }}\n >\n {confirmLabel}\n </button>\n </div>\n </AlertDialog.Popup>\n </AlertDialog.Portal>\n </AlertDialog.Root>\n )\n}\n","// Save as new view (04 §7, handoff 03 §4.2, T3-04) ve Rename: Name (odaklı; Duplicate'ten \"{ad} copy\" seçili), özet,\n// Make this my default view. Enter kaydeder; hata alanın altında. Her açılışta yeniden kurulur (DataTable `key` verir).\nimport { Dialog } from '@base-ui/react/dialog'\nimport { useRef, useState } from 'react'\nimport { useDataTableContext } from '../provider'\nimport type { NameError } from './model'\n\nexport interface ViewSummary {\n filters: string\n sort: string\n columns: string\n}\n\nexport function ViewDialog({\n open,\n onOpenChange,\n mode,\n name: initialName,\n summary,\n validate,\n onSave,\n}: {\n open: boolean\n onOpenChange: (open: boolean) => void\n mode: 'create' | 'rename'\n name: string\n /** Yalnızca create: Filters / Sort / Columns satırları. */\n summary: ViewSummary | null\n validate: (name: string) => NameError | null\n onSave: (input: { name: string; makeDefault: boolean }) => void\n}) {\n const { i18n } = useDataTableContext()\n const [name, setName] = useState(initialName)\n const [makeDefault, setMakeDefault] = useState(false)\n const [error, setError] = useState<NameError | null>(null)\n const input = useRef<HTMLInputElement>(null)\n\n return (\n <Dialog.Root open={open} onOpenChange={(o) => onOpenChange(o)}>\n <Dialog.Portal>\n <Dialog.Backdrop className=\"dt-scrim\" />\n <Dialog.Popup\n className=\"dt-dialog dt-view-dialog\"\n initialFocus={() => {\n // Duplicate'te dolu gelen ad seçili: yazmak onu değiştirir.\n input.current?.select()\n return input.current\n }}\n >\n <form\n onSubmit={(e) => {\n e.preventDefault()\n const err = validate(name)\n setError(err)\n if (err) return\n onSave({ name: name.trim(), makeDefault })\n onOpenChange(false)\n }}\n >\n <Dialog.Title className=\"dt-dialog-title\">\n {i18n.t(mode === 'rename' ? 'views.rename' : 'views.dialogTitle')}\n </Dialog.Title>\n {mode === 'create' && (\n <Dialog.Description className=\"dt-dialog-body\">{i18n.t('views.dialogBody')}</Dialog.Description>\n )}\n <label className=\"dt-field\">\n <span className=\"dt-field-label\">{i18n.t('views.name')}</span>\n <span className=\"dt-input\">\n <input\n ref={input}\n value={name}\n type=\"text\"\n aria-invalid={error ? true : undefined}\n onChange={(e) => setName(e.target.value)}\n />\n </span>\n {error && (\n <span className=\"dt-field-error\" role=\"alert\">\n {i18n.t(`views.err.${error}`)}\n </span>\n )}\n </label>\n {summary && (\n <div className=\"dt-view-summary\">\n <span>{i18n.t('views.filters')}</span>\n <span>{summary.filters}</span>\n <span>{i18n.t('views.sort')}</span>\n <span>{summary.sort}</span>\n <span>{i18n.t('views.columns')}</span>\n <span>{summary.columns}</span>\n </div>\n )}\n {mode === 'create' && (\n <label className=\"dt-check-row\">\n <input\n type=\"checkbox\"\n className=\"dt-checkbox\"\n checked={makeDefault}\n onChange={(e) => setMakeDefault(e.target.checked)}\n />\n {i18n.t('views.makeDefault')}\n </label>\n )}\n <div className=\"dt-dialog-actions\">\n <Dialog.Close className=\"dt-btn\">{i18n.t('common.cancel')}</Dialog.Close>\n <button type=\"submit\" className=\"dt-btn dt-btn-primary\">\n {i18n.t(mode === 'rename' ? 'common.save' : 'views.save')}\n </button>\n </div>\n </form>\n </Dialog.Popup>\n </Dialog.Portal>\n </Dialog.Root>\n )\n}\n","// Görünüm seçici + menüsü (04 §7, handoff 03 §4.1, T3-01/02/03; R15): System / My views bölümleri (D30: paylaşım yok),\n// satır ⋯ menüsü; altta düzenlenmişse kaydetme satırı (D27), değilse New view. Kısayol `V` DataTable'da.\n// Liste ARIA grid'idir (Vue'da reka Listbox; 7c'de axe'e göre ayrıldı): ↑↓ vurguyu taşır (`aria-activedescendant` satırın\n// görünüm hücresine), Enter seçer; Tab satırların ⋯ düğmelerine ve alttaki düğmelere gider. Görünüm çoksa (R15) odak\n// Find a view… aramasındadır (combobox + grid popup), azsa listenin kendisinde. Base UI Combobox liste içindeki\n// düğmeleri Tab sırasından çıkardığı için kullanılmadı.\nimport { Popover } from '@base-ui/react/popover'\nimport {\n CaretDownIcon,\n CheckIcon,\n DotsThreeIcon,\n MagnifyingGlassIcon,\n PlusIcon,\n StackIcon,\n} from '@phosphor-icons/react'\nimport { useId, useState, type FocusEvent, type KeyboardEvent } from 'react'\nimport type { View } from '../../types/views'\nimport { SAVE_KBD } from '../interaction/kbd'\nimport { useDataTableContext } from '../provider'\nimport { BottomSheet } from '../ui/bottom-sheet'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../ui/menu'\n\n/** Bu sayıdan az görünümde arama yok (R15): liste bir bakışta okunur. */\nconst SEARCH_MIN_VIEWS = 8\n\nexport function ViewMenu({\n sections,\n active,\n edited,\n hasDraft,\n defaultId,\n canSave,\n canWrite,\n open,\n onOpenChange,\n onSelect,\n onSaveChanges,\n onSaveAs,\n onDiscard,\n onRename,\n onDuplicate,\n onSetDefault,\n onDelete,\n sheet,\n}: {\n sections: { system: View[]; personal: View[] }\n active: View | null\n edited: boolean\n hasDraft: (id: string) => boolean\n defaultId: string | null\n /** Adapter var: kaydetme, New view, Duplicate. */\n canSave: boolean\n /** Aktif görünüm üzerine yazılabilir (personal). */\n canWrite: boolean\n open: boolean\n onOpenChange: (open: boolean) => void\n onSelect: (id: string) => void\n onSaveChanges: () => void\n /** Save as new view… / Save as my view… / New view: mevcut durumla. */\n onSaveAs: () => void\n onDiscard: () => void\n onRename: (view: View) => void\n onDuplicate: (view: View) => void\n /** `null`: varsayılan kaldırılır, açılış system default'a döner (R6). */\n onSetDefault: (id: string | null) => void\n onDelete: (view: View) => void\n /** Telefon: popover yerine alt sayfa (T13-06). */\n sheet?: boolean\n}) {\n const { i18n } = useDataTableContext()\n const [q, setQ] = useState('')\n // Vurgulu satır: açılışta aktif görünüm (menü `V` ile dışarıdan da açılır), yazınca ilk eşleşme (reka Listbox).\n const [moved, setMoved] = useState<string | null>(null)\n const hl = moved ?? active?.id ?? null\n const setHl = (id: string | null) => setMoved(id ?? '')\n const listId = useId()\n const name = active?.name ?? i18n.t('views.title')\n const needle = q.toLocaleLowerCase()\n const groups = (\n [\n ['system', 'views.system'],\n ['personal', 'views.mine'],\n ] as const\n )\n .map(([key, title]) => ({\n key,\n title,\n views: sections[key].filter((v) => !q || v.name.toLocaleLowerCase().includes(needle)),\n }))\n .filter((g) => g.views.length)\n // Aktif görünümün durumu alttaki kaydetme satırındadır; listede yalnızca bırakılmış taslaklar işaretlenir.\n const isEdited = (v: View) => v.id !== active?.id && hasDraft(v.id)\n const searchable = sections.system.length + sections.personal.length >= SEARCH_MIN_VIEWS\n const canEdit = (v: View) => canSave && v.kind !== 'system'\n const flat = groups.flatMap((g) => g.views)\n const setOpen = (o: boolean) => {\n onOpenChange(o)\n setQ('')\n setMoved(null)\n }\n const pick = (id: string) => {\n setOpen(false)\n onSelect(id)\n }\n const optionId = (id: string) => `${listId}-${id}`\n // Odak arama ve listeden çıkınca (ör. New view) vurgu kalkar: aynı anda iki odak işareti olmasın (reka Listbox).\n const leave = (e: FocusEvent<HTMLElement>) => {\n const to = e.relatedTarget as HTMLElement | null\n if (!to || (to.id !== `${listId}-q` && !document.getElementById(listId)?.contains(to))) setHl(null)\n }\n /** Dialog açan eylemler popover kapandıktan sonra: kapanış odağı tetikleyiciye dönerken dialog'u kapatmasın. */\n const after = (fn: () => void) => {\n setOpen(false)\n setTimeout(fn, 0)\n }\n const triggerLabel = i18n.t(edited ? 'sr.viewEdited' : 'sr.view', { name })\n const triggerContent = (\n <>\n <span className=\"dt-view-icon\" aria-hidden=\"true\">\n <StackIcon size={16} />\n </span>\n {/* Boşluk görünmez (flex) ama görünen metni \"All orders Edited\" yapar; ad onu içermeli (WCAG 2.5.3). */}\n <span className=\"dt-view-name\">{name}</span>\n {edited && (\n <>\n {' '}\n <span className=\"dt-view-dot\" aria-hidden=\"true\" />\n <span className=\"dt-view-edited\">{i18n.t('views.edited')}</span>\n </>\n )}\n <CaretDownIcon size={14} aria-hidden=\"true\" />\n </>\n )\n const focusList = () => document.getElementById(searchable ? `${listId}-q` : listId)\n const onListKey = (e: KeyboardEvent<HTMLElement>) => {\n const i = flat.findIndex((v) => v.id === hl)\n const step = { ArrowDown: 1, ArrowUp: -1 }[e.key]\n if (step) {\n e.preventDefault()\n const next = flat[Math.min(flat.length - 1, Math.max(0, i < 0 ? 0 : i + step))]\n if (next) setHl(next.id)\n } else if (e.key === 'Home' || e.key === 'End') {\n e.preventDefault()\n setHl((e.key === 'Home' ? flat[0] : flat.at(-1))?.id ?? null)\n } else if (e.key === 'Enter' && i >= 0 && e.target === e.currentTarget) {\n e.preventDefault()\n pick(flat[i]!.id)\n }\n }\n const activeDescendant = hl && flat.some((v) => v.id === hl) ? optionId(hl) : undefined\n const content = (\n <>\n {searchable && (\n <label className=\"dt-input has-icon dt-picker-search\">\n <span className=\"dt-input-icon\">\n <MagnifyingGlassIcon size={14} aria-hidden=\"true\" />\n </span>\n <input\n id={`${listId}-q`}\n type=\"text\"\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-haspopup=\"grid\"\n aria-controls={listId}\n aria-activedescendant={activeDescendant}\n autoComplete=\"off\"\n value={q}\n placeholder={i18n.t('views.find')}\n aria-label={i18n.t('views.find')}\n onBlur={leave}\n onChange={(e) => {\n const text = e.target.value\n setQ(text)\n const first = sections.system\n .concat(sections.personal)\n .find((v) => v.name.toLocaleLowerCase().includes(text.toLocaleLowerCase()))\n setHl(first?.id ?? null)\n }}\n onKeyDown={onListKey}\n />\n </label>\n )}\n {/* Combobox + grid popup (ARIA 1.2): satır = görünüm hücresi + ⋯ hücresi. listbox yalnızca option alabildiği için\n satırdaki ⋯ düğmesi onu bozuyordu (axe aria-required-children). Grup başlığı satır değil: rowgroup'un adı. */}\n <div\n id={listId}\n role={groups.length ? 'grid' : undefined}\n className=\"dt-views-list\"\n aria-label={groups.length ? i18n.t('views.title') : undefined}\n // Arama yoksa odak listededir: klavye ve vurgu onunla.\n tabIndex={searchable ? undefined : 0}\n aria-activedescendant={searchable ? undefined : activeDescendant}\n onKeyDown={searchable ? undefined : onListKey}\n onBlur={leave}\n >\n {groups.map((g) => (\n <div key={g.key} role=\"rowgroup\" aria-labelledby={`${listId}-${g.key}`}>\n <div id={`${listId}-${g.key}`} className=\"dt-pop-label\" aria-hidden=\"true\">\n {i18n.t(g.title)}\n </div>\n {g.views.map((v) => (\n <div key={v.id} role=\"row\" className={v.id === active?.id ? 'dt-view-row is-active' : 'dt-view-row'}>\n <div\n id={optionId(v.id)}\n role=\"gridcell\"\n aria-selected={v.id === active?.id}\n className=\"dt-view-item\"\n // Açılışta vurgu yok, aktifi işaret gösterir; klavyeyle ya da yazınca taşınan vurgu çizilir.\n data-highlighted={moved && v.id === hl ? '' : undefined}\n onPointerEnter={() => setHl(v.id)}\n onClick={() => pick(v.id)}\n >\n <span className=\"dt-view-check\" aria-hidden=\"true\">\n {v.id === active?.id && <CheckIcon size={sheet ? 18 : 14} />}\n </span>\n <span className=\"dt-view-row-name\">{v.name}</span>\n {isEdited(v) && (\n <>\n <span className=\"dt-view-dot\" aria-hidden=\"true\" />\n <span className=\"dt-view-edited\">{i18n.t('views.edited')}</span>\n </>\n )}\n {v.id === defaultId && <span className=\"dt-view-default\">{i18n.t('views.default')}</span>}\n </div>\n <div role=\"gridcell\" className=\"dt-view-more-cell\">\n <DtMenu\n side=\"right\"\n align=\"start\"\n className=\"dt-view-row-menu\"\n trigger={\n <button type=\"button\" className=\"dt-icon-btn-sm dt-view-more\" aria-label={i18n.t('common.more')}>\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {canEdit(v) && (\n <DtMenuItem onSelect={() => after(() => onRename(v))}>{i18n.t('views.rename')}</DtMenuItem>\n )}\n {canSave && (\n <DtMenuItem onSelect={() => after(() => onDuplicate(v))}>{i18n.t('views.duplicate')}</DtMenuItem>\n )}\n {v.id === defaultId ? (\n <DtMenuItem destructive onSelect={() => onSetDefault(null)}>\n {i18n.t('views.removeDefault')}\n </DtMenuItem>\n ) : (\n <DtMenuItem onSelect={() => onSetDefault(v.id)}>{i18n.t('views.setDefault')}</DtMenuItem>\n )}\n {canEdit(v) && (\n <>\n <DtMenuSeparator />\n <DtMenuItem destructive onSelect={() => after(() => onDelete(v))}>\n {i18n.t('views.delete')}\n </DtMenuItem>\n </>\n )}\n {v.kind === 'system' && <div className=\"dt-view-note\">{i18n.t('views.systemNote')}</div>}\n </DtMenu>\n </div>\n </div>\n ))}\n </div>\n ))}\n {groups.length === 0 && <div className=\"dt-options-empty\">{i18n.t('views.noMatch')}</div>}\n </div>\n {edited && active ? (\n <div className=\"dt-views-foot\">\n <p className=\"dt-views-unsaved\">\n <span className=\"dt-view-dot\" aria-hidden=\"true\" />\n {i18n.t('views.unsaved')}\n </p>\n <div className=\"dt-views-foot-actions\">\n <button type=\"button\" className=\"dt-btn dt-btn-ghost dt-views-revert\" onClick={() => after(onDiscard)}>\n {i18n.t('views.discard')}\n </button>\n {canWrite ? (\n <>\n <button type=\"button\" className=\"dt-btn dt-btn-sm\" onClick={() => after(onSaveAs)}>\n {i18n.t('views.saveAsNew')}\n </button>\n <button type=\"button\" className=\"dt-btn dt-btn-sm dt-btn-primary\" onClick={() => after(onSaveChanges)}>\n {i18n.t('views.saveChanges')}\n <kbd className=\"dt-kbd\" aria-hidden=\"true\">\n {SAVE_KBD}\n </kbd>\n </button>\n </>\n ) : (\n canSave && (\n <button type=\"button\" className=\"dt-btn dt-btn-sm dt-btn-primary\" onClick={() => after(onSaveAs)}>\n {i18n.t('views.saveAsMine')}\n </button>\n )\n )}\n </div>\n </div>\n ) : (\n canSave && (\n <>\n <div className=\"dt-pop-sep\" />\n <button type=\"button\" className=\"dt-pop-item dt-view-new\" onClick={() => after(onSaveAs)}>\n <PlusIcon size={14} aria-hidden=\"true\" />\n {i18n.t('views.new')}\n </button>\n </>\n )\n )}\n </>\n )\n\n if (sheet)\n return (\n <BottomSheet\n open={open}\n onOpenChange={setOpen}\n title={i18n.t('views.title')}\n hideTitle\n className=\"dt-views\"\n initialFocus={focusList}\n trigger={\n <button type=\"button\" className=\"dt-btn dt-btn-ghost has-icon dt-view-trigger\" aria-label={triggerLabel}>\n {triggerContent}\n </button>\n }\n >\n {content}\n </BottomSheet>\n )\n return (\n <Popover.Root open={open} onOpenChange={(o) => setOpen(o)}>\n <Popover.Trigger className=\"dt-btn dt-btn-ghost has-icon dt-view-trigger\" aria-label={triggerLabel}>\n {triggerContent}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Positioner className=\"dt-positioner\" align=\"start\" sideOffset={4}>\n <Popover.Popup className=\"dt-pop dt-views\" initialFocus={focusList}>\n {content}\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n","// Bulk bar (05 §6, handoff 03 §7, T5-01/03/04): [sayaç] │ aksiyonlar (en fazla 3 `inBar`) │ ⋯ (kalanlar, yıkıcı en altta) │ ×.\n// Telefonda bar'da en fazla 2 aksiyon, kalanlar \"More\" alt sayfasında.\n// Yüzer (varsayılan: kartın altında ortada, 64 px, düzeni kaydırmaz) ya da araç çubuğunun yerine. `run(rows)` beklenmez (D20).\nimport { DotsThreeIcon, XIcon } from '@phosphor-icons/react'\nimport { Fragment, useState, type ReactNode } from 'react'\nimport { useDataTableContext } from '../core/provider'\nimport { BottomSheet } from '../core/ui/bottom-sheet'\nimport { DtMenu, DtMenuItem, DtMenuSeparator } from '../core/ui/menu'\nimport type { BulkAction } from '../types/list'\n\nexport function BulkBar<Row extends object>({\n rows,\n actions,\n variant,\n onClear,\n phone,\n children,\n}: {\n rows: Row[]\n actions: Array<BulkAction<Row>>\n variant: 'floating' | 'toolbar'\n onClear: () => void\n phone?: boolean\n /** `bulkActions` yerine uygulamanın içeriği. */\n children?: ReactNode\n}) {\n const { i18n } = useDataTableContext()\n const [moreOpen, setMoreOpen] = useState(false)\n // `when(rows)` false olan ne bar'da ne menüde (D36); menüde yıkıcılar en altta, ayırıcıdan sonra.\n const shown = actions.filter((a) => !a.when || a.when(rows))\n const inBar = shown.filter((a) => a.inBar).slice(0, phone ? 2 : 3)\n const others = shown.filter((a) => !inBar.includes(a))\n const rest = [...others.filter((a) => !a.destructive), ...others.filter((a) => a.destructive)]\n const firstDestructive = rest.findIndex((a) => a.destructive)\n const disabledOf = (a: BulkAction<Row>): boolean | string => a.disabled?.(rows) ?? false\n /** Tooltip / ikinci satır: `disabled` gerekçesi varsa o, yoksa `description` (D36). */\n const tipOf = (a: BulkAction<Row>): string | undefined => {\n const d = disabledOf(a)\n return typeof d === 'string' ? d : a.description\n }\n const run = (a: BulkAction<Row>) => {\n setMoreOpen(false)\n if (!disabledOf(a)) void a.run(rows)\n }\n const btn = variant === 'toolbar' ? 'dt-btn has-icon' : 'dt-bulk-btn'\n const clear = (cls: string) => (\n <button\n type=\"button\"\n className={cls}\n aria-label={i18n.t('selection.clear')}\n data-dt-tip={i18n.t('selection.clear')}\n onClick={onClear}\n >\n <XIcon size={16} aria-hidden=\"true\" />\n </button>\n )\n\n return (\n <div\n className={phone ? `dt-bulk is-${variant} is-phone` : `dt-bulk is-${variant}`}\n role=\"toolbar\"\n aria-label={i18n.t('bulk.aria')}\n >\n {variant === 'toolbar' && clear('dt-btn dt-btn-icon')}\n <span className=\"dt-bulk-count\" role=\"status\">\n {i18n.t('selection.selected', { count: rows.length })}\n </span>\n <span className=\"dt-bulk-sep\" aria-hidden=\"true\" />\n {children ?? (\n <>\n {inBar.map((a) => {\n const Icon = a.icon\n return (\n <button\n key={a.id}\n type=\"button\"\n className={a.destructive ? `${btn} is-destructive` : btn}\n disabled={!!disabledOf(a)}\n data-dt-tip={tipOf(a)}\n onClick={() => run(a)}\n >\n {Icon && <Icon size={phone ? 18 : 16} aria-hidden=\"true\" />}\n <span>{a.label}</span>\n </button>\n )\n })}\n {rest.length > 0 && phone && (\n <BottomSheet\n open={moreOpen}\n onOpenChange={setMoreOpen}\n title={i18n.t('bulk.moreAria')}\n hideTitle\n trigger={\n <button type=\"button\" className=\"dt-bulk-btn dt-bulk-more\" aria-label={i18n.t('bulk.moreAria')}>\n <DotsThreeIcon size={18} weight=\"bold\" aria-hidden=\"true\" />\n <span>{i18n.t('common.more')}</span>\n </button>\n }\n >\n <div className=\"dt-bsheet-label\">{i18n.t('selection.selected', { count: rows.length })}</div>\n {rest.map((a, i) => {\n const tip = tipOf(a)\n return (\n <Fragment key={a.id}>\n {i > 0 && i === firstDestructive && <div className=\"dt-bsheet-sep\" />}\n <button\n type=\"button\"\n className={a.destructive ? 'dt-bsheet-row is-destructive' : 'dt-bsheet-row'}\n disabled={!!disabledOf(a)}\n onClick={() => run(a)}\n >\n {a.icon && <a.icon size={18} aria-hidden=\"true\" />}\n <span className=\"dt-menu-text\">\n <span>{a.label}</span>\n {tip && <span className=\"dt-menu-sub\">{tip}</span>}\n </span>\n </button>\n </Fragment>\n )\n })}\n </BottomSheet>\n )}\n {rest.length > 0 && !phone && (\n <DtMenu\n className=\"dt-bulk-menu\"\n align=\"start\"\n side={variant === 'floating' ? 'top' : undefined}\n offset={variant === 'floating' ? 12 : 4}\n trigger={\n <button\n type=\"button\"\n className={variant === 'toolbar' ? `${btn} dt-bulk-more dt-btn-icon` : `${btn} dt-bulk-more`}\n aria-label={i18n.t('bulk.moreAria')}\n >\n <DotsThreeIcon size={16} weight=\"bold\" aria-hidden=\"true\" />\n </button>\n }\n >\n {rest.map((a, i) => {\n const tip = tipOf(a)\n return (\n <Fragment key={a.id}>\n {i > 0 && i === firstDestructive && <DtMenuSeparator />}\n <DtMenuItem\n destructive={a.destructive}\n twoLine={!!tip}\n disabled={!!disabledOf(a)}\n onSelect={() => run(a)}\n >\n {a.icon && <a.icon size={16} aria-hidden=\"true\" />}\n <span className=\"dt-menu-text\">\n <span>{a.label}</span>\n {tip && <span className=\"dt-menu-sub\">{tip}</span>}\n </span>\n </DtMenuItem>\n </Fragment>\n )\n })}\n </DtMenu>\n )}\n </>\n )}\n {variant === 'floating' && (\n <>\n <span className=\"dt-bulk-sep\" aria-hidden=\"true\" />\n {clear('dt-bulk-btn dt-bulk-icon')}\n </>\n )}\n </div>\n )\n}\n","// Footer (05 §8, brief §6.13, T9-12): ekrandaki verinin sayfasından okur; simple sayfalama (D7); tazelik bilgisi burada.\nimport {\n ArrowClockwiseIcon,\n CaretDownIcon,\n CaretLeftIcon,\n CaretRightIcon,\n CircleNotchIcon,\n} from '@phosphor-icons/react'\nimport { useEffect, useState } from 'react'\nimport { getFormat } from '../core/format'\nimport { useDataTableContext } from '../core/provider'\n\nexport type Freshness = 'normal' | 'refreshing' | 'stale' | 'live'\n\nexport interface FooterProps {\n /** Ekrandaki satır sayısı ve sayfası (1 tabanlı). */\n rowCount: number\n page: { number: number; size: number }\n hasMore: boolean\n /** Biliniyorsa toplam (istemci modunda hep; sunucuda yanıtla ya da Count total ile). */\n total?: number\n /** Count total düğmesi; sonuç \"counted 09:42\" eki alır. */\n countable: boolean\n counting: boolean\n countedAt: Date | null\n /** Kimlik değiştiren istek sürüyor: sayfalama kilitli. */\n busy: boolean\n firstLoad: boolean\n /** Gövde Empty mi (filtre/arama yok): \"No rows\" / \"0 rows\". */\n empty: boolean\n pageSizes: number[]\n updatedAt: Date | null\n freshness: Freshness\n onRefresh?: () => void\n onCount: () => void\n onPage: (page: number) => void\n onPageSize: (size: number) => void\n /** Telefon (handoff 04 §5): tazelik ve Rows per page yok; Önceki / Sonraki 44 px ikon. */\n phone?: boolean\n}\n\n/** \"Updated 3 min ago\" kendiliğinden eskisin: metin render'da değil, bu saatle hesaplanır. */\nfunction useNow(ms: number): number {\n const [now, setNow] = useState(() => Date.now())\n useEffect(() => {\n const t = setInterval(() => setNow(Date.now()), ms)\n return () => clearInterval(t)\n }, [ms])\n return now\n}\n\nexport function Footer(p: FooterProps) {\n const now = useNow(30_000)\n const { i18n, locale } = useDataTableContext()\n const fmt = getFormat(locale)\n const from = (p.page.number - 1) * p.page.size + 1\n const to = from + p.rowCount - 1\n const lastPage = !p.hasMore\n const single = p.page.number === 1 && lastPage\n const time = (d: Date) => d.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit' })\n const updatedText = !p.updatedAt\n ? ''\n : now - p.updatedAt.getTime() < 60_000\n ? i18n.t('toolbar.updatedJustNow')\n : i18n.t('toolbar.updatedAgo', { time: fmt.relative(p.updatedAt, new Date(now), 'short') })\n\n const count = () => {\n if (p.total !== undefined && !single)\n return (\n <>\n <span className=\"dt-footer-of\">{i18n.t('page.of', { total: fmt.int(p.total) })}</span>\n {p.countedAt && (\n <span className=\"dt-footer-muted\">· {i18n.t('page.counted', { time: time(p.countedAt) })}</span>\n )}\n </>\n )\n if (p.counting)\n return (\n <span className=\"dt-footer-muted\">\n {i18n.t('page.of', { total: '' })}\n <CircleNotchIcon size={12} className=\"dt-spin\" aria-hidden=\"true\" />\n {i18n.t('page.counting')}\n </span>\n )\n if (lastPage && !single) return <span className=\"dt-footer-muted\">· {i18n.t('page.end')}</span>\n if (p.countable && !single)\n return (\n <button type=\"button\" className=\"dt-btn dt-btn-ghost dt-btn-xs dt-footer-count\" onClick={p.onCount}>\n · {i18n.t('page.countTotal')}\n </button>\n )\n return null\n }\n\n return (\n <div className=\"dt-footer\" role=\"navigation\" aria-label={i18n.t('page.nav')}>\n <div className=\"dt-footer-left\">\n {p.firstLoad ? (\n <span className=\"dt-footer-muted\">{i18n.t('common.loading')}</span>\n ) : p.rowCount === 0 ? (\n <span className=\"dt-footer-rows\">{i18n.t(p.empty ? 'page.none' : 'page.zero')}</span>\n ) : (\n <>\n <span className=\"dt-footer-rows\">{i18n.t('page.rows', { from: fmt.int(from), to: fmt.int(to) })}</span>\n {count()}\n </>\n )}\n {!p.phone && (p.updatedAt || p.freshness !== 'normal') && (\n <>\n <span className=\"dt-footer-vsep\" aria-hidden=\"true\" />\n {p.freshness === 'live' ? (\n <span className=\"dt-footer-live\">\n <span className=\"dt-live-dot\" aria-hidden=\"true\" />\n {i18n.t('toolbar.live')}\n </span>\n ) : p.freshness === 'refreshing' ? (\n <span className=\"dt-footer-muted\" role=\"status\">\n {i18n.t('state.updating')}\n </span>\n ) : (\n p.updatedAt && (\n <span className={p.freshness === 'stale' ? 'dt-footer-updated is-stale' : 'dt-footer-updated'}>\n {updatedText}\n </span>\n )\n )}\n {p.onRefresh && (\n <button\n type=\"button\"\n className=\"dt-icon-btn-sm\"\n aria-label={i18n.t('toolbar.refresh')}\n data-dt-tip={`${i18n.t('toolbar.refresh')} · R`}\n onClick={p.onRefresh}\n >\n <ArrowClockwiseIcon\n size={14}\n className={p.freshness === 'refreshing' ? 'dt-spin' : undefined}\n aria-hidden=\"true\"\n />\n </button>\n )}\n </>\n )}\n </div>\n <div className=\"dt-footer-right\">\n {!p.phone && (\n <label className=\"dt-footer-size\">\n <span className=\"dt-footer-size-label\">{i18n.t('page.perPage')}</span>\n <span className=\"dt-select\">\n <select value={p.page.size} disabled={p.busy} onChange={(e) => p.onPageSize(Number(e.target.value))}>\n {p.pageSizes.map((s) => (\n <option key={s} value={s}>\n {s}\n </option>\n ))}\n </select>\n <CaretDownIcon size={12} aria-hidden=\"true\" />\n </span>\n </label>\n )}\n {!p.phone && <span className=\"dt-footer-vsep\" aria-hidden=\"true\" />}\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-sm has-icon dt-footer-prev\"\n aria-label={p.phone ? i18n.t('page.previous') : undefined}\n disabled={p.page.number <= 1 || p.busy}\n onClick={() => p.onPage(p.page.number - 1)}\n >\n <CaretLeftIcon size={p.phone ? 18 : 14} aria-hidden=\"true\" />\n <span>{i18n.t('page.previous')}</span>\n </button>\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-sm dt-footer-next\"\n aria-label={p.phone ? i18n.t('page.next') : undefined}\n disabled={!p.hasMore || p.busy}\n onClick={() => p.onPage(p.page.number + 1)}\n >\n <span>{i18n.t('page.next')}</span>\n <CaretRightIcon size={p.phone ? 18 : 14} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n )\n}\n","// Ekrandaki çipler (04 §1, §3): tam koşullar tablonun durumunda (`filters`, URL'ye gidebilir), değeri seçilmemiş tek çip\n// burada taslak olarak durur. Taslak yalnızca düzenlenen çiptir: başka çipe geçince ya da popover kapanınca kaldırılır.\n// Clear veya şekil değiştiren operatör tam bir çipi eksik yapar: sorgudan çıkar, ekranda aynı yerinde kalır.\nimport { useState } from 'react'\nimport { defaultOperator, isComplete, toCondition, type Chip } from '../core/filters/model'\nimport type { ColumnDef } from '../types/columns'\nimport type { FilterCondition } from '../types/query'\n\nexport function useChips({\n defs,\n filters,\n setFilters,\n}: {\n defs: ReadonlyMap<string, ColumnDef>\n filters: FilterCondition[]\n setFilters: (filters: FilterCondition[]) => void\n}) {\n const [draft, setDraft] = useState<{ chip: Chip; at: number } | null>(null)\n const [editing, setEditingState] = useState<string | null>(null)\n\n // Tanımı olmayan sütun (eski URL, kaldırılmış sütun) çip olarak çizilmez; istekte kalır, sunucu karar verir.\n const chips: Chip[] = filters.filter((f) => defs.has(f.column))\n if (draft && !chips.some((c) => c.column === draft.chip.column))\n chips.splice(Math.min(draft.at, chips.length), 0, draft.chip)\n const has = (column: string) => filters.some((f) => f.column === column)\n\n const setEditing = (column: string | null) => {\n setEditingState(column)\n if (draft && draft.chip.column !== column) setDraft(null)\n }\n\n const update = (chip: Chip) => {\n const at = chips.findIndex((c) => c.column === chip.column)\n const rest = filters.filter((f) => f.column !== chip.column)\n if (isComplete(chip, defs.get(chip.column)!.type)) {\n // Sorgudaki sırası ekrandaki yeri: öncesindeki tam çiplerin sayısı.\n const before = chips.slice(0, at).filter((c) => has(c.column)).length\n rest.splice(before, 0, toCondition(chip))\n setFilters(rest)\n setDraft(null)\n } else {\n setDraft({ chip, at })\n if (has(chip.column)) setFilters(rest)\n }\n }\n\n const remove = (column: string) => {\n if (draft?.chip.column === column) setDraft(null)\n if (editing === column) setEditingState(null)\n if (has(column)) setFilters(filters.filter((f) => f.column !== column))\n }\n\n /** Picker / header: var olan çipi açar (D2), yoksa tipin varsayılan operatörüyle oluşturur; boolean doğrudan uygulanır. */\n const pick = (column: string) => {\n const def = defs.get(column)\n if (!def) return\n if (chips.some((c) => c.column === column)) return setEditing(column)\n if (def.type === 'boolean') {\n setEditing(null)\n setFilters([...filters, { column, op: 'eq', value: true }])\n return\n }\n setEditingState(column)\n setDraft({ chip: { column, op: defaultOperator(def) }, at: chips.length })\n }\n\n const clear = () => {\n setDraft(null)\n setEditingState(null)\n setFilters([])\n }\n\n return { chips, editing, setEditing, update, remove, pick, clear }\n}\n","// Yükleme geçişleri (05 §10, R4): TanStack Query sonucundan ve isteğin kimliğinden türer; paket istek göndermez.\n// Kimlik = arama + filtre + sıralama + sayfa. Verinin ait olduğu kimlik \"snapshot\"ta saklanır: `keepPreviousData` ile yeni\n// anahtarda eski veri gösterilirken snapshot eski kimliktedir, bu yüzden geçiş kimlik değiştiren sayılır.\nimport { useEffect, useState } from 'react'\nimport type { DataTableResult } from '../types/list'\n\nconst SLOW_MS = 400\nconst BAR_MS = 150\nconst STILL_LOADING_MS = 10_000\n\n/** `token` boş değilken `ms` dolunca true; token değişince yeniden sayar. */\nfunction useElapsed(token: string | null, ms: number): boolean {\n const [done, setDone] = useState<string | null>(null)\n useEffect(() => {\n if (token === null) return\n const t = setTimeout(() => setDone(token), ms)\n return () => clearTimeout(t)\n }, [token, ms])\n return token !== null && done === token\n}\n\nexport interface Snapshot {\n identity: string\n page: { number: number; size: number }\n data: unknown\n at: number | undefined\n}\n\nexport function useLoadState<Row extends object>(\n result: DataTableResult<Row> | undefined,\n identity: string,\n page: { number: number; size: number },\n) {\n const pending = !!result && (result.status === 'pending' || !!result.isFetching)\n const settled = !!result && result.status === 'success' && !result.isFetching && !result.isPlaceholderData\n // Snapshot yalnızca yeni veriyle ilerler: istek değişip sonuç henüz güncellenmediyse eski veri yeni kimliğe yazılmaz.\n const [snap, setSnap] = useState<Snapshot | null>(null)\n if (settled && (!snap || snap.data !== result.data || snap.at !== result.dataUpdatedAt))\n setSnap({ identity, page, data: result.data, at: result.dataUpdatedAt })\n\n // Aynı anahtarda yenileme hatası eski satırları korur (Stale); yeni anahtarın hatasında veri yoktur (Error).\n const errorKind: 'error' | 'stale' | null =\n result?.status === 'error' ? (result.data?.rows.length ? 'stale' : 'error') : null\n const rows: Row[] = errorKind === 'error' ? [] : (result?.data?.rows ?? [])\n const hasRows = rows.length > 0\n const identityChange = pending && snap?.identity !== identity\n const dim = identityChange && hasRows\n\n // Aynı kimlikte art arda iki yükleme ayrı sayılsın: zamanlayıcı anahtarı son veri zamanını da taşır.\n const token = `${identity}|${result?.dataUpdatedAt ?? 0}`\n const slow = useElapsed(dim ? token : null, SLOW_MS)\n const refreshing = pending && !identityChange\n const bar = useElapsed(refreshing ? token : null, BAR_MS)\n const stillLoading = useElapsed(pending ? token : null, STILL_LOADING_MS)\n const skeleton = (pending && !hasRows) || slow\n\n return {\n pending,\n rows,\n hasRows,\n errorKind,\n dim,\n skeleton,\n /** 150 ms'den kısa yenilemede çubuk görünmez. */\n bar,\n stillLoading,\n refreshing,\n /** Footer'ın sayfalaması kilitli: kimlik değiştiren istek ya da ilk yükleme sürüyor. */\n busy: identityChange || (skeleton && !hasRows),\n /** Footer'ın okuduğu sayfa: ekrandaki verinin sayfası. */\n page: snap?.page ?? page,\n /** Ekrandaki verinin zamanı: yeni anahtar yüklenirken de eski verinin zamanı görünür. */\n updatedAt: snap?.at ? new Date(snap.at) : null,\n }\n}\n","// Satır sıralamanın iyimser gösterimi (R21): bırakınca yeni sıra hemen çizilir, uygulamaya komşularıyla taşıma bildirilir.\n// Gösterilen sıra, gelen satırların sırası değişene (yenilenen sonuç) kadar burada kalır; Promise reddedilirse eski sıraya döner.\nimport { useRef, useState } from 'react'\nimport type { RowMove } from '../types/list'\n\nconst SEP = '\\u0000'\n\nexport function useRowOrder<Row>(\n rows: Row[],\n rowId: (row: Row) => string,\n onMove: ((move: RowMove<Row>) => void | Promise<unknown>) | undefined,\n) {\n // `base`: taşımanın yapıldığı satır sırası. Gelen satırlar artık o sırada değilse sunucunun sırası geçerlidir.\n const [moved, setMoved] = useState<{ base: string; ids: string[] } | null>(null)\n const [pending, setPending] = useState(false)\n // Yalnızca son taşımanın sonucu sırayı geri alabilir.\n const last = useRef(0)\n\n const keys = rows.map(rowId)\n const byId = new Map(rows.map((r, i) => [keys[i]!, r]))\n const shown = moved && moved.base === keys.join(SEP) ? moved.ids.map((id) => byId.get(id)!) : rows\n\n const move = (from: number, to: number) => {\n if (!onMove || from === to) return\n const next = [...shown]\n const [row] = next.splice(from, 1)\n next.splice(to, 0, row!)\n const token = ++last.current\n setMoved({ base: keys.join(SEP), ids: next.map(rowId) })\n const result = onMove({ row: row!, after: next[to - 1] ?? null, before: next[to + 1] ?? null })\n if (!(result instanceof Promise)) return\n setPending(true)\n result.then(\n () => {\n if (token === last.current) setPending(false)\n },\n () => {\n if (token !== last.current) return\n setPending(false)\n setMoved(null)\n },\n )\n }\n\n return { rows: shown, move, pending }\n}\n","// Liste bileşeni (05): ızgara, footer, durum ekranları, yükleme geçişleri (R4). Paket veri çekmez (D18): sunucu modunda\n// `useQuery` sonucunu `result` olarak alır; istemci modunda satırlar `useDataTable({ rows })`'dan gelir.\nimport { CircleNotchIcon, FunnelIcon, PlusIcon, WarningIcon } from '@phosphor-icons/react'\nimport {\n lazy,\n Suspense,\n useEffect,\n useEffectEvent,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport { optionLabel } from '../core/cells/format'\nimport { exportFile } from '../core/export/write'\nimport { readPath } from '../core/columns/read-path'\nimport { RemoteLabels } from '../core/cells/remote-labels'\nimport { ColumnPicker } from '../core/filters/column-picker'\nimport { FilterBar } from '../core/filters/filter-bar'\nimport { toCondition } from '../core/filters/model'\n\n// Telefon Filters sayfası ilk açılışta yüklenir.\n// lazy() generic bileşenin tip parametresini düşürür; satır tipi dialog'a aynen geçer.\nconst ColumnsDialog = lazy(\n () => import('../core/toolbar/columns-dialog'),\n) as unknown as typeof import('../core/toolbar/columns-dialog').default\nconst FiltersSheet = lazy(() => import('../core/filters/filters-sheet').then((m) => ({ default: m.FiltersSheet })))\nimport { summarize, type Chip } from '../core/filters/model'\nimport { getFormat } from '../core/format'\nimport type { HeaderSort } from '../core/grid/header-cell'\nimport { Grid } from '../core/grid/grid'\nimport { DelegatedTooltip } from '../core/grid/tooltip'\nimport { isTextInput } from '../core/interaction/is-interactive'\nimport { useDataTableContext } from '../core/provider'\nimport { StateMessage } from '../core/states/state-message'\nimport { DisplayPopover } from '../core/toolbar/display-popover'\nimport { MoreMenu } from '../core/toolbar/more-menu'\nimport { PhoneMoreSheet } from '../core/toolbar/phone-more-sheet'\nimport { Toolbar, type ToolbarHandle, type ToolbarSize } from '../core/toolbar/toolbar'\nimport { ConfirmDialog } from '../core/ui/confirm-dialog'\nimport { nameError } from '../core/views/model'\nimport { ViewDialog, type ViewSummary } from '../core/views/view-dialog'\nimport { ViewMenu } from '../core/views/view-menu'\nimport type { ColumnDef } from '../types/columns'\nimport type { BulkAction, DataTableResult, RowAction, RowClickMode, RowReorder } from '../types/list'\nimport type { FilterCondition, QueryWithoutPage } from '../types/query'\nimport type { View, ViewState } from '../types/views'\nimport { BulkBar } from './bulk-bar'\nimport { Footer, type Freshness } from './footer'\nimport { useChips } from './use-chips'\nimport { isFilterable, isSearchable, isSortable } from './use-list-table'\nimport type { DataTableInstance } from './use-data-table'\nimport { useLoadState } from './use-load-state'\nimport { useRowOrder } from './use-row-order'\n\n/** `error` yapısal okunur: TanStack Query'nin `Error`'u, uygulamanın `{ message, id }`'si ya da düz metin. */\nconst NONE: Record<string, true> = {}\n\nfunction errorInfo(error: unknown): { message?: string; id?: string } {\n if (typeof error === 'string') return { message: error }\n if (typeof error !== 'object' || !error) return {}\n const e = error as { message?: unknown; id?: unknown }\n return {\n message: typeof e.message === 'string' ? e.message : undefined,\n id: typeof e.id === 'string' || typeof e.id === 'number' ? String(e.id) : undefined,\n }\n}\n\nexport function DataTable<Row extends object>({\n table,\n result,\n label,\n empty,\n toolbar = 'auto',\n toolbarEnd,\n notice,\n searchPlaceholder,\n autoRefresh,\n onPrint,\n exportable = true,\n onExport,\n shortcuts = true,\n onRowClick,\n rowClick = 'none',\n onRowOpen,\n rowActions,\n selectable = false,\n selectionBar = 'floating',\n bulkActions,\n selectionActions,\n onSelectionChange,\n renderExpanded,\n canExpand,\n rowError,\n reorder,\n}: {\n table: DataTableInstance<Row>\n /** Sunucu modu: `useQuery` sonucu, dönüştürmeden (R4). İstemci modunda verilmez. */\n result?: DataTableResult<Row>\n /** Izgaranın erişilebilir adı. Verilmezse `entityName.other`. */\n label?: string\n /** Hiç satır yokken (filtre ve arama yokken) gövdede; verilmezse \"No {entity} yet\". */\n empty?: ReactNode\n /** auto: yapılandırılana göre yuvalar; minimal: yalnızca arama (3a) + `toolbarEnd`; false: araç çubuğu yok. */\n toolbar?: 'auto' | 'minimal' | false\n /** Ekrana özgü birincil aksiyon, araç çubuğunun sonunda (ör. \"New order\"). */\n toolbarEnd?: ReactNode\n /**\n * Araç çubuğu ile sütun başlıkları arasında uygulamanın şeridi (R16): listenin bağlamını anlatır\n * (\"Yalnızca arşivlenmiş kayıtlar\"). İçerik ve rolü uygulamanındır; paket yer ve hizayı verir.\n */\n notice?: ReactNode\n /** Verilmezse \"Search {entity}…\". */\n searchPlaceholder?: string\n /** Saniye. Verilirse ⋯ menüsünde Auto-refresh; açıkken footer \"Live\". */\n autoRefresh?: number\n /** Verilirse ⋯ › Print. Sorgu sayfasızdır. */\n onPrint?: (payload: { query: QueryWithoutPage; visibleColumns: string[] }) => void\n /** ⋯ › Export (D46). Varsayılan açık; `false` gizler (ör. yetki). */\n exportable?: boolean\n /** Verilirse paket dosya yazmaz; `rows` paketin yazacağı satırlardır (seçim varsa seçili, yoksa sayfadaki). */\n onExport?: (payload: {\n format: 'csv' | 'xlsx'\n query: QueryWithoutPage\n selection: Row[]\n rows: Row[]\n visibleColumns: string[]\n }) => void\n /** Tek harfli kısayollar (/ arama, F filtre, R yenile, V görünümler) ve ⌘S. Alt←/→ her zaman çalışır. */\n shortcuts?: boolean\n /** Satır gövdesine düz tık; hücredeki düğme, link ve metin seçimi tetiklemez (05 §7). `rowClick`'ten bağımsız. */\n onRowClick?: (row: Row, event: MouseEvent) => void\n /** Satır gövdesine tıklama (D6): 'open' birincil linki açar, 'expand' detayı açıp kapatır. Varsayılan 'none'. */\n rowClick?: RowClickMode\n /** Birincil linke düz sol tık, menüde Open, `rowClick=\"open\"`. Paket gezinmeyi durdurmaz: `event.preventDefault()` dinleyicide. */\n onRowOpen?: (payload: { row: Row; href: string; event: MouseEvent }) => void\n /** Satır menüsü (⋯): Open / Copy yerleşik + bunlar. */\n rowActions?: Array<RowAction<Row>>\n /** Seçim sütunu; seçim sayfa kapsamlıdır (D19), durum `table.selection`'da. */\n selectable?: boolean\n /** Seçim çubuğu: yüzer (varsayılan) ya da araç çubuğunun yerine. */\n selectionBar?: 'floating' | 'toolbar'\n bulkActions?: Array<BulkAction<Row>>\n /** `bulkActions` yerine seçim çubuğunun içeriği. */\n selectionActions?: (props: { rows: Row[]; clear: () => void }) => ReactNode\n /** Seçim her değiştiğinde; sayfadaki seçili satırlar (D19). */\n onSelectionChange?: (rows: Row[]) => void\n /** Satır detayı (05 §7): birincil hücrede chevron; veriyi detay bileşeni çeker. */\n renderExpanded?: (props: { row: Row; close: () => void }) => ReactNode\n /** Bu satırın detayı var mı? Yoksa chevron yerinde boşluk kalır. */\n canExpand?: (row: Row) => boolean\n /** Satır hatası (D35): metin ya da metin listesi → hata zemini, ⋯ hücresinde uyarı ikonu, satırda tooltip. Harita\n * uygulamanın: paket hata saklamaz, temizlemez. */\n rowError?: (row: Row) => string | string[] | null | undefined\n /** Satır sıralama (R21): verilince satırın başında tutamak; paket taşımayı komşularıyla bildirir, numara üretmez. */\n reorder?: RowReorder<Row>\n}) {\n const { i18n, locale } = useDataTableContext()\n const fmt = getFormat(locale)\n const entity = table.entityName\n const q = table.request\n const server = table.rows === undefined\n const load = useLoadState(server ? result : undefined, JSON.stringify([q.search, q.filters, q.sort, q.page]), q.page)\n const loaded = server ? load.rows : (table.rows ?? [])\n // Sürüklenip bırakılan sıra, yenilenen sonuç gelene kadar (R21).\n const order = useRowOrder(loaded, table.rowId, reorder?.onMove)\n const rows = order.rows\n const hasRows = rows.length > 0\n const refetch = server ? result?.refetch : undefined\n const busy = load.busy\n\n // Filtreler (04): tam koşullar tablonun durumunda, eksik çip ve açık editör burada.\n const defs = new Map(table.columns.map((c) => [c.id as string, c as ColumnDef]))\n const filterable = table.columns.filter((c) => isFilterable(c as ColumnDef)) as ColumnDef[]\n const filterIds = new Set(filterable.map((c) => c.id as string))\n const chips = useChips({ defs, filters: q.filters, setFilters: table.setFilters })\n const [pickerOpen, setPickerOpen] = useState(false)\n // Telefon Filters sayfası (04 §9): her açılışta yeni `key` ile taslak o anki çiplerden kurulur.\n const [sheet, setSheet] = useState<{ key: number; open: boolean; column?: string } | null>(null)\n const openSheet = (column?: string) => setSheet((s) => ({ key: (s?.key ?? 0) + 1, open: true, column }))\n const [labels] = useState(() => new RemoteLabels())\n // Seçenek editörü (renk) ve para birimi listesi yüklü satırlardan.\n const sourceRows: object[] = server ? rows : (table.allRows ?? [])\n const labelOf = (def: ColumnDef) => (v: string | number) => {\n if (def.type === 'select' || def.type === 'multiselect' || (def.type === 'user' && def.options))\n return optionLabel(def.options, v)\n if ((def.type === 'user' || def.type === 'ajax') && def.remote) return labels.label(def.id as string, def.remote, v)\n return String(v)\n }\n const summaryOf = (chip: Chip) =>\n summarize(chip, defs.get(chip.column)!, { i18n, fmt, labelOf: labelOf(defs.get(chip.column)!) })\n const currenciesOf = (def: ColumnDef): string[] => {\n if (def.type !== 'currency') return []\n if (typeof def.currency === 'string') return [def.currency]\n const of = def.currency\n return [...new Set(sourceRows.map((r) => of(r)))]\n }\n const hasFilter = toolbar === 'auto' && filterable.length > 0\n const hasSearch = toolbar !== false && table.columns.some((c) => isSearchable(c as ColumnDef))\n const toolbarRef = useRef<ToolbarHandle>(null)\n\n // Columns dialog'u (D45): Display popover'ı ve sütun menüsü açar. Dialog ve @dnd-kit ilk açılışta yüklenir, sonra\n // bağlı kalır; kapanınca odak açan düğmeye döner (açan popover / menü o an kapanmıştır).\n const [columnsOpen, setColumnsOpen] = useState(false)\n const [columnsUsed, setColumnsUsed] = useState(false)\n const columnsFrom = useRef<HTMLElement | null>(null)\n const openColumns = (from: HTMLElement | null) => {\n columnsFrom.current = from\n setColumnsUsed(true)\n setColumnsOpen(true)\n }\n\n // Görünümler (04 §7): menü, Save as new view / Rename dialog'u, silme onayı. Görünüm uygulanınca açık çip taslağı kalkar.\n const vw = table.views\n const hasViews = toolbar === 'auto' && vw.hasViews\n const [viewMenuOpen, setViewMenuOpen] = useState(false)\n const [viewDialog, setViewDialog] = useState<{\n key: number\n mode: 'create' | 'rename'\n name: string\n state: ViewState\n summary: ViewSummary | null\n view?: View\n /** Mevcut düzenleme yeni görünüme taşınır (Save as new / New view); Duplicate'te aktif görünümün taslağı kalır. */\n fromCurrent: boolean\n } | null>(null)\n const [confirmDelete, setConfirmDelete] = useState<View | null>(null)\n const current = (): ViewState => ({ filters: q.filters, sort: q.sort, columns: table.layout.state() })\n const viewSummary = (s: ViewState): ViewSummary => {\n const lead = s.sort[0]\n const more = s.sort.length > 1 ? ` +${s.sort.length - 1}` : ''\n const pinned = [...s.columns.pinned.left, ...s.columns.pinned.right].map(headerOf).join(', ')\n return {\n filters: s.filters.map((f) => headerOf(f.column)).join(' · ') || i18n.t('common.empty'),\n sort: lead ? `${headerOf(lead.column)} ${lead.dir === 'asc' ? '↑' : '↓'}${more}` : i18n.t('common.empty'),\n columns: [\n i18n.t('views.columnsSummary', { shown: s.columns.visible.length, total: table.columns.length }),\n ...(pinned ? [i18n.t('views.pinnedSummary', { name: pinned })] : []),\n ].join(' · '),\n }\n }\n /** Save as new view / Save as my view / New view: mevcut durum, ad boş. Duplicate: kaynağın kayıtlı durumu, \"{ad} copy\". */\n const openSaveAs = (view?: View) => {\n const state = view ? table.resolveView(view) : current()\n setViewDialog({\n key: (viewDialog?.key ?? 0) + 1,\n mode: 'create',\n name: view ? i18n.t('views.copyName', { name: view.name }) : '',\n state,\n summary: viewSummary(state),\n view,\n fromCurrent: !view,\n })\n }\n const selectView = (id: string) => {\n chips.setEditing(null)\n vw.select(id)\n }\n\n // Seçim ve expand (05 §6–7): seçim tabloda (sorgu değişince temizlenir), açık detaylar burada aynı kuralla.\n const rowKeys = rows.map(table.rowId).join('\\u0000')\n const selectedRows = selectable ? rows.filter((r) => table.selection[table.rowId(r)]) : []\n const selectedKey = selectedRows.map(table.rowId).join('\\u0000')\n const selectRows = (ids: string[], value: boolean) => {\n const next = { ...table.selection }\n for (const id of ids) {\n if (value) next[id] = true\n else delete next[id]\n }\n table.setSelection(next)\n }\n const expandKey = JSON.stringify([q.search, q.filters, q.sort, q.page])\n const [open, setOpen] = useState({ key: expandKey, ids: NONE })\n if (open.key !== expandKey) setOpen({ key: expandKey, ids: NONE })\n const expanded = open.key === expandKey ? open.ids : NONE\n const toggleExpand = (id: string, value: boolean) => {\n const next = { ...expanded }\n if (value) next[id] = true\n else delete next[id]\n setOpen({ key: expandKey, ids: next })\n // Açılan detay satır sayısıyla okunur (08 §5): detay çizildikten sonra DOM'dan.\n const row = rows.find((r) => table.rowId(r) === id)\n if (value && row)\n requestAnimationFrame(() => {\n const sub = [...(root.current?.querySelectorAll<HTMLElement>('.dt-subrow') ?? [])].find((el) =>\n el.id.endsWith(`-sub-${id}`),\n )\n const count = sub ? sub.querySelectorAll('[role=\"row\"], tr').length : 0\n setSeen((s) => ({ ...s, text: i18n.t('sr.expanded', { label: primaryLabel(row), count }) }))\n })\n }\n // Yeni veride olmayan anahtarlar düşer (05 §12): refresh'te kalan satırların seçimi ve açıklığı korunur. Seçim tablonun\n // durumu olduğundan effect'te, açıklık burada render sırasında.\n const ids = new Set(rows.map(table.rowId))\n const keep = (o: Record<string, true>) =>\n Object.fromEntries(Object.entries(o).filter(([id]) => ids.has(id))) as Record<string, true>\n if (Object.keys(expanded).some((id) => !ids.has(id))) setOpen({ key: expandKey, ids: keep(expanded) })\n useEffect(() => {\n if (Object.keys(table.selection).some((id) => !ids.has(id))) table.setSelection(keep(table.selection))\n // Yalnızca satırlar değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rowKeys])\n const lastSelected = useRef('')\n useEffect(() => {\n if (lastSelected.current === selectedKey) return\n lastSelected.current = selectedKey\n onSelectionChange?.(selectedRows)\n // Yalnızca seçim değişince.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedKey])\n\n // Birincil hücre (D6): link, aria etiketleri ve Copy için metin; ⋯ sütunu birincil sütun ya da rowActions varsa.\n const primaryDef = table.columns.find((c) => c.primary)\n const primaryHref = (row: Row) => primaryDef?.href?.(row)\n const primaryLabel = (row: Row): string => {\n const v = primaryDef\n ? primaryDef.accessor\n ? primaryDef.accessor(row)\n : readPath(row, primaryDef.id as string)\n : table.rowId(row)\n return v === null || v === undefined ? '' : String(v)\n }\n const rowMenu = !!rowActions?.length || !!primaryDef\n const handleRowClick = (row: Row, event: MouseEvent) => {\n onRowClick?.(row, event)\n if (rowClick === 'open')\n (event.target as Element).closest('.dt-row')?.querySelector<HTMLElement>('.dt-cell.is-primary a.dt-link')?.click()\n else if (rowClick === 'expand' && renderExpanded && (canExpand?.(row) ?? true)) {\n const id = table.rowId(row)\n toggleExpand(id, !expanded[id])\n }\n }\n\n // Count total (05 §8): sonuç arama/filtre/sıralama değişene kadar geçerli; değişince bekleyen sayım iptal edilir.\n const countKey = JSON.stringify([q.search, q.filters, q.sort])\n const [counted, setCounted] = useState<{ key: string; total: number; at: Date } | null>(null)\n const [counting, setCounting] = useState<string | null>(null)\n const countCtl = useRef<AbortController | null>(null)\n useEffect(() => () => countCtl.current?.abort(), [countKey])\n const count = () => {\n if (!table.count) return\n countCtl.current?.abort()\n const ctl = new AbortController()\n countCtl.current = ctl\n setCounting(countKey)\n const { search, filters, sort, fields } = q\n table\n .count({ search, filters, sort, fields }, ctl.signal)\n .then((n) => !ctl.signal.aborted && setCounted({ key: countKey, total: n, at: new Date() }))\n .catch(() => {})\n .finally(() => !ctl.signal.aborted && setCounting(null))\n }\n const countedNow = counted?.key === countKey ? counted : null\n const total = server ? (result?.data?.total ?? countedNow?.total) : table.total\n const page = server ? load.page : q.page\n const hasMore = server ? !!result?.data?.hasMore : page.number * page.size < (table.total ?? 0)\n\n const bodyState: 'error' | 'noResults' | 'noRowsOnPage' | 'empty' | null =\n load.skeleton || hasRows || load.pending\n ? null\n : load.errorKind === 'error'\n ? 'error'\n : q.search || q.filters.length\n ? 'noResults'\n : q.page.number > 1\n ? 'noRowsOnPage'\n : 'empty'\n const err = errorInfo(result?.error)\n // Auto-refresh (05 §3): açıkken footer \"Live\".\n const [live, setLive] = useState(false)\n useEffect(() => {\n if (!live || !autoRefresh || !refetch) return\n const t = setInterval(() => refetch(), autoRefresh * 1000)\n return () => clearInterval(t)\n }, [live, autoRefresh, refetch])\n const freshness: Freshness =\n live && autoRefresh ? 'live' : load.bar ? 'refreshing' : load.errorKind === 'stale' ? 'stale' : 'normal'\n const clock = (d: Date) => d.toLocaleTimeString(locale, { hour: '2-digit', minute: '2-digit' })\n\n const sort = new Map<string, HeaderSort>(\n q.sort.map((s, i) => [s.column, { dir: s.dir, index: q.sort.length > 1 ? i + 1 : null }]),\n )\n const sortable = new Set(table.columns.filter(isSortable).map((c) => c.id as string))\n const headerOf = (id: string) => table.columns.find((c) => c.id === id)?.header ?? id\n\n // Ekran okuyucu (08 §5): tek polite bölge; son değişen olay okunur. İlk çizimde duyuru yok.\n const first = q.sort[0]\n const said = {\n view: table.state.view ?? '',\n filters: JSON.stringify(q.filters),\n sort: JSON.stringify(q.sort),\n loaded: `${load.updatedAt?.getTime() ?? 0}|${rows.length}`,\n total: countedNow ? countedNow.at.getTime() : 0,\n selected: selectedRows.length,\n }\n const [seen, setSeen] = useState({ ...said, text: '' })\n let polite = seen.text\n if (\n seen.view !== said.view ||\n seen.filters !== said.filters ||\n seen.sort !== said.sort ||\n seen.loaded !== said.loaded ||\n seen.total !== said.total ||\n seen.selected !== said.selected\n ) {\n if (seen.view !== said.view && vw.active) polite = i18n.t('sr.view', { name: vw.active.name })\n else if (seen.selected !== said.selected && said.selected > 0)\n polite = i18n.t('selection.selected', { count: said.selected })\n else if (seen.filters !== said.filters) polite = filterNews(JSON.parse(seen.filters) as FilterCondition[]) ?? polite\n else if (seen.total !== said.total && countedNow)\n polite = i18n.t('sr.total', { count: fmt.int(countedNow.total), entity })\n else if (seen.sort !== said.sort && first)\n polite = i18n.t('sr.sorted', { column: headerOf(first.column), dir: i18n.t(`sr.${first.dir}`) })\n else if (seen.loaded !== said.loaded && !load.pending) polite = i18n.t('sr.loaded', { count: rows.length })\n setSeen({ ...said, text: polite })\n }\n\n /** Eklenen ya da değişen filtre özetiyle, kaldırılan adıyla okunur (08 §5). */\n function filterNews(before: FilterCondition[]): string | undefined {\n const prev = new Map(before.map((f) => [f.column, JSON.stringify(f)]))\n const changed = q.filters.find((f) => defs.has(f.column) && prev.get(f.column) !== JSON.stringify(f))\n if (changed)\n return i18n.t('sr.filterAdded', { summary: `${headerOf(changed.column)} ${summaryOf(changed).text}`.trim() })\n const gone = before.find((f) => !q.filters.some((n) => n.column === f.column))\n return gone && i18n.t('sr.filterRemoved', { column: headerOf(gone.column) })\n }\n\n // Daralma eşikleri kartın kendi genişliğinden (05 §3): ≥1024 etiketli, 640–1023 ikon, <640 telefon (Faz 7).\n const root = useRef<HTMLDivElement>(null)\n const [width, setWidth] = useState(1440)\n useLayoutEffect(() => {\n const el = root.current\n if (!el) return\n const measure = () => setWidth(el.clientWidth || 1440)\n measure()\n const ro = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure)\n ro?.observe(el)\n return () => ro?.disconnect()\n }, [])\n const size: ToolbarSize = width >= 1024 ? 'full' : width >= 640 ? 'narrow' : 'phone'\n const phone = size === 'phone'\n // `layout` her çizimde yeni nesne; setter kararlı.\n const { setPhone } = table.layout\n useLayoutEffect(() => setPhone(phone), [setPhone, phone])\n /** Picker / header hunisi / F: telefonda Filters sayfası o sütunun editörüyle açılır. */\n const pick = (column: string) => (phone ? openSheet(column) : chips.pick(column))\n\n // Kısayollar (08 §3): kapsam sayfa. Alt←/→ sayfa (her zaman), R yenile (odak metin alanında değilken).\n const onKey = useEffectEvent((e: KeyboardEvent) => {\n if (e.defaultPrevented) return\n const target = e.target instanceof Element ? e.target : null\n // Seçim checkbox'ları Tab durağı (D40): odakları kısayolları ve Esc'i kapatmaz.\n const typing =\n !!target && isTextInput(target) && !(target instanceof HTMLInputElement && target.type === 'checkbox')\n // Esc sırayla: açık popover / menü / dialog (odak içindedir) → seçim (05 §6); metin alanında aramanın Esc'i.\n if (e.key === 'Escape') {\n const inLayer = !!target?.closest(\n '[role=\"menu\"], [role=\"dialog\"], [role=\"alertdialog\"], [role=\"listbox\"], .dt-pop',\n )\n if (!inLayer && selectedRows.length && !typing) table.clearSelection()\n return\n }\n if (e.altKey && !e.ctrlKey && !e.metaKey && (e.key === 'ArrowLeft' || e.key === 'ArrowRight')) {\n if (busy) return\n const left = e.key === 'ArrowLeft'\n if (left ? page.number > 1 : hasMore) {\n e.preventDefault()\n table.setPage(page.number + (left ? -1 : 1))\n }\n return\n }\n if ((e.metaKey || e.ctrlKey) && !e.altKey && !e.shiftKey && (e.key === 's' || e.key === 'S')) {\n if (!shortcuts || !vw.edited || !vw.canSave || viewDialog) return\n e.preventDefault()\n if (vw.writable(vw.active)) void vw.saveChanges()\n else openSaveAs()\n return\n }\n if (!shortcuts || e.ctrlKey || e.metaKey || e.altKey || typing) return\n if (e.key === '/' && hasSearch) {\n e.preventDefault()\n toolbarRef.current?.focusSearch()\n } else if ((e.key === 'f' || e.key === 'F') && hasFilter) {\n e.preventDefault()\n if (phone) openSheet()\n else setPickerOpen(true)\n } else if ((e.key === 'r' || e.key === 'R') && refetch) {\n e.preventDefault()\n refetch()\n } else if ((e.key === 'v' || e.key === 'V') && hasViews) {\n e.preventDefault()\n setViewMenuOpen(true)\n }\n })\n useEffect(() => {\n window.addEventListener('keydown', onKey)\n return () => window.removeEventListener('keydown', onKey)\n }, [])\n\n // Filter düğmesinin adı görünen parçalarından (\"Filter 2\"): Combobox tetikleyicisi (role=combobox) adını içerikten\n // almaz, sabit aria-label de sayacı dışarıda bırakıp görünen metinle uyuşmaz (WCAG 2.5.3). İkon kipinde etiket gizli.\n const filterId = useId()\n const filterLabelledBy = q.filters.length ? `${filterId}-l ${filterId}-n` : `${filterId}-l`\n const filterText = (labelShown: boolean) => (\n <>\n <span id={`${filterId}-l`} className={labelShown ? undefined : 'dt-sr-only'}>\n {i18n.t('toolbar.filter')}\n </span>\n {q.filters.length > 0 && (\n <>\n {' '}\n <span id={`${filterId}-n`} className=\"dt-counter\">\n {q.filters.length}\n </span>\n </>\n )}\n </>\n )\n const unpaged = { search: q.search, filters: q.filters, sort: q.sort, fields: q.fields }\n const visibleColumns = table.layout.columns.map((c) => c.id)\n const print = onPrint && (() => onPrint({ query: unpaged, visibleColumns }))\n // Export (D46): ekranda görünen sütunlar ve satırlar; seçim varsa seçili satırlar, yoksa sayfadaki satırlar.\n const exportRows = selectedRows.length ? selectedRows : rows\n // Aksiyonsuz çubuk yalnızca sayaç ve × olurdu: seçim Export'ta, header checkbox'ında ve Esc'te kalır (React sapması).\n const bulkBar = selectedRows.length > 0 && (!!bulkActions?.length || !!selectionActions)\n const exportHint = exportable\n ? selectedRows.length\n ? i18n.t('toolbar.exportSelected', { count: selectedRows.length })\n : i18n.t('toolbar.export', { count: rows.length })\n : undefined\n const runExport = (format: 'csv' | 'xlsx') => {\n if (onExport) return onExport({ format, query: unpaged, selection: selectedRows, rows: exportRows, visibleColumns })\n void exportFile({\n format,\n columns: table.layout.columns.map((c) => c.def),\n rows: exportRows,\n read: (row, def) => (def.accessor ? def.accessor(row) : readPath(row, def.id as string)),\n env: { fmt, i18n, today: new Date(), labels },\n name: entity.other,\n })\n }\n const moreMenu = toolbar === 'auto' && !!(refetch || print || exportHint)\n const prefs = table.prefs\n\n const state =\n bodyState === 'error' ? (\n <StateMessage\n kind=\"error\"\n title={i18n.t('state.errorTitle', { entity })}\n lines={[err.message, i18n.t('state.errorKept')].filter((l): l is string => !!l)}\n actions={\n refetch && (\n <button type=\"button\" className=\"dt-btn\" disabled={load.pending} onClick={() => refetch()}>\n {i18n.t('state.tryAgain')}\n </button>\n )\n }\n after={\n err.id && (\n <div className=\"dt-state-id\">\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-ghost dt-btn-xs\"\n onClick={() => void navigator.clipboard?.writeText(err.id!)}\n >\n {i18n.t('state.copyErrorId')}\n </button>\n <code className=\"dt-state-code\">{err.id}</code>\n </div>\n )\n }\n />\n ) : bodyState === 'noResults' ? (\n <StateMessage\n kind={q.search ? 'noResultsSearch' : 'noResults'}\n title={i18n.t(\n q.search && q.filters.length ? 'state.noResultsBoth' : q.search ? 'state.noResultsSearch' : 'state.noResults',\n { entity, q: q.search, count: q.filters.length },\n )}\n actions={\n <>\n {q.filters.length === 1 ? (\n <button type=\"button\" className=\"dt-btn\" onClick={() => chips.remove(q.filters[0]!.column)}>\n {i18n.t('state.removeFilter', { column: headerOf(q.filters[0]!.column) })}\n </button>\n ) : (\n q.filters.length > 1 && (\n <button type=\"button\" className=\"dt-btn\" onClick={chips.clear}>\n {i18n.t('state.clearAllFilters')}\n </button>\n )\n )}\n {q.search && (\n <button type=\"button\" className=\"dt-btn\" onClick={() => table.setSearch('')}>\n {i18n.t('state.clearSearch')}\n </button>\n )}\n </>\n }\n />\n ) : bodyState === 'noRowsOnPage' ? (\n <StateMessage\n kind=\"noRowsOnPage\"\n title={i18n.t('page.noneOnPage')}\n actions={\n <button type=\"button\" className=\"dt-btn\" onClick={() => table.setPage(q.page.number - 1)}>\n {i18n.t('page.previousPage')}\n </button>\n }\n />\n ) : bodyState === 'empty' ? (\n (empty ?? <StateMessage kind=\"empty\" title={i18n.t('state.emptyTitle', { entity })} />)\n ) : null\n\n return (\n // Kökün yazı boyutu (--dt-fs) kökteki yoğunluktan çözülür; yalnızca ızgarada olsaydı hep standard kalırdı.\n <div ref={root} className={phone ? 'dt dt-list is-phone' : 'dt dt-list'} data-density={table.density}>\n {selectionBar === 'toolbar' && bulkBar && toolbar !== false ? (\n <BulkBar variant=\"toolbar\" rows={selectedRows} actions={bulkActions ?? []} onClear={table.clearSelection}>\n {selectionActions?.({ rows: selectedRows, clear: table.clearSelection })}\n </BulkBar>\n ) : (\n toolbar !== false && (\n <Toolbar\n ref={toolbarRef}\n size={size}\n view={\n hasViews && (\n <ViewMenu\n sections={vw.sections}\n active={vw.active}\n edited={vw.edited}\n hasDraft={vw.hasDraft}\n defaultId={prefs.prefs.defaultViewId}\n canSave={vw.canSave}\n canWrite={vw.writable(vw.active)}\n open={viewMenuOpen}\n onOpenChange={setViewMenuOpen}\n onSelect={selectView}\n onSaveChanges={() => void vw.saveChanges()}\n onSaveAs={() => openSaveAs()}\n onDiscard={() => {\n chips.setEditing(null)\n vw.discard()\n }}\n onRename={(view) =>\n setViewDialog({\n key: (viewDialog?.key ?? 0) + 1,\n mode: 'rename',\n name: view.name,\n state: current(),\n summary: null,\n view,\n fromCurrent: false,\n })\n }\n onDuplicate={openSaveAs}\n onSetDefault={vw.setDefault}\n onDelete={setConfirmDelete}\n sheet={phone}\n />\n )\n }\n search={hasSearch ? q.search : null}\n searchPlaceholder={searchPlaceholder ?? i18n.t('toolbar.search', { entity })}\n onSearch={table.setSearch}\n filter={\n hasFilter &&\n (phone ? (\n <button\n type=\"button\"\n className={\n q.filters.length\n ? 'dt-btn dt-btn-icon dt-filter-trigger is-active'\n : 'dt-btn dt-btn-icon dt-filter-trigger'\n }\n aria-labelledby={filterLabelledBy}\n onClick={() => openSheet()}\n >\n <FunnelIcon size={20} aria-hidden=\"true\" />\n {filterText(false)}\n </button>\n ) : (\n <ColumnPicker\n columns={filterable}\n chips={chips.chips}\n open={pickerOpen}\n onOpenChange={setPickerOpen}\n onPick={chips.pick}\n trigger={\n <button\n type=\"button\"\n // Dar kartta da etiketli (Vue: ikon yalnızca telefonda).\n className={\n q.filters.length\n ? 'dt-btn has-icon dt-filter-trigger is-active'\n : 'dt-btn has-icon dt-filter-trigger'\n }\n aria-labelledby={filterLabelledBy}\n >\n <FunnelIcon size={16} aria-hidden=\"true\" />\n {filterText(true)}\n </button>\n }\n />\n ))\n }\n display={\n toolbar === 'auto' &&\n !phone && (\n <DisplayPopover\n density={table.density}\n onDensity={table.densityFixed ? undefined : (density) => prefs.set({ density })}\n verticalLines={prefs.prefs.verticalLines}\n onVerticalLines={(verticalLines) => prefs.set({ verticalLines })}\n counts={table.layout.counts}\n onColumns={openColumns}\n persistent={prefs.persistent}\n onReset={table.resetDisplay}\n iconOnly={size !== 'full'}\n />\n )\n }\n more={\n phone\n ? toolbar === 'auto' && (\n <PhoneMoreSheet\n density={table.density}\n onDensity={table.densityFixed ? undefined : (density) => prefs.set({ density })}\n columns={table.layout.panel}\n counts={table.layout.counts}\n onColumnsSave={table.layout.arrange}\n sort={q.sort}\n onSort={(sort) => table.setQuery({ sort })}\n persistent={prefs.persistent}\n onReset={table.resetDisplay}\n exportHint={exportHint}\n onExport={runExport}\n onRefresh={refetch && (() => refetch())}\n onPrint={print}\n autoRefresh={!!autoRefresh && !!refetch}\n autoRefreshOn={live}\n onAutoRefresh={setLive}\n />\n )\n : moreMenu && (\n <MoreMenu\n exportHint={exportHint}\n onExport={runExport}\n onRefresh={refetch && (() => refetch())}\n onPrint={print}\n autoRefresh={!!autoRefresh && !!refetch}\n autoRefreshOn={live}\n onAutoRefresh={setLive}\n />\n )\n }\n end={toolbarEnd}\n />\n )\n )}\n {notice && <div className=\"dt-list-notice\">{notice}</div>}\n {load.errorKind === 'stale' && load.updatedAt && (\n <div className=\"dt-strip\" role=\"status\">\n <WarningIcon size={16} aria-hidden=\"true\" />\n <span>{i18n.t('state.stale', { time: clock(load.updatedAt) })}</span>\n {refetch && (\n <button type=\"button\" className=\"dt-strip-action\" disabled={load.pending} onClick={() => refetch()}>\n {i18n.t('common.retry')}\n </button>\n )}\n </div>\n )}\n {chips.chips.length > 0 && (\n <FilterBar\n chips={chips.chips}\n defOf={(column) => defs.get(column)!}\n editing={chips.editing}\n rows={sourceRows}\n labels={labels}\n summaryOf={summaryOf}\n currenciesOf={currenciesOf}\n onChange={chips.update}\n onRemove={chips.remove}\n onEditing={chips.setEditing}\n onClearAll={chips.clear}\n onOpen={phone ? openSheet : undefined}\n add={\n <ColumnPicker\n columns={filterable}\n chips={chips.chips}\n onPick={chips.pick}\n trigger={\n <button\n type=\"button\"\n className=\"dt-btn dt-btn-ghost dt-btn-sm has-icon dt-filter-add dt-filter-trigger\"\n aria-label={i18n.t('filter.addFilter')}\n >\n <PlusIcon size={14} aria-hidden=\"true\" />\n {i18n.t('filter.addFilter')}\n </button>\n }\n />\n }\n />\n )}\n <Grid\n layout={table.layout}\n rows={rows}\n rowId={table.rowId}\n label={label ?? entity.other}\n density={table.density}\n skeleton={load.skeleton}\n dim={load.dim}\n refreshing={load.bar}\n verticalLines={table.prefs.prefs.verticalLines}\n rowCount={total === undefined ? -1 : total + 1}\n rowIndexOffset={(page.number - 1) * page.size}\n scrollKey={JSON.stringify([q.page.number, q.search, q.filters])}\n sort={sort}\n canSort={(id) => sortable.has(id)}\n onSort={table.toggleSort}\n onSortSet={table.setSort}\n filtered={new Set(q.filters.map((f) => f.column))}\n canFilter={(id) => filterIds.has(id)}\n onFilter={pick}\n onColumns={toolbar === 'auto' && !phone ? openColumns : undefined}\n notice={\n load.stillLoading && (\n <>\n <CircleNotchIcon size={14} className=\"dt-spin\" aria-hidden=\"true\" />\n {i18n.t('state.stillLoading')}\n </>\n )\n }\n state={state}\n onRowClick={handleRowClick}\n selection={selectable ? table.selection : undefined}\n onSelectRows={selectable ? selectRows : undefined}\n expanded={expanded}\n canExpand={canExpand}\n onToggleExpand={toggleExpand}\n renderExpanded={renderExpanded && ((row, close) => renderExpanded({ row, close }))}\n resetKey={expandKey}\n rowMenu={rowMenu}\n rowActions={rowActions}\n primaryHref={primaryHref}\n primaryLabel={primaryLabel}\n onRowOpen={(row, event) => onRowOpen?.({ row, href: primaryHref(row) ?? '', event })}\n rowError={rowError}\n reorder={reorder && { disabled: reorder.disabled ?? false, pending: order.pending, onMove: order.move }}\n />\n {selectionBar === 'floating' && bulkBar && (\n <BulkBar\n variant=\"floating\"\n phone={phone}\n rows={selectedRows}\n actions={bulkActions ?? []}\n onClear={table.clearSelection}\n >\n {selectionActions?.({ rows: selectedRows, clear: table.clearSelection })}\n </BulkBar>\n )}\n <Footer\n rowCount={rows.length}\n page={page}\n hasMore={hasMore}\n total={total}\n countable={server && !!table.count}\n counting={counting === countKey}\n countedAt={countedNow?.at ?? null}\n busy={busy}\n firstLoad={load.skeleton && !hasRows}\n empty={bodyState === 'empty'}\n pageSizes={table.pageSizes}\n updatedAt={load.updatedAt}\n freshness={freshness}\n onRefresh={refetch && (() => refetch())}\n onCount={count}\n onPage={table.setPage}\n onPageSize={table.setPageSize}\n phone={phone}\n />\n {sheet && phone && hasFilter && (\n <Suspense fallback={null}>\n <FiltersSheet\n key={sheet.key}\n open={sheet.open}\n onOpenChange={(o) => setSheet({ ...sheet, open: o })}\n column={sheet.column}\n columns={table.columns as ColumnDef[]}\n chips={chips.chips}\n sort={q.sort}\n rows={sourceRows}\n labels={labels}\n summaryOf={summaryOf}\n currenciesOf={currenciesOf}\n onApply={(next, sort) => {\n chips.setEditing(null)\n table.setQuery({ filters: next.map(toCondition), sort })\n }}\n />\n </Suspense>\n )}\n <span className=\"dt-sr-only\" aria-live=\"polite\">\n {polite}\n </span>\n <span className=\"dt-sr-only\" aria-live=\"assertive\">\n {load.errorKind === 'error' ? `${i18n.t('state.errorTitle', { entity })} ${i18n.t('state.tryAgain')}` : ''}\n </span>\n <DelegatedTooltip root={root} />\n {viewDialog && (\n <ViewDialog\n key={viewDialog.key}\n open\n onOpenChange={(o) => !o && setViewDialog(null)}\n mode={viewDialog.mode}\n name={viewDialog.name}\n summary={viewDialog.summary}\n validate={(name) =>\n nameError(name, vw.all, locale, viewDialog.mode === 'rename' ? viewDialog.view?.id : undefined)\n }\n onSave={({ name, makeDefault }) => {\n if (viewDialog.mode === 'rename' && viewDialog.view) void vw.rename(viewDialog.view.id, name)\n else {\n chips.setEditing(null)\n void vw.create({ name, state: viewDialog.state, makeDefault, fromCurrent: viewDialog.fromCurrent })\n }\n }}\n />\n )}\n {columnsUsed && (\n <Suspense fallback={null}>\n <ColumnsDialog\n open={columnsOpen}\n onOpenChange={setColumnsOpen}\n columns={table.layout.panel}\n onSave={table.layout.arrange}\n finalFocus={columnsFrom}\n />\n </Suspense>\n )}\n <ConfirmDialog\n open={!!confirmDelete}\n onOpenChange={(o) => !o && setConfirmDelete(null)}\n title={i18n.t('views.delete.title', { name: confirmDelete?.name ?? '' })}\n body={i18n.t('views.delete.body')}\n confirmLabel={i18n.t('views.delete')}\n danger\n onConfirm={() => confirmDelete && void vw.remove(confirmDelete.id)}\n />\n </div>\n )\n}\n"],"mappings":"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"}