better-table 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/better-table.cjs.js +1 -1
- package/dist/better-table.cjs.js.map +1 -1
- package/dist/better-table.css +1 -1
- package/dist/better-table.es.js +852 -699
- package/dist/better-table.es.js.map +1 -1
- package/dist/components/BetterTable/components/TableCard.d.ts +8 -0
- package/dist/components/BetterTable/components/TableCards.d.ts +4 -0
- package/dist/components/BetterTable/components/index.d.ts +2 -0
- package/dist/setupTests.d.ts +0 -0
- package/package.json +7 -7
package/dist/better-table.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--bt-color-primary: #3b82f6;--bt-color-primary-hover: #2563eb;--bt-color-primary-light: #eff6ff;--bt-color-success: #22c55e;--bt-color-danger: #ef4444;--bt-color-danger-hover: #dc2626;--bt-color-warning: #f59e0b;--bt-color-info: #06b6d4;--bt-color-text: #1f2937;--bt-color-text-secondary: #6b7280;--bt-color-text-disabled: #9ca3af;--bt-color-border: #e5e7eb;--bt-color-border-hover: #d1d5db;--bt-color-background: #ffffff;--bt-color-background-hover: #f9fafb;--bt-color-background-striped: #f3f4f6;--bt-color-background-selected: #eff6ff;--bt-color-background-header: #f9fafb;--bt-spacing-xs: .25rem;--bt-spacing-sm: .5rem;--bt-spacing-md: .75rem;--bt-spacing-lg: 1rem;--bt-spacing-xl: 1.5rem;--bt-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bt-font-size-sm: .875rem;--bt-font-size-md: 1rem;--bt-font-size-lg: 1.125rem;--bt-font-weight-normal: 400;--bt-font-weight-medium: 500;--bt-font-weight-semibold: 600;--bt-border-radius-sm: .25rem;--bt-border-radius-md: .375rem;--bt-border-radius-lg: .5rem;--bt-border-width: 1px;--bt-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--bt-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--bt-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--bt-transition-fast: .15s ease;--bt-transition-normal: .2s ease;--bt-cell-padding-sm: .5rem .75rem;--bt-cell-padding-md: .75rem 1rem;--bt-cell-padding-lg: 1rem 1.25rem;--bt-z-header: 10;--bt-z-modal-backdrop: 100;--bt-z-modal: 101}[data-theme=dark],.bt-dark{--bt-color-text: #f9fafb;--bt-color-text-secondary: #9ca3af;--bt-color-text-disabled: #6b7280;--bt-color-border: #374151;--bt-color-border-hover: #4b5563;--bt-color-background: #1f2937;--bt-color-background-hover: #374151;--bt-color-background-striped: #111827;--bt-color-background-selected: #1e3a5f;--bt-color-background-header: #111827}.bt-container{font-family:var(--bt-font-family);font-size:var(--bt-font-size-md);color:var(--bt-color-text);width:100%}.bt-table-wrapper{overflow:auto;border-radius:var(--bt-border-radius-md);border:var(--bt-border-width) solid var(--bt-color-border)}.bt-table-wrapper.bt-bordered{border:var(--bt-border-width) solid var(--bt-color-border)}.bt-table{width:100%;border-collapse:collapse;border-spacing:0;background-color:var(--bt-color-background)}.bt-thead{background-color:var(--bt-color-background-header)}.bt-thead.bt-sticky{position:sticky;top:0;z-index:var(--bt-z-header)}.bt-th{padding:var(--bt-cell-padding-md);text-align:left;font-weight:var(--bt-font-weight-semibold);color:var(--bt-color-text);border-bottom:var(--bt-border-width) solid var(--bt-color-border);white-space:nowrap;vertical-align:top}.bt-th.bt-align-center{text-align:center}.bt-th.bt-align-right{text-align:right}.bt-th-content{display:flex;flex-direction:column;gap:var(--bt-spacing-sm)}.bt-th-header{display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-sm)}.bt-th-title{flex:1}.bt-sort-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;color:var(--bt-color-text-secondary);border-radius:var(--bt-border-radius-sm);transition:all var(--bt-transition-fast)}.bt-sort-btn:hover{background-color:var(--bt-color-background-hover);color:var(--bt-color-text)}.bt-sort-btn.bt-active{color:var(--bt-color-primary)}.bt-filter-input,.bt-filter-select{width:100%;padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);transition:border-color var(--bt-transition-fast)}.bt-filter-input:focus,.bt-filter-select:focus{outline:none;border-color:var(--bt-color-primary)}.bt-filter-input::placeholder{color:var(--bt-color-text-disabled)}.bt-tbody{background-color:var(--bt-color-background)}.bt-tr{transition:background-color var(--bt-transition-fast)}.bt-tr.bt-hoverable:hover{background-color:var(--bt-color-background-hover)}.bt-tr.bt-selected{background-color:var(--bt-color-background-selected)}.bt-tr.bt-striped:nth-child(2n){background-color:var(--bt-color-background-striped)}.bt-tr.bt-clickable{cursor:pointer}.bt-td{padding:var(--bt-cell-padding-md);border-bottom:var(--bt-border-width) solid var(--bt-color-border);color:var(--bt-color-text);vertical-align:middle}.bt-td.bt-align-center{text-align:center}.bt-td.bt-align-right{text-align:right}.bt-size-small .bt-th,.bt-size-small .bt-td{padding:var(--bt-cell-padding-sm);font-size:var(--bt-font-size-sm)}.bt-size-large .bt-th,.bt-size-large .bt-td{padding:var(--bt-cell-padding-lg)}.bt-checkbox-cell{width:40px;text-align:center}.bt-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--bt-color-primary)}.bt-actions-cell{white-space:nowrap}.bt-actions-wrapper{display:flex;align-items:center;gap:var(--bt-spacing-xs)}.bt-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--bt-spacing-xs);padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer;transition:all var(--bt-transition-fast);text-decoration:none}.bt-action-btn:hover:not(:disabled){background-color:var(--bt-color-background-hover);border-color:var(--bt-color-border-hover)}.bt-action-btn:disabled{opacity:.5;cursor:not-allowed}.bt-action-btn.bt-variant-primary{background-color:var(--bt-color-primary);border-color:var(--bt-color-primary);color:#fff}.bt-action-btn.bt-variant-primary:hover:not(:disabled){background-color:var(--bt-color-primary-hover)}.bt-action-btn.bt-variant-danger{background-color:var(--bt-color-danger);border-color:var(--bt-color-danger);color:#fff}.bt-action-btn.bt-variant-danger:hover:not(:disabled){background-color:var(--bt-color-danger-hover)}.bt-action-btn.bt-variant-ghost{border-color:transparent;background-color:transparent}.bt-action-btn.bt-variant-ghost:hover:not(:disabled){background-color:var(--bt-color-background-hover)}.bt-empty{padding:var(--bt-spacing-xl);text-align:center;color:var(--bt-color-text-secondary)}.bt-empty-icon{font-size:3rem;margin-bottom:var(--bt-spacing-md);opacity:.5}.bt-empty-text{font-size:var(--bt-font-size-md)}.bt-loading{display:flex;align-items:center;justify-content:center;padding:var(--bt-spacing-xl)}.bt-loading-spinner{width:32px;height:32px;border:3px solid var(--bt-color-border);border-top-color:var(--bt-color-primary);border-radius:50%;animation:bt-spin .8s linear infinite}@keyframes bt-spin{to{transform:rotate(360deg)}}.bt-loading-text{margin-left:var(--bt-spacing-md);color:var(--bt-color-text-secondary)}.bt-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;z-index:5}.bt-container-loading{position:relative}.bt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-md);padding:var(--bt-spacing-md);background-color:var(--bt-color-background);border-bottom:var(--bt-border-width) solid var(--bt-color-border);flex-wrap:wrap}.bt-toolbar-left{display:flex;align-items:center;gap:var(--bt-spacing-md);flex-shrink:1;min-width:0;overflow:visible}.bt-toolbar-right{display:flex;align-items:center;gap:var(--bt-spacing-sm);flex-shrink:0}.bt-search{position:relative;width:250px;flex-shrink:1;min-width:120px}.bt-search-input{width:100%;padding:var(--bt-spacing-sm) var(--bt-spacing-md);padding-left:36px;font-size:var(--bt-font-size-md);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-md);background-color:var(--bt-color-background);color:var(--bt-color-text);transition:all var(--bt-transition-fast);box-sizing:border-box}.bt-search-input:focus{outline:none;border-color:var(--bt-color-primary);box-shadow:0 0 0 3px var(--bt-color-primary-light)}.bt-search-input::placeholder{color:var(--bt-color-text-disabled)}.bt-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--bt-color-text-secondary);pointer-events:none}.bt-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:4px;border:none;background:transparent;color:var(--bt-color-text-secondary);cursor:pointer;border-radius:var(--bt-border-radius-sm);display:flex;align-items:center;justify-content:center}.bt-search-clear:hover{color:var(--bt-color-text);background-color:var(--bt-color-background-hover)}.bt-selection-info{display:flex;align-items:center;gap:var(--bt-spacing-sm);padding:var(--bt-spacing-xs) var(--bt-spacing-sm);background-color:var(--bt-color-primary-light);border-radius:var(--bt-border-radius-sm);font-size:var(--bt-font-size-sm);color:var(--bt-color-primary);white-space:nowrap;flex-shrink:0;z-index:1}.bt-selection-clear{padding:2px 6px;border:none;background:transparent;color:var(--bt-color-primary);cursor:pointer;font-size:var(--bt-font-size-sm);text-decoration:underline;white-space:nowrap}.bt-selection-clear:hover{color:var(--bt-color-primary-hover)}.bt-global-actions{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-global-btn{display:inline-flex;align-items:center;gap:var(--bt-spacing-xs);padding:var(--bt-spacing-sm) var(--bt-spacing-md);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-md);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer;transition:all var(--bt-transition-fast)}.bt-global-btn:hover:not(:disabled){background-color:var(--bt-color-background-hover);border-color:var(--bt-color-border-hover)}.bt-global-btn:disabled{opacity:.5;cursor:not-allowed}.bt-global-btn.bt-variant-primary{background-color:var(--bt-color-primary);border-color:var(--bt-color-primary);color:#fff}.bt-global-btn.bt-variant-primary:hover:not(:disabled){background-color:var(--bt-color-primary-hover)}.bt-global-btn.bt-variant-danger{background-color:var(--bt-color-danger);border-color:var(--bt-color-danger);color:#fff}.bt-global-btn.bt-variant-danger:hover:not(:disabled){background-color:var(--bt-color-danger-hover)}.bt-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-md);padding:var(--bt-spacing-md);background-color:var(--bt-color-background);border-top:var(--bt-border-width) solid var(--bt-color-border);flex-wrap:wrap}.bt-pagination-info{font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-pagination-controls{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer;transition:all var(--bt-transition-fast)}.bt-pagination-btn:hover:not(:disabled){background-color:var(--bt-color-background-hover);border-color:var(--bt-color-border-hover)}.bt-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.bt-pagination-btn.bt-active{background-color:var(--bt-color-primary);border-color:var(--bt-color-primary);color:#fff}.bt-pagination-pages{display:flex;align-items:center;gap:var(--bt-spacing-xs)}.bt-pagination-ellipsis{padding:0 var(--bt-spacing-xs);color:var(--bt-color-text-secondary)}.bt-page-size{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-page-size-label{font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-page-size-select{padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer}.bt-page-size-select:focus{outline:none;border-color:var(--bt-color-primary)}.bt-quick-jumper{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-quick-jumper-label{font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-quick-jumper-input{width:50px;padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);text-align:center}.bt-quick-jumper-input:focus{outline:none;border-color:var(--bt-color-primary)}.bt-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--bt-z-modal-backdrop);animation:bt-fade-in .2s ease}.bt-modal{position:relative;background-color:var(--bt-color-background);border-radius:var(--bt-border-radius-lg);box-shadow:var(--bt-shadow-lg);max-width:90vw;max-height:90vh;overflow:auto;z-index:var(--bt-z-modal);animation:bt-scale-in .2s ease}.bt-modal-sm{width:400px}.bt-modal-md{width:600px}.bt-modal-lg{width:800px}.bt-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bt-spacing-lg);border-bottom:var(--bt-border-width) solid var(--bt-color-border)}.bt-modal-title{font-size:var(--bt-font-size-lg);font-weight:var(--bt-font-weight-semibold);color:var(--bt-color-text);margin:0}.bt-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;color:var(--bt-color-text-secondary);cursor:pointer;border-radius:var(--bt-border-radius-sm);transition:all var(--bt-transition-fast);font-size:1.25rem}.bt-modal-close:hover{background-color:var(--bt-color-background-hover);color:var(--bt-color-text)}.bt-modal-body{padding:var(--bt-spacing-lg)}.bt-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--bt-spacing-sm);padding:var(--bt-spacing-lg);border-top:var(--bt-border-width) solid var(--bt-color-border)}@keyframes bt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bt-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
|
|
1
|
+
:root{--bt-color-primary: #3b82f6;--bt-color-primary-hover: #2563eb;--bt-color-primary-light: #eff6ff;--bt-color-success: #22c55e;--bt-color-danger: #ef4444;--bt-color-danger-hover: #dc2626;--bt-color-warning: #f59e0b;--bt-color-info: #06b6d4;--bt-color-text: #1f2937;--bt-color-text-secondary: #6b7280;--bt-color-text-disabled: #9ca3af;--bt-color-border: #e5e7eb;--bt-color-border-hover: #d1d5db;--bt-color-background: #ffffff;--bt-color-background-hover: #f9fafb;--bt-color-background-striped: #f3f4f6;--bt-color-background-selected: #eff6ff;--bt-color-background-header: #f9fafb;--bt-spacing-xs: .25rem;--bt-spacing-sm: .5rem;--bt-spacing-md: .75rem;--bt-spacing-lg: 1rem;--bt-spacing-xl: 1.5rem;--bt-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bt-font-size-sm: .875rem;--bt-font-size-md: 1rem;--bt-font-size-lg: 1.125rem;--bt-font-weight-normal: 400;--bt-font-weight-medium: 500;--bt-font-weight-semibold: 600;--bt-border-radius-sm: .25rem;--bt-border-radius-md: .375rem;--bt-border-radius-lg: .5rem;--bt-border-width: 1px;--bt-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--bt-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--bt-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--bt-transition-fast: .15s ease;--bt-transition-normal: .2s ease;--bt-cell-padding-sm: .5rem .75rem;--bt-cell-padding-md: .75rem 1rem;--bt-cell-padding-lg: 1rem 1.25rem;--bt-z-header: 10;--bt-z-modal-backdrop: 100;--bt-z-modal: 101}[data-theme=dark],.bt-dark{--bt-color-text: #f9fafb;--bt-color-text-secondary: #9ca3af;--bt-color-text-disabled: #6b7280;--bt-color-border: #374151;--bt-color-border-hover: #4b5563;--bt-color-background: #1f2937;--bt-color-background-hover: #374151;--bt-color-background-striped: #111827;--bt-color-background-selected: #1e3a5f;--bt-color-background-header: #111827}@media(max-width:768px){:root{--bt-cell-padding-sm: .375rem .5rem;--bt-cell-padding-md: .5rem .75rem;--bt-cell-padding-lg: .75rem 1rem}}.bt-container{font-family:var(--bt-font-family);font-size:var(--bt-font-size-md);color:var(--bt-color-text);width:100%}.bt-table-wrapper{overflow:auto;border-radius:var(--bt-border-radius-md);border:var(--bt-border-width) solid var(--bt-color-border)}.bt-table-wrapper.bt-bordered{border:var(--bt-border-width) solid var(--bt-color-border)}.bt-table{width:100%;border-collapse:collapse;border-spacing:0;background-color:var(--bt-color-background)}.bt-thead{background-color:var(--bt-color-background-header)}.bt-thead.bt-sticky{position:sticky;top:0;z-index:var(--bt-z-header)}.bt-th{padding:var(--bt-cell-padding-md);text-align:left;font-weight:var(--bt-font-weight-semibold);color:var(--bt-color-text);border-bottom:var(--bt-border-width) solid var(--bt-color-border);white-space:nowrap;vertical-align:top}.bt-th.bt-align-center{text-align:center}.bt-th.bt-align-right{text-align:right}.bt-th-content{display:flex;flex-direction:column;gap:var(--bt-spacing-sm)}.bt-th-header{display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-sm)}.bt-th-title{flex:1}.bt-sort-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;cursor:pointer;color:var(--bt-color-text-secondary);border-radius:var(--bt-border-radius-sm);transition:all var(--bt-transition-fast)}.bt-sort-btn:hover{background-color:var(--bt-color-background-hover);color:var(--bt-color-text)}.bt-sort-btn.bt-active{color:var(--bt-color-primary)}.bt-filter-input,.bt-filter-select{width:100%;padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);transition:border-color var(--bt-transition-fast)}.bt-filter-input:focus,.bt-filter-select:focus{outline:none;border-color:var(--bt-color-primary)}.bt-filter-input::placeholder{color:var(--bt-color-text-disabled)}.bt-tbody{background-color:var(--bt-color-background)}.bt-tr{transition:background-color var(--bt-transition-fast)}.bt-tr.bt-hoverable:hover{background-color:var(--bt-color-background-hover)}.bt-tr.bt-selected{background-color:var(--bt-color-background-selected)}.bt-tr.bt-striped:nth-child(2n){background-color:var(--bt-color-background-striped)}.bt-tr.bt-clickable{cursor:pointer}.bt-td{padding:var(--bt-cell-padding-md);border-bottom:var(--bt-border-width) solid var(--bt-color-border);color:var(--bt-color-text);vertical-align:middle}.bt-td.bt-align-center{text-align:center}.bt-td.bt-align-right{text-align:right}.bt-size-small .bt-th,.bt-size-small .bt-td{padding:var(--bt-cell-padding-sm);font-size:var(--bt-font-size-sm)}.bt-size-large .bt-th,.bt-size-large .bt-td{padding:var(--bt-cell-padding-lg)}.bt-checkbox-cell{width:40px;text-align:center}.bt-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--bt-color-primary)}.bt-actions-cell{white-space:nowrap}.bt-actions-wrapper{display:flex;align-items:center;gap:var(--bt-spacing-xs)}.bt-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--bt-spacing-xs);padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer;transition:all var(--bt-transition-fast);text-decoration:none}.bt-action-btn:hover:not(:disabled){background-color:var(--bt-color-background-hover);border-color:var(--bt-color-border-hover)}.bt-action-btn:disabled{opacity:.5;cursor:not-allowed}.bt-action-btn.bt-variant-primary{background-color:var(--bt-color-primary);border-color:var(--bt-color-primary);color:#fff}.bt-action-btn.bt-variant-primary:hover:not(:disabled){background-color:var(--bt-color-primary-hover)}.bt-action-btn.bt-variant-danger{background-color:var(--bt-color-danger);border-color:var(--bt-color-danger);color:#fff}.bt-action-btn.bt-variant-danger:hover:not(:disabled){background-color:var(--bt-color-danger-hover)}.bt-action-btn.bt-variant-ghost{border-color:transparent;background-color:transparent}.bt-action-btn.bt-variant-ghost:hover:not(:disabled){background-color:var(--bt-color-background-hover)}.bt-empty{padding:var(--bt-spacing-xl);text-align:center;color:var(--bt-color-text-secondary)}.bt-empty-icon{font-size:3rem;margin-bottom:var(--bt-spacing-md);opacity:.5}.bt-empty-text{font-size:var(--bt-font-size-md)}.bt-loading{display:flex;align-items:center;justify-content:center;padding:var(--bt-spacing-xl)}.bt-loading-spinner{width:32px;height:32px;border:3px solid var(--bt-color-border);border-top-color:var(--bt-color-primary);border-radius:50%;animation:bt-spin .8s linear infinite}@keyframes bt-spin{to{transform:rotate(360deg)}}.bt-loading-text{margin-left:var(--bt-spacing-md);color:var(--bt-color-text-secondary)}.bt-loading-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-color:#ffffffb3;z-index:5}.bt-container-loading{position:relative}@media(max-width:1024px){.bt-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.bt-th,.bt-td{padding:var(--bt-cell-padding-sm);font-size:var(--bt-font-size-sm)}.bt-checkbox-cell{width:36px}}.bt-cards{display:none}@media(max-width:640px){.bt-table{display:none}.bt-cards{display:flex;flex-direction:column;gap:var(--bt-spacing-md);padding:var(--bt-spacing-md)}.bt-table-wrapper{overflow:visible;border:none;border-radius:0}.bt-card{padding:var(--bt-spacing-md);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-md);background:var(--bt-color-background);transition:all var(--bt-transition-fast)}.bt-card.bt-selected{background-color:var(--bt-color-background-selected);border-color:var(--bt-color-primary)}.bt-card.bt-hoverable:active{background-color:var(--bt-color-background-hover)}.bt-card-header{display:flex;align-items:center;gap:var(--bt-spacing-sm);padding-bottom:var(--bt-spacing-sm);margin-bottom:var(--bt-spacing-xs);border-bottom:2px solid var(--bt-color-border)}.bt-card-title{font-weight:var(--bt-font-weight-semibold);font-size:var(--bt-font-size-md);flex:1;word-break:break-word}.bt-card-row{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--bt-spacing-xs) 0;border-bottom:var(--bt-border-width) solid var(--bt-color-border);gap:var(--bt-spacing-md)}.bt-card-row:last-child{border-bottom:none}.bt-card-label{font-weight:var(--bt-font-weight-medium);color:var(--bt-color-text-secondary);font-size:var(--bt-font-size-sm);flex-shrink:0;min-width:80px}.bt-card-value{text-align:right;word-break:break-word;flex:1}.bt-card-value-empty{color:var(--bt-color-text-disabled)}.bt-card-actions{display:flex;gap:var(--bt-spacing-sm);margin-top:var(--bt-spacing-md);padding-top:var(--bt-spacing-sm);border-top:var(--bt-border-width) solid var(--bt-color-border)}.bt-card-actions .bt-action-btn{flex:1;justify-content:center;min-height:44px}}.bt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-md);padding:var(--bt-spacing-md);background-color:var(--bt-color-background);border-bottom:var(--bt-border-width) solid var(--bt-color-border);flex-wrap:wrap}.bt-toolbar-left{display:flex;align-items:center;gap:var(--bt-spacing-md);flex-shrink:1;min-width:0;overflow:visible}.bt-toolbar-right{display:flex;align-items:center;gap:var(--bt-spacing-sm);flex-shrink:0}.bt-search{position:relative;width:250px;flex-shrink:1;min-width:120px}.bt-search-input{width:100%;padding:var(--bt-spacing-sm) var(--bt-spacing-md);padding-left:36px;font-size:var(--bt-font-size-md);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-md);background-color:var(--bt-color-background);color:var(--bt-color-text);transition:all var(--bt-transition-fast);box-sizing:border-box}.bt-search-input:focus{outline:none;border-color:var(--bt-color-primary);box-shadow:0 0 0 3px var(--bt-color-primary-light)}.bt-search-input::placeholder{color:var(--bt-color-text-disabled)}.bt-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--bt-color-text-secondary);pointer-events:none}.bt-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:4px;border:none;background:transparent;color:var(--bt-color-text-secondary);cursor:pointer;border-radius:var(--bt-border-radius-sm);display:flex;align-items:center;justify-content:center}.bt-search-clear:hover{color:var(--bt-color-text);background-color:var(--bt-color-background-hover)}.bt-selection-info{display:flex;align-items:center;gap:var(--bt-spacing-sm);padding:var(--bt-spacing-xs) var(--bt-spacing-sm);background-color:var(--bt-color-primary-light);border-radius:var(--bt-border-radius-sm);font-size:var(--bt-font-size-sm);color:var(--bt-color-primary);white-space:nowrap;flex-shrink:0;z-index:1}.bt-selection-clear{padding:2px 6px;border:none;background:transparent;color:var(--bt-color-primary);cursor:pointer;font-size:var(--bt-font-size-sm);text-decoration:underline;white-space:nowrap}.bt-selection-clear:hover{color:var(--bt-color-primary-hover)}.bt-global-actions{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-global-btn{display:inline-flex;align-items:center;gap:var(--bt-spacing-xs);padding:var(--bt-spacing-sm) var(--bt-spacing-md);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-md);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer;transition:all var(--bt-transition-fast)}.bt-global-btn:hover:not(:disabled){background-color:var(--bt-color-background-hover);border-color:var(--bt-color-border-hover)}.bt-global-btn:disabled{opacity:.5;cursor:not-allowed}.bt-global-btn.bt-variant-primary{background-color:var(--bt-color-primary);border-color:var(--bt-color-primary);color:#fff}.bt-global-btn.bt-variant-primary:hover:not(:disabled){background-color:var(--bt-color-primary-hover)}.bt-global-btn.bt-variant-danger{background-color:var(--bt-color-danger);border-color:var(--bt-color-danger);color:#fff}.bt-global-btn.bt-variant-danger:hover:not(:disabled){background-color:var(--bt-color-danger-hover)}@media(max-width:1024px){.bt-search{width:200px;min-width:150px}}@media(max-width:640px){.bt-toolbar{flex-direction:column;align-items:stretch;gap:var(--bt-spacing-sm)}.bt-toolbar-left,.bt-toolbar-right{width:100%}.bt-toolbar-left{flex-direction:column;gap:var(--bt-spacing-sm)}.bt-search{width:100%;max-width:none}.bt-search-input{font-size:16px}.bt-selection-info{width:100%;justify-content:space-between}.bt-global-actions{flex-wrap:wrap;width:100%}.bt-global-btn{flex:1;min-width:calc(50% - var(--bt-spacing-xs));justify-content:center;min-height:44px}}.bt-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-md);padding:var(--bt-spacing-md);background-color:var(--bt-color-background);border-top:var(--bt-border-width) solid var(--bt-color-border);flex-wrap:wrap}.bt-pagination-info{font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-pagination-controls{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer;transition:all var(--bt-transition-fast)}.bt-pagination-btn:hover:not(:disabled){background-color:var(--bt-color-background-hover);border-color:var(--bt-color-border-hover)}.bt-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.bt-pagination-btn.bt-active{background-color:var(--bt-color-primary);border-color:var(--bt-color-primary);color:#fff}.bt-pagination-pages{display:flex;align-items:center;gap:var(--bt-spacing-xs)}.bt-pagination-ellipsis{padding:0 var(--bt-spacing-xs);color:var(--bt-color-text-secondary)}.bt-page-size{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-page-size-label{font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-page-size-select{padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);cursor:pointer}.bt-page-size-select:focus{outline:none;border-color:var(--bt-color-primary)}.bt-quick-jumper{display:flex;align-items:center;gap:var(--bt-spacing-sm)}.bt-quick-jumper-label{font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-quick-jumper-input{width:50px;padding:var(--bt-spacing-xs) var(--bt-spacing-sm);font-size:var(--bt-font-size-sm);border:var(--bt-border-width) solid var(--bt-color-border);border-radius:var(--bt-border-radius-sm);background-color:var(--bt-color-background);color:var(--bt-color-text);text-align:center}.bt-quick-jumper-input:focus{outline:none;border-color:var(--bt-color-primary)}@media(max-width:1024px){.bt-quick-jumper{display:none}}@media(max-width:640px){.bt-pagination{flex-direction:column;gap:var(--bt-spacing-sm)}.bt-pagination-info{order:1;text-align:center}.bt-pagination-controls{order:2;justify-content:center}.bt-page-size{order:3;justify-content:center}.bt-pagination-pages{display:none}.bt-pagination-btn{min-width:44px;height:44px}border-color: var(--bt-color-primary)}.bt-modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--bt-z-modal-backdrop);animation:bt-fade-in .2s ease}.bt-modal{position:relative;background-color:var(--bt-color-background);border-radius:var(--bt-border-radius-lg);box-shadow:var(--bt-shadow-lg);max-width:90vw;max-height:90vh;overflow:auto;z-index:var(--bt-z-modal);animation:bt-scale-in .2s ease}.bt-modal-sm{width:400px}.bt-modal-md{width:600px}.bt-modal-lg{width:800px}.bt-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bt-spacing-lg);border-bottom:var(--bt-border-width) solid var(--bt-color-border)}.bt-modal-title{font-size:var(--bt-font-size-lg);font-weight:var(--bt-font-weight-semibold);color:var(--bt-color-text);margin:0}.bt-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;background:transparent;color:var(--bt-color-text-secondary);cursor:pointer;border-radius:var(--bt-border-radius-sm);transition:all var(--bt-transition-fast);font-size:1.25rem}.bt-modal-close:hover{background-color:var(--bt-color-background-hover);color:var(--bt-color-text)}.bt-modal-body{padding:var(--bt-spacing-lg)}.bt-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--bt-spacing-sm);padding:var(--bt-spacing-lg);border-top:var(--bt-border-width) solid var(--bt-color-border)}@keyframes bt-fade-in{0%{opacity:0}to{opacity:1}}@keyframes bt-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:640px){.bt-modal{width:95vw!important;max-height:90vh}.bt-modal-header,.bt-modal-body,.bt-modal-footer{padding:var(--bt-spacing-md)}.bt-modal-footer{flex-direction:column}.bt-modal-footer button{width:100%}.bt-modal-close{min-width:44px;min-height:44px}}
|