UNPKG

@fleetbase/ember-ui

Version:

Fleetbase UI provides all the interface components, helpers, services and utilities for building a Fleetbase extension into the Console.

53 lines (44 loc) 1.64 kB
import Component from '@glimmer/component'; export default class LayoutResourceCardGridComponent extends Component { get data() { return this.args.data || []; } get columns() { return this.args.columns || 4; } get gap() { const gapMap = { xs: 'gap-1', sm: 'gap-2', md: 'gap-4', lg: 'gap-6', xl: 'gap-8', }; return gapMap[this.args.gap] || 'gap-4'; } get gridCols() { const colsMap = { 1: 'grid-cols-1', 2: 'grid-cols-1 md:grid-cols-2', 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3', 4: 'grid-cols-1 md:grid-cols-4 lg:grid-cols-4 xl:grid-cols-4', 5: 'grid-cols-1 md:grid-cols-5 lg:grid-cols-5 xl:grid-cols-5', 6: 'grid-cols-1 md:grid-cols-6 lg:grid-cols-6 xl:grid-cols-6', }; return colsMap[parseInt(this.columns)] || 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3'; } get containerClass() { const baseClasses = `grid ${this.gridCols} ${this.gap}`; return this.args.containerClass ? `${baseClasses} ${this.args.containerClass}` : baseClasses; } get cardClass() { const baseClasses = 'bg-white dark:bg-gray-800 rounded-md border border-gray-200 dark:border-gray-700 shadow-sm hover:shadow-md transition-shadow duration-200'; return this.args.cardClass ? `${baseClasses} ${this.args.cardClass}` : baseClasses; } get showPagination() { return this.args.showPagination; } get hasData() { return this.data && this.data.length > 0; } }