Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

Commit da1652a

Browse files
Merge branch 'main' into v15/feature/disable-readonly-when-unpulish-and-publish
2 parents 4b8cb68 + 322a138 commit da1652a

24 files changed

+460
-234
lines changed

src/packages/core/components/history/history-item.element.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export class UmbHistoryItemElement extends UmbLitElement {
6363
.user-info div {
6464
display: flex;
6565
flex-direction: column;
66+
min-width: var(--uui-size-60);
6667
}
6768
6869
.detail {

src/packages/core/content-type/workspace/views/design/content-type-design-editor.element.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements
478478
const ownedTab = this.#tabsStructureHelper.isOwnerChildContainer(tab.id!) ?? false;
479479

480480
return html`<uui-tab
481-
label=${tab.name && tab.name !== '' ? tab.name : 'unnamed'}
481+
label=${tab.name && tab.name !== '' ? tab.name : 'Unnamed'}
482482
.active=${tabActive}
483483
href=${path}
484484
data-umb-tab-id=${ifDefined(tab.id)}
@@ -489,10 +489,12 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements
489489

490490
renderTabInner(tab: UmbPropertyTypeContainerModel, tabActive: boolean, ownedTab: boolean) {
491491
// TODO: Localize this:
492+
const hasTabName = tab.name && tab.name !== '';
493+
const tabName = hasTabName ? tab.name : 'Unnamed';
492494
if (this._sortModeActive) {
493495
return html`<div class="tab">
494496
${ownedTab
495-
? html`<uui-icon name="icon-navigation" class="drag-${tab.id}"> </uui-icon>${tab.name!}
497+
? html`<uui-icon name="icon-navigation" class="drag-${tab.id}"> </uui-icon>${tabName}
496498
<uui-input
497499
label="sort order"
498500
type="number"
@@ -512,6 +514,7 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements
512514
label=${tab.name!}
513515
value="${tab.name!}"
514516
auto-width
517+
minlength="1"
515518
@change=${(e: InputEvent) => this.#tabNameChanged(e, tab)}
516519
@input=${(e: InputEvent) => this.#tabNameChanged(e, tab)}
517520
@blur=${(e: FocusEvent) => this.#tabNameBlur(e, tab)}>
@@ -521,7 +524,11 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements
521524
}
522525

523526
if (ownedTab) {
524-
return html`<div class="not-active">${tab.name!} ${this.renderDeleteFor(tab)}</div>`;
527+
return html`<div class="not-active">
528+
<span class=${hasTabName ? '' : 'invaild'}>${hasTabName ? tab.name : 'Unnamed'}</span> ${this.renderDeleteFor(
529+
tab,
530+
)}
531+
</div>`;
525532
} else {
526533
return html`<div class="not-active"><uui-icon name="icon-merge"></uui-icon>${tab.name!}</div>`;
527534
}
@@ -630,6 +637,10 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements
630637
gap: var(--uui-size-space-3);
631638
}
632639
640+
.invaild {
641+
color: var(--uui-color-danger, #d42054);
642+
}
643+
633644
.trash {
634645
opacity: 1;
635646
transition: opacity 100ms;
@@ -640,7 +651,7 @@ export class UmbContentTypeDesignEditorElement extends UmbLitElement implements
640651
transition: opacity 100ms;
641652
}
642653
643-
uui-input:not(:focus, :hover) {
654+
uui-input:not(:focus, :hover, :invalid) {
644655
border: 1px solid transparent;
645656
}
646657

src/packages/core/icon-registry/icon-dictionary.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,10 @@
366366
"name": "icon-circuits",
367367
"file": "circuit-board.svg"
368368
},
369+
{
370+
"name": "icon-clear-formatting",
371+
"file": "remove-formatting.svg"
372+
},
369373
{
370374
"name": "icon-client",
371375
"file": "user.svg",

src/packages/core/icon-registry/icons.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,10 @@ name: "icon-circuits",
355355

356356
path: () => import("./icons/icon-circuits.js"),
357357
},{
358+
name: "icon-clear-formatting",
359+
360+
path: () => import("./icons/icon-clear-formatting.js"),
361+
},{
358362
name: "icon-client",
359363
legacy: true,
360364
path: () => import("./icons/icon-client.js"),
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export default `<!-- @license lucide-static v0.446.0 - ISC -->
2+
<svg
3+
class="lucide lucide-remove-formatting"
4+
xmlns="http://www.w3.org/2000/svg"
5+
viewBox="0 0 24 24"
6+
fill="none"
7+
stroke="currentColor"
8+
stroke-width="1.75"
9+
stroke-linecap="round"
10+
stroke-linejoin="round"
11+
>
12+
<path d="M4 7V4h16v3" />
13+
<path d="M5 20h6" />
14+
<path d="M13 4 8 20" />
15+
<path d="m15 15 5 5" />
16+
<path d="m20 15-5 5" />
17+
</svg>
18+
`;

src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-data-type-picker-modal.element.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ export class UmbDataTypePickerFlowDataTypePickerModalElement extends UmbModalBas
169169
grid-template-rows: 40px 1fr;
170170
height: 100%;
171171
width: 100%;
172+
word-break: break-word;
172173
}
173174
.icon {
174175
font-size: 2em;

src/packages/data-type/modals/data-type-picker-flow/data-type-picker-flow-modal.element.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,7 @@ export class UmbDataTypePickerFlowModalElement extends UmbModalBaseElement<
448448
grid-template-rows: 40px 1fr;
449449
height: 100%;
450450
width: 100%;
451+
word-break: break-word;
451452
}
452453
453454
#item-grid .item .icon {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
export { UmbDocumentDetailRepository, UMB_DOCUMENT_DETAIL_REPOSITORY_ALIAS } from './detail/index.js';
22
export { UmbDocumentItemRepository, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS } from './item/index.js';
33
export { UmbDocumentPublishingRepository, UMB_DOCUMENT_PUBLISHING_REPOSITORY_ALIAS } from './publishing/index.js';
4+
export { UmbDocumentUrlRepository, UMB_DOCUMENT_URL_REPOSITORY_ALIAS } from './url/index.js';
45
export { UmbDocumentPreviewRepository } from './preview/index.js';
56

67
export type { UmbDocumentItemModel } from './item/types.js';
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { manifests as detailManifests } from './detail/manifests.js';
22
import { manifests as itemManifests } from './item/manifests.js';
33
import { manifests as publishingManifests } from './publishing/manifests.js';
4+
import { manifests as urlManifests } from './url/manifests.js';
45

5-
export const manifests: Array<UmbExtensionManifest> = [...detailManifests, ...itemManifests, ...publishingManifests];
6+
export const manifests: Array<UmbExtensionManifest> = [
7+
...detailManifests,
8+
...itemManifests,
9+
...publishingManifests,
10+
...urlManifests,
11+
];
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export const UMB_DOCUMENT_URL_REPOSITORY_ALIAS = 'Umb.Repository.Document.Url';
2+
export const UMB_DOCUMENT_URL_STORE_ALIAS = 'Umb.Store.Document.Url';

0 commit comments

Comments
 (0)