@sinequa/atomic-angular 2.13.0 → 2.15.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/components/multi-selection-toolbar/i18n/de.json +2 -1
- package/components/multi-selection-toolbar/i18n/en.json +2 -1
- package/components/multi-selection-toolbar/i18n/fr.json +2 -1
- package/features/advanced-search/i18n/de.json +9 -1
- package/features/advanced-search/i18n/en.json +9 -1
- package/features/advanced-search/i18n/fr.json +9 -1
- package/features/alerts/i18n/de.json +2 -1
- package/features/alerts/i18n/en.json +2 -1
- package/features/alerts/i18n/fr.json +2 -1
- package/features/collections/i18n/de.json +15 -1
- package/features/collections/i18n/en.json +15 -1
- package/features/collections/i18n/fr.json +15 -1
- package/features/quick-filters/i18n/de.json +2 -1
- package/features/quick-filters/i18n/en.json +2 -1
- package/features/quick-filters/i18n/fr.json +2 -1
- package/features/searches/i18n/de.json +2 -1
- package/features/searches/i18n/en.json +2 -1
- package/features/searches/i18n/fr.json +2 -1
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs +45 -43
- package/fesm2022/sinequa-atomic-angular-document-workspaces.mjs.map +1 -1
- package/fesm2022/sinequa-atomic-angular.mjs +2456 -454
- package/fesm2022/sinequa-atomic-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/types/sinequa-atomic-angular-document-workspaces.d.ts +14 -14
- package/types/sinequa-atomic-angular.d.ts +394 -127
|
@@ -7,7 +7,7 @@ import { Upload } from "tus-js-client";
|
|
|
7
7
|
import { toSignal } from "@angular/core/rxjs-interop";
|
|
8
8
|
import { TranslocoPipe, TranslocoService, provideTranslocoScope } from "@jsverse/transloco";
|
|
9
9
|
import { Temporal } from "temporal-polyfill";
|
|
10
|
-
import { AutocompleteComponent, AvatarComponent, AvatarFallbackComponent, BadgeComponent, BreakpointObserverService, ButtonComponent, ChatPlusIcon, CheckIcon, CheckboxComponent, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleXIcon, DialogBodyComponent, DialogComponent, DialogContentComponent, DialogFooterComponent, DialogHeaderComponent, DialogTitleComponent, ExternalLinkIcon, EyeIcon, FileIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FolderIcon, GridIcon, InputComponent, InputControlDirective, KeyIcon, ListIcon, MagnifyingGlassMinusIcon, MagnifyingGlassPlusIcon, MenuComponent, MenuContentComponent, MenuItemComponent, MenuTriggerDirective, PenToSquareIcon, PlusIcon, PopoverDirective, RefreshIcon, SearchInputComponent, SheetBodyComponent, SheetComponent, SheetHeaderComponent, SyncIcon, TabComponent, TabListComponent, TabsComponent, TagComponent, TagIcon, TagInputComponent, TagRemoveComponent, TextareaComponent, TextareaControlDirective, TextareaCounterComponent, TooltipDirective,
|
|
10
|
+
import { AutocompleteComponent, AvatarComponent, AvatarFallbackComponent, BadgeComponent, BreakpointObserverService, ButtonComponent, ChatPlusIcon, CheckIcon, CheckboxComponent, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CircleXIcon, DialogBodyComponent, DialogComponent, DialogContentComponent, DialogFooterComponent, DialogHeaderComponent, DialogTitleComponent, ExternalLinkIcon, EyeIcon, FileIcon, FileSearchIcon, FileSpreadsheetIcon, FileTextIcon, FolderIcon, GridIcon, InputComponent, InputControlDirective, KeyIcon, ListIcon, MagnifyingGlassMinusIcon, MagnifyingGlassPlusIcon, MenuComponent, MenuContentComponent, MenuItemComponent, MenuTriggerDirective, PenToSquareIcon, PlusIcon, PopoverDirective, RefreshIcon, SearchInputComponent, SheetBodyComponent, SheetComponent, SheetHeaderComponent, SyncIcon, TabComponent, TabListComponent, TabsComponent, TagComponent, TagIcon, TagInputComponent, TagRemoveComponent, TextareaComponent, TextareaControlDirective, TextareaCounterComponent, TooltipDirective, UploadIcon, UserIcon, UserRoundIcon, XMarkIcon, createCallable, injectCallRef } from "@sinequa/galactik";
|
|
11
11
|
import { FormField, FormRoot, disabled, form, maxLength, required, validate } from "@angular/forms/signals";
|
|
12
12
|
import { DomSanitizer } from "@angular/platform-browser";
|
|
13
13
|
import { NgTemplateOutlet } from "@angular/common";
|
|
@@ -4477,7 +4477,7 @@ var UploadTracker = class UploadTracker {
|
|
|
4477
4477
|
data-testid="peek-text">
|
|
4478
4478
|
<workspace-message [message]="peekShown()" />
|
|
4479
4479
|
</span>
|
|
4480
|
-
<span class="shrink-0 translate-x-1.5 text-xs text-(--font-neutral-muted) opacity-0 transition-[opacity,transform] delay-100 duration-200 group-hover/tracker:translate-x-0 group-hover/tracker:opacity-100">
|
|
4480
|
+
<span class="shrink-0 translate-x-1.5 text-xs text-(--font-neutral-muted) opacity-0 transition-[opacity,transform] delay-100 duration-200 group-hover/tracker:translate-x-0 group-hover/tracker:opacity-100 pointer-coarse:translate-x-0 pointer-coarse:opacity-100">
|
|
4481
4481
|
{{ "documentWorkspaces.tracker.clickToRestore" | transloco }}
|
|
4482
4482
|
</span>
|
|
4483
4483
|
</div>
|
|
@@ -4822,7 +4822,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
4822
4822
|
data-testid="peek-text">
|
|
4823
4823
|
<workspace-message [message]="peekShown()" />
|
|
4824
4824
|
</span>
|
|
4825
|
-
<span class="shrink-0 translate-x-1.5 text-xs text-(--font-neutral-muted) opacity-0 transition-[opacity,transform] delay-100 duration-200 group-hover/tracker:translate-x-0 group-hover/tracker:opacity-100">
|
|
4825
|
+
<span class="shrink-0 translate-x-1.5 text-xs text-(--font-neutral-muted) opacity-0 transition-[opacity,transform] delay-100 duration-200 group-hover/tracker:translate-x-0 group-hover/tracker:opacity-100 pointer-coarse:translate-x-0 pointer-coarse:opacity-100">
|
|
4826
4826
|
{{ "documentWorkspaces.tracker.clickToRestore" | transloco }}
|
|
4827
4827
|
</span>
|
|
4828
4828
|
</div>
|
|
@@ -5144,13 +5144,13 @@ var WorkspaceRow = class WorkspaceRow {
|
|
|
5144
5144
|
variant="tertiary"
|
|
5145
5145
|
scheme="neutral"
|
|
5146
5146
|
size="sm"
|
|
5147
|
-
class="text-(--font-
|
|
5147
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
5148
5148
|
[iconOnly]="true"
|
|
5149
5149
|
[writerOnly]="workspace().currentUserRole"
|
|
5150
5150
|
[attr.aria-label]="'documentWorkspaces.list.deleteWorkspace' | transloco"
|
|
5151
5151
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
5152
5152
|
(click)="deleteRequested.emit()">
|
|
5153
|
-
<
|
|
5153
|
+
<x-mark-icon />
|
|
5154
5154
|
</button>
|
|
5155
5155
|
}
|
|
5156
5156
|
</div>
|
|
@@ -5234,8 +5234,8 @@ var WorkspaceRow = class WorkspaceRow {
|
|
|
5234
5234
|
},
|
|
5235
5235
|
{
|
|
5236
5236
|
kind: "component",
|
|
5237
|
-
type:
|
|
5238
|
-
selector: "
|
|
5237
|
+
type: XMarkIcon,
|
|
5238
|
+
selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
|
|
5239
5239
|
inputs: ["class"]
|
|
5240
5240
|
},
|
|
5241
5241
|
{
|
|
@@ -5282,7 +5282,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5282
5282
|
HighlightedText,
|
|
5283
5283
|
TagComponent,
|
|
5284
5284
|
TooltipDirective,
|
|
5285
|
-
|
|
5285
|
+
XMarkIcon,
|
|
5286
5286
|
WorkspaceIcon,
|
|
5287
5287
|
WorkspaceRoleTag,
|
|
5288
5288
|
WriterOnly
|
|
@@ -5341,13 +5341,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5341
5341
|
variant="tertiary"
|
|
5342
5342
|
scheme="neutral"
|
|
5343
5343
|
size="sm"
|
|
5344
|
-
class="text-(--font-
|
|
5344
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
5345
5345
|
[iconOnly]="true"
|
|
5346
5346
|
[writerOnly]="workspace().currentUserRole"
|
|
5347
5347
|
[attr.aria-label]="'documentWorkspaces.list.deleteWorkspace' | transloco"
|
|
5348
5348
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
5349
5349
|
(click)="deleteRequested.emit()">
|
|
5350
|
-
<
|
|
5350
|
+
<x-mark-icon />
|
|
5351
5351
|
</button>
|
|
5352
5352
|
}
|
|
5353
5353
|
</div>
|
|
@@ -5513,13 +5513,13 @@ var WorkspaceCard = class WorkspaceCard {
|
|
|
5513
5513
|
variant="tertiary"
|
|
5514
5514
|
scheme="neutral"
|
|
5515
5515
|
size="sm"
|
|
5516
|
-
class="text-(--font-
|
|
5516
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
5517
5517
|
[iconOnly]="true"
|
|
5518
5518
|
[writerOnly]="workspace().currentUserRole"
|
|
5519
5519
|
[attr.aria-label]="'documentWorkspaces.list.deleteWorkspace' | transloco"
|
|
5520
5520
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
5521
5521
|
(click)="deleteRequested.emit()">
|
|
5522
|
-
<
|
|
5522
|
+
<x-mark-icon />
|
|
5523
5523
|
</button>
|
|
5524
5524
|
}
|
|
5525
5525
|
</div>
|
|
@@ -5622,8 +5622,8 @@ var WorkspaceCard = class WorkspaceCard {
|
|
|
5622
5622
|
},
|
|
5623
5623
|
{
|
|
5624
5624
|
kind: "component",
|
|
5625
|
-
type:
|
|
5626
|
-
selector: "
|
|
5625
|
+
type: XMarkIcon,
|
|
5626
|
+
selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
|
|
5627
5627
|
inputs: ["class"]
|
|
5628
5628
|
},
|
|
5629
5629
|
{
|
|
@@ -5670,7 +5670,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5670
5670
|
HighlightedText,
|
|
5671
5671
|
TagComponent,
|
|
5672
5672
|
TooltipDirective,
|
|
5673
|
-
|
|
5673
|
+
XMarkIcon,
|
|
5674
5674
|
WorkspaceIcon,
|
|
5675
5675
|
WorkspaceRoleTag,
|
|
5676
5676
|
WriterOnly
|
|
@@ -5703,13 +5703,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
5703
5703
|
variant="tertiary"
|
|
5704
5704
|
scheme="neutral"
|
|
5705
5705
|
size="sm"
|
|
5706
|
-
class="text-(--font-
|
|
5706
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
5707
5707
|
[iconOnly]="true"
|
|
5708
5708
|
[writerOnly]="workspace().currentUserRole"
|
|
5709
5709
|
[attr.aria-label]="'documentWorkspaces.list.deleteWorkspace' | transloco"
|
|
5710
5710
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
5711
5711
|
(click)="deleteRequested.emit()">
|
|
5712
|
-
<
|
|
5712
|
+
<x-mark-icon />
|
|
5713
5713
|
</button>
|
|
5714
5714
|
}
|
|
5715
5715
|
</div>
|
|
@@ -5931,7 +5931,7 @@ var WorkspaceList = class WorkspaceList {
|
|
|
5931
5931
|
host: { classAttribute: "@container flex h-full min-h-0 flex-col p-3 pb-2 md:p-8 md:pb-4" },
|
|
5932
5932
|
providers: [provideTranslocoScope("document-workspaces")],
|
|
5933
5933
|
ngImport: i0,
|
|
5934
|
-
template: "\n <div class=\"mb-1 flex items-center justify-between gap-4\">\n <h1 class=\"text-2xl leading-[31px] font-bold text-(--font-neutral-black)\">{{ \"documentWorkspaces.list.title\" | transloco }}</h1>\n <button (click)=\"createRequested.emit()\">\n <plus-icon />\n {{ \"documentWorkspaces.list.addWorkspace\" | transloco }}\n </button>\n </div>\n <p class=\"mb-6 text-base text-(--font-primary-base)\">{{ \"documentWorkspaces.list.subtitle\" | transloco }}</p>\n\n <Tabs class=\"mb-3 max-w-full\">\n <TabList\n variant=\"inner\"\n class=\"w-fit max-w-full\"\n selectionMode=\"explicit\"\n [softDisabled]=\"false\"\n [attr.aria-label]=\"'documentWorkspaces.list.title' | transloco\"\n [selectedTab]=\"filter.tab()\"\n (selectedTabChange)=\"onTabChange($event)\">\n @for (item of tabs; track item.tab) {\n <Tab [value]=\"item.tab\" variant=\"inner\">\n @switch (item.tab) {\n @case (\"editor\") {\n <user-icon class=\"shrink-0\" />\n }\n @case (\"reader\") {\n <user-round-icon class=\"shrink-0\" />\n }\n }\n <span>{{ item.labelKey | transloco }}</span>\n <Badge variant=\"number\" fill=\"primary\" scheme=\"sage\" size=\"xs\" class=\"shrink-0\" [attr.data-testid]=\"'badge-' + item.tab\">{{ filter.counts()[item.tab] }}</Badge>\n </Tab>\n }\n </TabList>\n </Tabs>\n\n <div class=\"mb-6 flex flex-wrap items-center gap-2\">\n <div role=\"group\" class=\"inline-flex gap-1 rounded-full bg-(--bg-primary-lighter) p-0.5\">\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'grid'\"\n [attr.aria-label]=\"'documentWorkspaces.common.gridView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.gridView' | transloco\"\n (click)=\"viewMode.set('grid')\">\n <grid-icon class=\"size-3.5\" />\n </button>\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'list'\"\n [attr.aria-label]=\"'documentWorkspaces.common.listView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.listView' | transloco\"\n (click)=\"viewMode.set('list')\">\n <list-icon class=\"size-3.5\" />\n </button>\n </div>\n\n <SearchInput\n role=\"search\"\n class=\"min-w-32 flex-[0_1_15rem]\"\n [formField]=\"searchForm\"\n [placeholder]=\"'documentWorkspaces.list.searchPlaceholder' | transloco\"\n [aria-label]=\"'documentWorkspaces.list.searchPlaceholder' | transloco\"\n [clearLabel]=\"'documentWorkspaces.common.clearSearch' | transloco\" />\n\n @if (selection.selectableItems().length) {\n @if (selection.active()) {\n <div class=\"ml-auto flex items-center gap-2 @max-xl:order-last @max-xl:ml-0 @max-xl:basis-full\" data-testid=\"selection-bar\">\n <span class=\"text-sm text-(--font-primary-base)\" aria-live=\"polite\">{{ \"documentWorkspaces.list.selectedCount\" | transloco: { count: selection.count() } }}</span>\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" (click)=\"selection.toggleAll()\">\n {{ (selection.allSelected() ? \"documentWorkspaces.common.unselectAll\" : \"documentWorkspaces.common.selectAll\") | transloco }}\n </button>\n <button class=\"text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)\" variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" [disabled]=\"!selection.count()\" (click)=\"deleteSelected()\">\n <
|
|
5934
|
+
template: "\n <div class=\"mb-1 flex items-center justify-between gap-4\">\n <h1 class=\"text-2xl leading-[31px] font-bold text-(--font-neutral-black)\">{{ \"documentWorkspaces.list.title\" | transloco }}</h1>\n <button (click)=\"createRequested.emit()\">\n <plus-icon />\n {{ \"documentWorkspaces.list.addWorkspace\" | transloco }}\n </button>\n </div>\n <p class=\"mb-6 text-base text-(--font-primary-base)\">{{ \"documentWorkspaces.list.subtitle\" | transloco }}</p>\n\n <Tabs class=\"mb-3 max-w-full\">\n <TabList\n variant=\"inner\"\n class=\"w-fit max-w-full\"\n selectionMode=\"explicit\"\n [softDisabled]=\"false\"\n [attr.aria-label]=\"'documentWorkspaces.list.title' | transloco\"\n [selectedTab]=\"filter.tab()\"\n (selectedTabChange)=\"onTabChange($event)\">\n @for (item of tabs; track item.tab) {\n <Tab [value]=\"item.tab\" variant=\"inner\">\n @switch (item.tab) {\n @case (\"editor\") {\n <user-icon class=\"shrink-0\" />\n }\n @case (\"reader\") {\n <user-round-icon class=\"shrink-0\" />\n }\n }\n <span>{{ item.labelKey | transloco }}</span>\n <Badge variant=\"number\" fill=\"primary\" scheme=\"sage\" size=\"xs\" class=\"shrink-0\" [attr.data-testid]=\"'badge-' + item.tab\">{{ filter.counts()[item.tab] }}</Badge>\n </Tab>\n }\n </TabList>\n </Tabs>\n\n <div class=\"mb-6 flex flex-wrap items-center gap-2\">\n <div role=\"group\" class=\"inline-flex gap-1 rounded-full bg-(--bg-primary-lighter) p-0.5\">\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'grid'\"\n [attr.aria-label]=\"'documentWorkspaces.common.gridView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.gridView' | transloco\"\n (click)=\"viewMode.set('grid')\">\n <grid-icon class=\"size-3.5\" />\n </button>\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'list'\"\n [attr.aria-label]=\"'documentWorkspaces.common.listView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.listView' | transloco\"\n (click)=\"viewMode.set('list')\">\n <list-icon class=\"size-3.5\" />\n </button>\n </div>\n\n <SearchInput\n role=\"search\"\n class=\"min-w-32 flex-[0_1_15rem]\"\n [formField]=\"searchForm\"\n [placeholder]=\"'documentWorkspaces.list.searchPlaceholder' | transloco\"\n [aria-label]=\"'documentWorkspaces.list.searchPlaceholder' | transloco\"\n [clearLabel]=\"'documentWorkspaces.common.clearSearch' | transloco\" />\n\n @if (selection.selectableItems().length) {\n @if (selection.active()) {\n <div class=\"ml-auto flex items-center gap-2 @max-xl:order-last @max-xl:ml-0 @max-xl:basis-full\" data-testid=\"selection-bar\">\n <span class=\"text-sm text-(--font-primary-base)\" aria-live=\"polite\">{{ \"documentWorkspaces.list.selectedCount\" | transloco: { count: selection.count() } }}</span>\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" (click)=\"selection.toggleAll()\">\n {{ (selection.allSelected() ? \"documentWorkspaces.common.unselectAll\" : \"documentWorkspaces.common.selectAll\") | transloco }}\n </button>\n <button class=\"text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)\" variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" [disabled]=\"!selection.count()\" (click)=\"deleteSelected()\">\n <x-mark-icon />\n {{ \"documentWorkspaces.common.delete\" | transloco }}\n </button>\n </div>\n }\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" class=\"@max-xl:ml-auto\" [class.ml-auto]=\"!selection.active()\" (click)=\"selection.toggleMode()\">\n {{ (selection.active() ? \"documentWorkspaces.common.cancel\" : \"documentWorkspaces.common.select\") | transloco }}\n </button>\n }\n </div>\n\n @if (refreshError(); as message) {\n <p role=\"alert\" class=\"text-sm text-(--font-error-base)\">{{ \"documentWorkspaces.list.refreshError\" | transloco: { error: message } }}</p>\n }\n\n <!-- Only the workspaces scroll: the title, the tabs and the toolbar stay in place. -->\n <div class=\"min-h-0 flex-1 overflow-y-auto\">\n @switch (status()) {\n @case (\"loading\") {\n <p class=\"text-sm text-(--font-primary-muted)\">{{ \"documentWorkspaces.list.loading\" | transloco }}</p>\n }\n @case (\"error\") {\n <div class=\"flex items-center gap-3 text-sm\" data-testid=\"load-error\">\n <span class=\"text-(--font-error-base)\">\n @if (loadError(); as message) {\n <workspace-message [message]=\"message\" />\n } @else {\n {{ \"documentWorkspaces.list.loadError\" | transloco }}\n }\n </span>\n <button variant=\"secondary\" size=\"sm\" (click)=\"load()\">{{ \"documentWorkspaces.common.retry\" | transloco }}</button>\n </div>\n }\n @default {\n @if (!filter.filtered().length) {\n <p class=\"py-8 text-center text-sm text-(--font-primary-muted)\" data-testid=\"empty\">\n {{ (store.workspaces().length ? \"documentWorkspaces.list.noMatch\" : \"documentWorkspaces.list.empty\") | transloco }}\n </p>\n } @else if (viewMode() === \"grid\") {\n <div class=\"grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] content-start gap-4 pb-8\">\n @for (workspace of filter.filtered(); track workspace.id) {\n <workspace-card\n [workspace]=\"workspace\"\n [query]=\"filter.query()\"\n [selecting]=\"selection.active()\"\n [selected]=\"selection.isSelected(workspace)\"\n [selectable]=\"selection.canSelect(workspace)\"\n (opened)=\"opened.emit(workspace)\"\n (deleteRequested)=\"confirmDelete([workspace])\"\n (selectedChange)=\"selection.toggle(workspace, $event)\" />\n }\n </div>\n } @else {\n <div role=\"table\" class=\"flex flex-col gap-3 pb-8\">\n <div role=\"row\" [attr.data-selecting]=\"selection.active() ? '' : null\" class=\"grid grid-cols-[minmax(0,1fr)_auto_auto_2.5rem] items-center gap-x-4 px-3 data-selecting:grid-cols-[2rem_minmax(0,1fr)_auto_auto_2.5rem] @xl:grid-cols-[minmax(0,1fr)_4.5rem_6.5rem_6.5rem_2.5rem] @xl:data-selecting:grid-cols-[2rem_minmax(0,1fr)_4.5rem_6.5rem_6.5rem_2.5rem] @3xl:grid-cols-[minmax(0,2fr)_5.5rem_7.5rem_9rem_minmax(5rem,1fr)_2.5rem] @3xl:data-selecting:grid-cols-[2rem_minmax(0,2fr)_5.5rem_7.5rem_9rem_minmax(5rem,1fr)_2.5rem] py-1 text-xs font-semibold text-(--font-primary-muted)\">\n @if (selection.active()) {\n <div role=\"columnheader\">\n <checkbox\n [checked]=\"selection.allSelected()\"\n [indeterminate]=\"selection.partiallySelected()\"\n [aria-label]=\"'documentWorkspaces.common.selectAll' | transloco\"\n (checkedChange)=\"selection.toggleAll()\" />\n </div>\n }\n <div role=\"columnheader\">{{ \"documentWorkspaces.list.columnName\" | transloco }}</div>\n <div role=\"columnheader\">{{ \"documentWorkspaces.list.columnContent\" | transloco }}</div>\n <div role=\"columnheader\">{{ \"documentWorkspaces.list.columnOwner\" | transloco }}</div>\n <div role=\"columnheader\" class=\"hidden @xl:block\">{{ \"documentWorkspaces.list.columnDateUpdated\" | transloco }}</div>\n <div role=\"columnheader\" class=\"hidden @3xl:block\">{{ \"documentWorkspaces.list.columnTags\" | transloco }}</div>\n <div role=\"columnheader\"></div>\n </div>\n @for (workspace of filter.filtered(); track workspace.id) {\n <workspace-row\n [workspace]=\"workspace\"\n [query]=\"filter.query()\"\n [selecting]=\"selection.active()\"\n [selected]=\"selection.isSelected(workspace)\"\n [selectable]=\"selection.canSelect(workspace)\"\n (opened)=\"opened.emit(workspace)\"\n (deleteRequested)=\"confirmDelete([workspace])\"\n (selectedChange)=\"selection.toggle(workspace, $event)\" />\n }\n </div>\n }\n\n @if (store.hasMore() || store.truncated()) {\n <div class=\"flex flex-col items-center gap-2 pb-8\" data-testid=\"load-more\">\n <p class=\"text-sm text-(--font-primary-muted)\">\n {{ \"documentWorkspaces.list.partial\" | transloco: { shown: store.workspaces().length, total: store.pagination().total } }}\n </p>\n @if (loadMoreError(); as message) {\n <p role=\"alert\" class=\"text-sm text-(--font-error-base)\">{{ \"documentWorkspaces.list.loadMoreError\" | transloco: { error: message } }}</p>\n }\n @if (store.hasMore()) {\n <button variant=\"secondary\" size=\"sm\" [disabled]=\"loadingMore()\" (click)=\"loadMore()\">\n {{ \"documentWorkspaces.list.loadMore\" | transloco }}\n </button>\n }\n </div>\n }\n }\n }\n </div>\n ",
|
|
5935
5935
|
isInline: true,
|
|
5936
5936
|
dependencies: [
|
|
5937
5937
|
{
|
|
@@ -6054,8 +6054,8 @@ var WorkspaceList = class WorkspaceList {
|
|
|
6054
6054
|
},
|
|
6055
6055
|
{
|
|
6056
6056
|
kind: "component",
|
|
6057
|
-
type:
|
|
6058
|
-
selector: "
|
|
6057
|
+
type: XMarkIcon,
|
|
6058
|
+
selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
|
|
6059
6059
|
inputs: ["class"]
|
|
6060
6060
|
},
|
|
6061
6061
|
{
|
|
@@ -6142,7 +6142,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6142
6142
|
TabListComponent,
|
|
6143
6143
|
TabsComponent,
|
|
6144
6144
|
TooltipDirective,
|
|
6145
|
-
|
|
6145
|
+
XMarkIcon,
|
|
6146
6146
|
UserIcon,
|
|
6147
6147
|
UserRoundIcon,
|
|
6148
6148
|
WorkspaceCard,
|
|
@@ -6226,7 +6226,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6226
6226
|
{{ (selection.allSelected() ? "documentWorkspaces.common.unselectAll" : "documentWorkspaces.common.selectAll") | transloco }}
|
|
6227
6227
|
</button>
|
|
6228
6228
|
<button class="text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)" variant="tertiary" scheme="neutral" size="sm" [disabled]="!selection.count()" (click)="deleteSelected()">
|
|
6229
|
-
<
|
|
6229
|
+
<x-mark-icon />
|
|
6230
6230
|
{{ "documentWorkspaces.common.delete" | transloco }}
|
|
6231
6231
|
</button>
|
|
6232
6232
|
</div>
|
|
@@ -6462,13 +6462,13 @@ var DocumentCard = class DocumentCard {
|
|
|
6462
6462
|
variant="tertiary"
|
|
6463
6463
|
scheme="neutral"
|
|
6464
6464
|
size="sm"
|
|
6465
|
-
class="text-(--font-
|
|
6465
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
6466
6466
|
[iconOnly]="true"
|
|
6467
6467
|
[writerOnly]="workspaceRole()"
|
|
6468
6468
|
[attr.aria-label]="'documentWorkspaces.detail.deleteDocument' | transloco"
|
|
6469
6469
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
6470
6470
|
(click)="deleteRequested.emit()">
|
|
6471
|
-
<
|
|
6471
|
+
<x-mark-icon />
|
|
6472
6472
|
</button>
|
|
6473
6473
|
}
|
|
6474
6474
|
</div>
|
|
@@ -6582,8 +6582,8 @@ var DocumentCard = class DocumentCard {
|
|
|
6582
6582
|
},
|
|
6583
6583
|
{
|
|
6584
6584
|
kind: "component",
|
|
6585
|
-
type:
|
|
6586
|
-
selector: "
|
|
6585
|
+
type: XMarkIcon,
|
|
6586
|
+
selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
|
|
6587
6587
|
inputs: ["class"]
|
|
6588
6588
|
},
|
|
6589
6589
|
{
|
|
@@ -6631,7 +6631,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6631
6631
|
HighlightedText,
|
|
6632
6632
|
TagComponent,
|
|
6633
6633
|
TooltipDirective,
|
|
6634
|
-
|
|
6634
|
+
XMarkIcon,
|
|
6635
6635
|
UploadIcon,
|
|
6636
6636
|
WorkspaceMessage,
|
|
6637
6637
|
WriterOnly
|
|
@@ -6661,13 +6661,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
6661
6661
|
variant="tertiary"
|
|
6662
6662
|
scheme="neutral"
|
|
6663
6663
|
size="sm"
|
|
6664
|
-
class="text-(--font-
|
|
6664
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
6665
6665
|
[iconOnly]="true"
|
|
6666
6666
|
[writerOnly]="workspaceRole()"
|
|
6667
6667
|
[attr.aria-label]="'documentWorkspaces.detail.deleteDocument' | transloco"
|
|
6668
6668
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
6669
6669
|
(click)="deleteRequested.emit()">
|
|
6670
|
-
<
|
|
6670
|
+
<x-mark-icon />
|
|
6671
6671
|
</button>
|
|
6672
6672
|
}
|
|
6673
6673
|
</div>
|
|
@@ -6920,13 +6920,13 @@ var DocumentRow = class DocumentRow {
|
|
|
6920
6920
|
variant="tertiary"
|
|
6921
6921
|
scheme="neutral"
|
|
6922
6922
|
size="sm"
|
|
6923
|
-
class="text-(--font-
|
|
6923
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
6924
6924
|
[iconOnly]="true"
|
|
6925
6925
|
[writerOnly]="workspaceRole()"
|
|
6926
6926
|
[attr.aria-label]="'documentWorkspaces.detail.deleteDocument' | transloco"
|
|
6927
6927
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
6928
6928
|
(click)="deleteRequested.emit()">
|
|
6929
|
-
<
|
|
6929
|
+
<x-mark-icon />
|
|
6930
6930
|
</button>
|
|
6931
6931
|
}
|
|
6932
6932
|
</div>
|
|
@@ -7016,8 +7016,8 @@ var DocumentRow = class DocumentRow {
|
|
|
7016
7016
|
},
|
|
7017
7017
|
{
|
|
7018
7018
|
kind: "component",
|
|
7019
|
-
type:
|
|
7020
|
-
selector: "
|
|
7019
|
+
type: XMarkIcon,
|
|
7020
|
+
selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
|
|
7021
7021
|
inputs: ["class"]
|
|
7022
7022
|
},
|
|
7023
7023
|
{
|
|
@@ -7065,7 +7065,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7065
7065
|
HighlightedText,
|
|
7066
7066
|
TagComponent,
|
|
7067
7067
|
TooltipDirective,
|
|
7068
|
-
|
|
7068
|
+
XMarkIcon,
|
|
7069
7069
|
UploadIcon,
|
|
7070
7070
|
WorkspaceMessage,
|
|
7071
7071
|
WriterOnly
|
|
@@ -7127,13 +7127,13 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
7127
7127
|
variant="tertiary"
|
|
7128
7128
|
scheme="neutral"
|
|
7129
7129
|
size="sm"
|
|
7130
|
-
class="text-(--font-
|
|
7130
|
+
class="text-(--font-primary-muted) opacity-0 group-hover:opacity-100 focus-visible:opacity-100 hover:bg-(--bg-error-lightest) hover:text-(--font-error-base) max-md:opacity-100 pointer-coarse:opacity-100"
|
|
7131
7131
|
[iconOnly]="true"
|
|
7132
7132
|
[writerOnly]="workspaceRole()"
|
|
7133
7133
|
[attr.aria-label]="'documentWorkspaces.detail.deleteDocument' | transloco"
|
|
7134
7134
|
[tooltip]="'documentWorkspaces.common.delete' | transloco"
|
|
7135
7135
|
(click)="deleteRequested.emit()">
|
|
7136
|
-
<
|
|
7136
|
+
<x-mark-icon />
|
|
7137
7137
|
</button>
|
|
7138
7138
|
}
|
|
7139
7139
|
</div>
|
|
@@ -8016,6 +8016,8 @@ var PrincipalPicker = class PrincipalPicker {
|
|
|
8016
8016
|
"fieldLabelLang",
|
|
8017
8017
|
"placeholder",
|
|
8018
8018
|
"ariaLabel",
|
|
8019
|
+
"hideKeyboardLabel",
|
|
8020
|
+
"keyboardLabel",
|
|
8019
8021
|
"noResultsText",
|
|
8020
8022
|
"searchingText",
|
|
8021
8023
|
"errorText",
|
|
@@ -9778,7 +9780,7 @@ var WorkspaceDetail = class WorkspaceDetail {
|
|
|
9778
9780
|
host: { classAttribute: "flex h-full min-h-0" },
|
|
9779
9781
|
providers: [provideTranslocoScope("document-workspaces")],
|
|
9780
9782
|
ngImport: i0,
|
|
9781
|
-
template: "\n <div class=\"@container flex min-h-0 min-w-0 flex-1 flex-col p-3 pb-2 md:p-8 md:pb-4\">\n <div class=\"mb-3 flex flex-wrap items-center gap-x-3 gap-y-2\">\n <button\n size=\"sm\"\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [attr.aria-label]=\"'documentWorkspaces.detail.back' | transloco\"\n [tooltip]=\"'documentWorkspaces.detail.back' | transloco\"\n (click)=\"leave()\">\n <chevron-left-icon />\n </button>\n\n @if (workspace(); as workspace) {\n <h1 class=\"min-w-28 flex-[1_1_16rem] text-2xl leading-[31px] font-bold break-words text-(--font-neutral-black)\">{{ workspace.name }}</h1>\n\n <!-- Beside the title while they fit next to its 16rem, on a line of their own under it once they do not. -->\n @if (!deletedElsewhere()) {\n <div class=\"ml-auto flex shrink-0 items-center gap-1\">\n <button\n size=\"sm\"\n variant=\"tertiary\"\n scheme=\"neutral\"\n class=\"text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)\"\n [writerOnly]=\"workspace.currentUserRole\"\n (click)=\"confirmDeleteWorkspace(workspace)\">\n <trash-icon />\n {{ \"documentWorkspaces.common.delete\" | transloco }}\n </button>\n <button size=\"sm\" variant=\"tertiary\" scheme=\"neutral\" [writerOnly]=\"workspace.currentUserRole\" (click)=\"share(workspace)\">\n <user-round-icon />\n {{ \"documentWorkspaces.share.title\" | transloco }}\n </button>\n <button size=\"sm\" variant=\"tertiary\" scheme=\"neutral\" [writerOnly]=\"workspace.currentUserRole\" (click)=\"edit(workspace)\">\n <pen-to-square-icon />\n {{ \"documentWorkspaces.common.edit\" | transloco }}\n </button>\n <button\n size=\"sm\"\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [disabled]=\"refreshing()\"\n [attr.aria-label]=\"'documentWorkspaces.common.refresh' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.refresh' | transloco\"\n (click)=\"refresh()\">\n <refresh-icon />\n </button>\n </div>\n }\n }\n </div>\n\n @if (workspace(); as workspace) {\n @if (workspace.description) {\n <p class=\"mb-3 text-base text-(--font-primary-base)\">{{ workspace.description }}</p>\n }\n @if (workspace.tags.length) {\n <p class=\"mb-6 flex items-center gap-2 text-sm text-(--font-primary-base)\" data-testid=\"tags\">\n <tag-icon class=\"size-4\" />\n {{ workspace.tags.join(\", \") }}\n </p>\n }\n\n @if (!deletedElsewhere()) {\n <div class=\"mb-3 flex flex-wrap items-center gap-2\">\n <div role=\"group\" class=\"inline-flex gap-1 rounded-full bg-(--bg-primary-lighter) p-0.5\">\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'grid'\"\n [attr.aria-label]=\"'documentWorkspaces.common.gridView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.gridView' | transloco\"\n (click)=\"viewMode.set('grid')\">\n <grid-icon class=\"size-3.5\" />\n </button>\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'list'\"\n [attr.aria-label]=\"'documentWorkspaces.common.listView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.listView' | transloco\"\n (click)=\"viewMode.set('list')\">\n <list-icon class=\"size-3.5\" />\n </button>\n </div>\n\n <SearchInput\n role=\"search\"\n class=\"min-w-32 flex-[0_1_15rem]\"\n [formField]=\"searchForm\"\n [placeholder]=\"'documentWorkspaces.detail.searchPlaceholder' | transloco\"\n [aria-label]=\"'documentWorkspaces.detail.searchPlaceholder' | transloco\"\n [clearLabel]=\"'documentWorkspaces.common.clearSearch' | transloco\" />\n\n <button class=\"@max-md:px-2\" [writerOnly]=\"workspace.currentUserRole\" (click)=\"upload(workspace)\">\n <upload-icon />\n <span class=\"@max-md:sr-only\">{{ \"documentWorkspaces.detail.upload\" | transloco }}</span>\n </button>\n\n @if (selection.selectableItems().length) {\n @if (selection.active()) {\n <div class=\"ml-auto flex items-center gap-2 @max-xl:order-last @max-xl:ml-0 @max-xl:basis-full\" data-testid=\"selection-bar\">\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" (click)=\"selection.toggleAll()\">\n {{ (selection.allSelected() ? \"documentWorkspaces.common.unselectAll\" : \"documentWorkspaces.common.selectAll\") | transloco }}\n </button>\n <button class=\"text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)\" variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" [disabled]=\"!selection.count()\" (click)=\"deleteSelected()\">\n <trash-icon />\n {{ \"documentWorkspaces.common.delete\" | transloco }}\n </button>\n </div>\n }\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" class=\"@max-xl:ml-auto\" [class.ml-auto]=\"!selection.active()\" (click)=\"selection.toggleMode()\">\n {{ (selection.active() ? \"documentWorkspaces.common.cancel\" : \"documentWorkspaces.common.select\") | transloco }}\n </button>\n }\n </div>\n\n <p class=\"mb-6 text-sm text-(--font-primary-base)\" aria-live=\"polite\" data-testid=\"count\">\n @if (selection.active()) {\n {{ \"documentWorkspaces.detail.selectedDocumentCount\" | transloco: { count: selection.count() } }}\n } @else {\n {{ \"documentWorkspaces.detail.fileCount\" | transloco: { count: workspace.documentCount } }}\n }\n </p>\n }\n }\n\n @if (refreshError(); as message) {\n <p role=\"alert\" class=\"text-(--font-error-base) text-sm\">{{ \"documentWorkspaces.detail.refreshError\" | transloco: { error: message } }}</p>\n }\n\n <!-- Only the documents scroll: the title, the toolbar and the count stay in place. -->\n <div class=\"min-h-0 flex-1 overflow-y-auto\">\n @switch (status()) {\n @case (\"loading\") {\n <p class=\"text-(--font-primary-muted) text-sm\">{{ \"documentWorkspaces.detail.docsLoading\" | transloco }}</p>\n }\n @case (\"error\") {\n <div class=\"flex items-center gap-3 text-sm\" data-testid=\"load-error\">\n <span class=\"text-(--font-error-base)\">\n @if (loadError(); as message) {\n <workspace-message [message]=\"message\" />\n } @else {\n {{ \"documentWorkspaces.detail.docsLoadError\" | transloco }}\n }\n </span>\n <button variant=\"secondary\" size=\"sm\" (click)=\"load()\">{{ \"documentWorkspaces.common.retry\" | transloco }}</button>\n </div>\n }\n @default {\n @if (deletedElsewhere()) {\n <div class=\"flex flex-col items-center gap-1 py-8 text-center\" data-testid=\"not-found\">\n <div class=\"mb-1 inline-flex size-14 shrink-0 items-center justify-center rounded-(--radius-xl) bg-(--teal-100,#E0F4F1) text-(--teal-400,#4EBFB0)\">\n <file-search-icon class=\"size-6\" />\n </div>\n <p class=\"max-w-70 text-sm text-(--font-primary-base)\">{{ \"documentWorkspaces.errors.notFound\" | transloco }}</p>\n <button variant=\"secondary\" size=\"sm\" class=\"mt-2\" (click)=\"leave()\">{{ \"documentWorkspaces.detail.back\" | transloco }}</button>\n </div>\n } @else if (workspace(); as workspace) {\n @if (!documents().length) {\n <div class=\"flex flex-col items-center gap-1 py-8 text-center\" data-testid=\"empty\">\n <svg class=\"mb-1 block size-14 shrink-0\" width=\"56\" height=\"56\" viewBox=\"0 0 38 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" data-testid=\"empty-icon\">\n <g opacity=\"0.8\">\n <rect class=\"fill-(--teal-100,#E0F4F1)\" width=\"38\" height=\"38\" rx=\"12\" />\n <path\n d=\"M11.2 24.8504H26.8C27.1575 24.8504 27.45 24.5579 27.45 24.2004V14.4504C27.45 14.0929 27.1575 13.8004 26.8 13.8004H20.7347C20.0319 13.8004 19.3453 13.5729 18.7847 13.1504L17.2247 11.9804C17.1109 11.8951 16.9769 11.8504 16.8347 11.8504H11.2C10.8425 11.8504 10.55 12.1429 10.55 12.5004V24.2004C10.55 24.5579 10.8425 24.8504 11.2 24.8504ZM26.8 26.8004H11.2C9.76591 26.8004 8.59998 25.6345 8.59998 24.2004V12.5004C8.59998 11.0663 9.76591 9.90039 11.2 9.90039H16.8347C17.3953 9.90039 17.9437 10.0832 18.3947 10.4204L19.9547 11.5904C20.1781 11.761 20.4544 11.8504 20.7347 11.8504H26.8C28.234 11.8504 29.4 13.0163 29.4 14.4504V24.2004C29.4 25.6345 28.234 26.8004 26.8 26.8004Z\"\n class=\"fill-(--teal-400,#4EBFB0)\" />\n </g>\n </svg>\n <h5 class=\"text-sm font-semibold text-(--font-primary-dark)\">{{ \"documentWorkspaces.detail.emptyTitle\" | transloco }}</h5>\n <p class=\"max-w-70 text-sm text-(--font-primary-base)\">{{ \"documentWorkspaces.detail.emptySubtitle\" | transloco }}</p>\n </div>\n } @else if (!filtered().length) {\n <p class=\"text-(--font-primary-muted) py-8 text-center text-sm\" data-testid=\"no-match\">{{ \"documentWorkspaces.detail.noMatch\" | transloco }}</p>\n } @else if (viewMode() === \"grid\") {\n <div class=\"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] content-start gap-4 pb-8\">\n @for (document of filtered(); track document.id) {\n <document-card\n [document]=\"document\"\n [workspaceRole]=\"workspace.currentUserRole\"\n [query]=\"query()\"\n [active]=\"document.id === previewedDocumentId()\"\n [selecting]=\"selection.active()\"\n [selected]=\"selection.isSelected(document)\"\n [selectable]=\"selection.canSelect(document)\"\n (opened)=\"togglePreview(document)\"\n (deleteRequested)=\"confirmDeleteDocuments([document])\"\n (selectedChange)=\"selection.toggle(document, $event)\" />\n }\n </div>\n } @else {\n <div role=\"table\" class=\"flex flex-col gap-3 pb-8\">\n <div role=\"row\" [attr.data-selecting]=\"selection.active() ? '' : null\" class=\"grid grid-cols-[minmax(0,1fr)_auto_2.5rem] items-center gap-x-4 px-3 data-selecting:grid-cols-[2rem_minmax(0,1fr)_auto_2.5rem] @3xl:grid-cols-[minmax(0,2fr)_minmax(0,1fr)_6rem_10rem_2.5rem] @3xl:data-selecting:grid-cols-[2rem_minmax(0,2fr)_minmax(0,1fr)_6rem_10rem_2.5rem] py-1 text-xs font-semibold text-(--font-primary-muted)\">\n @if (selection.active()) {\n <div role=\"columnheader\">\n <checkbox\n [checked]=\"selection.allSelected()\"\n [indeterminate]=\"selection.partiallySelected()\"\n [aria-label]=\"'documentWorkspaces.common.selectAll' | transloco\"\n (checkedChange)=\"selection.toggleAll()\" />\n </div>\n }\n <div role=\"columnheader\">{{ \"documentWorkspaces.detail.columnName\" | transloco }}</div>\n <div role=\"columnheader\" class=\"@max-3xl:hidden\">{{ \"documentWorkspaces.detail.columnSource\" | transloco }}</div>\n <div role=\"columnheader\" class=\"@max-3xl:hidden\">{{ \"documentWorkspaces.detail.columnSize\" | transloco }}</div>\n <div role=\"columnheader\">{{ \"documentWorkspaces.detail.columnDate\" | transloco }}</div>\n <div role=\"columnheader\"></div>\n </div>\n @for (document of filtered(); track document.id) {\n <document-row\n [document]=\"document\"\n [workspaceRole]=\"workspace.currentUserRole\"\n [query]=\"query()\"\n [active]=\"document.id === previewedDocumentId()\"\n [selecting]=\"selection.active()\"\n [selected]=\"selection.isSelected(document)\"\n [selectable]=\"selection.canSelect(document)\"\n (opened)=\"togglePreview(document)\"\n (deleteRequested)=\"confirmDeleteDocuments([document])\"\n (selectedChange)=\"selection.toggle(document, $event)\" />\n }\n </div>\n }\n\n @if (hasMore()) {\n <div class=\"flex flex-col items-center gap-2\">\n @if (loadMoreError(); as message) {\n <p role=\"alert\" class=\"text-(--font-error-base) text-sm\">{{ \"documentWorkspaces.detail.loadMoreError\" | transloco: { error: message } }}</p>\n }\n <button variant=\"secondary\" size=\"sm\" [disabled]=\"loadingMore()\" (click)=\"loadMore()\">\n {{ \"documentWorkspaces.detail.loadMore\" | transloco }}\n </button>\n </div>\n }\n } @else {\n <p class=\"text-(--font-primary-muted) py-8 text-center text-sm\" data-testid=\"not-found\">{{ \"documentWorkspaces.errors.notFound\" | transloco }}</p>\n }\n }\n }\n </div>\n </div>\n\n <!-- The list gives up part of its width to the preview, and takes it back when the preview closes. -->\n <div\n #handle=\"resizeHandle\"\n class=\"group/handle flex w-3 shrink-0 cursor-col-resize items-center justify-center max-md:hidden\"\n [class.hidden]=\"!previewed()\"\n [resizeHandle]=\"previewWidth()\"\n (resizeHandleChange)=\"userPreviewWidth.set($event)\"\n [resizeMin]=\"280\"\n [resizeMax]=\"maxPreviewWidth()\"\n [attr.aria-label]=\"'documentWorkspaces.preview.resize' | transloco\">\n <span class=\"h-6 w-0.5 rounded-full bg-(--stroke-primary-light) opacity-0 group-hover/handle:opacity-100 group-focus-visible/handle:opacity-100 group-data-resizing/handle:opacity-100\"></span>\n </div>\n <aside\n class=\"sticky top-3 my-3 mr-3 flex h-[calc(100dvh-1.5rem)] max-h-[calc(100%-1.5rem)] shrink-0 self-start overflow-hidden rounded-(--radius-xl) bg-(--bg-neutral-white) transition-[width] duration-[350ms] ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:transition-none data-open:border data-open:border-(--stroke-primary-lighter) data-open:shadow-[0_4px_6px_-2px_rgba(45,57,58,0.05),0_10px_15px_-3px_rgba(45,57,58,0.1)] max-md:data-open:fixed max-md:data-open:inset-0 max-md:data-open:z-50 max-md:data-open:m-0 max-md:data-open:w-full! max-md:data-open:max-h-none max-md:data-open:rounded-none\"\n [class.transition-none]=\"handle.resizing()\"\n [style.width.px]=\"previewed() ? previewWidth() : 0\"\n [attr.data-open]=\"previewed() ? '' : null\"\n [attr.aria-hidden]=\"previewed() ? null : 'true'\"\n data-testid=\"preview\">\n @if (previewed(); as previewed) {\n <!-- Its own width, so the content does not reflow while the card opens. -->\n <document-preview-panel\n class=\"shrink-0 max-md:w-full!\"\n [style.width.px]=\"previewWidth()\"\n [document]=\"previewed\"\n [queryName]=\"queryName()\"\n (closed)=\"previewedDocumentId.set(null)\"\n (askFollowUp)=\"askFollowUp.emit($event)\" />\n }\n </aside>\n ",
|
|
9783
|
+
template: "\n <div class=\"@container flex min-h-0 min-w-0 flex-1 flex-col p-3 pb-2 md:p-8 md:pb-4\">\n <div class=\"mb-3 flex flex-wrap items-center gap-x-3 gap-y-2\">\n <button\n size=\"sm\"\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [attr.aria-label]=\"'documentWorkspaces.detail.back' | transloco\"\n [tooltip]=\"'documentWorkspaces.detail.back' | transloco\"\n (click)=\"leave()\">\n <chevron-left-icon />\n </button>\n\n @if (workspace(); as workspace) {\n <h1 class=\"min-w-28 flex-[1_1_16rem] text-2xl leading-[31px] font-bold break-words text-(--font-neutral-black)\">{{ workspace.name }}</h1>\n\n <!-- Beside the title while they fit next to its 16rem, on a line of their own under it once they do not. -->\n @if (!deletedElsewhere()) {\n <div class=\"ml-auto flex shrink-0 items-center gap-1\">\n <button\n size=\"sm\"\n variant=\"tertiary\"\n scheme=\"neutral\"\n class=\"text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)\"\n [writerOnly]=\"workspace.currentUserRole\"\n (click)=\"confirmDeleteWorkspace(workspace)\">\n <x-mark-icon />\n {{ \"documentWorkspaces.common.delete\" | transloco }}\n </button>\n <button size=\"sm\" variant=\"tertiary\" scheme=\"neutral\" [writerOnly]=\"workspace.currentUserRole\" (click)=\"share(workspace)\">\n <user-round-icon />\n {{ \"documentWorkspaces.share.title\" | transloco }}\n </button>\n <button size=\"sm\" variant=\"tertiary\" scheme=\"neutral\" [writerOnly]=\"workspace.currentUserRole\" (click)=\"edit(workspace)\">\n <pen-to-square-icon />\n {{ \"documentWorkspaces.common.edit\" | transloco }}\n </button>\n <button\n size=\"sm\"\n variant=\"tertiary\"\n scheme=\"neutral\"\n [iconOnly]=\"true\"\n [disabled]=\"refreshing()\"\n [attr.aria-label]=\"'documentWorkspaces.common.refresh' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.refresh' | transloco\"\n (click)=\"refresh()\">\n <refresh-icon />\n </button>\n </div>\n }\n }\n </div>\n\n @if (workspace(); as workspace) {\n @if (workspace.description) {\n <p class=\"mb-3 text-base text-(--font-primary-base)\">{{ workspace.description }}</p>\n }\n @if (workspace.tags.length) {\n <p class=\"mb-6 flex items-center gap-2 text-sm text-(--font-primary-base)\" data-testid=\"tags\">\n <tag-icon class=\"size-4\" />\n {{ workspace.tags.join(\", \") }}\n </p>\n }\n\n @if (!deletedElsewhere()) {\n <div class=\"mb-3 flex flex-wrap items-center gap-2\">\n <div role=\"group\" class=\"inline-flex gap-1 rounded-full bg-(--bg-primary-lighter) p-0.5\">\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'grid'\"\n [attr.aria-label]=\"'documentWorkspaces.common.gridView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.gridView' | transloco\"\n (click)=\"viewMode.set('grid')\">\n <grid-icon class=\"size-3.5\" />\n </button>\n <button\n variant=\"none\"\n class=\"inline-flex size-6 items-center justify-center rounded-full text-(--font-primary-base) aria-pressed:bg-(--bg-neutral-white) aria-pressed:shadow-md\"\n [attr.aria-pressed]=\"viewMode() === 'list'\"\n [attr.aria-label]=\"'documentWorkspaces.common.listView' | transloco\"\n [tooltip]=\"'documentWorkspaces.common.listView' | transloco\"\n (click)=\"viewMode.set('list')\">\n <list-icon class=\"size-3.5\" />\n </button>\n </div>\n\n <SearchInput\n role=\"search\"\n class=\"min-w-32 flex-[0_1_15rem]\"\n [formField]=\"searchForm\"\n [placeholder]=\"'documentWorkspaces.detail.searchPlaceholder' | transloco\"\n [aria-label]=\"'documentWorkspaces.detail.searchPlaceholder' | transloco\"\n [clearLabel]=\"'documentWorkspaces.common.clearSearch' | transloco\" />\n\n <button class=\"@max-md:px-2\" [writerOnly]=\"workspace.currentUserRole\" (click)=\"upload(workspace)\">\n <upload-icon />\n <span class=\"@max-md:sr-only\">{{ \"documentWorkspaces.detail.upload\" | transloco }}</span>\n </button>\n\n @if (selection.selectableItems().length) {\n @if (selection.active()) {\n <div class=\"ml-auto flex items-center gap-2 @max-xl:order-last @max-xl:ml-0 @max-xl:basis-full\" data-testid=\"selection-bar\">\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" (click)=\"selection.toggleAll()\">\n {{ (selection.allSelected() ? \"documentWorkspaces.common.unselectAll\" : \"documentWorkspaces.common.selectAll\") | transloco }}\n </button>\n <button class=\"text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)\" variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" [disabled]=\"!selection.count()\" (click)=\"deleteSelected()\">\n <x-mark-icon />\n {{ \"documentWorkspaces.common.delete\" | transloco }}\n </button>\n </div>\n }\n <button variant=\"tertiary\" scheme=\"neutral\" size=\"sm\" class=\"@max-xl:ml-auto\" [class.ml-auto]=\"!selection.active()\" (click)=\"selection.toggleMode()\">\n {{ (selection.active() ? \"documentWorkspaces.common.cancel\" : \"documentWorkspaces.common.select\") | transloco }}\n </button>\n }\n </div>\n\n <p class=\"mb-6 text-sm text-(--font-primary-base)\" aria-live=\"polite\" data-testid=\"count\">\n @if (selection.active()) {\n {{ \"documentWorkspaces.detail.selectedDocumentCount\" | transloco: { count: selection.count() } }}\n } @else {\n {{ \"documentWorkspaces.detail.fileCount\" | transloco: { count: workspace.documentCount } }}\n }\n </p>\n }\n }\n\n @if (refreshError(); as message) {\n <p role=\"alert\" class=\"text-(--font-error-base) text-sm\">{{ \"documentWorkspaces.detail.refreshError\" | transloco: { error: message } }}</p>\n }\n\n <!-- Only the documents scroll: the title, the toolbar and the count stay in place. -->\n <div class=\"min-h-0 flex-1 overflow-y-auto\">\n @switch (status()) {\n @case (\"loading\") {\n <p class=\"text-(--font-primary-muted) text-sm\">{{ \"documentWorkspaces.detail.docsLoading\" | transloco }}</p>\n }\n @case (\"error\") {\n <div class=\"flex items-center gap-3 text-sm\" data-testid=\"load-error\">\n <span class=\"text-(--font-error-base)\">\n @if (loadError(); as message) {\n <workspace-message [message]=\"message\" />\n } @else {\n {{ \"documentWorkspaces.detail.docsLoadError\" | transloco }}\n }\n </span>\n <button variant=\"secondary\" size=\"sm\" (click)=\"load()\">{{ \"documentWorkspaces.common.retry\" | transloco }}</button>\n </div>\n }\n @default {\n @if (deletedElsewhere()) {\n <div class=\"flex flex-col items-center gap-1 py-8 text-center\" data-testid=\"not-found\">\n <div class=\"mb-1 inline-flex size-14 shrink-0 items-center justify-center rounded-(--radius-xl) bg-(--teal-100,#E0F4F1) text-(--teal-400,#4EBFB0)\">\n <file-search-icon class=\"size-6\" />\n </div>\n <p class=\"max-w-70 text-sm text-(--font-primary-base)\">{{ \"documentWorkspaces.errors.notFound\" | transloco }}</p>\n <button variant=\"secondary\" size=\"sm\" class=\"mt-2\" (click)=\"leave()\">{{ \"documentWorkspaces.detail.back\" | transloco }}</button>\n </div>\n } @else if (workspace(); as workspace) {\n @if (!documents().length) {\n <div class=\"flex flex-col items-center gap-1 py-8 text-center\" data-testid=\"empty\">\n <svg class=\"mb-1 block size-14 shrink-0\" width=\"56\" height=\"56\" viewBox=\"0 0 38 38\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" data-testid=\"empty-icon\">\n <g opacity=\"0.8\">\n <rect class=\"fill-(--teal-100,#E0F4F1)\" width=\"38\" height=\"38\" rx=\"12\" />\n <path\n d=\"M11.2 24.8504H26.8C27.1575 24.8504 27.45 24.5579 27.45 24.2004V14.4504C27.45 14.0929 27.1575 13.8004 26.8 13.8004H20.7347C20.0319 13.8004 19.3453 13.5729 18.7847 13.1504L17.2247 11.9804C17.1109 11.8951 16.9769 11.8504 16.8347 11.8504H11.2C10.8425 11.8504 10.55 12.1429 10.55 12.5004V24.2004C10.55 24.5579 10.8425 24.8504 11.2 24.8504ZM26.8 26.8004H11.2C9.76591 26.8004 8.59998 25.6345 8.59998 24.2004V12.5004C8.59998 11.0663 9.76591 9.90039 11.2 9.90039H16.8347C17.3953 9.90039 17.9437 10.0832 18.3947 10.4204L19.9547 11.5904C20.1781 11.761 20.4544 11.8504 20.7347 11.8504H26.8C28.234 11.8504 29.4 13.0163 29.4 14.4504V24.2004C29.4 25.6345 28.234 26.8004 26.8 26.8004Z\"\n class=\"fill-(--teal-400,#4EBFB0)\" />\n </g>\n </svg>\n <h5 class=\"text-sm font-semibold text-(--font-primary-dark)\">{{ \"documentWorkspaces.detail.emptyTitle\" | transloco }}</h5>\n <p class=\"max-w-70 text-sm text-(--font-primary-base)\">{{ \"documentWorkspaces.detail.emptySubtitle\" | transloco }}</p>\n </div>\n } @else if (!filtered().length) {\n <p class=\"text-(--font-primary-muted) py-8 text-center text-sm\" data-testid=\"no-match\">{{ \"documentWorkspaces.detail.noMatch\" | transloco }}</p>\n } @else if (viewMode() === \"grid\") {\n <div class=\"grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] content-start gap-4 pb-8\">\n @for (document of filtered(); track document.id) {\n <document-card\n [document]=\"document\"\n [workspaceRole]=\"workspace.currentUserRole\"\n [query]=\"query()\"\n [active]=\"document.id === previewedDocumentId()\"\n [selecting]=\"selection.active()\"\n [selected]=\"selection.isSelected(document)\"\n [selectable]=\"selection.canSelect(document)\"\n (opened)=\"togglePreview(document)\"\n (deleteRequested)=\"confirmDeleteDocuments([document])\"\n (selectedChange)=\"selection.toggle(document, $event)\" />\n }\n </div>\n } @else {\n <div role=\"table\" class=\"flex flex-col gap-3 pb-8\">\n <div role=\"row\" [attr.data-selecting]=\"selection.active() ? '' : null\" class=\"grid grid-cols-[minmax(0,1fr)_auto_2.5rem] items-center gap-x-4 px-3 data-selecting:grid-cols-[2rem_minmax(0,1fr)_auto_2.5rem] @3xl:grid-cols-[minmax(0,2fr)_minmax(0,1fr)_6rem_10rem_2.5rem] @3xl:data-selecting:grid-cols-[2rem_minmax(0,2fr)_minmax(0,1fr)_6rem_10rem_2.5rem] py-1 text-xs font-semibold text-(--font-primary-muted)\">\n @if (selection.active()) {\n <div role=\"columnheader\">\n <checkbox\n [checked]=\"selection.allSelected()\"\n [indeterminate]=\"selection.partiallySelected()\"\n [aria-label]=\"'documentWorkspaces.common.selectAll' | transloco\"\n (checkedChange)=\"selection.toggleAll()\" />\n </div>\n }\n <div role=\"columnheader\">{{ \"documentWorkspaces.detail.columnName\" | transloco }}</div>\n <div role=\"columnheader\" class=\"@max-3xl:hidden\">{{ \"documentWorkspaces.detail.columnSource\" | transloco }}</div>\n <div role=\"columnheader\" class=\"@max-3xl:hidden\">{{ \"documentWorkspaces.detail.columnSize\" | transloco }}</div>\n <div role=\"columnheader\">{{ \"documentWorkspaces.detail.columnDate\" | transloco }}</div>\n <div role=\"columnheader\"></div>\n </div>\n @for (document of filtered(); track document.id) {\n <document-row\n [document]=\"document\"\n [workspaceRole]=\"workspace.currentUserRole\"\n [query]=\"query()\"\n [active]=\"document.id === previewedDocumentId()\"\n [selecting]=\"selection.active()\"\n [selected]=\"selection.isSelected(document)\"\n [selectable]=\"selection.canSelect(document)\"\n (opened)=\"togglePreview(document)\"\n (deleteRequested)=\"confirmDeleteDocuments([document])\"\n (selectedChange)=\"selection.toggle(document, $event)\" />\n }\n </div>\n }\n\n @if (hasMore()) {\n <div class=\"flex flex-col items-center gap-2\">\n @if (loadMoreError(); as message) {\n <p role=\"alert\" class=\"text-(--font-error-base) text-sm\">{{ \"documentWorkspaces.detail.loadMoreError\" | transloco: { error: message } }}</p>\n }\n <button variant=\"secondary\" size=\"sm\" [disabled]=\"loadingMore()\" (click)=\"loadMore()\">\n {{ \"documentWorkspaces.detail.loadMore\" | transloco }}\n </button>\n </div>\n }\n } @else {\n <p class=\"text-(--font-primary-muted) py-8 text-center text-sm\" data-testid=\"not-found\">{{ \"documentWorkspaces.errors.notFound\" | transloco }}</p>\n }\n }\n }\n </div>\n </div>\n\n <!-- The list gives up part of its width to the preview, and takes it back when the preview closes. -->\n <div\n #handle=\"resizeHandle\"\n class=\"group/handle flex w-3 shrink-0 cursor-col-resize items-center justify-center max-md:hidden\"\n [class.hidden]=\"!previewed()\"\n [resizeHandle]=\"previewWidth()\"\n (resizeHandleChange)=\"userPreviewWidth.set($event)\"\n [resizeMin]=\"280\"\n [resizeMax]=\"maxPreviewWidth()\"\n [attr.aria-label]=\"'documentWorkspaces.preview.resize' | transloco\">\n <span class=\"h-6 w-0.5 rounded-full bg-(--stroke-primary-light) opacity-0 group-hover/handle:opacity-100 group-focus-visible/handle:opacity-100 group-data-resizing/handle:opacity-100 pointer-coarse:opacity-100\"></span>\n </div>\n <aside\n class=\"sticky top-3 my-3 mr-3 flex h-[calc(100dvh-1.5rem)] max-h-[calc(100%-1.5rem)] shrink-0 self-start overflow-hidden rounded-(--radius-xl) bg-(--bg-neutral-white) transition-[width] duration-[350ms] ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:transition-none data-open:border data-open:border-(--stroke-primary-lighter) data-open:shadow-[0_4px_6px_-2px_rgba(45,57,58,0.05),0_10px_15px_-3px_rgba(45,57,58,0.1)] max-md:data-open:fixed max-md:data-open:inset-0 max-md:data-open:z-50 max-md:data-open:m-0 max-md:data-open:w-full! max-md:data-open:max-h-none max-md:data-open:rounded-none\"\n [class.transition-none]=\"handle.resizing()\"\n [style.width.px]=\"previewed() ? previewWidth() : 0\"\n [attr.data-open]=\"previewed() ? '' : null\"\n [attr.aria-hidden]=\"previewed() ? null : 'true'\"\n data-testid=\"preview\">\n @if (previewed(); as previewed) {\n <!-- Its own width, so the content does not reflow while the card opens. -->\n <document-preview-panel\n class=\"shrink-0 max-md:w-full!\"\n [style.width.px]=\"previewWidth()\"\n [document]=\"previewed\"\n [queryName]=\"queryName()\"\n (closed)=\"previewedDocumentId.set(null)\"\n (askFollowUp)=\"askFollowUp.emit($event)\" />\n }\n </aside>\n ",
|
|
9782
9784
|
isInline: true,
|
|
9783
9785
|
dependencies: [
|
|
9784
9786
|
{
|
|
@@ -9948,8 +9950,8 @@ var WorkspaceDetail = class WorkspaceDetail {
|
|
|
9948
9950
|
},
|
|
9949
9951
|
{
|
|
9950
9952
|
kind: "component",
|
|
9951
|
-
type:
|
|
9952
|
-
selector: "
|
|
9953
|
+
type: XMarkIcon,
|
|
9954
|
+
selector: "x-mark, x-mark-icon, XMark, XMarkIcon",
|
|
9953
9955
|
inputs: ["class"]
|
|
9954
9956
|
},
|
|
9955
9957
|
{
|
|
@@ -10012,7 +10014,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10012
10014
|
SearchInputComponent,
|
|
10013
10015
|
TagIcon,
|
|
10014
10016
|
TooltipDirective,
|
|
10015
|
-
|
|
10017
|
+
XMarkIcon,
|
|
10016
10018
|
UploadIcon,
|
|
10017
10019
|
UserRoundIcon,
|
|
10018
10020
|
WorkspaceMessage,
|
|
@@ -10048,7 +10050,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10048
10050
|
class="text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)"
|
|
10049
10051
|
[writerOnly]="workspace.currentUserRole"
|
|
10050
10052
|
(click)="confirmDeleteWorkspace(workspace)">
|
|
10051
|
-
<
|
|
10053
|
+
<x-mark-icon />
|
|
10052
10054
|
{{ "documentWorkspaces.common.delete" | transloco }}
|
|
10053
10055
|
</button>
|
|
10054
10056
|
<button size="sm" variant="tertiary" scheme="neutral" [writerOnly]="workspace.currentUserRole" (click)="share(workspace)">
|
|
@@ -10129,7 +10131,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10129
10131
|
{{ (selection.allSelected() ? "documentWorkspaces.common.unselectAll" : "documentWorkspaces.common.selectAll") | transloco }}
|
|
10130
10132
|
</button>
|
|
10131
10133
|
<button class="text-(--font-error-base) enabled:hover:bg-(--bg-error-lightest)" variant="tertiary" scheme="neutral" size="sm" [disabled]="!selection.count()" (click)="deleteSelected()">
|
|
10132
|
-
<
|
|
10134
|
+
<x-mark-icon />
|
|
10133
10135
|
{{ "documentWorkspaces.common.delete" | transloco }}
|
|
10134
10136
|
</button>
|
|
10135
10137
|
</div>
|
|
@@ -10275,7 +10277,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
10275
10277
|
[resizeMin]="280"
|
|
10276
10278
|
[resizeMax]="maxPreviewWidth()"
|
|
10277
10279
|
[attr.aria-label]="'documentWorkspaces.preview.resize' | transloco">
|
|
10278
|
-
<span class="h-6 w-0.5 rounded-full bg-(--stroke-primary-light) opacity-0 group-hover/handle:opacity-100 group-focus-visible/handle:opacity-100 group-data-resizing/handle:opacity-100"></span>
|
|
10280
|
+
<span class="h-6 w-0.5 rounded-full bg-(--stroke-primary-light) opacity-0 group-hover/handle:opacity-100 group-focus-visible/handle:opacity-100 group-data-resizing/handle:opacity-100 pointer-coarse:opacity-100"></span>
|
|
10279
10281
|
</div>
|
|
10280
10282
|
<aside
|
|
10281
10283
|
class="sticky top-3 my-3 mr-3 flex h-[calc(100dvh-1.5rem)] max-h-[calc(100%-1.5rem)] shrink-0 self-start overflow-hidden rounded-(--radius-xl) bg-(--bg-neutral-white) transition-[width] duration-[350ms] ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:transition-none data-open:border data-open:border-(--stroke-primary-lighter) data-open:shadow-[0_4px_6px_-2px_rgba(45,57,58,0.05),0_10px_15px_-3px_rgba(45,57,58,0.1)] max-md:data-open:fixed max-md:data-open:inset-0 max-md:data-open:z-50 max-md:data-open:m-0 max-md:data-open:w-full! max-md:data-open:max-h-none max-md:data-open:rounded-none"
|