mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 12:11:56 +00:00
* add nvidia packages
* add nvidia deps to nonfree
* gpu_acceleration flag & nvidia hacking
* fix gpu_config & /tmp/lxc.log
* implement hardware acceleration more dynamically
* refactor OpenUI
* use mknod
* registry updates for multi-hardware-requirements
* pluralize
* handle new registry types
* remove log
* migrations and driver fixes
* wip
* misc patches
* handle nvidia-container differently
* chore: comments (#3093)
* chore: comments
* revert some sizing
---------
Co-authored-by: Matt Hill <mattnine@protonmail.com>
* Revert "handle nvidia-container differently"
This reverts commit d708ae53df.
* fix debian containers
* cleanup
* feat: add empty array placeholder in forms (#3095)
* fixes from testing, client side device filtering for better fingerprinting resistance
* fix mac builds
---------
Co-authored-by: Sam Sartor <me@samsartor.com>
Co-authored-by: Matt Hill <mattnine@protonmail.com>
Co-authored-by: Alex Inkin <alexander@inkin.ru>
141 lines
3.5 KiB
TypeScript
141 lines
3.5 KiB
TypeScript
import {
|
|
ChangeDetectionStrategy,
|
|
Component,
|
|
inject,
|
|
input,
|
|
output,
|
|
} from '@angular/core'
|
|
import { MarketplacePkgBase } from '../../types'
|
|
import { CopyService, i18nPipe } from '@start9labs/shared'
|
|
import { DatePipe } from '@angular/common'
|
|
import { MarketplaceItemComponent } from './item.component'
|
|
|
|
@Component({
|
|
selector: 'marketplace-about',
|
|
template: `
|
|
<div class="background-border box-shadow-lg shadow-color-light">
|
|
<div class="box-container">
|
|
<div class="detail-container">
|
|
<!-- version -->
|
|
<marketplace-item
|
|
[style.pointer-events]="'none'"
|
|
[data]="pkg().version"
|
|
label="Version"
|
|
icon=""
|
|
/>
|
|
<!-- release date -->
|
|
@if (pkg().s9pks[0]?.[1]?.publishedAt; as published) {
|
|
<marketplace-item
|
|
[style.pointer-events]="'none'"
|
|
[data]="(published | date: 'medium')!"
|
|
label="Released"
|
|
icon=""
|
|
/>
|
|
}
|
|
<!-- SDK version -->
|
|
<marketplace-item
|
|
[style.pointer-events]="'none'"
|
|
[data]="pkg().sdkVersion || 'Unknown'"
|
|
label="SDK version"
|
|
icon=""
|
|
/>
|
|
<!-- git hash -->
|
|
@if (pkg().gitHash; as gitHash) {
|
|
<marketplace-item
|
|
(click)="copyService.copy(gitHash)"
|
|
[data]="gitHash"
|
|
label="Git hash"
|
|
icon="@tui.copy"
|
|
class="item-copy"
|
|
/>
|
|
} @else {
|
|
<div class="item-padding">
|
|
<label tuiTitle>
|
|
<span tuiSubtitle>{{ 'Git hash' | i18n }}</span>
|
|
{{ 'Unknown' | i18n }}
|
|
</label>
|
|
</div>
|
|
}
|
|
<!-- license -->
|
|
<marketplace-item
|
|
(click)="static.emit('license')"
|
|
[data]="pkg().license"
|
|
label="License"
|
|
icon="@tui.chevron-right"
|
|
class="item-pointer"
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="background-border box-shadow-lg shadow-color-light">
|
|
<div class="box-container">
|
|
<h2 class="additional-detail-title">{{ 'Description' | i18n }}</h2>
|
|
<p [innerHTML]="pkg().description.long"></p>
|
|
</div>
|
|
</div>
|
|
`,
|
|
styles: `
|
|
.box-container {
|
|
background-color: rgb(39 39 42);
|
|
border-radius: 0.75rem;
|
|
padding: 1.25rem 1.75rem;
|
|
|
|
p {
|
|
font-size: 1rem;
|
|
line-height: 1.5rem;
|
|
margin-bottom: 0.75rem;
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
|
|
.detail-container {
|
|
display: grid;
|
|
grid-auto-flow: row;
|
|
grid-auto-columns: minmax(0, 1fr);
|
|
|
|
& > * + * {
|
|
border-top-width: 1px;
|
|
border-bottom-width: 0;
|
|
border-color: rgb(113 113 122);
|
|
}
|
|
}
|
|
|
|
.item-pointer:hover {
|
|
cursor: pointer;
|
|
|
|
::ng-deep label {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
|
|
.item-copy:hover {
|
|
cursor: copy;
|
|
|
|
::ng-deep label {
|
|
cursor: copy;
|
|
}
|
|
}
|
|
|
|
.item-padding {
|
|
padding: 0.75rem 0.25rem;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
border-width: 0;
|
|
border-style: solid;
|
|
border-color: rgb(var(--tw-color-gray-200) / 1);
|
|
}
|
|
`,
|
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
imports: [MarketplaceItemComponent, DatePipe, i18nPipe],
|
|
})
|
|
export class MarketplaceAboutComponent {
|
|
readonly copyService = inject(CopyService)
|
|
|
|
readonly pkg = input.required<MarketplacePkgBase>()
|
|
|
|
readonly static = output<'license'>()
|
|
}
|