solid-tom-ui 0.2.4 → 1.0.1
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/README.md +237 -237
- package/dist/components/badge/badge.d.ts +0 -1
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/solid-ui.css +1 -1
- package/dist/src/components/avatar/avatar.js.map +1 -0
- package/dist/src/components/badge/badge.js +2 -0
- package/dist/src/components/badge/badge.js.map +1 -0
- package/dist/src/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/{components → src/components}/button/button.js +1 -1
- package/dist/src/components/button/button.js.map +1 -0
- package/dist/src/components/carousel/carousel.js +2 -0
- package/dist/src/components/carousel/carousel.js.map +1 -0
- package/dist/src/components/chat-bubble/chatBubble.js.map +1 -0
- package/dist/src/components/checkbox/checkbox.js.map +1 -0
- package/dist/src/components/code-preview/code-preview.js +2 -0
- package/dist/src/components/code-preview/code-preview.js.map +1 -0
- package/dist/src/components/collapse/collapse.js.map +1 -0
- package/dist/src/components/context-menu/context-menu.js +2 -0
- package/dist/src/components/context-menu/context-menu.js.map +1 -0
- package/dist/src/components/context-menu/context-menu.store.js.map +1 -0
- package/dist/src/components/diff/diff.js.map +1 -0
- package/dist/src/components/divider/divider.js.map +1 -0
- package/dist/src/components/drawer/drawer.js +2 -0
- package/dist/src/components/drawer/drawer.js.map +1 -0
- package/dist/src/components/dropdown/dropdown.js.map +1 -0
- package/dist/src/components/dropdown/dropdown.store.js.map +1 -0
- package/dist/src/components/float-button/float-button.js.map +1 -0
- package/dist/src/components/hover-3d-image/hover-3d-image.js.map +1 -0
- package/dist/src/components/image-preview/image-preview.js +2 -0
- package/dist/src/components/image-preview/image-preview.js.map +1 -0
- package/dist/src/components/indicator/indicator.js.map +1 -0
- package/dist/src/components/input/input.js.map +1 -0
- package/dist/src/components/input/input.utils.js.map +1 -0
- package/dist/src/components/input/variants/input-color.js.map +1 -0
- package/dist/src/components/input/variants/input-date.js.map +1 -0
- package/dist/src/components/input/variants/input-number.js +2 -0
- package/dist/src/components/input/variants/input-number.js.map +1 -0
- package/dist/src/components/input/variants/input-otp.js.map +1 -0
- package/dist/src/components/input/variants/input-password.js +2 -0
- package/dist/src/components/input/variants/input-password.js.map +1 -0
- package/dist/src/components/input/variants/input-radio.js.map +1 -0
- package/dist/src/components/input/variants/input-range.js.map +1 -0
- package/dist/src/components/input/variants/input-text.js +2 -0
- package/dist/src/components/input/variants/input-text.js.map +1 -0
- package/dist/src/components/input/variants/input-textarea.js +2 -0
- package/dist/src/components/input/variants/input-textarea.js.map +1 -0
- package/dist/src/components/loading/loading.js +2 -0
- package/dist/src/components/loading/loading.js.map +1 -0
- package/dist/src/components/mansory/mansory.js.map +1 -0
- package/dist/src/components/menu/menu.js +2 -0
- package/dist/src/components/menu/menu.js.map +1 -0
- package/dist/src/components/modal/modal.js +2 -0
- package/dist/src/components/modal/modal.js.map +1 -0
- package/dist/src/components/modal/modalContext.js.map +1 -0
- package/dist/src/components/pagination/pagination.js +2 -0
- package/dist/src/components/pagination/pagination.js.map +1 -0
- package/dist/src/components/progress-bar/progress-bar.js.map +1 -0
- package/dist/src/components/qr-code/qr-code.js +2 -0
- package/dist/src/components/qr-code/qr-code.js.map +1 -0
- package/dist/src/components/rating/rating.js.map +1 -0
- package/dist/src/components/select/select.js +2 -0
- package/dist/src/components/select/select.js.map +1 -0
- package/dist/src/components/select-zone/select-zone.js.map +1 -0
- package/dist/src/components/skeleton/skeleton.js.map +1 -0
- package/dist/src/components/slider/slider.js.map +1 -0
- package/dist/src/components/splitter/splitter.js.map +1 -0
- package/dist/src/components/steps/steps.js +2 -0
- package/dist/src/components/steps/steps.js.map +1 -0
- package/dist/src/components/swap/swap.js.map +1 -0
- package/dist/src/components/switch/switch.js.map +1 -0
- package/dist/src/components/tab/tab.js +2 -0
- package/dist/src/components/tab/tab.js.map +1 -0
- package/dist/src/components/table/table.js +2 -0
- package/dist/src/components/table/table.js.map +1 -0
- package/dist/src/components/text-rotate/text-rotate.js.map +1 -0
- package/dist/src/components/timeline/timeline.js +2 -0
- package/dist/src/components/timeline/timeline.js.map +1 -0
- package/dist/src/components/toast/icons/ErrorIcon.js.map +1 -0
- package/dist/src/components/toast/icons/IconCircle.js.map +1 -0
- package/dist/src/components/toast/icons/InfoIcon.js.map +1 -0
- package/dist/src/components/toast/icons/LoaderIcon.js.map +1 -0
- package/dist/src/components/toast/icons/SuccessIcon.js.map +1 -0
- package/dist/src/components/toast/icons/WarningIcon.js.map +1 -0
- package/dist/src/components/toast/toast.js +2 -0
- package/dist/src/components/toast/toast.js.map +1 -0
- package/dist/src/components/toast/toast.store.js.map +1 -0
- package/dist/src/components/tooltip/tooltip.js.map +1 -0
- package/dist/{components → src/components}/tour/tour.js +1 -1
- package/dist/src/components/tour/tour.js.map +1 -0
- package/dist/src/components/upload/upload.js +2 -0
- package/dist/src/components/upload/upload.js.map +1 -0
- package/dist/src/components/z-index/z-index.context.js.map +1 -0
- package/dist/src/components/z-index/z-index.js.map +1 -0
- package/dist/src/components/z-index/z-index.store.js.map +1 -0
- package/dist/src/components/z-index/z-index.types.js.map +1 -0
- package/dist/src/utils/cn.js.map +1 -0
- package/dist/src/utils/element-tracker.js.map +1 -0
- package/dist/src/utils/helper.js.map +1 -0
- package/dist/src/utils/hoc.js.map +1 -0
- package/dist/src/utils/shiki-highlight.js +2 -0
- package/dist/src/utils/shiki-highlight.js.map +1 -0
- package/package.json +120 -120
- package/dist/components/avatar/avatar.js.map +0 -1
- package/dist/components/badge/badge.js +0 -2
- package/dist/components/badge/badge.js.map +0 -1
- package/dist/components/breadcrumb/breadcrumb.js.map +0 -1
- package/dist/components/button/button.js.map +0 -1
- package/dist/components/carousel/carousel.js +0 -2
- package/dist/components/carousel/carousel.js.map +0 -1
- package/dist/components/chat-bubble/chatBubble.js.map +0 -1
- package/dist/components/checkbox/checkbox.js.map +0 -1
- package/dist/components/code-preview/code-preview.js +0 -2
- package/dist/components/code-preview/code-preview.js.map +0 -1
- package/dist/components/collapse/collapse.js.map +0 -1
- package/dist/components/context-menu/context-menu.js +0 -2
- package/dist/components/context-menu/context-menu.js.map +0 -1
- package/dist/components/context-menu/context-menu.store.js.map +0 -1
- package/dist/components/diff/diff.js.map +0 -1
- package/dist/components/divider/divider.js.map +0 -1
- package/dist/components/drawer/drawer.js +0 -2
- package/dist/components/drawer/drawer.js.map +0 -1
- package/dist/components/dropdown/dropdown.js.map +0 -1
- package/dist/components/dropdown/dropdown.store.js.map +0 -1
- package/dist/components/float-button/float-button.js.map +0 -1
- package/dist/components/hover-3d-image/hover-3d-image.js.map +0 -1
- package/dist/components/image-preview/image-preview.js +0 -2
- package/dist/components/image-preview/image-preview.js.map +0 -1
- package/dist/components/indicator/indicator.js.map +0 -1
- package/dist/components/input/input.js.map +0 -1
- package/dist/components/input/input.utils.js.map +0 -1
- package/dist/components/input/variants/input-color.js.map +0 -1
- package/dist/components/input/variants/input-date.js.map +0 -1
- package/dist/components/input/variants/input-number.js +0 -2
- package/dist/components/input/variants/input-number.js.map +0 -1
- package/dist/components/input/variants/input-otp.js.map +0 -1
- package/dist/components/input/variants/input-password.js +0 -2
- package/dist/components/input/variants/input-password.js.map +0 -1
- package/dist/components/input/variants/input-radio.js.map +0 -1
- package/dist/components/input/variants/input-range.js.map +0 -1
- package/dist/components/input/variants/input-text.js +0 -2
- package/dist/components/input/variants/input-text.js.map +0 -1
- package/dist/components/input/variants/input-textarea.js +0 -2
- package/dist/components/input/variants/input-textarea.js.map +0 -1
- package/dist/components/loading/loading.js +0 -2
- package/dist/components/loading/loading.js.map +0 -1
- package/dist/components/mansory/mansory.js.map +0 -1
- package/dist/components/menu/menu.js +0 -2
- package/dist/components/menu/menu.js.map +0 -1
- package/dist/components/modal/modal.js +0 -2
- package/dist/components/modal/modal.js.map +0 -1
- package/dist/components/modal/modalContext.js.map +0 -1
- package/dist/components/pagination/pagination.js +0 -2
- package/dist/components/pagination/pagination.js.map +0 -1
- package/dist/components/progress-bar/progress-bar.js.map +0 -1
- package/dist/components/qr-code/qr-code.js +0 -2
- package/dist/components/qr-code/qr-code.js.map +0 -1
- package/dist/components/rating/rating.js.map +0 -1
- package/dist/components/select/select.js +0 -2
- package/dist/components/select/select.js.map +0 -1
- package/dist/components/select-zone/select-zone.js.map +0 -1
- package/dist/components/skeleton/skeleton.js.map +0 -1
- package/dist/components/slider/slider.js.map +0 -1
- package/dist/components/splitter/splitter.js.map +0 -1
- package/dist/components/steps/steps.js +0 -2
- package/dist/components/steps/steps.js.map +0 -1
- package/dist/components/swap/swap.js.map +0 -1
- package/dist/components/switch/switch.js.map +0 -1
- package/dist/components/tab/tab.js +0 -2
- package/dist/components/tab/tab.js.map +0 -1
- package/dist/components/table/table.js +0 -2
- package/dist/components/table/table.js.map +0 -1
- package/dist/components/text-rotate/text-rotate.js.map +0 -1
- package/dist/components/timeline/timeline.js +0 -2
- package/dist/components/timeline/timeline.js.map +0 -1
- package/dist/components/toast/icons/ErrorIcon.js.map +0 -1
- package/dist/components/toast/icons/IconCircle.js.map +0 -1
- package/dist/components/toast/icons/InfoIcon.js.map +0 -1
- package/dist/components/toast/icons/LoaderIcon.js.map +0 -1
- package/dist/components/toast/icons/SuccessIcon.js.map +0 -1
- package/dist/components/toast/icons/WarningIcon.js.map +0 -1
- package/dist/components/toast/toast.js +0 -2
- package/dist/components/toast/toast.js.map +0 -1
- package/dist/components/toast/toast.store.js.map +0 -1
- package/dist/components/tooltip/tooltip.js.map +0 -1
- package/dist/components/tour/tour.js.map +0 -1
- package/dist/components/upload/upload.js +0 -2
- package/dist/components/upload/upload.js.map +0 -1
- package/dist/components/z-index/z-index.context.js.map +0 -1
- package/dist/components/z-index/z-index.js.map +0 -1
- package/dist/components/z-index/z-index.store.js.map +0 -1
- package/dist/components/z-index/z-index.types.js.map +0 -1
- package/dist/utils/cn.js.map +0 -1
- package/dist/utils/element-tracker.js.map +0 -1
- package/dist/utils/helper.js.map +0 -1
- package/dist/utils/hoc.js.map +0 -1
- package/dist/utils/shiki-highlight.js +0 -2
- package/dist/utils/shiki-highlight.js.map +0 -1
- /package/dist/{components → src/components}/avatar/avatar.js +0 -0
- /package/dist/{components → src/components}/breadcrumb/breadcrumb.js +0 -0
- /package/dist/{components → src/components}/chat-bubble/chatBubble.js +0 -0
- /package/dist/{components → src/components}/checkbox/checkbox.js +0 -0
- /package/dist/{components → src/components}/collapse/collapse.js +0 -0
- /package/dist/{components → src/components}/context-menu/context-menu.store.js +0 -0
- /package/dist/{components → src/components}/diff/diff.js +0 -0
- /package/dist/{components → src/components}/divider/divider.js +0 -0
- /package/dist/{components → src/components}/dropdown/dropdown.js +0 -0
- /package/dist/{components → src/components}/dropdown/dropdown.store.js +0 -0
- /package/dist/{components → src/components}/float-button/float-button.js +0 -0
- /package/dist/{components → src/components}/hover-3d-image/hover-3d-image.js +0 -0
- /package/dist/{components → src/components}/indicator/indicator.js +0 -0
- /package/dist/{components → src/components}/input/input.js +0 -0
- /package/dist/{components → src/components}/input/input.utils.js +0 -0
- /package/dist/{components → src/components}/input/variants/input-color.js +0 -0
- /package/dist/{components → src/components}/input/variants/input-date.js +0 -0
- /package/dist/{components → src/components}/input/variants/input-otp.js +0 -0
- /package/dist/{components → src/components}/input/variants/input-radio.js +0 -0
- /package/dist/{components → src/components}/input/variants/input-range.js +0 -0
- /package/dist/{components → src/components}/mansory/mansory.js +0 -0
- /package/dist/{components → src/components}/modal/modalContext.js +0 -0
- /package/dist/{components → src/components}/progress-bar/progress-bar.js +0 -0
- /package/dist/{components → src/components}/rating/rating.js +0 -0
- /package/dist/{components → src/components}/select-zone/select-zone.js +0 -0
- /package/dist/{components → src/components}/skeleton/skeleton.js +0 -0
- /package/dist/{components → src/components}/slider/slider.js +0 -0
- /package/dist/{components → src/components}/splitter/splitter.js +0 -0
- /package/dist/{components → src/components}/swap/swap.js +0 -0
- /package/dist/{components → src/components}/switch/switch.js +0 -0
- /package/dist/{components → src/components}/table/index.js +0 -0
- /package/dist/{components → src/components}/text-rotate/text-rotate.js +0 -0
- /package/dist/{components → src/components}/toast/icons/ErrorIcon.js +0 -0
- /package/dist/{components → src/components}/toast/icons/IconCircle.js +0 -0
- /package/dist/{components → src/components}/toast/icons/InfoIcon.js +0 -0
- /package/dist/{components → src/components}/toast/icons/LoaderIcon.js +0 -0
- /package/dist/{components → src/components}/toast/icons/SuccessIcon.js +0 -0
- /package/dist/{components → src/components}/toast/icons/WarningIcon.js +0 -0
- /package/dist/{components → src/components}/toast/toast.store.js +0 -0
- /package/dist/{components → src/components}/tooltip/tooltip.js +0 -0
- /package/dist/{components → src/components}/z-index/z-index.context.js +0 -0
- /package/dist/{components → src/components}/z-index/z-index.js +0 -0
- /package/dist/{components → src/components}/z-index/z-index.store.js +0 -0
- /package/dist/{components → src/components}/z-index/z-index.types.js +0 -0
- /package/dist/{lib.js → src/lib.js} +0 -0
- /package/dist/{utils → src/utils}/cn.js +0 -0
- /package/dist/{utils → src/utils}/element-tracker.js +0 -0
- /package/dist/{utils → src/utils}/helper.js +0 -0
- /package/dist/{utils → src/utils}/hoc.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":["cn","getColor","ColumnDef","createSolidTable","flexRender","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","createVirtualizer","ChevronDown","ChevronRight","ChevronsUpDown","ChevronUp","createEffect","createMemo","createSignal","createUniqueId","For","Match","mergeProps","on","onCleanup","onMount","Show","Switch","JSX","Button","Pagination","Tooltip","TableBorder","TableCellSpanResult","TableColumnFixed","TableExpandedOptions","TableProps","TableScroll","TableSelectionOptions","TableStyleProps","TableVirtualOptions","TableZebra","normalizeBorder","border","undefined","outer","horizontal","vertical","normalizeZebra","zebra","cols","rows","TableSizeClass","xs","sm","md","lg","xl","const","getTableClass","opts","classes","push","size","join","FixedInfo","fixed","offset","isLastStart","isFirstEnd","computeFixedColumnInfo","columns","id","width","Map","result","leftOffset","lastStartId","col","set","rightOffset","firstEndId","i","length","info","get","toCssValue","val","SELECTION_COLUMN_ID","processSelectionColumns","TData","selectionOptions","foundFirst","processed","filter","meta","_selection","EXPANDED_COLUMN_ID","extractExpandedOptions","_expanded","Table","rawProps","p","enableSorting","enableColumnFilters","resizable","showHeader","color","rounded","processedColumns","finalColumns","expandedOptions","colsWithExplicitSize","Set","map","accessorKey","resolvedEnableRowSelection","enableRowSelection","enableMultiRowSelection","type","hasExpandableRows","internalExpandedKeys","setInternalExpandedKeys","defaultExpandedRowKeys","expandAllApplied","expandedKeys","expandedRowKeys","defaultExpandAllRows","allKeys","table","getRowModel","row","isRowExpanded","rowId","includes","toggleRowExpanded","record","currentKeys","isExpanded","newKeys","k","onExpand","onExpandedRowsChange","internalData","setInternalData","data","defer","getVirtualData","paginationProps","isMultiSortEvent","getRowId","_expandApi","state","sorting","columnFilters","globalFilter","rowSelection","columnVisibility","pagination","options","onSortingChange","onColumnFiltersChange","onGlobalFilterChange","onRowSelectionChange","onColumnVisibilityChange","_","rest","isEmpty","hasFixedColumns","some","scrollX","scroll","x","scrollXWrapper","scrollXTable","sxWidths","scrollXColumnWidths","getAllLeafColumns","total","reduce","sum","getSize","columnWidths","scrollY","y","hasScroll","hasScrollX","hasScrollY","normalizedVirtual","v","virtual","itemSize","overscan","isVirtual","wrapperEl","HTMLDivElement","headerWrapperEl","rowVirtualizer","HTMLTableRowElement","count","getScrollElement","estimateSize","measureElement","el","height","getBoundingClientRect","next","nextElementSibling","classList","contains","virtualTopPadding","items","getVirtualItems","start","virtualBottomPadding","totalSize","getTotalSize","end","isSortingLoading","setIsSortingLoading","_sortTimer","ReturnType","setTimeout","clearSortTimer","clearTimeout","triggerVirtualSort","e","MouseEvent","columnId","column","getColumn","getCanSort","t0","Date","now","getToggleSortingHandler","elapsed","delay","Math","max","scrollTop","_autoLoadChain","Promise","resolve","isFetchingMore","setIsFetchingMore","callGetVirtualData","then","newRows","prev","finally","autoFillViewport","loadingMore","queueMicrotask","isConnected","scrollHeight","clientHeight","notifyTableReady","onTableReady","resolveBodySpan","cell","Cell","rowIndex","perCol","columnDef","onCell","tableEl","HTMLTableElement","bodyTableEl","tbodyId","setColumnWidths","Record","resizingIndex","setResizingIndex","handlePositions","setHandlePositions","left","top","colIndex","dataColumnSelector","getDataColumns","colMinWidth","minWidth","min","snapshotColumnWidths","ths","querySelectorAll","HTMLTableCellElement","widths","forEach","allThsTotal","Array","from","th","excess","lastColId","updateHandlePositions","handleTop","handleHeight","hdrRect","bodyRect","tableRect","positions","enableResizing","thRect","right","handleResizeStart","preventDefault","stopPropagation","lastColIndex","isLastCol","colId","startWidths","startX","clientX","startWidth","onMouseMove","ev","totalWidth","Object","values","a","b","otherCols","slice","otherMinTotal","rawDelta","newLastWidth","remainingWidth","perColWidth","newWidths","nextColIndex","nextColId","nextColStartWidth","nextColMinWidth","minDelta","maxDelta","clampedDelta","onMouseUp","document","removeEventListener","documentElement","remove","addEventListener","add","handleResizeDblClick","currentWidths","keys","equalWidth","w1","w2","half","newW1","newW2","hasResizeWidths","resizeTableWidth","declaredCols","has","undeclaredCols","declaredTotal","numUndeclared","undeclaredWidth","remaining","useFixedLayout","measuredWidths","setMeasuredWidths","measureColumnWidths","offsetWidth","fixedColumnInfo","colData","getFixedCellStyle","getFixedCellClass","AlignHeaderClass","center","AlignCellClass","AlignTdStyle","getColAlign","align","hasCellTooltip","tooltip","wrapCellContent","cellValue","content","Element","tooltipOpts","rawContent","resolvedContent","tooltipProps","containerId","position","class","root","_$createComponent","_$mergeProps","children","handleTableClick","target","HTMLElement","isOwnElement","t","closest","dataset","selectionTd","tr","getRow","getCanSelect","toggleSelected","expandTd","expandable","rowExpandable","original","index","onRowClick","window","passive","capture","removeWindowScrollListener","observer","ResizeObserver","observe","disconnectResizeObserver","disconnect","handleScroll","threshold","removeScrollListener","syncHeaderScroll","scrollLeft","_el$","_tmpl$9","_el$2","firstChild","_el$8","_el$9","_$insert","when","_$memo","onChange","page","setPageIndex","getState","pageSize","setPageSize","headerPanel","_el$3","_tmpl$","_$effect","_$className","_el$4","_tmpl$3","_el$5","_el$7","_$use","$$click","_ref$","_el$6","_tmpl$2","each","isNonResizable","_el$21","_tmpl$0","_$p","_$style","getHeaderGroups","headerGroup","groupIndex","totalRows","earlyRenderedCols","flatMap","g","headers","h","isPlaceholder","getLeafColumns","_el$22","_tmpl$1","header","isEarlyLeaf","rowSpanVal","headerSpan","onHeaderCell","colSpan","finalColSpan","finalRowSpan","rowSpan","_el$23","_tmpl$12","_el$24","_el$25","_$setAttribute","getContext","_el$26","_tmpl$11","fallback","getIsSorted","getSortIndex","_el$27","_tmpl$10","_p$","_v$14","_v$15","_v$16","_v$17","o","headerRow","_v$","_v$2","_v$3","_v$4","thead","_el$0","_el$28","_el$1","_tmpl$4","_el$29","_el$30","_el$31","_el$32","_el$33","_el$34","_v$18","_v$19","_v$20","_v$21","_el$35","_tmpl$8","_el$36","_tmpl$13","_el$37","emptyContent","_v$22","getAllColumns","_v$23","empty","expanded","_el$38","getVisibleCells","isSpecial","hasTooltip","span","_el$41","_tmpl$15","getValue","_el$42","_v$26","td","_v$27","_v$28","_v$29","_v$24","bodyRow","getIsSelected","_v$25","_el$39","_tmpl$14","_el$40","expandedRowRender","tbody","_el$43","_tmpl$16","_el$44","_el$45","_v$30","_v$31","_$setStyleProperty","_el$10","_el$11","_tmpl$5","_el$12","_v$5","_v$6","virtualRow","trEl","hasAttribute","_el$46","_el$49","_el$50","_v$35","_v$36","_v$32","_v$33","_v$34","_el$47","_el$48","_el$13","_el$14","_v$7","_v$8","_el$15","_tmpl$6","_el$16","_el$17","_tmpl$7","_el$18","_el$19","variant","loading","onClick","pos","_el$51","$$dblclick","$$mousedown","_v$37","_v$38","_v$39","_v$40","footerPanel","_el$20","tfoot","_v$9","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","n","s","Selection","hideSelectAll","title","_el$52","_tmpl$17","_$addEventListener","getToggleAllRowsSelectedHandler","syncIndeterminate","indeterminate","getIsSomeRowsSelected","checked","getIsAllRowsSelected","renderCell","_el$53","_tmpl$18","_el$54","_tmpl$19","getToggleSelectedHandler","disabled","_el$55","_tmpl$20","Expanded","api","_el$56","_tmpl$21","expandIcon","_$delegateEvents"],"sources":["../../../src/components/table/table.tsx"],"sourcesContent":["import { cn } from '@/utils/cn';\nimport { getColor } from '@/utils/helper';\nimport type { ColumnDef } from '@tanstack/solid-table';\nimport {\n createSolidTable,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n} from '@tanstack/solid-table';\nimport { createVirtualizer } from '@tanstack/solid-virtual';\nimport ChevronDown from 'lucide-solid/icons/chevron-down';\nimport ChevronRight from 'lucide-solid/icons/chevron-right';\nimport ChevronsUpDown from 'lucide-solid/icons/chevrons-up-down';\nimport ChevronUp from 'lucide-solid/icons/chevron-up';\nimport {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n For,\n Match,\n mergeProps,\n on,\n onCleanup,\n onMount,\n Show,\n Switch,\n type JSX,\n} from 'solid-js';\nimport { Button } from '../button';\nimport { Pagination } from '../pagination';\nimport { Tooltip } from '../tooltip';\nimport type {\n TableBorder,\n TableCellSpanResult,\n TableColumnFixed,\n TableExpandedOptions,\n TableProps,\n TableScroll,\n TableSelectionOptions,\n TableStyleProps,\n TableVirtualOptions,\n TableZebra,\n} from './table.types';\n\nfunction normalizeBorder(border: TableBorder | boolean | undefined): TableBorder | undefined {\n if (border === undefined) return undefined;\n if (border === true) return { outer: true, horizontal: true, vertical: true };\n if (border === false) return { outer: false, horizontal: false, vertical: false };\n return border;\n}\n\nfunction normalizeZebra(zebra: TableZebra | boolean | undefined): TableZebra {\n switch (zebra) {\n case true:\n return { cols: false, rows: true };\n case false:\n case undefined:\n return { cols: false, rows: false };\n default:\n return zebra;\n }\n}\n\nconst TableSizeClass = {\n xs: 'tbe02',\n sm: 'tbe03',\n md: 'tbe04',\n lg: 'tbe05',\n xl: 'tbe06',\n} as const;\n\nfunction getTableClass(opts: TableStyleProps): string {\n const classes: string[] = [];\n const zebra = normalizeZebra(opts.zebra);\n if (zebra.rows) classes.push('tbe07');\n if (zebra.cols) classes.push('tbe08');\n if (opts.size) classes.push(TableSizeClass[opts.size]);\n return classes.join(' ');\n}\n\ntype FixedInfo = {\n fixed: TableColumnFixed;\n offset: number;\n isLastStart: boolean;\n isFirstEnd: boolean;\n};\n\nfunction computeFixedColumnInfo(\n columns: { id: string; fixed?: TableColumnFixed; width: number }[],\n): Map<string, FixedInfo> {\n const result = new Map<string, FixedInfo>();\n\n let leftOffset = 0;\n let lastStartId: string | null = null;\n for (const col of columns) {\n const fixed = col.fixed;\n if (fixed === true || fixed === 'start') {\n result.set(col.id, {\n fixed: 'start',\n offset: leftOffset,\n isLastStart: false,\n isFirstEnd: false,\n });\n leftOffset += col.width;\n lastStartId = col.id;\n }\n }\n\n let rightOffset = 0;\n let firstEndId: string | null = null;\n for (let i = columns.length - 1; i >= 0; i--) {\n const col = columns[i];\n const fixed = col.fixed;\n if (fixed === 'end') {\n result.set(col.id, {\n fixed: 'end',\n offset: rightOffset,\n isLastStart: false,\n isFirstEnd: false,\n });\n rightOffset += col.width;\n if (!firstEndId) firstEndId = col.id;\n }\n }\n\n if (lastStartId) {\n const info = result.get(lastStartId)!;\n info.isLastStart = true;\n }\n if (firstEndId) {\n const info = result.get(firstEndId)!;\n info.isFirstEnd = true;\n }\n\n return result;\n}\n\nfunction toCssValue(val: string | number): string {\n return typeof val === 'number' ? `${val}px` : val;\n}\n\nconst SELECTION_COLUMN_ID = '__selection__';\n\nfunction processSelectionColumns<TData>(columns: ColumnDef<TData, any>[]): {\n columns: ColumnDef<TData, any>[];\n selectionOptions: TableSelectionOptions<TData> | undefined;\n} {\n let selectionOptions: TableSelectionOptions<TData> | undefined;\n let foundFirst = false;\n\n const processed = columns.filter(col => {\n const meta = col.meta as any;\n if (meta?._selection) {\n if (foundFirst) return false;\n foundFirst = true;\n selectionOptions = meta._selection;\n return true;\n }\n return true;\n });\n\n return { columns: processed, selectionOptions };\n}\n\nconst EXPANDED_COLUMN_ID = '__expanded__';\n\nfunction extractExpandedOptions<TData>(\n columns: ColumnDef<TData, any>[],\n): TableExpandedOptions<TData> | undefined {\n for (const col of columns) {\n const meta = col.meta as any;\n if (meta?._expanded) return meta._expanded;\n }\n return undefined;\n}\n\nfunction Table<TData>(rawProps: TableProps<TData>) {\n const p = mergeProps(\n {\n zebra: { rows: true } as TableZebra | boolean,\n size: 'md' as const,\n enableSorting: false,\n enableColumnFilters: false,\n resizable: true,\n showHeader: true,\n color: 'info' as const,\n rounded: 'rounded-sm',\n } as TableProps<TData>,\n rawProps,\n );\n\n const processedColumns = createMemo(() => processSelectionColumns<TData>(p.columns));\n const selectionOptions = () => processedColumns().selectionOptions;\n const finalColumns = () => processedColumns().columns;\n\n const expandedOptions = createMemo(() => extractExpandedOptions<TData>(p.columns));\n\n const colsWithExplicitSize = createMemo(\n () =>\n new Set(\n p.columns\n .filter(col => 'size' in col)\n .map(col => ('accessorKey' in col ? col.accessorKey : 'id' in col ? col.id : undefined)),\n ),\n );\n\n const resolvedEnableRowSelection = () => {\n if (p.enableRowSelection !== undefined) return p.enableRowSelection;\n return !!selectionOptions();\n };\n\n const enableMultiRowSelection = () => {\n const opts = selectionOptions();\n if (!opts) return true;\n return opts.type !== 'radio';\n };\n\n const hasExpandableRows = () => !!expandedOptions();\n\n const [internalExpandedKeys, setInternalExpandedKeys] = createSignal<string[]>(\n p.defaultExpandedRowKeys ?? [],\n );\n\n let expandAllApplied = false;\n\n const expandedKeys = (): string[] => {\n if (!hasExpandableRows()) return [];\n\n if (p.expandedRowKeys !== undefined) return p.expandedRowKeys;\n\n if (p.defaultExpandAllRows && !expandAllApplied) {\n expandAllApplied = true;\n const allKeys = table.getRowModel().rows.map(row => row.id);\n setInternalExpandedKeys(allKeys);\n return allKeys;\n }\n\n return internalExpandedKeys();\n };\n\n const isRowExpanded = (rowId: string) => expandedKeys().includes(rowId);\n\n function toggleRowExpanded(rowId: string, record: TData) {\n const currentKeys = expandedKeys();\n const isExpanded = currentKeys.includes(rowId);\n const newKeys = isExpanded ? currentKeys.filter(k => k !== rowId) : [...currentKeys, rowId];\n\n if (p.expandedRowKeys === undefined) {\n setInternalExpandedKeys(newKeys);\n }\n\n p.onExpand?.(!isExpanded, record);\n p.onExpandedRowsChange?.(newKeys);\n }\n\n const [internalData, setInternalData] = createSignal<TData[]>(p.data as TData[]);\n\n createEffect(\n on(\n () => p.data,\n data => setInternalData(data as TData[]),\n { defer: true },\n ),\n );\n\n const table = createSolidTable<TData>({\n get data() {\n return p.getVirtualData ? internalData() : p.data;\n },\n get columns() {\n return finalColumns();\n },\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n ...(p.enableColumnFilters && { getFilteredRowModel: getFilteredRowModel() }),\n\n ...(p.paginationProps !== undefined && {\n getPaginationRowModel: getPaginationRowModel(),\n }),\n get enableSorting() {\n return p.enableSorting;\n },\n\n isMultiSortEvent: () => true,\n get enableColumnFilters() {\n return p.enableColumnFilters;\n },\n get enableRowSelection() {\n return resolvedEnableRowSelection();\n },\n get enableMultiRowSelection() {\n return enableMultiRowSelection();\n },\n ...(p.getRowId && { getRowId: p.getRowId }),\n meta: {\n _expandApi: {\n isRowExpanded,\n toggleRowExpanded,\n },\n },\n state: {\n get sorting() {\n return p.sorting;\n },\n get columnFilters() {\n return p.columnFilters;\n },\n get globalFilter() {\n return p.globalFilter;\n },\n get rowSelection() {\n return p.rowSelection;\n },\n get columnVisibility() {\n return p.columnVisibility;\n },\n get pagination() {\n return p.pagination;\n },\n ...(p.options?.state || {}),\n },\n ...(p.onSortingChange && { onSortingChange: p.onSortingChange }),\n ...(p.onColumnFiltersChange && { onColumnFiltersChange: p.onColumnFiltersChange }),\n ...(p.onGlobalFilterChange && { onGlobalFilterChange: p.onGlobalFilterChange }),\n ...(p.onRowSelectionChange && { onRowSelectionChange: p.onRowSelectionChange }),\n ...(p.onColumnVisibilityChange && { onColumnVisibilityChange: p.onColumnVisibilityChange }),\n ...(p.options &&\n (() => {\n const { state: _, ...rest } = p.options!;\n return rest;\n })()),\n });\n const border = () => normalizeBorder(p.border);\n\n const isEmpty = () => table.getRowModel().rows.length === 0;\n\n const hasFixedColumns = () => p.columns.some(col => col.meta?.fixed);\n\n const scrollX = () => (p.scroll as TableScroll | undefined)?.x;\n\n const scrollXWrapper = () => {\n const x = scrollX();\n if (x === undefined) return undefined;\n if (x === true || x === 'max-content') return undefined;\n return toCssValue(x);\n };\n\n const scrollXTable = () => {\n const x = scrollX();\n if (x === undefined) return undefined;\n if (x === 'max-content') return 'max-content';\n\n const sxWidths = scrollXColumnWidths();\n const cols = table.getAllLeafColumns();\n const total = cols.reduce((sum, col) => {\n if (col.id === SELECTION_COLUMN_ID || col.id === EXPANDED_COLUMN_ID) {\n return sum + col.getSize();\n }\n if (sxWidths) return sum + (sxWidths[col.id] ?? 100);\n return sum + (columnWidths()[col.id] ?? col.getSize());\n }, 0);\n return `${total}px`;\n };\n\n const scrollY = () => {\n const y = p.scroll?.y;\n if (y === undefined) return undefined;\n return toCssValue(y);\n };\n\n const hasScroll = () => scrollX() !== undefined || p.scroll?.y !== undefined;\n const hasScrollX = () => scrollX() !== undefined;\n const hasScrollY = () => p.scroll?.y !== undefined;\n\n const normalizedVirtual = createMemo((): TableVirtualOptions | null => {\n const v = p.virtual;\n if (!v) return null;\n if (v === true) return { itemSize: 40, overscan: 5 };\n return { itemSize: v.itemSize ?? 40, overscan: v.overscan ?? 5 };\n });\n\n const isVirtual = () => !!normalizedVirtual();\n\n let wrapperEl!: HTMLDivElement;\n let headerWrapperEl!: HTMLDivElement;\n\n const rowVirtualizer = createVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n get count() {\n return isVirtual() ? table.getRowModel().rows.length : 0;\n },\n getScrollElement: () => (isVirtual() ? wrapperEl : null),\n estimateSize: () => normalizedVirtual()?.itemSize ?? 40,\n get overscan() {\n return normalizedVirtual()?.overscan ?? 5;\n },\n\n measureElement: el => {\n let height = el.getBoundingClientRect().height;\n const next = el.nextElementSibling;\n if (next?.classList.contains('tbe31')) {\n height += next.getBoundingClientRect().height;\n }\n return height;\n },\n });\n\n const virtualTopPadding = createMemo(() => {\n if (!isVirtual()) return 0;\n const items = rowVirtualizer.getVirtualItems();\n return items.length > 0 ? (items[0]?.start ?? 0) : 0;\n });\n\n const virtualBottomPadding = createMemo(() => {\n if (!isVirtual()) return 0;\n const items = rowVirtualizer.getVirtualItems();\n const totalSize = rowVirtualizer.getTotalSize();\n return items.length > 0 ? totalSize - (items[items.length - 1]?.end ?? 0) : 0;\n });\n\n const [isSortingLoading, setIsSortingLoading] = createSignal(false);\n let _sortTimer: ReturnType<typeof setTimeout> | null = null;\n\n onCleanup(function clearSortTimer() {\n if (_sortTimer !== null) clearTimeout(_sortTimer);\n });\n\n function triggerVirtualSort(e: MouseEvent, columnId: string) {\n if (isSortingLoading()) return;\n const column = table.getColumn(columnId);\n if (!column?.getCanSort()) return;\n\n setIsSortingLoading(true);\n const t0 = Date.now();\n\n setTimeout(() => {\n column.getToggleSortingHandler()?.(e);\n\n const elapsed = Date.now() - t0;\n const delay = Math.max(0, 500 - elapsed);\n\n _sortTimer = setTimeout(() => {\n _sortTimer = null;\n setIsSortingLoading(false);\n\n if (wrapperEl) wrapperEl.scrollTop = 0;\n }, delay);\n }, 0);\n }\n\n let _autoLoadChain = Promise.resolve<void>(undefined);\n\n const [isFetchingMore, setIsFetchingMore] = createSignal(false);\n\n function callGetVirtualData() {\n if (!p.getVirtualData || isFetchingMore()) return;\n setIsFetchingMore(true);\n p.getVirtualData()\n .then(newRows => {\n setInternalData(prev => [...prev, ...newRows]);\n })\n .finally(() => {\n setIsFetchingMore(false);\n });\n }\n\n createEffect(function autoFillViewport() {\n if (!isVirtual() || p.loadingMore !== 'auto' || isFetchingMore()) return;\n\n _autoLoadChain = _autoLoadChain.then(\n () =>\n new Promise<void>(resolve => {\n queueMicrotask(() => {\n if (\n wrapperEl &&\n wrapperEl.isConnected &&\n p.getVirtualData &&\n p.loadingMore === 'auto' &&\n !isFetchingMore() &&\n wrapperEl.scrollHeight <= wrapperEl.clientHeight\n ) {\n callGetVirtualData();\n }\n resolve();\n });\n }),\n );\n });\n\n createEffect(function notifyTableReady() {\n p.onTableReady?.(table);\n });\n\n function resolveBodySpan(\n cell: import('@tanstack/solid-table').Cell<TData, unknown>,\n rowIndex: number,\n ): TableCellSpanResult {\n const perCol = cell.column.columnDef.meta?.onCell;\n if (perCol) return perCol(cell, rowIndex);\n return p.onCell?.(cell, rowIndex) ?? {};\n }\n\n let tableEl!: HTMLTableElement;\n let bodyTableEl!: HTMLTableElement;\n const tbodyId = createUniqueId();\n\n const [columnWidths, setColumnWidths] = createSignal<Record<string, number>>({});\n\n const [resizingIndex, setResizingIndex] = createSignal(-1);\n\n const [handlePositions, setHandlePositions] = createSignal<\n { left: number; top: number; height: number; colIndex: number }[]\n >([]);\n\n // When scroll.x is set, resizable is always disabled (types enforce this, but guard at runtime too)\n const resizable = createMemo(() => scrollX() === undefined && p.resizable !== false);\n\n const dataColumnSelector = 'thead tr:first-child th:not(.tbe23):not(.tbe22)';\n\n function getDataColumns() {\n return table\n .getAllLeafColumns()\n .filter(col => col.id !== EXPANDED_COLUMN_ID && col.id !== SELECTION_COLUMN_ID);\n }\n\n /** Effective minimum width: the smaller of the column's declared size and the meta minWidth (default 100). */\n function colMinWidth(col: {\n getSize(): number;\n columnDef: { meta?: { minWidth?: number } };\n }): number {\n return Math.min(col.getSize(), col.columnDef.meta?.minWidth ?? 100);\n }\n\n function snapshotColumnWidths(): Record<string, number> {\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n const widths: Record<string, number> = {};\n cols.forEach((col, i) => {\n if (ths[i]) {\n // Use getBoundingClientRect for sub-pixel precision — offsetWidth is an integer\n // and accumulated rounding can make the sum exceed the table width by 1-2px,\n // which triggers a spurious horizontal scrollbar when col widths are made explicit.\n widths[col.id] = ths[i].getBoundingClientRect().width;\n }\n });\n // Safety: trim any remaining excess (e.g. from non-data columns or float imprecision)\n // so the colgroup widths never exceed the table's own rendered width.\n const allThsTotal = Array.from(\n tableEl.querySelectorAll<HTMLTableCellElement>('thead tr:first-child th'),\n ).reduce((sum, th) => sum + th.getBoundingClientRect().width, 0);\n const excess = allThsTotal - tableEl.getBoundingClientRect().width;\n if (excess > 0 && cols.length > 0) {\n const lastColId = cols[cols.length - 1].id;\n if (widths[lastColId] !== undefined) {\n widths[lastColId] = Math.max(\n colMinWidth(cols[cols.length - 1]),\n widths[lastColId] - excess,\n );\n }\n }\n return widths;\n }\n\n function updateHandlePositions() {\n if (!tableEl) return;\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n\n let handleTop: number;\n let handleHeight: number;\n if (hasScrollY()) {\n const hdrRect = headerWrapperEl?.getBoundingClientRect();\n const bodyRect = wrapperEl?.getBoundingClientRect();\n handleTop = hdrRect?.top ?? 0;\n handleHeight = (hdrRect?.height ?? 0) + (bodyRect?.height ?? 0);\n } else {\n const tableRect = tableEl.getBoundingClientRect();\n handleTop = tableRect.top;\n handleHeight = tableRect.height;\n }\n\n const positions: { left: number; top: number; height: number; colIndex: number }[] = [];\n\n for (let i = 0; i < ths.length; i++) {\n const col = cols[i];\n if (!col || col.columnDef.enableResizing === false) continue;\n const thRect = ths[i].getBoundingClientRect();\n positions.push({\n left: thRect.right,\n top: handleTop,\n height: handleHeight,\n colIndex: i,\n });\n }\n\n setHandlePositions(positions);\n }\n\n function handleResizeStart(colIndex: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const cols = getDataColumns();\n const lastColIndex = cols.length - 1;\n const isLastCol = colIndex === lastColIndex;\n const colId = cols[colIndex].id;\n const lastColId = cols[lastColIndex].id;\n\n const startWidths = snapshotColumnWidths();\n setColumnWidths(startWidths);\n\n const startX = e.clientX;\n const startWidth = startWidths[colId] || 0;\n const minWidth = colMinWidth(cols[colIndex]);\n\n setResizingIndex(colIndex);\n\n let onMouseMove: (ev: MouseEvent) => void;\n\n if (isLastCol) {\n // Resizing the last column: distribute remaining width equally among all other columns.\n const totalWidth = Object.values(startWidths).reduce((a, b) => a + b, 0);\n const otherCols = cols.slice(0, lastColIndex);\n const otherMinTotal = otherCols.reduce((sum, col) => sum + colMinWidth(col), 0);\n\n onMouseMove = (ev: MouseEvent) => {\n const rawDelta = ev.clientX - startX;\n // Last col can't go below its minWidth; others can't go below their minWidths combined\n const newLastWidth = Math.max(\n minWidth,\n Math.min(totalWidth - otherMinTotal, startWidth + rawDelta),\n );\n const remainingWidth = totalWidth - newLastWidth;\n const perColWidth =\n otherCols.length > 0 ? remainingWidth / otherCols.length : remainingWidth;\n\n const newWidths: Record<string, number> = {};\n otherCols.forEach(col => {\n newWidths[col.id] = Math.max(colMinWidth(col), perColWidth);\n });\n newWidths[lastColId] = newLastWidth;\n setColumnWidths(newWidths);\n queueMicrotask(() => updateHandlePositions());\n };\n } else {\n // Resizing a non-last column: column N grows/shrinks and the ADJACENT right\n // column (N+1) absorbs the opposite delta. Total table width stays constant.\n const nextColIndex = colIndex + 1;\n const nextColId = cols[nextColIndex].id;\n const nextColStartWidth = startWidths[nextColId] || 0;\n const nextColMinWidth = colMinWidth(cols[nextColIndex]);\n\n onMouseMove = (ev: MouseEvent) => {\n const rawDelta = ev.clientX - startX;\n // Floor: dragged column can't go below its minWidth\n const minDelta = minWidth - startWidth;\n // Ceiling: next column can't go below its minWidth\n const maxDelta = nextColStartWidth - nextColMinWidth;\n const clampedDelta = Math.max(minDelta, Math.min(maxDelta, rawDelta));\n\n setColumnWidths(prev => ({\n ...prev,\n [colId]: startWidth + clampedDelta,\n [nextColId]: nextColStartWidth - clampedDelta,\n }));\n queueMicrotask(() => updateHandlePositions());\n };\n }\n\n const onMouseUp = () => {\n setResizingIndex(-1);\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n document.documentElement.classList.remove('tbe-resizing');\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n document.documentElement.classList.add('tbe-resizing');\n }\n\n function handleResizeDblClick(colIndex: number, e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const cols = getDataColumns();\n const currentWidths =\n Object.keys(columnWidths()).length > 0 ? columnWidths() : snapshotColumnWidths();\n const lastColIndex = cols.length - 1;\n\n if (colIndex === lastColIndex) {\n // Divider sau last col: chia đều tất cả các cột\n const total = cols.reduce((sum, col) => sum + (currentWidths[col.id] ?? col.getSize()), 0);\n const equalWidth = total / cols.length;\n const newWidths: Record<string, number> = {};\n cols.forEach(col => {\n newWidths[col.id] = Math.max(colMinWidth(col), equalWidth);\n });\n setColumnWidths(newWidths);\n } else {\n // Divider giữa cột colIndex và colIndex+1: chia đều tổng width 2 cột\n const colId = cols[colIndex].id;\n const nextColId = cols[colIndex + 1].id;\n const w1 = currentWidths[colId] ?? cols[colIndex].getSize();\n const w2 = currentWidths[nextColId] ?? cols[colIndex + 1].getSize();\n const half = (w1 + w2) / 2;\n const newW1 = Math.max(colMinWidth(cols[colIndex]), half);\n const newW2 = Math.max(colMinWidth(cols[colIndex + 1]), w1 + w2 - newW1);\n setColumnWidths(prev => ({\n ...currentWidths,\n ...prev,\n [colId]: newW1,\n [nextColId]: newW2,\n }));\n }\n\n queueMicrotask(() => updateHandlePositions());\n }\n\n const hasResizeWidths = () => Object.keys(columnWidths()).length > 0;\n\n /**\n * When resizing is active, override the table's `w-full` with an exact pixel width\n * equal to the sum of all column widths. This prevents the browser from proportionally\n * scaling columns to fill the container when the total is less than the container width,\n * and allows the table to grow beyond the container (triggering scroll) when columns expand.\n */\n const resizeTableWidth = createMemo<string | null>(() => {\n if (!hasResizeWidths()) return null;\n const widths = columnWidths();\n const total = table\n .getAllLeafColumns()\n .reduce((sum, col) => sum + (widths[col.id] ?? col.getSize()), 0);\n return `${total}px`;\n });\n\n /**\n * When scroll-x is active (resizable is off), compute explicit widths for every data column:\n * - Columns with a declared `size` keep that size.\n * - Remaining columns share the leftover space equally (min 100px each).\n * Returns null when scroll-x is not active.\n */\n const scrollXColumnWidths = createMemo<Record<string, number> | null>(() => {\n if (!hasScrollX()) return null;\n const cols = getDataColumns();\n const x = scrollX()!;\n const declaredCols = cols.filter(col => colsWithExplicitSize().has(col.id));\n const undeclaredCols = cols.filter(col => !colsWithExplicitSize().has(col.id));\n const declaredTotal = declaredCols.reduce((sum, col) => sum + col.getSize(), 0);\n const numUndeclared = undeclaredCols.length;\n let undeclaredWidth: number;\n if (typeof x === 'number') {\n const remaining = x - declaredTotal;\n undeclaredWidth = numUndeclared > 0 ? Math.max(100, remaining / numUndeclared) : 100;\n } else {\n undeclaredWidth = 100;\n }\n const widths: Record<string, number> = {};\n cols.forEach(col => {\n widths[col.id] = colsWithExplicitSize().has(col.id) ? col.getSize() : undeclaredWidth;\n });\n return widths;\n });\n\n const useFixedLayout = () => colsWithExplicitSize().size > 0 || hasResizeWidths() || hasScrollX();\n\n const [measuredWidths, setMeasuredWidths] = createSignal<Record<string, number>>({});\n\n function measureColumnWidths() {\n if (!tableEl) return;\n const ths = tableEl.querySelectorAll<HTMLTableCellElement>(dataColumnSelector);\n const cols = getDataColumns();\n const widths: Record<string, number> = {};\n cols.forEach((col, i) => {\n if (ths[i]) {\n widths[col.id] = ths[i].offsetWidth;\n }\n });\n setMeasuredWidths(widths);\n }\n\n const fixedColumnInfo = createMemo(() => {\n const widths = measuredWidths();\n if (Object.keys(widths).length === 0) return new Map<string, FixedInfo>();\n\n const cols = table.getAllLeafColumns();\n const colData = cols.map(col => ({\n id: col.id,\n fixed: col.columnDef.meta?.fixed,\n width: widths[col.id] || 0,\n }));\n\n return computeFixedColumnInfo(colData);\n });\n\n function getFixedCellStyle(colId: string): Record<string, string> | undefined {\n const info = fixedColumnInfo().get(colId);\n if (!info) return undefined;\n\n if (info.fixed === 'start') {\n return { left: `${info.offset}px` };\n }\n if (info.fixed === 'end') {\n return { right: `${info.offset}px` };\n }\n return undefined;\n }\n\n function getFixedCellClass(colId: string): string {\n const info = fixedColumnInfo().get(colId);\n if (!info) return '';\n\n return cn('tbe33', info.isLastStart && 'tbe34', info.isFirstEnd && 'tbe35');\n }\n\n const AlignHeaderClass = {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n } as const;\n\n const AlignCellClass = {\n start: 'align-start',\n center: 'align-center',\n end: 'align-end',\n } as const;\n\n const AlignTdStyle = {\n start: 'text-left',\n center: 'text-center',\n end: 'text-right',\n } as const;\n\n function getColAlign(colId: string) {\n const col = table.getColumn(colId);\n return (col?.columnDef.meta?.align ?? 'start') as 'start' | 'center' | 'end';\n }\n\n function hasCellTooltip(colId: string): boolean {\n return !!table.getColumn(colId)?.columnDef.meta?.tooltip;\n }\n\n function wrapCellContent(colId: string, cellValue: unknown, content: JSX.Element): JSX.Element {\n const col = table.getColumn(colId);\n const tooltipOpts = col?.columnDef.meta?.tooltip;\n if (!tooltipOpts) return content;\n const rawContent = tooltipOpts.content;\n const resolvedContent = typeof rawContent === 'function' ? rawContent(cellValue) : rawContent;\n const tooltipProps = {\n ...tooltipOpts,\n ...(resolvedContent !== undefined && { content: resolvedContent }),\n containerId: tbodyId,\n position: tooltipOpts.position ?? ('top' as const),\n class: { root: 'tbe-tt-cell' },\n };\n return (\n <Tooltip type=\"portal\" {...(tooltipProps as any)}>\n {content}\n </Tooltip>\n );\n }\n\n function handleTableClick(e: MouseEvent) {\n const target = e.target as HTMLElement;\n\n const isOwnElement = (el: HTMLElement) => {\n const t = el.closest('table');\n return t === tableEl || t === bodyTableEl;\n };\n\n const th = target.closest('th[data-column-id]') as HTMLElement | null;\n if (th && isOwnElement(th)) {\n const columnId = th.dataset.columnId;\n if (columnId) {\n if (isVirtual() && p.enableSorting) {\n triggerVirtualSort(e, columnId);\n } else {\n const column = table.getColumn(columnId);\n if (column?.getCanSort()) {\n column.getToggleSortingHandler()?.(e);\n }\n }\n }\n return;\n }\n\n const selectionTd = target.closest('td.tbe22') as HTMLElement | null;\n if (selectionTd && isOwnElement(selectionTd)) {\n const tr = selectionTd.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row?.getCanSelect()) {\n row.toggleSelected();\n }\n }\n }\n return;\n }\n\n const expandTd = target.closest('td.tbe23') as HTMLElement | null;\n if (expandTd && isOwnElement(expandTd)) {\n const tr = expandTd.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row) {\n const opts = expandedOptions();\n const expandable = opts?.rowExpandable\n ? opts.rowExpandable(row.original, row.index)\n : true;\n if (expandable) {\n toggleRowExpanded(row.id, row.original);\n }\n }\n }\n }\n return;\n }\n\n const tr = target.closest('tr[data-row-id]') as HTMLElement | null;\n if (tr && isOwnElement(tr) && p.onRowClick) {\n const rowId = tr.dataset.rowId;\n if (rowId !== undefined) {\n const row = table.getRow(rowId);\n if (row) {\n p.onRowClick(row, e);\n }\n }\n }\n }\n\n onMount(() => {\n if (resizable()) {\n updateHandlePositions();\n\n window.addEventListener('scroll', updateHandlePositions, { passive: true, capture: true });\n onCleanup(function removeWindowScrollListener() {\n window.removeEventListener('scroll', updateHandlePositions, { capture: true });\n });\n }\n if (hasFixedColumns()) {\n measureColumnWidths();\n }\n\n if (resizable() || hasFixedColumns()) {\n const observer = new ResizeObserver(() => {\n if (resizable()) updateHandlePositions();\n if (hasFixedColumns()) measureColumnWidths();\n });\n observer.observe(tableEl);\n onCleanup(function disconnectResizeObserver() {\n observer.disconnect();\n });\n }\n\n if (isVirtual()) {\n const handleScroll = () => {\n if (!p.getVirtualData || p.loadingMore !== 'auto') return;\n const opts = normalizedVirtual();\n const threshold = (opts?.itemSize ?? 40) * (opts?.overscan ?? 5);\n if (wrapperEl.scrollTop + wrapperEl.clientHeight >= wrapperEl.scrollHeight - threshold) {\n callGetVirtualData();\n }\n };\n wrapperEl.addEventListener('scroll', handleScroll, { passive: true });\n onCleanup(function removeScrollListener() {\n wrapperEl.removeEventListener('scroll', handleScroll);\n });\n }\n\n if (hasScrollY()) {\n const syncHeaderScroll = () => {\n if (headerWrapperEl) headerWrapperEl.scrollLeft = wrapperEl.scrollLeft;\n if (resizable()) updateHandlePositions();\n };\n wrapperEl.addEventListener('scroll', syncHeaderScroll, { passive: true });\n onCleanup(() => wrapperEl.removeEventListener('scroll', syncHeaderScroll));\n }\n });\n\n return (\n <div class={cn('tbe09', p.paginationProps !== undefined && 'tbe10')}>\n <Show\n when={\n p.paginationProps !== undefined && !p.virtual && p.paginationProps?.position === 'start'\n }\n >\n <Pagination\n {...p.paginationProps}\n onChange={(page, size) => {\n table.setPageIndex(page - 1);\n if (size !== table.getState().pagination.pageSize) {\n table.setPageSize(size);\n }\n p.paginationProps?.onChange?.(page, size);\n }}\n />\n </Show>\n <div\n class={cn(\n 'tbe11',\n border()?.outer && 'tbe42',\n resizable() && 'tbe36',\n resizingIndex() >= 0 && 'tbe39',\n (hasFixedColumns() || hasScrollY()) && 'tbe13',\n getColor(p.color),\n p.rounded,\n p.rounded && 'overflow-hidden',\n p.class?.root,\n )}\n style={{\n ...(scrollXWrapper() ? { 'max-width': scrollXWrapper() } : {}),\n ...(hasScrollX() && p.rounded ? { 'overflow-x': 'clip' } : {}),\n }}\n >\n <Show when={p.headerPanel}>\n <div class={cn('tbe40', border()?.outer && 'tbe41', p.class?.headerPanel)}>\n {p.headerPanel?.()}\n </div>\n </Show>\n <Show when={hasScrollY() && p.showHeader}>\n <div ref={el => (headerWrapperEl = el)} class={cn('tbe12', 'tbe14-hdr')}>\n <table\n ref={tableEl}\n class={cn(\n 'tbe01',\n getTableClass(p),\n border()?.horizontal && 'tbe43',\n border()?.vertical && 'tbe44',\n useFixedLayout() && 'table-fixed',\n p.class?.table,\n )}\n style={{\n ...(resizeTableWidth()\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\n : scrollXTable()\n ? { 'min-width': scrollXTable()! }\n : {}),\n }}\n onClick={handleTableClick}\n >\n <Show when={useFixedLayout()}>\n <colgroup>\n <For each={table.getAllLeafColumns()}>\n {col => {\n const isNonResizable = () =>\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\n return (\n <col\n style={{\n ...(isNonResizable()\n ? { width: `${col.getSize()}px` }\n : hasResizeWidths()\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\n : scrollXColumnWidths()\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\n : colsWithExplicitSize().has(col.id)\n ? { width: `${col.getSize()}px` }\n : {}),\n }}\n />\n );\n }}\n </For>\n </colgroup>\n </Show>\n <thead\n class={cn(\n p.class?.thead,\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\n )}\n >\n <For each={table.getHeaderGroups()}>\n {(headerGroup, groupIndex) => {\n const totalRows = table.getHeaderGroups().length;\n\n const earlyRenderedCols = new Set(\n table\n .getHeaderGroups()\n .slice(0, groupIndex())\n .flatMap(g =>\n g.headers\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\n .map(h => h.column.id),\n ),\n );\n return (\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\n <For each={headerGroup.headers}>\n {header => {\n if (earlyRenderedCols.has(header.column.id)) return null;\n\n const isEarlyLeaf =\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\n\n if (header.isPlaceholder && !isEarlyLeaf) return null;\n const headerSpan =\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\n if (headerSpan.colSpan === 0) return null;\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\n const finalRowSpan =\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\n return (\n <th\n class={cn(\n p.class?.th,\n header.column.getCanSort() && 'tbe18',\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(header.column.id),\n )}\n colSpan={finalColSpan}\n rowSpan={finalRowSpan}\n data-column-id={header.column.id}\n style={getFixedCellStyle(header.column.id)}\n >\n <div\n class={cn(\n 'tbe15',\n (colsWithExplicitSize().has(header.column.id) ||\n hasResizeWidths()) &&\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n 'tbe16',\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n AlignHeaderClass[getColAlign(header.column.id)],\n )}\n >\n <span class=\"tbe17\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <Show when={header.column.getCanSort()}>\n <span class=\"tbe19\">\n <Switch\n fallback={\n <ChevronsUpDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n }\n >\n <Match when={header.column.getIsSorted() === 'asc'}>\n <ChevronUp\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n <Match when={header.column.getIsSorted() === 'desc'}>\n <ChevronDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n </Switch>\n <Show\n when={\n header.column.getIsSorted() !== false &&\n (header.column.getSortIndex() ?? -1) >= 0 &&\n table.getState().sorting.length > 1\n }\n >\n <span class=\"tbe20\">\n {(header.column.getSortIndex() ?? 0) + 1}\n </span>\n </Show>\n </span>\n </Show>\n </div>\n </th>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </thead>\n </table>\n </div>\n </Show>\n <div\n ref={el => (wrapperEl = el)}\n class={cn('tbe12', hasScroll() && 'tbe14')}\n style={{\n ...(scrollY() ? { 'max-height': scrollY() } : {}),\n }}\n >\n <table\n ref={el => {\n bodyTableEl = el;\n if (!hasScrollY()) tableEl = el;\n }}\n class={cn(\n 'tbe01',\n getTableClass(p),\n border()?.horizontal && 'tbe43',\n border()?.vertical && 'tbe44',\n useFixedLayout() && 'table-fixed',\n p.class?.table,\n )}\n style={{\n ...(resizeTableWidth()\n ? { width: resizeTableWidth()!, 'min-width': resizeTableWidth()! }\n : scrollXTable()\n ? { 'min-width': scrollXTable()! }\n : {}),\n }}\n onClick={handleTableClick}\n >\n <Show when={useFixedLayout()}>\n <colgroup>\n <For each={table.getAllLeafColumns()}>\n {col => {\n const isNonResizable = () =>\n col.id === EXPANDED_COLUMN_ID || col.id === SELECTION_COLUMN_ID;\n return (\n <col\n style={{\n ...(isNonResizable()\n ? { width: `${col.getSize()}px` }\n : hasResizeWidths()\n ? { width: `${columnWidths()[col.id] || col.getSize()}px` }\n : scrollXColumnWidths()\n ? { width: `${scrollXColumnWidths()![col.id] ?? 100}px` }\n : colsWithExplicitSize().has(col.id)\n ? { width: `${col.getSize()}px` }\n : {}),\n }}\n />\n );\n }}\n </For>\n </colgroup>\n </Show>\n\n <Show when={!hasScrollY() && p.showHeader}>\n <thead\n class={cn(\n p.class?.thead,\n isSortingLoading() ? 'pointer-events-none cursor-wait' : '',\n )}\n >\n <For each={table.getHeaderGroups()}>\n {(headerGroup, groupIndex) => {\n const totalRows = table.getHeaderGroups().length;\n const earlyRenderedCols = new Set(\n table\n .getHeaderGroups()\n .slice(0, groupIndex())\n .flatMap(g =>\n g.headers\n .filter(h => h.isPlaceholder && h.column.getLeafColumns().length === 1)\n .map(h => h.column.id),\n ),\n );\n return (\n <tr class={cn(p.class?.tr, p.class?.headerRow)}>\n <For each={headerGroup.headers}>\n {header => {\n if (earlyRenderedCols.has(header.column.id)) return null;\n const isEarlyLeaf =\n header.isPlaceholder && header.column.getLeafColumns().length === 1;\n const rowSpanVal = isEarlyLeaf ? totalRows - groupIndex() : 1;\n if (header.isPlaceholder && !isEarlyLeaf) return null;\n const headerSpan =\n header.column.columnDef.meta?.onHeaderCell?.(header) ?? {};\n if (headerSpan.colSpan === 0) return null;\n const finalColSpan = headerSpan.colSpan ?? header.colSpan;\n const finalRowSpan =\n headerSpan.rowSpan ?? (rowSpanVal > 1 ? rowSpanVal : undefined);\n return (\n <th\n class={cn(\n p.class?.th,\n header.column.getCanSort() && 'tbe18',\n header.column.id === SELECTION_COLUMN_ID && 'tbe22',\n header.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(header.column.id),\n )}\n colSpan={finalColSpan}\n rowSpan={finalRowSpan}\n data-column-id={header.column.id}\n style={getFixedCellStyle(header.column.id)}\n >\n <div\n class={cn(\n 'tbe15',\n (colsWithExplicitSize().has(header.column.id) ||\n hasResizeWidths()) &&\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n 'tbe16',\n header.column.id !== SELECTION_COLUMN_ID &&\n header.column.id !== EXPANDED_COLUMN_ID &&\n AlignHeaderClass[getColAlign(header.column.id)],\n )}\n >\n <span class=\"tbe17\">\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <Show when={header.column.getCanSort()}>\n <span class=\"tbe19\">\n <Switch\n fallback={\n <ChevronsUpDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n }\n >\n <Match when={header.column.getIsSorted() === 'asc'}>\n <ChevronUp\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n <Match when={header.column.getIsSorted() === 'desc'}>\n <ChevronDown\n size={14}\n stroke-width={3}\n color=\"var(--color)\"\n />\n </Match>\n </Switch>\n\n <Show\n when={\n header.column.getIsSorted() !== false &&\n (header.column.getSortIndex() ?? -1) >= 0 &&\n table.getState().sorting.length > 1\n }\n >\n <span class=\"tbe20\">\n {(header.column.getSortIndex() ?? 0) + 1}\n </span>\n </Show>\n </span>\n </Show>\n </div>\n </th>\n );\n }}\n </For>\n </tr>\n );\n }}\n </For>\n </thead>\n </Show>\n\n <Show\n when={isVirtual() && !isEmpty()}\n fallback={\n <tbody id={tbodyId} class={cn(p.class?.tbody)}>\n <Show\n when={!isEmpty()}\n fallback={\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class={cn('tbe45', p.class?.empty)}\n >\n {p.emptyContent ?? 'No data'}\n </td>\n </tr>\n }\n >\n <For each={table.getRowModel().rows}>\n {(row, rowIndex) => {\n const expanded = () => isRowExpanded(row.id);\n const opts = expandedOptions();\n\n return (\n <>\n <tr\n class={cn(\n p.class?.tr,\n p.class?.bodyRow,\n row.getIsSelected() && 'tbe27',\n expanded() && 'tbe28',\n rowIndex() % 2 === 0 ? 'tbe29' : 'tbe30',\n )}\n data-row-id={row.id}\n >\n <For each={row.getVisibleCells()}>\n {cell => {\n const isSpecial =\n cell.column.id === SELECTION_COLUMN_ID ||\n cell.column.id === EXPANDED_COLUMN_ID;\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\n const span: TableCellSpanResult = resolveBodySpan(\n cell,\n rowIndex(),\n );\n if (span.colSpan === 0 || span.rowSpan === 0) return null;\n return (\n <td\n class={cn(\n p.class?.td,\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(cell.column.id),\n hasTooltip && 'relative',\n !isSpecial && AlignTdStyle[align],\n )}\n style={{\n ...getFixedCellStyle(cell.column.id),\n }}\n colSpan={span.colSpan}\n rowSpan={span.rowSpan}\n >\n <Show\n when={\n (colsWithExplicitSize().has(cell.column.id) ||\n hasResizeWidths()) &&\n !isSpecial\n }\n fallback={wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n >\n <div class={cn('tbe21', AlignCellClass[align])}>\n {wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n ),\n )}\n </div>\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n <Show when={hasExpandableRows() && expanded()}>\n <tr class=\"tbe31\">\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\n {opts!.expandedRowRender(row.original, rowIndex(), 0, true)}\n </td>\n </tr>\n </Show>\n </>\n );\n }}\n </For>\n </Show>\n </tbody>\n }\n >\n <Show\n when={!isSortingLoading()}\n fallback={\n <tbody>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{\n height: scrollY() ?? '200px',\n }}\n >\n <div class=\"flex h-full items-center justify-center gap-2 opacity-60\">\n <span class=\"text-base\">Sorting</span>\n <span class=\"loading loading-dots loading-sm text-base-content\" />\n </div>\n </td>\n </tr>\n </tbody>\n }\n >\n <tbody id={tbodyId} class={p.class?.tbody}>\n <Show when={virtualTopPadding() > 0}>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{ height: `${virtualTopPadding()}px` }}\n />\n </tr>\n </Show>\n\n <For each={rowVirtualizer.getVirtualItems()}>\n {virtualRow => {\n const rows = table.getRowModel().rows;\n const row = rows[virtualRow.index];\n const rowIndex = virtualRow.index;\n if (!row) return null;\n\n const expanded = () => isRowExpanded(row.id);\n const opts = expandedOptions();\n\n let trEl: HTMLTableRowElement | undefined;\n\n createEffect(\n on(\n expanded,\n () => {\n queueMicrotask(() => {\n if (trEl?.isConnected && trEl.hasAttribute('data-index'))\n rowVirtualizer.measureElement(trEl);\n });\n },\n { defer: true },\n ),\n );\n\n return (\n <>\n <tr\n ref={el => {\n trEl = el;\n if (el)\n queueMicrotask(() => {\n if (el.isConnected) rowVirtualizer.measureElement(el);\n });\n }}\n data-index={virtualRow.index}\n class={cn(\n p.class?.tr,\n p.class?.bodyRow,\n row.getIsSelected() && 'tbe27',\n expanded() && 'tbe28',\n rowIndex % 2 === 0 ? 'tbe29' : 'tbe30',\n )}\n data-row-id={row.id}\n >\n <For each={row.getVisibleCells()}>\n {cell => {\n const isSpecial =\n cell.column.id === SELECTION_COLUMN_ID ||\n cell.column.id === EXPANDED_COLUMN_ID;\n const align = isSpecial ? 'start' : getColAlign(cell.column.id);\n const hasTooltip = !isSpecial && hasCellTooltip(cell.column.id);\n return (\n <td\n class={cn(\n p.class?.td,\n cell.column.id === SELECTION_COLUMN_ID && 'tbe22',\n cell.column.id === EXPANDED_COLUMN_ID && 'tbe23',\n getFixedCellClass(cell.column.id),\n hasTooltip && 'relative p-0',\n !isSpecial && AlignTdStyle[align],\n )}\n style={{\n ...getFixedCellStyle(cell.column.id),\n }}\n >\n <Show\n when={\n (colsWithExplicitSize().has(cell.column.id) ||\n hasResizeWidths()) &&\n !isSpecial\n }\n fallback={wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n >\n <div class={cn('tbe21', AlignCellClass[align])}>\n {wrapCellContent(\n cell.column.id,\n cell.getValue(),\n flexRender(cell.column.columnDef.cell, cell.getContext()),\n )}\n </div>\n </Show>\n </td>\n );\n }}\n </For>\n </tr>\n <Show when={hasExpandableRows() && expanded()}>\n <tr class=\"tbe31\">\n <td colSpan={row.getVisibleCells().length} class=\"tbe32\">\n {opts!.expandedRowRender(row.original, rowIndex, 0, true)}\n </td>\n </tr>\n </Show>\n </>\n );\n }}\n </For>\n\n <Show when={virtualBottomPadding() > 0}>\n <tr>\n <td\n colSpan={table.getAllColumns().length}\n class=\"border-none p-0\"\n style={{ height: `${virtualBottomPadding()}px` }}\n />\n </tr>\n </Show>\n\n <Switch>\n <Match when={p.loadingMore === 'auto' && isFetchingMore()}>\n <tr>\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\n <div class=\"flex justify-center\">\n <span class=\"loading loading-dots loading-sm opacity-60\" />\n </div>\n </td>\n </tr>\n </Match>\n <Match when={p.loadingMore === 'manual'}>\n <tr>\n <td colSpan={table.getAllColumns().length} class=\"border-none py-2\">\n <div class=\"flex justify-center\">\n <Button\n variant={'default'}\n color={p.color}\n loading={isFetchingMore()}\n onClick={() => callGetVirtualData()}\n size={p.size}\n >\n Load more\n </Button>\n </div>\n </td>\n </tr>\n </Match>\n </Switch>\n </tbody>\n </Show>\n </Show>\n </table>\n </div>\n <Show when={resizable()}>\n <For each={handlePositions()}>\n {pos => (\n <div\n class={cn('tbe37', resizingIndex() === pos.colIndex && 'tbe38')}\n style={{\n left: `${pos.left}px`,\n top: `${pos.top}px`,\n height: `${pos.height}px`,\n }}\n onMouseDown={e => handleResizeStart(pos.colIndex, e)}\n onDblClick={e => handleResizeDblClick(pos.colIndex, e)}\n />\n )}\n </For>\n </Show>\n <Show when={p.footerPanel}>\n <div class={cn('tbe40', border()?.outer && 'border-c3/50 border-t', p.class?.tfoot)}>\n {p.footerPanel?.()}\n </div>\n </Show>\n </div>\n <Show\n when={\n p.paginationProps !== undefined &&\n !p.virtual &&\n (p.paginationProps?.position ?? 'end') === 'end'\n }\n >\n <Pagination\n {...p.paginationProps}\n onChange={(page, size) => {\n table.setPageIndex(page - 1);\n if (size !== table.getState().pagination.pageSize) {\n table.setPageSize(size);\n }\n p.paginationProps?.onChange?.(page, size);\n }}\n />\n </Show>\n </div>\n );\n}\n\nTable.Selection = function <TData = any>(\n options?: TableSelectionOptions<TData>,\n): ColumnDef<TData, any> {\n const opts: TableSelectionOptions<TData> = {\n type: 'checkbox',\n hideSelectAll: false,\n width: 32,\n ...options,\n };\n\n return {\n id: SELECTION_COLUMN_ID,\n size: typeof opts.width === 'number' ? opts.width : 48,\n enableSorting: false,\n enableResizing: false,\n meta: {\n _selection: opts,\n },\n header: ({ table }) => {\n if (opts.title !== undefined) return opts.title;\n if (opts.type === 'radio' || opts.hideSelectAll) return null;\n\n return (\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-xs checkbox-primary mx-auto\"\n checked={table.getIsAllRowsSelected()}\n ref={el => {\n createEffect(function syncIndeterminate() {\n el.indeterminate = table.getIsSomeRowsSelected();\n });\n }}\n onChange={table.getToggleAllRowsSelectedHandler()}\n />\n );\n },\n cell: ({ row }) => {\n const index = row.index;\n const checked = () => row.getIsSelected();\n const record = row.original;\n\n if (opts.renderCell) {\n return (\n <span\n onClick={e => {\n e.stopPropagation();\n row.toggleSelected();\n }}\n class=\"cursor-pointer\"\n >\n {opts.renderCell(checked(), record, index)}\n </span>\n );\n }\n\n if (opts.type === 'radio') {\n return (\n <input\n type=\"radio\"\n class=\"radio radio-xs radio-primary\"\n checked={checked()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n onClick={e => e.stopPropagation()}\n />\n );\n }\n\n return (\n <input\n type=\"checkbox\"\n class=\"checkbox checkbox-xs checkbox-primary\"\n checked={checked()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n onClick={e => e.stopPropagation()}\n />\n );\n },\n };\n};\n\nTable.Expanded = function <TData = any>(\n options: TableExpandedOptions<TData>,\n): ColumnDef<TData, any> {\n options = mergeProps(\n {\n width: 48,\n },\n options,\n );\n\n return {\n id: EXPANDED_COLUMN_ID,\n size: options.width,\n enableSorting: false,\n enableResizing: false,\n meta: {\n _expanded: options,\n },\n header: () => null,\n cell: ({ row, table }) => {\n const index = row.index;\n const record = row.original;\n const api = table.options.meta?._expandApi;\n const expandable = options.rowExpandable ? options.rowExpandable(record, index) : true;\n\n if (!expandable || !api) return null;\n\n const expanded = () => api.isRowExpanded(row.id);\n\n return (\n <span\n class=\"tbe24 cursor-pointer\"\n onClick={e => {\n e.stopPropagation();\n api.toggleRowExpanded(row.id, record);\n }}\n >\n <Show\n when={options.expandIcon}\n fallback={\n <ChevronRight size={16} stroke-width={2} class={cn('tbe25', expanded() && 'tbe26')} />\n }\n >\n {options.expandIcon!(expanded())}\n </Show>\n </span>\n );\n },\n };\n};\n\nexport { Table };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text-rotate.js","names":["Component","For","JSX","TextRotateProps","class","root","item","items","TextRotateItem","Element","TextRotate","p","length","undefined","console","warn","_el$","_tmpl$","_el$2","firstChild","_$insert","_$createComponent","each","children","_el$3","_tmpl$2","_$effect","_$className"],"sources":["../../../src/components/text-rotate/text-rotate.tsx"],"sourcesContent":["import { Component, For, JSX } from 'solid-js';\n\nexport interface TextRotateProps {\n class?: { root?: string; item?: string };\n items?: TextRotateItem[];\n}\ntype TextRotateItem = string | (() => JSX.Element);\n\nexport const TextRotate: Component<TextRotateProps> = p => {\n if (p.items?.length === 0 || p.items === undefined) {\n console.warn('TextRotate: No items provided');\n return <></>;\n } else if (p.items?.length > 6) {\n console.warn('TextRotate: More than 6 items may cause performance issues');\n return <></>;\n }\n return (\n <span class={p.class?.root ?? 'text-rotate'}>\n <span>\n <For each={p.items}>\n {item =>\n typeof item === 'function' ? item() : <span class={p.class?.item}>{item}</span>\n }\n </For>\n </span>\n </span>\n );\n};\n"],"mappings":"yKAQaU,EAAyCC,GAChDA,EAAEJ,OAAOK,SAAW,GAAKD,EAAEJ,QAAUM,IAAAA,IACvCC,QAAQC,KAAK,gCAAgC,CAC7C,EAAA,EACSJ,EAAEJ,OAAOK,OAAS,GAC3BE,QAAQC,KAAK,6DAA6D,CAC1E,EAAA,OAEF,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAC6C,OAD7CC,EAAAF,EAAAG,EAGOpB,EAAG,CAAA,IAACqB,MAAI,CAAA,OAAEX,EAAEJ,OAAKgB,SACfjB,GACC,OAAOA,GAAS,WAAaA,GAAM,MAAA,CAAA,IAAAkB,EAAAC,GAAA,CAA6B,OAA7BL,EAAAI,EAAgClB,EAAI,CAAAoB,MAAAC,EAAAH,EAApBb,EAAEP,OAAOE,KAAI,CAAA,CAAAkB,KAAA,CAAe,CAAA,CAAA,CAAAE,MAAAC,EAAAX,EAJ1EL,EAAEP,OAAOC,MAAQ,cAAa,CAAA,CAAAW,KAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{cn as e}from"../../utils/cn.js";import{getColor as t}from"../../utils/helper.js";import{check_default as n}from"../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/check.js";import{circle_alert_default as r}from"../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/circle-alert.js";import{clock_default as i}from"../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/clock.js";import{className as a,createComponent as o,effect as s,insert as c,memo as l,mergeProps as u,spread as d,template as f}from"solid-js/web";import{For as p,Show as m,createMemo as h,mergeProps as g,splitProps as _}from"solid-js";var v=f(`<span class="loading loading-spinner tl16">`),y=f(`<span class=tl17>`),b=f(`<div>`),x=f(`<div class=tl08>`),S=f(`<div class=tl12><div></div><div>`),C={pending:`neutral`,active:`primary`,done:`success`,error:`error`},w=(e,t)=>e.color?e.color:e.status?C[e.status]:t,T=t=>{let u=()=>t.item.status??`done`;return(()=>{var d=b();return c(d,o(m,{get when(){return t.item.loading},get children(){return v()}}),null),c(d,o(m,{get when(){return l(()=>!t.item.loading)()&&t.item.icon},get children(){var e=y();return c(e,t.item.icon),e}}),null),c(d,o(m,{get when(){return l(()=>!t.item.loading)()&&!t.item.icon},get children(){return[o(m,{get when(){return u()===`done`},get children(){return o(n,{size:12,"stroke-width":3})}}),o(m,{get when(){return u()===`error`},get children(){return o(r,{size:12,"stroke-width":2.5})}}),o(m,{get when(){return u()===`pending`},get children(){return o(i,{size:11,"stroke-width":2})}})]}}),null),s(()=>a(d,e(`tl15`,t.colorClass,`tl-s-${u()}`,t.class))),d})()},E=t=>(()=>{var n=b();return c(n,o(m,{get when(){return t.item.timestamp},get children(){var n=b();return c(n,()=>t.item.timestamp),s(()=>a(n,e(`tl21`,t.class?.timestamp))),n}}),null),c(n,o(m,{get when(){return t.item.title},get children(){var n=b();return c(n,()=>t.item.title),s(()=>a(n,e(`tl19`,t.class?.title))),n}}),null),c(n,o(m,{get when(){return t.item.content},get children(){var n=b();return c(n,()=>t.item.content),s(()=>a(n,e(`tl20`,t.class?.description))),n}}),null),s(()=>a(n,e(`tl18`,t.class?.content))),n})(),D=(e,t,n)=>t||(e===`start`?`start`:e===`end`?`end`:n%2==0?`start`:`end`),O=n=>{let[r,i]=_(g({items:[],color:`primary`,orientation:`vertical`,mode:`alternate`,reverse:!1},n),[`items`,`color`,`orientation`,`mode`,`reverse`,`class`]),l=()=>r.orientation===`vertical`,f=h(()=>r.reverse?[...r.items].reverse():r.items),v=()=>t(r.color,`color-primary`);return(()=>{var n=b();return d(n,u(i,{get class(){return e(`tl01`,l()?`tl02`:`tl03`,`tl-mode-${r.mode}`,v(),r.class?.root)}}),!1,!0),c(n,o(p,{get each(){return f()},children:(n,i)=>{let u=()=>D(r.mode,n.position,i()),d=()=>t(w(n,r.color),`color-primary`),p=()=>i()===f().length-1;return(()=>{var t=b();return c(t,o(m,{get when(){return l()},get children(){return[(()=>{var t=b();return c(t,o(m,{get when(){return u()===`start`},get children(){return o(E,{item:n,get class(){return r.class}})}})),s(()=>a(t,e(`tl07`,r.class?.label))),t})(),(()=>{var t=x();return c(t,o(T,{item:n,get colorClass(){return d()},get class(){return r.class?.dot}}),null),c(t,o(m,{get when(){return!p()},get children(){var t=b();return s(()=>a(t,e(`tl09`,r.class?.connector))),t}}),null),t})(),(()=>{var t=b();return c(t,o(m,{get when(){return u()===`end`},get children(){return o(E,{item:n,get class(){return r.class}})}})),s(()=>a(t,e(`tl10`,r.class?.label))),t})()]}}),null),c(t,o(m,{get when(){return!l()},get children(){return[(()=>{var t=b();return c(t,o(m,{get when(){return u()===`start`},get children(){return o(E,{item:n,get class(){return r.class}})}})),s(()=>a(t,e(`tl11`,r.class?.label))),t})(),(()=>{var t=S(),l=t.firstChild,u=l.nextSibling;return c(t,o(T,{item:n,get colorClass(){return d()},get class(){return r.class?.dot}}),u),s(t=>{var n=e(`tl13`,i()===0&&`tl-invisible`,r.class?.connector),o=e(`tl13`,p()&&`tl-invisible`,r.class?.connector);return n!==t.e&&a(l,t.e=n),o!==t.t&&a(u,t.t=o),t},{e:void 0,t:void 0}),t})(),(()=>{var t=b();return c(t,o(m,{get when(){return u()===`end`},get children(){return o(E,{item:n,get class(){return r.class}})}})),s(()=>a(t,e(`tl14`,r.class?.label))),t})()]}}),null),s(()=>a(t,e(`tl04`,l()?`tl05`:`tl06`,`tl-pos-${u()}`,`tl-s-${n.status??`done`}`,r.class?.item))),t})()}})),n})()};export{O as Timeline};
|
|
2
|
-
//# sourceMappingURL=timeline.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeline.js","names":["BaseColorProps","cn","getColor","AlertCircle","Check","Clock","Component","createMemo","For","JSX","mergeProps","Show","splitProps","TimelineItem","TimelineItemStatus","TimelineProps","STATUS_COLOR","Record","pending","active","done","error","resolveItemColor","item","globalColor","color","status","DotProps","colorClass","class","TimelineDot","p","_el$","_tmpl$3","_$insert","_$createComponent","when","loading","children","_tmpl$","_$memo","icon","_el$3","_tmpl$2","size","_$effect","_$className","ContentProps","TimelineContent","_el$4","timestamp","_el$5","title","_el$6","content","_el$7","description","resolvePosition","mode","itemPosition","index","Timeline","props","merged","items","orientation","const","reverse","nativeProps","isVertical","displayItems","globalColorClass","_el$8","_$spread","_$mergeProps","root","each","i","pos","position","itemColorClass","isLast","length","_el$9","_el$0","label","_el$1","_tmpl$4","dot","_el$10","connector","_el$11","_el$12","_el$13","_tmpl$5","_el$14","firstChild","_el$15","nextSibling","_p$","_v$","_v$2","e","t","undefined","_el$16"],"sources":["../../../src/components/timeline/timeline.tsx"],"sourcesContent":["import { BaseColorProps } from '@/type';\nimport { cn } from '@/utils/cn';\nimport { getColor } from '@/utils/helper';\nimport AlertCircle from 'lucide-solid/icons/alert-circle';\nimport Check from 'lucide-solid/icons/check';\nimport Clock from 'lucide-solid/icons/clock';\nimport { Component, createMemo, For, JSX, mergeProps, Show, splitProps } from 'solid-js';\nimport { TimelineItem, TimelineItemStatus, TimelineProps } from './timeline.types';\n\n// ─── Helpers ──────────────────────────────────────────────────────────────────\n\n/** Map status → màu DaisyUI mặc định (dùng khi item không có `color` prop) */\nconst STATUS_COLOR: Record<TimelineItemStatus, BaseColorProps> = {\n pending: 'neutral',\n active: 'primary',\n done: 'success',\n error: 'error',\n};\n\n/** Resolve màu cuối cùng của item: ưu tiên item.color > status-mapped > global */\nconst resolveItemColor = (item: TimelineItem, globalColor: BaseColorProps): BaseColorProps => {\n if (item.color) return item.color;\n if (item.status) return STATUS_COLOR[item.status];\n return globalColor;\n};\n\n// ─── TimelineDot — marker của mỗi item ───────────────────────────────────────\n\ntype DotProps = {\n item: TimelineItem;\n colorClass: string;\n class?: string;\n};\n\nconst TimelineDot: Component<DotProps> = p => {\n const status = () => p.item.status ?? 'done';\n\n return (\n <div class={cn('tl15', p.colorClass, `tl-s-${status()}`, p.class)}>\n {/* Loading spinner */}\n <Show when={p.item.loading}>\n <span class=\"loading loading-spinner tl16\" />\n </Show>\n\n {/* Custom icon */}\n <Show when={!p.item.loading && p.item.icon}>\n <span class=\"tl17\">{p.item.icon!()}</span>\n </Show>\n\n {/* Default icon theo status */}\n <Show when={!p.item.loading && !p.item.icon}>\n <Show when={status() === 'done'}>\n <Check size={12} stroke-width={3} />\n </Show>\n <Show when={status() === 'error'}>\n <AlertCircle size={12} stroke-width={2.5} />\n </Show>\n <Show when={status() === 'pending'}>\n <Clock size={11} stroke-width={2} />\n </Show>\n {/* active: chỉ hiện dot rỗng — style CSS xử lý */}\n </Show>\n </div>\n );\n};\n\n// ─── TimelineItemContent — tiêu đề + nội dung + thời gian ────────────────────\n\ntype ContentProps = {\n item: TimelineItem;\n class?: TimelineProps['class'];\n};\n\nconst TimelineContent: Component<ContentProps> = p => (\n <div class={cn('tl18', p.class?.content)}>\n <Show when={p.item.timestamp}>\n <div class={cn('tl21', p.class?.timestamp)}>{p.item.timestamp}</div>\n </Show>\n <Show when={p.item.title}>\n <div class={cn('tl19', p.class?.title)}>{p.item.title}</div>\n </Show>\n <Show when={p.item.content}>\n <div class={cn('tl20', p.class?.description)}>{p.item.content}</div>\n </Show>\n </div>\n);\n\n// ─── Tính vị trí nội dung dựa trên mode & item.position ──────────────────────\n\nconst resolvePosition = (\n mode: TimelineProps['mode'],\n itemPosition: TimelineItem['position'],\n index: number,\n): 'start' | 'end' => {\n if (itemPosition) return itemPosition;\n if (mode === 'start') return 'start';\n if (mode === 'end') return 'end';\n // alternate: chẵn = start, lẻ = end\n return index % 2 === 0 ? 'start' : 'end';\n};\n\n// ─── Main Component ───────────────────────────────────────────────────────────\n\nexport const Timeline: Component<TimelineProps> = props => {\n const merged = mergeProps(\n {\n items: [] as TimelineItem[],\n color: 'primary' as BaseColorProps,\n orientation: 'vertical' as const,\n mode: 'alternate' as const,\n reverse: false,\n },\n props,\n );\n\n const [p, nativeProps] = splitProps(merged, [\n 'items',\n 'color',\n 'orientation',\n 'mode',\n 'reverse',\n 'class',\n ]);\n\n const isVertical = () => p.orientation === 'vertical';\n\n const displayItems = createMemo(() => (p.reverse ? [...p.items].reverse() : p.items));\n\n const globalColorClass = () => getColor(p.color, 'color-primary');\n\n return (\n <div\n {...nativeProps}\n class={cn(\n 'tl01',\n isVertical() ? 'tl02' : 'tl03',\n `tl-mode-${p.mode}`,\n globalColorClass(),\n p.class?.root,\n )}\n >\n <For each={displayItems()}>\n {(item, i) => {\n const pos = () => resolvePosition(p.mode, item.position, i());\n const itemColorClass = () => getColor(resolveItemColor(item, p.color), 'color-primary');\n const isLast = () => i() === displayItems().length - 1;\n\n return (\n <div\n class={cn(\n 'tl04',\n isVertical() ? 'tl05' : 'tl06',\n `tl-pos-${pos()}`,\n `tl-s-${item.status ?? 'done'}`,\n p.class?.item,\n )}\n >\n {/* ── Vertical layout ── */}\n <Show when={isVertical()}>\n {/* Cột bên start (trái) */}\n <div class={cn('tl07', p.class?.label)}>\n <Show when={pos() === 'start'}>\n <TimelineContent item={item} class={p.class} />\n </Show>\n </div>\n\n {/* Cột giữa: dot + connector */}\n <div class=\"tl08\">\n <TimelineDot item={item} colorClass={itemColorClass()} class={p.class?.dot} />\n <Show when={!isLast()}>\n <div class={cn('tl09', p.class?.connector)} />\n </Show>\n </div>\n\n {/* Cột bên end (phải) */}\n <div class={cn('tl10', p.class?.label)}>\n <Show when={pos() === 'end'}>\n <TimelineContent item={item} class={p.class} />\n </Show>\n </div>\n </Show>\n\n {/* ── Horizontal layout ── */}\n <Show when={!isVertical()}>\n {/* Hàng trên (start) */}\n <div class={cn('tl11', p.class?.label)}>\n <Show when={pos() === 'start'}>\n <TimelineContent item={item} class={p.class} />\n </Show>\n </div>\n\n {/* Hàng giữa: connector + dot + connector */}\n <div class=\"tl12\">\n <div class={cn('tl13', i() === 0 && 'tl-invisible', p.class?.connector)} />\n <TimelineDot item={item} colorClass={itemColorClass()} class={p.class?.dot} />\n <div class={cn('tl13', isLast() && 'tl-invisible', p.class?.connector)} />\n </div>\n\n {/* Hàng dưới (end) */}\n <div class={cn('tl14', p.class?.label)}>\n <Show when={pos() === 'end'}>\n <TimelineContent item={item} class={p.class} />\n </Show>\n </div>\n </Show>\n </div>\n );\n }}\n </For>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorIcon.js","names":["genSVGCubicBezier","Component","IconProps","MainCircle","SecondaryCircle","Error","props","fill","primary","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_$insert","_$createComponent","_$spread","_$mergeProps","_$effect","_p$","_v$","secondary","_v$2","e","_$setAttribute","t","undefined"],"sources":["../../../../src/components/toast/icons/ErrorIcon.tsx"],"sourcesContent":["import { genSVGCubicBezier } from '@/utils/helper';\nimport type { Component } from 'solid-js';\nimport { IconProps } from '../toast.type';\nimport { MainCircle, SecondaryCircle } from './IconCircle';\n\nexport const Error: Component<IconProps> = props => {\n const fill = props.primary || 'var(--color-error)';\n return (\n <svg style={{ overflow: 'visible' }} viewBox=\"0 0 32 32\" width=\"1.25rem\" height=\"1.25rem\">\n <MainCircle fill={fill} />\n <SecondaryCircle fill={fill} />\n <path\n fill=\"none\"\n stroke={props.secondary || '#fff'}\n stroke-width=\"4\"\n stroke-dasharray=\"9\"\n stroke-dashoffset=\"9\"\n stroke-linecap=\"round\"\n d=\"M16,7l0,9\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n values=\"9;0\"\n dur=\"0.2s\"\n begin=\"250ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n </path>\n <circle fill={props.secondary || '#fff'} cx=\"16\" cy=\"23\" r=\"2.5\" opacity=\"0\">\n <animate\n attributeName=\"opacity\"\n values=\"0;1\"\n dur=\"0.25s\"\n begin=\"350ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n </circle>\n </svg>\n );\n};\n"],"mappings":"upBAKaK,EAA8BC,GAAS,CAClD,IAAMC,EAAOD,EAAME,SAAW,qBAC9B,WAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAC,WAAAE,EAAAH,EAAAI,YAAAC,EAAAF,EAAAF,WAsB2C,OAtB3CK,EAAAR,EAAAS,EAEKf,EAAU,CAAOI,OAAI,CAAA,CAAAI,EAAA,CAAAM,EAAAR,EAAAS,EACrBd,EAAe,CAAOG,OAAI,CAAA,CAAAI,EAAA,CAAAQ,EAAAN,EAAAO,MAgBnBpB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAmB,EAAAH,EAAAI,MAUxCpB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAqB,EAAAC,GAAA,CAAA,IAAAC,EAvBtCjB,EAAMkB,WAAa,OAAMC,EAgBrBnB,EAAMkB,WAAa,OAAM,OAAAD,IAAAD,EAAAI,GAAAC,EAAAhB,EAAA,SAAAW,EAAAI,EAAAH,EAAA,CAAAE,IAAAH,EAAAM,GAAAD,EAAAb,EAAA,OAAAQ,EAAAM,EAAAH,EAAA,CAAAH,GAAA,CAAAI,EAAAG,IAAAA,GAAAD,EAAAC,IAAAA,GAAA,CAAA,CAAApB,KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconCircle.js","names":["genSVGCubicBezier","Component","JSX","MainCircle","fill","props","publicProps","AnimateSVGAttributes","SVGAnimateElement","dur","begin","calcMode","keyTimes","keySplines","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$spread","_$effect","_$setAttribute","SecondaryCircle","_el$4","_tmpl$2","_el$5","_el$6"],"sources":["../../../../src/components/toast/icons/IconCircle.tsx"],"sourcesContent":["import { genSVGCubicBezier } from '@/utils/helper';\nimport { Component } from 'solid-js';\nimport type { JSX } from 'solid-js';\n\nexport const MainCircle: Component<{ fill: string }> = props => {\n const publicProps: JSX.AnimateSVGAttributes<SVGAnimateElement> = {\n dur: '0.35s',\n begin: '100ms',\n fill: 'freeze',\n calcMode: 'spline',\n keyTimes: '0; 0.6; 1',\n keySplines: '0.25 0.71 0.4 0.88; .59 .22 .87 .63',\n };\n return (\n <circle fill={props.fill} cx=\"16\" cy=\"16\" r=\"0\">\n <animate attributeName=\"opacity\" values=\"0; 1; 1\" {...publicProps} />\n <animate attributeName=\"r\" values=\"0; 17.5; 16\" {...publicProps} />\n </circle>\n );\n};\n\nexport const SecondaryCircle: Component<{ fill: string; begin?: string }> = props => {\n const publicProps: JSX.AnimateSVGAttributes<SVGAnimateElement> = {\n dur: '1s',\n begin: props.begin || '320ms',\n fill: 'freeze',\n ...genSVGCubicBezier('0.0 0.0 0.2 1'),\n };\n return (\n <circle fill={props.fill} cx=\"16\" cy=\"16\" r=\"12\" opacity=\"0\">\n <animate attributeName=\"opacity\" values=\"1; 0\" {...publicProps} />\n <animate attributeName=\"r\" values=\"12; 26\" {...publicProps} />\n </circle>\n );\n};\n"],"mappings":"8cAIaG,EAA0CE,GAAS,CAC9D,IAAMC,EAA2D,CAC/DG,IAAK,QACLC,MAAO,QACPN,KAAM,SACNO,SAAU,SACVC,SAAU,YACVC,WAAY,sCACb,CACD,WAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAG,YAC0B,OAD1BC,EAAAJ,EAE0DV,EAAW,GAAA,GAAA,CAAAc,EAAAF,EACbZ,EAAW,GAAA,GAAA,CAAAe,MAAAC,EAAAR,EAAA,OAFnDT,EAAMD,KAAI,CAAA,CAAAU,KAAA,EAOfS,EAA+DlB,GAAS,CACnF,IAAMC,EAA2D,CAC/DG,IAAK,KACLC,MAAOL,EAAMK,OAAS,QACtBN,KAAM,SACN,GAAGJ,EAAkB,gBAAe,CACrC,CACD,WAAA,CAAA,IAAAwB,EAAAC,GAAA,CAAAC,EAAAF,EAAAP,WAAAU,EAAAD,EAAAP,YAC0B,OAD1BC,EAAAM,EAEuDpB,EAAW,GAAA,GAAA,CAAAc,EAAAO,EACfrB,EAAW,GAAA,GAAA,CAAAe,MAAAC,EAAAE,EAAA,OAF9CnB,EAAMD,KAAI,CAAA,CAAAoB,KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InfoIcon.js","names":["genSVGCubicBezier","Component","IconProps","MainCircle","SecondaryCircle","Info","props","fill","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","_$insert","_$createComponent","_$spread","_$mergeProps","_$effect","_p$","_v$","secondary","_v$2","e","_$setAttribute","t","undefined"],"sources":["../../../../src/components/toast/icons/InfoIcon.tsx"],"sourcesContent":["import { genSVGCubicBezier } from '@/utils/helper';\nimport type { Component } from 'solid-js';\nimport { IconProps } from '../toast.type';\nimport { MainCircle, SecondaryCircle } from './IconCircle';\n\nexport const Info: Component<IconProps> = props => {\n const fill = 'var(--color-info)';\n return (\n <svg\n style={{ overflow: 'visible' }}\n viewBox=\"0 0 32 32\"\n width=\"1.25rem\"\n height=\"1.25rem\"\n class=\"rotate-180\"\n >\n <MainCircle fill={fill} />\n <SecondaryCircle fill={fill} />\n <path\n fill=\"none\"\n stroke={props.secondary || '#fff'}\n stroke-width=\"4\"\n stroke-dasharray=\"9\"\n stroke-dashoffset=\"9\"\n stroke-linecap=\"round\"\n d=\"M16,7l0,9\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n values=\"9;0\"\n dur=\"0.2s\"\n begin=\"250ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n </path>\n <circle fill={props.secondary || '#fff'} cx=\"16\" cy=\"23\" r=\"2.5\" opacity=\"0\">\n <animate\n attributeName=\"opacity\"\n values=\"0;1\"\n dur=\"0.25s\"\n begin=\"350ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n </circle>\n </svg>\n );\n};\n"],"mappings":"wqBAKaK,EAA6BC,GAAS,CACjD,IAAMC,EAAO,oBACb,WAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAC,WAAAE,EAAAH,EAAAI,YAAAC,EAAAF,EAAAF,WA4B2C,OA5B3CK,EAAAR,EAAAS,EAQKd,EAAU,CAAOI,OAAI,CAAA,CAAAG,EAAA,CAAAM,EAAAR,EAAAS,EACrBb,EAAe,CAAOG,OAAI,CAAA,CAAAG,EAAA,CAAAQ,EAAAN,EAAAO,MAgBnBnB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAkB,EAAAH,EAAAI,MAUxCnB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAoB,EAAAC,GAAA,CAAA,IAAAC,EAvBtChB,EAAMiB,WAAa,OAAMC,EAgBrBlB,EAAMiB,WAAa,OAAM,OAAAD,IAAAD,EAAAI,GAAAC,EAAAhB,EAAA,SAAAW,EAAAI,EAAAH,EAAA,CAAAE,IAAAH,EAAAM,GAAAD,EAAAb,EAAA,OAAAQ,EAAAM,EAAAH,EAAA,CAAAH,GAAA,CAAAI,EAAAG,IAAAA,GAAAD,EAAAC,IAAAA,GAAA,CAAA,CAAApB,KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LoaderIcon.js","names":["Component","IconProps","Loader","props","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_$effect","_p$","_v$","primary","_v$2","secondary","e","_$setAttribute","t","undefined"],"sources":["../../../../src/components/toast/icons/LoaderIcon.tsx"],"sourcesContent":["import type { Component } from 'solid-js';\nimport { IconProps } from '../toast.type';\n\nexport const Loader: Component<IconProps> = props => (\n <svg style={{ overflow: 'visible' }} viewBox=\"0 0 32 32\" width=\"1.25rem\" height=\"1.25rem\">\n <path\n fill=\"none\"\n stroke={props.primary || 'oklch(0.9276 0.0058 264.53)'}\n stroke-width=\"4\"\n stroke-miterlimit=\"10\"\n d=\"M16,6c3,0,5.7,1.3,7.5,3.4c1.5,1.8,2.5,4,2.5,6.6c0,5.5-4.5,10-10,10S6,21.6,6,16S10.5,6,16,6z\"\n />\n <path\n fill=\"none\"\n stroke={props.secondary || 'oklch(0.4461 0.0263 256.8)'}\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-miterlimit=\"10\"\n d=\"M16,6c3,0,5.7,1.3,7.5,3.4c0.6,0.7,1.1,1.4,1.5,2.2\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 16 16\"\n to=\"360 16 16\"\n dur=\"0.75s\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n);\n"],"mappings":"uiBAGaE,EAA+BC,QAAK,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAG,YAWY,OAXZC,EAAAC,GAAA,CAAA,IAAAC,EAInCT,EAAMU,SAAW,8BAA6BC,EAO9CX,EAAMY,WAAa,6BAA4B,OAAAH,IAAAD,EAAAK,GAAAC,EAAAX,EAAA,SAAAK,EAAAK,EAAAJ,EAAA,CAAAE,IAAAH,EAAAO,GAAAD,EAAAT,EAAA,SAAAG,EAAAO,EAAAJ,EAAA,CAAAH,GAAA,CAAAK,EAAAG,IAAAA,GAAAD,EAAAC,IAAAA,GAAA,CAAA,CAAAf,KAgB5D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SuccessIcon.js","names":["genSVGCubicBezier","Component","IconProps","MainCircle","SecondaryCircle","Success","props","fill","primary","_el$","_tmpl$","_el$2","firstChild","_el$3","_$insert","_$createComponent","begin","_$spread","_$mergeProps","_$effect","_$setAttribute","secondary"],"sources":["../../../../src/components/toast/icons/SuccessIcon.tsx"],"sourcesContent":["import { genSVGCubicBezier } from '@/utils/helper';\nimport type { Component } from 'solid-js';\nimport { IconProps } from '../toast.type';\nimport { MainCircle, SecondaryCircle } from './IconCircle';\n\nexport const Success: Component<IconProps> = (props: IconProps) => {\n const fill = props.primary || 'var(--color-success)';\n return (\n <svg style={{ overflow: 'visible' }} viewBox=\"0 0 32 32\" width=\"1.25rem\" height=\"1.25rem\">\n <MainCircle fill={fill} />\n <SecondaryCircle fill={fill} begin=\"350ms\" />\n <path\n fill=\"none\"\n stroke={props.secondary || 'oklch(0.9911 0 0)'}\n stroke-width=\"4\"\n stroke-dasharray=\"22\"\n stroke-dashoffset=\"22\"\n stroke-linecap=\"round\"\n stroke-miterlimit=\"10\"\n d=\"M9.8,17.2l3.8,3.6c0.1,0.1,0.3,0.1,0.4,0l9.6-9.7\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n values=\"22;0\"\n dur=\"0.25s\"\n begin=\"250ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n </path>\n </svg>\n );\n};\n"],"mappings":"qlBAKaK,EAAiCC,GAAqB,CACjE,IAAMC,EAAOD,EAAME,SAAW,uBAC9B,WAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAC,EAAAF,EAAAG,WAAAC,EAAAF,EAAAC,WAMoD,OANpDE,EAAAL,EAAAM,EAEKZ,EAAU,CAAOI,OAAI,CAAA,CAAAI,EAAA,CAAAG,EAAAL,EAAAM,EACrBX,EAAe,CAAOG,OAAMS,MAAK,QAAA,CAAA,CAAAL,EAAA,CAAAM,EAAAJ,EAAAK,MAiB1BlB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAmB,MAAAC,EAAAT,EAAA,SAdtCL,EAAMe,WAAa,oBAAmB,CAAA,CAAAZ,KAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WarningIcon.js","names":["genSVGCubicBezier","Component","IconProps","Warning","props","fill","primary","stroke","secondary","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","_el$5","nextSibling","_el$6","_el$7","_$setAttribute","_$spread","_$mergeProps"],"sources":["../../../../src/components/toast/icons/WarningIcon.tsx"],"sourcesContent":["import { genSVGCubicBezier } from '@/utils/helper';\nimport type { Component } from 'solid-js';\nimport { IconProps } from '../toast.type';\n\nexport const Warning: Component<IconProps> = (props: IconProps) => {\n const fill = props.primary || 'var(--color-warning)';\n const stroke = props.secondary || '#000';\n return (\n <svg style={{ overflow: 'visible' }} viewBox=\"0 0 32 32\" width=\"1.25rem\" height=\"1.25rem\">\n <g>\n {/* Equilateral triangle with rounded corners */}\n <path\n fill={fill}\n stroke={fill}\n stroke-width=\"10\"\n stroke-linejoin=\"round\"\n stroke-linecap=\"round\"\n d=\"M16 1 L31 27 L1 27 Z\"\n opacity=\"0\"\n >\n <animate\n attributeName=\"opacity\"\n values=\"0;1\"\n dur=\"0.3s\"\n begin=\"0ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n <animateTransform\n attributeName=\"transform\"\n type=\"scale\"\n values=\"0.5;1.1;1\"\n dur=\"0.4s\"\n begin=\"0ms\"\n fill=\"freeze\"\n keyTimes=\"0;0.7;1\"\n keySplines=\"0.25 0.71 0.4 0.88; .59 .22 .87 .63\"\n calcMode=\"spline\"\n />\n </path>\n {/* Exclamation line - shorter and centered */}\n <path\n fill=\"none\"\n stroke={stroke}\n stroke-width=\"2.5\"\n stroke-dasharray=\"6\"\n stroke-dashoffset=\"6\"\n stroke-linecap=\"round\"\n d=\"M16,11 L16,17\"\n >\n <animate\n attributeName=\"stroke-dashoffset\"\n values=\"6;0\"\n dur=\"0.2s\"\n begin=\"300ms\"\n fill=\"freeze\"\n {...genSVGCubicBezier('0.0, 0.0, 0.58, 1.0')}\n />\n </path>\n {/* Exclamation dot - smaller and higher */}\n <circle fill={stroke} cx=\"16\" cy=\"21.5\" r=\"0\">\n <animate\n attributeName=\"r\"\n values=\"0;1.8;1.5\"\n dur=\"0.25s\"\n begin=\"400ms\"\n fill=\"freeze\"\n keyTimes=\"0;0.6;1\"\n keySplines=\"0.25 0.71 0.4 0.88; .59 .22 .87 .63\"\n calcMode=\"spline\"\n />\n </circle>\n {/* Bell shake animation - continuous */}\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n values=\"0 16 27; -8 16 27; 8 16 27; -5 16 27; 5 16 27; -2 16 27; 2 16 27; 0 16 27\"\n dur=\"0.6s\"\n begin=\"500ms;shake.end+2s\"\n fill=\"freeze\"\n id=\"shake\"\n />\n </g>\n </svg>\n );\n};\n"],"mappings":"ktCAIaG,EAAiCC,GAAqB,CACjE,IAAMC,EAAOD,EAAME,SAAW,uBACxBC,EAASH,EAAMI,WAAa,OAClC,WAAA,CAAA,IAAAC,EAAAC,GAAA,CAAAG,EAAAJ,EAAAG,WAAAA,WAAAE,EAAAD,EAAAD,WAAAG,EAAAF,EAAAG,YAAAC,EAAAF,EAAAH,WAAAM,EAAAH,EAAAC,YAqD0B,OArD1BG,EAAAN,EAAA,OAKcR,EAAI,CAAAc,EAAAN,EAAA,SACFR,EAAI,CAAAe,EAAAN,EAAAO,MAaNrB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAmB,EAAAJ,EAAA,SAiBtCR,EAAM,CAAAa,EAAAH,EAAAI,MAaRrB,EAAkB,sBAAsB,CAAA,CAAA,GAAA,GAAA,CAAAmB,EAAAD,EAAA,OAIlCX,EAAM,CAAAE,KAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{x_default as e}from"../../node_modules/.pnpm/lucide-solid@1.8.0_solid-js@1.9.11/node_modules/lucide-solid/dist/source/icons/x.js";import{Success as t}from"./icons/SuccessIcon.js";import{Error as n}from"./icons/ErrorIcon.js";import{Loader as r}from"./icons/LoaderIcon.js";import{Info as i}from"./icons/InfoIcon.js";import{Warning as a}from"./icons/WarningIcon.js";import{toastStore as o}from"./toast.store.js";import{className as s,createComponent as c,delegateEvents as l,effect as u,insert as d,mergeProps as f,render as p,setAttribute as m,style as h,template as g,use as _}from"solid-js/web";import{For as v,Show as y,createEffect as b,createMemo as x,onCleanup as S,onMount as C}from"solid-js";var w=g(`<div aria-label=Close>`),T=g(`<div><div class="flex-1 text-sm">`),E=g(`<div class="w-fit max-w-[350px]">`),D=g(`<div class="fixed z-9999 flex flex-col p-4">`),O=(e,t)=>(e.position||t).includes(`top`)?1:-1,k=(e,t)=>typeof e==`function`?e(t):e,A=e=>{if(e.icon!==void 0)return e.icon;switch(e.type){case`success`:return c(t,f(()=>e.iconTheme));case`error`:return c(n,f(()=>e.iconTheme));case`info`:return c(i,f(()=>e.iconTheme));case`warning`:return c(a,f(()=>e.iconTheme));case`loading`:return c(r,f(()=>e.iconTheme));default:return null}},j=t=>(()=>{var n=w();return n.$$click=e=>{e.stopPropagation(),t.onClick()},d(n,c(e,{size:10,"stroke-width":4})),u(()=>s(n,`toa03 ${t.isRight?`toa04`:`toa05`}`)),n})(),M=e=>{let t=x(()=>A(e.toast)),n=x(()=>!e.position.includes(`right`)),r=()=>{o.removeToast(e.toast.id)};return(()=>{var i=T(),a=i.firstChild;return d(i,c(y,{get when(){return e.toast.showCloseIcon},get children(){return c(j,{onClick:r,get isRight(){return n()}})}}),a),d(i,c(y,{get when(){return t()},get children(){return t()}}),a),d(a,()=>e.toast.message),u(t=>{var n=`toa01 ${e.toast.class||``}`,r=e.toast.style,a=e.toast.ariaProps.role,o=e.toast.ariaProps[`aria-live`];return n!==t.e&&s(i,t.e=n),t.t=h(i,r,t.t),a!==t.a&&m(i,`role`,t.a=a),o!==t.o&&m(i,`aria-live`,t.o=o),t},{e:void 0,t:void 0,a:void 0,o:void 0}),i})()},N=e=>{let t,n,r,i=e.toast.duration,a=0,s=!1,l=n=>{n===1/0||!e.toast.visible||(a=Date.now(),t=setTimeout(()=>{o.dismissToast(e.toast.id)},n))},u=()=>{if(t){clearTimeout(t),t=void 0;let e=Date.now()-a;i=Math.max(0,i-e)}},f=()=>{!e.toast.canPause||s||(s=!0,u())},p=()=>{!e.toast.canPause||!s||(s=!1,l(i))};C(()=>{l(e.toast.duration),e.toast.canPause&&r&&(r.addEventListener(`mouseenter`,f),r.addEventListener(`mouseleave`,p))}),b(function(){let i=e.toast.visible;if(i||(t&&=(clearTimeout(t),void 0),n=setTimeout(()=>{o.removeToast(e.toast.id)},e.toast.unmountDelay)),!r)return;let a=O(e.toast,e.position);i?r.animate([{transform:`translate3d(0,${a*-200}%,0) scale(.6)`,opacity:.5},{transform:`translate3d(0,0,0) scale(1)`,opacity:1}],{duration:350,fill:`forwards`,easing:`cubic-bezier(.21,1.02,.73,1)`}):r.animate([{transform:`translate3d(0,0,-1px) scale(1)`,opacity:1},{transform:`translate3d(0,${a*-150}%,-1px) scale(.4)`,opacity:0}],{duration:400,fill:`forwards`,easing:`cubic-bezier(.06,.71,.55,1)`})}),S(function(){t&&clearTimeout(t),n&&clearTimeout(n),e.toast.canPause&&r&&(r.removeEventListener(`mouseenter`,f),r.removeEventListener(`mouseleave`,p))});let m=()=>e.toast.type===`custom`&&typeof e.toast.message==`function`?e.toast.message(e.toast):c(M,{get toast(){return e.toast},get position(){return e.position}});return(()=>{var e=E(),t=r;return typeof t==`function`?_(t,e):r=e,d(e,m),e})()},P=e=>{let t=()=>{let t=e.position,n={gap:`${e.gutter}px`};return t.includes(`top`)?n.top=`0`:(n.bottom=`0`,n[`flex-direction`]=`column-reverse`),t.includes(`left`)?(n.left=`0`,n[`align-items`]=`flex-start`):t.includes(`right`)?(n.right=`0`,n[`align-items`]=`flex-end`):(n.left=`50%`,n.transform=`translateX(-50%)`,n[`align-items`]=`center`),n};return c(y,{get when(){return e.toasts.length>0},get children(){var n=D();return d(n,c(v,{get each(){return e.toasts},children:t=>c(N,{toast:t,get position(){return e.position}})})),u(e=>h(n,t(),e)),n}})},F=e=>{let t=()=>e.position||`top-right`,n=()=>e.gutter??10,r=x(()=>{let e=o.toasts(),n={"top-left":[],"top-center":[],"top-right":[],"bottom-left":[],"bottom-center":[],"bottom-right":[]};for(let r of e)n[r.position||t()].push(r);return n});return c(v,{each:[`top-left`,`top-center`,`top-right`,`bottom-left`,`bottom-center`,`bottom-right`],children:e=>{let t=x(()=>r()[e]);return c(P,{position:e,get toasts(){return t()},get gutter(){return n()}})}})},I=!1,L=null,R=()=>{I||=(L=document.createElement(`div`),L.id=`sui-toast-container`,document.body.appendChild(L),p(()=>c(F,{}),L),!0)},z=e=>(C(()=>{I||=(L=document.createElement(`div`),L.id=`sui-toast-container`,document.body.appendChild(L),p(()=>c(F,e),L),!0)}),null),B=e=>(t,n)=>{R();let r=o.createToast(t,e,n);return o.upsertToast(r),r.id},V=((e,t)=>B(`blank`)(e,t));V.success=B(`success`),V.error=B(`error`),V.info=B(`info`),V.warning=B(`warning`),V.loading=B(`loading`),V.custom=(e,t)=>{R();let n=o.createToast(e,`custom`,t);return o.upsertToast(n),n.id},V.dismiss=e=>{o.dismissToast(e)},V.remove=e=>{o.removeToast(e)},V.pop=e=>{e?.animate===!1?o.removePop():o.dismissPop()},V.shift=e=>{e?.animate===!1?o.removeShift():o.dismissShift()},V.promise=async(e,t,n)=>{let r=V.loading(t.loading,n);try{let i=await e,a=k(t.success,i);return o.updateToast(r,{type:`success`,message:a,icon:void 0}),setTimeout(()=>{o.dismissToast(r)},n?.duration??3e3),i}catch(e){let i=k(t.error,e);throw o.updateToast(r,{type:`error`,message:i,icon:void 0}),setTimeout(()=>{o.dismissToast(r)},n?.duration??3e3),e}},l([`click`]);export{z as Toaster,V as toast};
|
|
2
|
-
//# sourceMappingURL=toast.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":["X","Component","For","JSX","Show","createEffect","createMemo","onCleanup","onMount","render","Error","Loader","Success","Info","Warning","toastStore","Message","PromiseOptions","ToastAPI","ToastData","ToastOptions","ToastPosition","ToastType","ToasterProps","ValueOrFunction","getToastYDirection","toast","defaultPos","position","top","includes","resolveValue","valOrFn","TValue","TArg","arg","getToastIcon","Element","icon","undefined","type","_$createComponent","_$mergeProps","iconTheme","CloseIcon","onClick","isRight","props","_el$","_tmpl$","$$click","e","stopPropagation","_$insert","size","_$effect","_$className","ToastBar","isCloseOnRight","handleClose","removeToast","id","_el$2","_tmpl$2","_el$3","firstChild","when","showCloseIcon","children","message","_p$","_v$","class","_v$2","style","_v$3","ariaProps","role","_v$4","t","_$style","a","_$setAttribute","o","ToastWrapper","dismissTimer","ReturnType","setTimeout","removeTimer","wrapperRef","HTMLDivElement","remainingTime","duration","timerStartTime","isPaused","startDismissTimer","Infinity","visible","Date","now","dismissToast","pauseDismissTimer","clearTimeout","elapsed","Math","max","handleMouseEnter","canPause","handleMouseLeave","addEventListener","handleVisibilityChange","unmountDelay","direction","animate","transform","opacity","fill","easing","cleanupToastTimersAndListeners","removeEventListener","renderContent","_el$4","_tmpl$3","_ref$","_$use","PositionContainer","toasts","gutter","getPositionStyles","CSSProperties","pos","styles","gap","bottom","left","right","length","_el$5","_tmpl$4","each","_$p","ToasterInternal","toastsByPosition","currentToasts","groups","Record","push","positions","toastsForPos","containerMounted","containerEl","ensureContainer","document","createElement","body","appendChild","Toaster","createHandler","options","toastData","createToast","upsertToast","success","error","info","warning","loading","custom","dismiss","toastId","remove","pop","removePop","dismissPop","shift","removeShift","dismissShift","promise","Promise","T","promiseOptions","toastOptions","result","successMessage","updateToast","errorMessage","_$delegateEvents"],"sources":["../../../src/components/toast/toast.tsx"],"sourcesContent":["import X from 'lucide-solid/icons/x';\nimport { Component, For, JSX, Show, createEffect, createMemo, onCleanup, onMount } from 'solid-js';\nimport { render } from 'solid-js/web';\nimport { Error, Loader, Success } from './icons';\nimport { Info } from './icons/InfoIcon';\nimport { Warning } from './icons/WarningIcon';\nimport { toastStore } from './toast.store';\nimport type {\n Message,\n PromiseOptions,\n ToastAPI,\n ToastData,\n ToastOptions,\n ToastPosition,\n ToastType,\n ToasterProps,\n ValueOrFunction,\n} from './toast.type';\n\nexport const getToastYDirection = (toast: ToastData, defaultPos: ToastPosition) => {\n const position = toast.position || defaultPos;\n const top = position.includes('top');\n return top ? 1 : -1;\n};\n// Helper to resolve value or function\nconst resolveValue = <TValue, TArg>(valOrFn: ValueOrFunction<TValue, TArg>, arg: TArg): TValue => {\n return typeof valOrFn === 'function' ? (valOrFn as (arg: TArg) => TValue)(arg) : valOrFn;\n};\n\nconst getToastIcon = (toast: ToastData): JSX.Element | null => {\n if (toast.icon !== undefined) {\n return toast.icon as Element;\n }\n switch (toast.type) {\n case 'success':\n return <Success {...toast.iconTheme} />;\n case 'error':\n return <Error {...toast.iconTheme} />;\n case 'info':\n return <Info {...toast.iconTheme} />;\n case 'warning':\n return <Warning {...toast.iconTheme} />;\n case 'loading':\n return <Loader {...toast.iconTheme} />;\n default:\n return null;\n }\n};\n\nconst CloseIcon: Component<{ onClick: () => void; isRight: boolean }> = props => {\n return (\n <div\n class={`toa03 ${props.isRight ? 'toa04' : 'toa05'}`}\n onClick={e => {\n e.stopPropagation();\n props.onClick();\n }}\n aria-label=\"Close\"\n >\n <X size={10} stroke-width={4} />\n </div>\n );\n};\n\nconst ToastBar: Component<{ toast: ToastData; position: ToastPosition }> = props => {\n const icon = createMemo(() => getToastIcon(props.toast));\n\n const isCloseOnRight = createMemo(() => !props.position.includes('right'));\n\n const handleClose = () => {\n toastStore.removeToast(props.toast.id);\n };\n\n return (\n <div\n class={`toa01 ${props.toast.class || ''}`}\n style={props.toast.style}\n role={props.toast.ariaProps.role}\n aria-live={props.toast.ariaProps['aria-live']}\n >\n <Show when={props.toast.showCloseIcon}>\n <CloseIcon onClick={handleClose} isRight={isCloseOnRight()} />\n </Show>\n <Show when={icon()}>{icon()}</Show>\n <div class=\"flex-1 text-sm\">{props.toast.message as Element}</div>\n </div>\n );\n};\n\n// Individual toast wrapper with animations\nconst ToastWrapper: Component<{ toast: ToastData; position: ToastPosition }> = props => {\n let dismissTimer: ReturnType<typeof setTimeout> | undefined;\n let removeTimer: ReturnType<typeof setTimeout> | undefined;\n let wrapperRef: HTMLDivElement | undefined;\n\n // Theo dõi thời gian còn lại và thời điểm bắt đầu timer\n let remainingTime = props.toast.duration;\n let timerStartTime = 0;\n let isPaused = false;\n\n // Bắt đầu timer với thời gian còn lại\n const startDismissTimer = (duration: number) => {\n if (duration === Infinity || !props.toast.visible) return;\n\n timerStartTime = Date.now();\n dismissTimer = setTimeout(() => {\n toastStore.dismissToast(props.toast.id);\n }, duration);\n };\n\n // Dừng timer và lưu thời gian còn lại\n const pauseDismissTimer = () => {\n if (dismissTimer) {\n clearTimeout(dismissTimer);\n dismissTimer = undefined;\n // Tính thời gian còn lại\n const elapsed = Date.now() - timerStartTime;\n remainingTime = Math.max(0, remainingTime - elapsed);\n }\n };\n\n // Event handlers cho pause on hover\n const handleMouseEnter = () => {\n if (!props.toast.canPause || isPaused) return;\n isPaused = true;\n pauseDismissTimer();\n };\n\n const handleMouseLeave = () => {\n if (!props.toast.canPause || !isPaused) return;\n isPaused = false;\n startDismissTimer(remainingTime);\n };\n\n // Setup auto dismiss timer on mount\n onMount(() => {\n startDismissTimer(props.toast.duration);\n\n // Thêm event listeners nếu canPause = true\n if (props.toast.canPause && wrapperRef) {\n wrapperRef.addEventListener('mouseenter', handleMouseEnter);\n wrapperRef.addEventListener('mouseleave', handleMouseLeave);\n }\n });\n\n // Watch for visible change to schedule removal\n createEffect(function handleVisibilityChange() {\n const visible = props.toast.visible;\n if (!visible) {\n // Clear dismiss timer if exists\n if (dismissTimer) {\n clearTimeout(dismissTimer);\n dismissTimer = undefined;\n }\n // Schedule removal after animation\n removeTimer = setTimeout(() => {\n toastStore.removeToast(props.toast.id);\n }, props.toast.unmountDelay);\n }\n\n // run animate open/close\n if (!wrapperRef) return;\n const direction = getToastYDirection(props.toast, props.position);\n if (visible) {\n wrapperRef.animate(\n [\n { transform: `translate3d(0,${direction * -200}%,0) scale(.6)`, opacity: 0.5 },\n { transform: 'translate3d(0,0,0) scale(1)', opacity: 1 },\n ],\n {\n duration: 350,\n fill: 'forwards',\n easing: 'cubic-bezier(.21,1.02,.73,1)',\n },\n );\n } else {\n wrapperRef.animate(\n [\n { transform: 'translate3d(0,0,-1px) scale(1)', opacity: 1 },\n { transform: `translate3d(0,${direction * -150}%,-1px) scale(.4)`, opacity: 0 },\n ],\n {\n duration: 400,\n fill: 'forwards',\n easing: 'cubic-bezier(.06,.71,.55,1)',\n },\n );\n }\n });\n\n onCleanup(function cleanupToastTimersAndListeners() {\n if (dismissTimer) clearTimeout(dismissTimer);\n if (removeTimer) clearTimeout(removeTimer);\n // Gỡ event listeners\n if (props.toast.canPause && wrapperRef) {\n wrapperRef.removeEventListener('mouseenter', handleMouseEnter);\n wrapperRef.removeEventListener('mouseleave', handleMouseLeave);\n }\n });\n\n // Custom toast render\n const renderContent = () => {\n if (props.toast.type === 'custom' && typeof props.toast.message === 'function') {\n return (props.toast.message as (t: ToastData) => Element)(props.toast);\n }\n return <ToastBar toast={props.toast} position={props.position} />;\n };\n\n return (\n <div ref={wrapperRef} class=\"w-fit max-w-[350px]\">\n {renderContent()}\n </div>\n );\n};\n\n// Position container\nconst PositionContainer: Component<{\n position: ToastPosition;\n toasts: ToastData[];\n gutter: number;\n}> = props => {\n const getPositionStyles = (): JSX.CSSProperties => {\n const pos = props.position;\n const styles: JSX.CSSProperties = {\n gap: `${props.gutter}px`,\n };\n\n if (pos.includes('top')) {\n styles.top = '0';\n } else {\n styles.bottom = '0';\n styles['flex-direction'] = 'column-reverse';\n }\n\n if (pos.includes('left')) {\n styles.left = '0';\n styles['align-items'] = 'flex-start';\n } else if (pos.includes('right')) {\n styles.right = '0';\n styles['align-items'] = 'flex-end';\n } else {\n styles.left = '50%';\n styles.transform = 'translateX(-50%)';\n styles['align-items'] = 'center';\n }\n\n return styles;\n };\n\n return (\n <Show when={props.toasts.length > 0}>\n <div class=\"fixed z-9999 flex flex-col p-4\" style={getPositionStyles()}>\n <For each={props.toasts}>\n {toast => <ToastWrapper toast={toast} position={props.position} />}\n </For>\n </div>\n </Show>\n );\n};\n\n// Internal Toaster component\nconst ToasterInternal: Component<ToasterProps> = props => {\n const position = () => props.position || 'top-right';\n const gutter = () => props.gutter ?? 10;\n\n // Group toasts by position\n const toastsByPosition = createMemo(() => {\n const currentToasts = toastStore.toasts();\n const groups: Record<ToastPosition, ToastData[]> = {\n 'top-left': [],\n 'top-center': [],\n 'top-right': [],\n 'bottom-left': [],\n 'bottom-center': [],\n 'bottom-right': [],\n };\n\n for (const t of currentToasts) {\n const pos = t.position || position();\n groups[pos].push(t);\n }\n\n return groups;\n });\n\n const positions: ToastPosition[] = [\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-left',\n 'bottom-center',\n 'bottom-right',\n ];\n\n return (\n <>\n <For each={positions}>\n {pos => {\n const toastsForPos = createMemo(() => toastsByPosition()[pos]);\n return <PositionContainer position={pos} toasts={toastsForPos()} gutter={gutter()} />;\n }}\n </For>\n </>\n );\n};\n\n// Auto-mount toast container\nlet containerMounted = false;\nlet containerEl: HTMLDivElement | null = null;\n\nconst ensureContainer = () => {\n if (containerMounted) return;\n\n containerEl = document.createElement('div');\n containerEl.id = 'sui-toast-container';\n document.body.appendChild(containerEl);\n\n render(() => <ToasterInternal />, containerEl);\n containerMounted = true;\n};\n\n// Optional Toaster component for custom configuration\nexport const Toaster: Component<ToasterProps> = props => {\n onMount(() => {\n // If user adds Toaster, use their config\n if (!containerMounted) {\n containerEl = document.createElement('div');\n containerEl.id = 'sui-toast-container';\n document.body.appendChild(containerEl);\n\n render(() => <ToasterInternal {...props} />, containerEl);\n containerMounted = true;\n }\n });\n\n return null;\n};\n\n// Toast API\nconst createHandler =\n (type: ToastType) =>\n (message: Message, options?: ToastOptions): string => {\n ensureContainer();\n const toastData = toastStore.createToast(message, type, options);\n toastStore.upsertToast(toastData);\n return toastData.id;\n };\n\n// Main toast function\nconst toast = ((message: Message, options?: ToastOptions): string => {\n return createHandler('blank')(message, options);\n}) as ToastAPI;\n\ntoast.success = createHandler('success');\ntoast.error = createHandler('error');\ntoast.info = createHandler('info');\ntoast.warning = createHandler('warning');\ntoast.loading = createHandler('loading');\n\ntoast.custom = (message: (toast: ToastData) => JSX.Element, options?: ToastOptions): string => {\n ensureContainer();\n const toastData = toastStore.createToast(message as any, 'custom', options);\n toastStore.upsertToast(toastData);\n return toastData.id;\n};\n\ntoast.dismiss = (toastId?: string) => {\n toastStore.dismissToast(toastId);\n};\n\ntoast.remove = (toastId?: string) => {\n toastStore.removeToast(toastId);\n};\n\ntoast.pop = (options?: { animate?: boolean }) => {\n if (options?.animate === false) {\n toastStore.removePop();\n } else {\n toastStore.dismissPop();\n }\n};\n\ntoast.shift = (options?: { animate?: boolean }) => {\n if (options?.animate === false) {\n toastStore.removeShift();\n } else {\n toastStore.dismissShift();\n }\n};\n\ntoast.promise = async <T,>(\n promise: Promise<T>,\n promiseOptions: PromiseOptions<T>,\n toastOptions?: ToastOptions,\n): Promise<T> => {\n const id = toast.loading(promiseOptions.loading, toastOptions);\n\n try {\n const result = await promise;\n const successMessage = resolveValue(promiseOptions.success, result);\n toastStore.updateToast(id, {\n type: 'success',\n message: successMessage as any,\n icon: undefined, // Reset icon to use default success icon\n });\n // Schedule dismiss after showing success\n setTimeout(() => {\n toastStore.dismissToast(id);\n }, toastOptions?.duration ?? 3000);\n return result;\n } catch (error) {\n const errorMessage = resolveValue(promiseOptions.error, error);\n toastStore.updateToast(id, {\n type: 'error',\n message: errorMessage as any,\n icon: undefined, // Reset icon to use default error icon\n });\n // Schedule dismiss after showing error\n setTimeout(() => {\n toastStore.dismissToast(id);\n }, toastOptions?.duration ?? 3000);\n throw error;\n }\n};\n\nexport { toast };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toast.store.js","names":[],"sources":["../../../src/components/toast/toast.store.ts"],"sourcesContent":["import { createSignal, createRoot, JSX, createUniqueId } from 'solid-js';\nimport type { ToastData, ToastOptions, ToastType, ToastPosition, Message } from './toast.type';\n\n// Default values\nconst DEFAULT_DURATION: Record<ToastType, number> = {\n blank: 3000,\n success: 3000,\n error: 3000,\n info: 3000,\n warning: 3000,\n loading: Infinity,\n custom: 3000,\n};\n\nconst DEFAULT_POSITION: ToastPosition = 'top-right';\nconst DEFAULT_UNMOUNT_DELAY = 400;\nconst MAX_TOASTS = 10;\n\n// Toast store using signals\nfunction createToastStore() {\n const [toasts, setToasts] = createSignal<ToastData[]>([]);\n const [pausedAt, setPausedAt] = createSignal<number | null>(null);\n\n const createToast = (\n message: Message | ((toast: ToastData) => JSX.Element),\n type: ToastType,\n options?: ToastOptions,\n ): ToastData => {\n const id = createUniqueId();\n const existingToast = toasts().find(t => t.id === id);\n const toast: ToastData = {\n id,\n type,\n message: message as Message,\n icon: options?.icon,\n duration: options?.duration ?? DEFAULT_DURATION[type],\n pauseDuration: existingToast?.pauseDuration ?? 0,\n paused: false,\n position: options?.position ?? DEFAULT_POSITION,\n ariaProps: options?.ariaProps ?? {\n role: 'status',\n 'aria-live': 'polite',\n },\n style: options?.style,\n class: options?.class,\n iconTheme: options?.iconTheme,\n createdAt: existingToast?.createdAt ?? Date.now(),\n visible: true,\n unmountDelay: options?.unmountDelay ?? DEFAULT_UNMOUNT_DELAY,\n canPause: options?.canPause ?? true,\n showCloseIcon: options?.showCloseIcon ?? true,\n };\n\n return toast;\n };\n\n const upsertToast = (toast: ToastData) => {\n setToasts(prev => {\n const index = prev.findIndex(t => t.id === toast.id);\n if (index !== -1) {\n // Update existing toast\n const newToasts = [...prev];\n newToasts[index] = { ...prev[index], ...toast, updatedAt: Date.now() };\n return newToasts;\n } else {\n // Add new toast at the beginning and enforce max limit\n let newToasts = [toast, ...prev];\n if (newToasts.length > MAX_TOASTS) {\n newToasts = newToasts.slice(0, MAX_TOASTS);\n }\n return newToasts;\n }\n });\n };\n\n const dismissToast = (toastId?: string) => {\n setToasts(prev => {\n if (toastId) {\n return prev.map(t => (t.id === toastId ? { ...t, visible: false } : t));\n } else {\n // Dismiss all\n return prev.map(t => ({ ...t, visible: false }));\n }\n });\n };\n\n const removeToast = (toastId?: string) => {\n setToasts(prev => {\n if (toastId) {\n return prev.filter(t => t.id !== toastId);\n } else {\n // Remove all\n return [];\n }\n });\n };\n\n const dismissPop = () => {\n setToasts(prev => {\n for (let i = prev.length - 1; i >= 0; i--) {\n if (prev[i].visible) {\n return prev.map((t, idx) => (idx === i ? { ...t, visible: false } : t));\n }\n }\n return prev;\n });\n };\n\n const removePop = () => {\n setToasts(prev => {\n for (let i = prev.length - 1; i >= 0; i--) {\n if (prev[i].visible) {\n return [...prev.slice(0, i), ...prev.slice(i + 1)];\n }\n }\n return prev;\n });\n };\n\n const dismissShift = () => {\n setToasts(prev => {\n for (let i = 0; i < prev.length; i++) {\n if (prev[i].visible) {\n return prev.map((t, idx) => (idx === i ? { ...t, visible: false } : t));\n }\n }\n return prev;\n });\n };\n\n const removeShift = () => {\n setToasts(prev => {\n for (let i = 0; i < prev.length; i++) {\n if (prev[i].visible) {\n return [...prev.slice(0, i), ...prev.slice(i + 1)];\n }\n }\n return prev;\n });\n };\n\n const updateToast = (toastId: string, updates: Partial<ToastData>) => {\n setToasts(prev =>\n prev.map(t => (t.id === toastId ? { ...t, ...updates, updatedAt: Date.now() } : t)),\n );\n };\n\n const pauseToast = (toastId: string) => {\n setToasts(prev => prev.map(t => (t.id === toastId && !t.paused ? { ...t, paused: true } : t)));\n setPausedAt(Date.now());\n };\n\n const resumeToast = (toastId: string) => {\n const pauseTime = pausedAt();\n if (pauseTime) {\n setToasts(prev =>\n prev.map(t =>\n t.id === toastId && t.paused\n ? { ...t, paused: false, pauseDuration: t.pauseDuration + (Date.now() - pauseTime) }\n : t,\n ),\n );\n }\n setPausedAt(null);\n };\n\n return {\n toasts,\n createToast,\n upsertToast,\n dismissToast,\n removeToast,\n updateToast,\n pauseToast,\n resumeToast,\n dismissPop,\n removePop,\n dismissShift,\n removeShift,\n };\n}\n\n// Create singleton store\nexport const toastStore = createRoot(createToastStore);\n"],"mappings":"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"}
|