Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
7cc0091
bump up "subtle" button opacity slightly based the "x" controls on ta…
JayGeorge Nov 24, 2025
5049d98
Start adding red delete controls
JayGeorge Nov 24, 2025
020e5ae
Add some default "red button states" for subtle buttons that have a d…
JayGeorge Nov 24, 2025
c6ba989
Adding red delete controls for the table fieldtype
JayGeorge Nov 24, 2025
9917262
Finish adding red delete controls for the table fieldtype
JayGeorge Nov 25, 2025
401283b
Add red delete controls for combobox tags fieldtype
JayGeorge Nov 25, 2025
8199108
Typo
JayGeorge Nov 25, 2025
86c8a35
Replace deletes reds with a variable to tidy things
JayGeorge Nov 25, 2025
3f9e38b
Dark mode adjustments
JayGeorge Nov 25, 2025
9e3b5bc
Use Tailwind good and proper
JayGeorge Nov 25, 2025
95cb02c
Delete buttons - Switch from transparent background values because so…
JayGeorge Nov 25, 2025
db81c05
Shift delete states to the utility layer so they override tailwind ut…
JayGeorge Nov 25, 2025
0660c65
Delete buttons - date pickers and comboboxes
JayGeorge Nov 25, 2025
2445dfd
Delete buttons - add switches as an exception
JayGeorge Nov 25, 2025
f78e734
Delete buttons - add background to dropdown
JayGeorge Nov 25, 2025
3557881
Delete buttons - clearable
JayGeorge Nov 25, 2025
2a31ac8
Delete states - use outline state instead so we don't have to worry a…
JayGeorge Nov 26, 2025
417d5a6
Delete states - time picker
JayGeorge Nov 26, 2025
08d9eb2
Delete states - change the way we handle badges to make this clearer
JayGeorge Nov 26, 2025
ec94405
Delete states - change the way we handle badges to make this clearer
JayGeorge Nov 26, 2025
96f64eb
Delete states - dim warning color for accessibility contrast
JayGeorge Nov 26, 2025
b695d70
Rename color-warning to color-danger
JayGeorge Nov 26, 2025
b182e90
Rename color-warning to color-danger
JayGeorge Nov 26, 2025
4c8d5cb
Delete states - Fix dropdown since I've changed this from "warning" t…
JayGeorge Nov 26, 2025
2ce41f7
Delete states - take danger and success from the theme variables instead
JayGeorge Nov 26, 2025
b3dc361
Delete states - fix ui badge focus states
JayGeorge Nov 26, 2025
082f033
Delete states - add condition for color fieldtype
JayGeorge Nov 26, 2025
db3c829
Fix the @theme inline color system
JayGeorge Nov 26, 2025
cdaa388
Delete states - Reorganise a little
JayGeorge Nov 26, 2025
263f2ca
Delete states - Tweak some values and add more
JayGeorge Nov 26, 2025
b0477d7
Correct gray-950 value
JayGeorge Nov 27, 2025
a324576
Delete states - get dark mode working
JayGeorge Nov 27, 2025
c4c05f4
Delete states - simplify configuration
JayGeorge Nov 27, 2025
bf403f1
Delete states - fix missing colors
JayGeorge Nov 27, 2025
c1ba9f0
Delete states - fix offset
JayGeorge Nov 27, 2025
a05eb79
Delete states - Remove @theme inline rule that won't work
JayGeorge Nov 27, 2025
6f37d2d
Delete states - Remove some unnecessary tw classes
JayGeorge Nov 27, 2025
de428d3
Delete states - make subtler
JayGeorge Nov 27, 2025
abbccb9
Delete states - more work including dark mode
JayGeorge Nov 27, 2025
a0ca318
Delete states - add a load of aria labels that will trigger the delet…
JayGeorge Nov 27, 2025
d2af2ba
Delete states - remove dark variants since we generate them automatic…
JayGeorge Nov 27, 2025
9b9c368
Reorganise file slightly
JayGeorge Nov 27, 2025
f2ed412
Whoops, we actually need the dark variants
JayGeorge Nov 27, 2025
228ccb2
Unify table delete states so both hover and focus are the same. I can…
JayGeorge Nov 27, 2025
12a88b2
Progress making delete states explicit rathen than relying on aria la…
JayGeorge Dec 1, 2025
78d5314
Try switching from @theme-inline to native CSS vars to get dark varia…
JayGeorge Dec 1, 2025
a61fb0f
Add additional dark selector to the theme variables. This is needed w…
JayGeorge Dec 1, 2025
0043cf1
Fix danger vars
JayGeorge Dec 1, 2025
7cc022b
Add explicit delete-action to other buttons
JayGeorge Dec 1, 2025
d6071fe
Remove border-radius override, decided against it
JayGeorge Dec 1, 2025
4d40718
Fix badges
JayGeorge Dec 1, 2025
f6ee583
Add dictionary fieldtype
JayGeorge Dec 1, 2025
4e9773b
Rename delete-action to destructive
JayGeorge Dec 1, 2025
226a4c6
Merge branch 'master' into improve-delete-hover-focus
JayGeorge Dec 2, 2025
74a0443
Fix previous conflicts
JayGeorge Dec 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions config/cp.php
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,6 @@
// 'grays' => Color::Zinc,

// 'primary' => Color::Zinc[800],
// 'success' => Color::Green[400],
// 'danger' => Color::Red[600],

// 'ui-accent-bg' => Color::Zinc[800],
// 'ui-accent-text' => Color::Zinc[800],
Expand All @@ -134,6 +132,15 @@

// 'switch-bg' => Color::Green[500],
// 'dark-switch-bg' => Color::Green[600],

// 'success' => Color::Green[700],
// 'success-bg' => Color::Green[50],
// 'dark-success' => Color::Green[400],
// 'dark-success-bg' => Color::Green[950],
// 'danger' => Color::Red[700],
// 'danger-bg' => Color::Red[50],
// 'dark-danger' => Color::Red[400],
// 'dark-danger-bg' => Color::Red[950],
],

/*
Expand Down
22 changes: 17 additions & 5 deletions resources/css/components/fieldtypes/table.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
/* ==========================================================================
Table Fieldtype
========================================================================== */

/* TABLE FIELDTYPE
=================================================== */
.table-contained {
@apply relative mb-4 w-full rounded-lg border shadow-ui-sm outline-hidden dark:border-gray-700 text-start;
border-collapse: separate;
Expand Down Expand Up @@ -128,7 +126,21 @@ Table Fieldtype
&:focus-within {
@apply bg-gray-100 dark:bg-gray-700;
button {
@apply outline-hidden ring-0;
@apply ring-0;
}
}
}

/* TABLE FIELDTYPE / RED DELETE CONTROLS (RED)
=================================================== */
th,
.row-controls {
&:has([aria-label*="Delete"]:is(:hover, :focus)) {
--focus-outline-color: var(--color-danger);
background-color: var(--color-danger-bg);
svg {
color: var(--color-danger);
opacity: 1;
}
}
}
Expand Down
41 changes: 41 additions & 0 deletions resources/css/elements/base.css
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
--focus-within-outline-offset: 0px;
--focus-outline-color: var(--theme-color-focus-outline, var(--color-blue-400));
--focus-outline-style: solid;
--danger-outline-color: oklch(from var(--theme-color-danger) l c h / 0.5);

/* The outline-offset value used for buttons */
--outline-offset-button: 6px;
Expand Down Expand Up @@ -100,6 +101,46 @@
}
}

/* DESTRUCTIVE STATES
=================================================== */
@layer utilities {
/* Destructive buttons */
[data-destructive]:not([data-ui-badge] *) {
--focus-outline-color: var(--danger-outline-color);
--focus-outline-width: 1px;
&:hover,
&:hover::before,
&:focus {
/* Delete states - use outline state instead so we don't have to worry about overriding borders, or adding borders to pseudo elements */
outline: var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color);
outline-offset: var(--focus-outline-offset);
background: var(--color-danger-bg);
svg {
color: var(--color-danger);
/* Need !important to override dark mode */
opacity: 1!important;
}
}
}
/* DESTRUCTIVE STATES / BADGES
=================================================== */
/* When a badge "x" is hovered, the whole badge lights up red. */
[data-ui-badge]:has([data-destructive]:is(:hover, :focus)) {
--focus-outline-color: var(--danger-outline-color);
--focus-outline-width: 1px;
background: var(--color-danger-bg);
outline: var(--focus-outline-width) var(--focus-outline-style) var(--focus-outline-color);
outline-offset: var(--focus-outline-offset);
&, button {
color: var(--color-danger);
}
/* Cancel the outline on the actual button since we're highlighting the entire badge */
button {
outline: none;
}
}
}

/* Prevent tailwind typography from adding backticks around code elements */
@utility prose {
code {
Expand Down
36 changes: 18 additions & 18 deletions resources/css/ui.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
--color-primary-border: color-mix(in oklch, var(--color-primary) 100%, black 20%);
--color-primary-hover: color-mix(in oklch, var(--color-primary) 100%, black 30%);
--color-primary-gap: color-mix(in oklch, var(--color-primary) 100%, black 50%);
--color-success: var(--theme-color-success);

--color-gray-50: var(--theme-color-gray-50);
--color-gray-100: var(--theme-color-gray-100);
--color-gray-150: var(--theme-color-gray-150);
Expand All @@ -17,7 +17,7 @@
--color-gray-850: var(--theme-color-gray-850);
--color-gray-900: var(--theme-color-gray-900);
--color-gray-925: var(--theme-color-gray-925);
--color-gray-950: var(--theme-color-zinc-950);
--color-gray-950: var(--theme-color-gray-950);
--color-volt: oklch(93.86% 0.2018 122.24);

--color-body-bg: var(--theme-color-body-bg);
Expand All @@ -30,6 +30,11 @@
--color-ui-accent-text: var(--theme-color-ui-accent-text);
--color-switch-bg: var(--theme-color-switch-bg);

--color-danger-bg: var(--theme-color-danger-bg);
--color-success-bg: var(--theme-color-success-bg);
--color-success: var(--theme-color-success);
--color-danger: var(--theme-color-danger);

/* Temp */
--color-dark-100: #dfe1e5;
--color-dark-150: #bbbdc0;
Expand Down Expand Up @@ -83,11 +88,17 @@
--color-dark-gray: #404040;
}

.dark {
@theme inline {
--color-primary-hover: color-mix(in oklch, var(--color-primary) 100%, white 30%);
--color-success: var(--color-green-500);
--color-gray-950: hsl(240deg 7% 8%);
:root {
--animation-timing-function-fast-out-slow-in: cubic-bezier(.4,0,.2,1);

/* Custom value because gray-100 is too light and gray-200 is too dark, e.g. Bard active buttons */
--color-button-active: hsl(from var(--color-gray-300) h s l / 0.45);

&.dark, .dark * {
--color-button-active: hsl(from var(--color-gray-700) h s l / 0.45);
--color-danger: var(--theme-color-danger);
/* Make the danger background slightly darker/more subtle in dark mode */
--color-danger-bg: oklch(from var(--theme-color-danger-bg) l c h / 0.2);
}
}

Expand Down Expand Up @@ -122,16 +133,5 @@
}
}

:root {
--animation-timing-function-fast-out-slow-in: cubic-bezier(.4,0,.2,1);

/* Custom value because gray-100 is too light and gray-200 is too dark, e.g. Bard active buttons */
--color-button-active: hsl(from var(--color-gray-300) h s l / 0.45);
}

.dark {
--color-button-active: hsl(from var(--color-gray-700) h s l / 0.45);
}

@custom-variant with-contrast (&:where([data-contrast="increased"] *));

14 changes: 7 additions & 7 deletions resources/js/components/assets/Editor/Editor.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@
@completed="actionCompleted"
v-slot="{ actions }"
>
<ui-button inset size="sm" v-if="isImage && isFocalPointEditorEnabled" @click.prevent="openFocalPointEditor" icon="focus" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Focal Point')" />
<ui-button inset size="sm" v-if="canRunAction('rename_asset')" @click.prevent="runAction(actions, 'rename_asset')" icon="rename" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Rename')" />
<ui-button inset size="sm" v-if="canRunAction('move_asset')" @click.prevent="runAction(actions, 'move_asset')" icon="move-folder" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Move to Folder')" />
<ui-button inset size="sm" v-if="canRunAction('replace_asset')" @click.prevent="runAction(actions, 'replace_asset')" icon="replace" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Replace')" />
<ui-button inset size="sm" v-if="canRunAction('reupload_asset')" @click.prevent="runAction(actions, 'reupload_asset')" icon="upload-cloud" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Reupload')" />
<ui-button inset size="sm" @click="download" icon="download" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Download')" />
<ui-button inset size="sm" v-if="allowDeleting && canRunAction('delete')" @click="runAction(actions, 'delete')" icon="trash" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Delete')" />
<ui-button inset size="sm" v-if="isImage && isFocalPointEditorEnabled" @click.prevent="openFocalPointEditor" icon="focus" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Focal Point')" :aria-label="__('Focal Point')" />
<ui-button inset size="sm" v-if="canRunAction('rename_asset')" @click.prevent="runAction(actions, 'rename_asset')" icon="rename" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Rename')" :aria-label="__('Rename')" />
<ui-button inset size="sm" v-if="canRunAction('move_asset')" @click.prevent="runAction(actions, 'move_asset')" icon="move-folder" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Move to Folder')" :aria-label="__('Move to Folder')" />
<ui-button inset size="sm" v-if="canRunAction('replace_asset')" @click.prevent="runAction(actions, 'replace_asset')" icon="replace" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Replace')" :aria-label="__('Replace')" />
<ui-button inset size="sm" v-if="canRunAction('reupload_asset')" @click.prevent="runAction(actions, 'reupload_asset')" icon="upload-cloud" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Reupload')" :aria-label="__('Reupload')" />
<ui-button inset size="sm" @click="download" icon="download" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Download')" :aria-label="__('Download')" />
<ui-button inset size="sm" v-if="allowDeleting && canRunAction('delete')" @click="runAction(actions, 'delete')" icon="trash" variant="ghost" class="[&_svg]:!opacity-45" :text="__('Delete')" :aria-label="__('Delete')" destructive />

<Dropdown class="me-4">
<DropdownMenu>
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/blueprints/ImportField.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
</div>
</div>
<div class="flex items-center gap-2">
<ui-button size="sm" icon="trash" variant="subtle" @click.prevent="$emit('deleted')" v-tooltip="__('Remove')" />
<ui-button size="sm" icon="trash" variant="subtle" @click.prevent="$emit('deleted')" :aria-label="__('Remove')" v-tooltip="__('Remove')" destructive />
<ui-stack name="field-settings" v-if="isEditing" @closed="editorClosed">
<field-settings
ref="settings"
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/blueprints/RegularField.vue
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<div class="flex items-center">
<ui-button v-if="canDefineLocalizable" inset size="sm" icon="earth" :variant="localizable ? 'ghost-pressed' : 'subtle'" v-tooltip="__('Localizable')" @click="localizable = !localizable" />
<ui-button inset size="sm" icon="duplicate" variant="subtle" @click.prevent="$emit('duplicate')" v-tooltip="__('Duplicate')" />
<ui-button inset size="sm" icon="trash" variant="subtle" @click.prevent="$emit('deleted')" v-tooltip="__('Remove')" />
<ui-button inset size="sm" icon="trash" destructive variant="subtle" @click.prevent="$emit('deleted')" :aria-label="__('Remove')" v-tooltip="__('Remove')" />
</div>

<ui-stack name="field-settings" v-if="isEditing" @closed="editorClosed">
Expand Down
4 changes: 2 additions & 2 deletions resources/js/components/blueprints/Section.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<ui-icon :name="section.icon" :set="iconSet" v-if="section.icon" />
<ui-heading v-text="__(section.display ?? 'Section')" />
</div>
<ui-button icon="pencil-line" size="sm" variant="ghost" @click="edit" />
<ui-button icon="trash" size="sm" variant="ghost" @click.prevent="$emit('deleted')" />
<ui-button icon="pencil-line" size="sm" variant="ghost" @click="edit" :aria-label="__('Edit Section')" v-tooltip="__('Edit Section')" />
<ui-button icon="trash" size="sm" variant="ghost" destructive @click.prevent="$emit('deleted')" :aria-label="__('Delete Section')" v-tooltip="__('Delete Section')" />
</ui-panel-header>

<Fields
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/field-conditions/Condition.vue
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
@update:model-value="valueUpdated"
/>

<Button variant="ghost" size="sm" icon="trash" @click="remove" />
<Button variant="ghost" size="sm" icon="trash" :aria-label="__('Remove Condition')" @click="remove" destructive />
</div>
</template>

Expand Down
3 changes: 2 additions & 1 deletion resources/js/components/field-validation/Builder.vue
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,9 @@
<button
type="button"
class="opacity-75 hover:opacity-100 cursor-pointer"
:aria-label="__('Deselect option')"
:aria-label="__('Remove Validation Rule')"
@click="remove(rule)"
data-destructive
>
&times;
</button>
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/fieldtypes/ColorFieldtype.vue
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
/>
</div>

<ui-button v-if="value" icon="x" :aria-label="__('Reset')" @click="resetColor" round inset size="sm" variant="ghost" class="ms-1" />
<ui-button v-if="value" icon="x" :aria-label="__('Reset')" @click="resetColor" round inset size="sm" variant="ghost" class="ms-1" destructive />
</div>
</template>

Expand Down
1 change: 1 addition & 0 deletions resources/js/components/fieldtypes/DictionaryFieldtype.vue
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
type="button"
class="-mx-3 cursor-pointer px-3 text-gray-400 hover:text-gray-700"
:aria-label="__('Deselect option')"
data-destructive
@click="deselect(option.value)"
>
<span>&times;</span>
Expand Down
1 change: 1 addition & 0 deletions resources/js/components/fieldtypes/FilesFieldtype.vue
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
variant="ghost"
:aria-label="__('Remove Asset')"
:title="__('Remove')"
destructive
/>
</td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/fieldtypes/ListFieldtype.vue
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
variant="subtle"
size="xs"
round
delete-action
destructive
@click="deleteValue(index)"
:aria-label="__('Delete Item')"
v-tooltip="__('Delete Item')"
Expand Down
4 changes: 2 additions & 2 deletions resources/js/components/fieldtypes/TableFieldtype.vue
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<th v-for="(column, index) in columnCount" :key="index">
<div class="flex h-6 items-center justify-between">
<span class="column-count">{{ index + 1 }}</span>
<ui-button icon="x" variant="subtle" size="xs" round @click="confirmDeleteColumn(index)" :aria-label="__('Delete Column')" v-tooltip="__('Delete Column')" class="-me-1" />
<ui-button icon="x" variant="subtle" size="xs" destructive round @click="confirmDeleteColumn(index)" :aria-label="__('Delete Column')" v-tooltip="__('Delete Column')" class="-me-1" />
</div>
</th>
<th class="row-controls"></th>
Expand All @@ -46,7 +46,7 @@
/>
</td>
<td class="row-controls" v-if="canDeleteRows">
<ui-button icon="x" variant="subtle" size="xs" round @click="confirmDeleteRow(rowIndex)" :aria-label="__('Delete Row')" v-tooltip="__('Delete Row')" />
<ui-button icon="x" variant="subtle" destructive size="xs" round @click="confirmDeleteRow(rowIndex)" :aria-label="__('Delete Row')" v-tooltip="__('Delete Row')" />
</td>
</tr>
</tbody>
Expand Down
1 change: 1 addition & 0 deletions resources/js/components/fieldtypes/assets/AssetRow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
variant="ghost"
:aria-label="__('Remove Asset')"
:title="__('Remove')"
destructive
/>

<asset-editor
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/fieldtypes/assets/AssetTile.vue
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<div class="flex items-center justify-center gap-2">
<template v-if="!readOnly">
<ui-button size="sm" @click="editOrOpen" :icon="asset.isEditable ? 'pencil' : 'eye'" aria-label="__('Edit')" v-if="asset.isViewable" />
<ui-button size="sm" @click="remove" icon="x" aria-label="__('Remove')" />
<ui-button size="sm" @click="remove" icon="x" aria-label="__('Remove')" destructive />
</template>

<template v-else>
Expand Down
2 changes: 1 addition & 1 deletion resources/js/components/fieldtypes/bard/Image.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<Button v-if="src" size="sm" icon="edit" :text="__('Edit Image')" @click="edit" />
<Button v-if="src" size="sm" icon="rename" :text="__('Override Alt')" :class="{ active: showingAltEdit }" @click="toggleAltEditor" />
<Button v-if="src" size="sm" icon="replace" :text="__('Replace')" @click="openSelector" />
<Button v-if="src" size="sm" icon="trash" :text="__('Remove')" @click="deleteNode" />
<Button v-if="src" size="sm" icon="trash" :text="__('Remove')" :aria-label="__('Remove')" v-tooltip="__('Remove')" @click="deleteNode" destructive />
</div>

<div
Expand Down
4 changes: 4 additions & 0 deletions resources/js/components/fieldtypes/bard/LinkToolbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -109,18 +109,22 @@
<ui-button
@click="$emit('canceled')"
:text="__('Cancel')"
:aria-label="__('Cancel')"
size="sm"
inset
variant="ghost"
/>
<ui-button
:text="__('Remove Link')"
:aria-label="__('Remove Link')"
@click="remove"
size="sm"
destructive
inset
/>
<ui-button
:text="__('Apply Link')"
:aria-label="__('Apply Link')"
:disabled="!canCommit"
@click="commit"
size="sm"
Expand Down
3 changes: 3 additions & 0 deletions resources/js/components/fieldtypes/grid/StackedRow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<ui-button
v-if="canAddRows"
@click="$emit('duplicate', index)"
:aria-label="__('Duplicate Row')"
v-tooltip="__('Duplicate Row')"
icon="duplicate"
variant="ghost"
Expand All @@ -19,6 +20,8 @@
<ui-button
v-if="canDelete"
@click="$emit('removed', index)"
:aria-label="__('Delete Row')"
destructive
v-tooltip="__('Delete Row')"
icon="trash"
variant="ghost"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
>
<template #action-buttons-right>
<slot name="action-buttons-right" />
<Button icon="x" size="sm" variant="ghost" class="-me-2" @click="close" />
<Button icon="x" size="sm" variant="ghost" class="-me-2" :aria-label="__('Close')" @click="close" />
</template>
</component>
</div>
Expand All @@ -38,6 +38,7 @@
:body-text="__('Are you sure? Unsaved changes will be lost.')"
:button-text="__('Discard Changes')"
:danger="true"
:aria-label="__('Discard Changes')"
@confirm="confirmCloseWithChanges"
@cancel="closingWithChanges = false"
/>
Expand Down
Loading