🆙 Add cms i using 🆙

This commit is contained in:
Remco
2025-11-25 22:42:56 +01:00
parent 94704e0925
commit d44196149e
35591 changed files with 3601123 additions and 0 deletions
@@ -0,0 +1,174 @@
.fi-fo-builder {
@apply grid grid-cols-1 gap-y-4;
& .fi-fo-builder-actions {
@apply flex gap-x-3;
&.fi-hidden {
@apply hidden;
}
}
& .fi-fo-builder-items {
@apply grid grid-cols-1;
& > * + * {
@apply mt-4;
}
}
& .fi-fo-builder-item {
@apply rounded-xl bg-white shadow-xs ring-1 ring-gray-950/5 dark:bg-white/5 dark:ring-white/10;
&.fi-collapsed {
& .fi-fo-builder-item-header-collapsible-actions {
@apply -rotate-180;
}
& .fi-fo-builder-item-header-collapse-action {
@apply pointer-events-none opacity-0;
}
}
&:not(.fi-collapsed) {
& .fi-fo-builder-item-header-expand-action {
@apply pointer-events-none opacity-0;
}
}
}
&.fi-fo-builder-not-contained > .fi-fo-builder-items {
& > .fi-fo-builder-item {
@apply rounded-none bg-transparent shadow-none ring-0;
& > .fi-fo-builder-item-content {
@apply p-0;
}
}
& > .fi-fo-builder-label-between-items-ctn {
& > .fi-fo-builder-label-between-items-divider-before {
@apply w-0;
}
& > .fi-fo-builder-label-between-items {
@apply ps-0;
}
}
}
& .fi-fo-builder-item-header {
@apply flex items-center gap-x-3 overflow-hidden px-4 py-3;
}
&.fi-collapsible {
& .fi-fo-builder-item-header {
@apply cursor-pointer select-none;
}
}
& .fi-fo-builder-item-header-start-actions {
@apply flex items-center gap-x-3;
}
& .fi-fo-builder-item-header-icon {
@apply text-gray-400 dark:text-gray-500;
}
& .fi-fo-builder-item-header-label {
@apply text-sm font-medium text-gray-950 dark:text-white;
&.fi-truncated {
@apply truncate;
}
}
& .fi-fo-builder-item-header-end-actions {
@apply ms-auto flex items-center gap-x-3;
}
& .fi-fo-builder-item-header-collapsible-actions {
@apply relative transition;
}
& .fi-fo-builder-item-header-collapse-action {
@apply transition;
}
& .fi-fo-builder-item-header-expand-action {
@apply absolute inset-0 rotate-180 transition;
}
& .fi-fo-builder-item-content {
&:not(.fi-fo-builder-item-content-has-preview) {
@apply p-4;
}
&.fi-fo-builder-item-content-has-preview {
@apply relative;
}
}
& .fi-fo-builder-item-has-header > .fi-fo-builder-item-content {
@apply border-t border-gray-100 dark:border-white/10;
}
& .fi-fo-builder-item-preview {
&:not(.fi-interactive) {
@apply pointer-events-none;
}
}
& .fi-fo-builder-item-preview-edit-overlay {
@apply absolute inset-0 z-1 cursor-pointer;
}
& .fi-fo-builder-block-picker-ctn {
@apply rounded-lg bg-white dark:bg-gray-900;
}
& .fi-fo-builder-add-between-items-ctn {
@apply pointer-events-none invisible relative mt-0 flex h-0 w-full justify-center overflow-visible opacity-0 transition-opacity;
}
& .fi-fo-builder-item:hover + .fi-fo-builder-add-between-items-ctn,
& .fi-fo-builder-add-between-items-ctn:has(+ .fi-fo-builder-item:hover),
& .fi-fo-builder-add-between-items-ctn:hover,
& .fi-fo-builder-add-between-items-ctn:focus-within {
@apply pointer-events-auto visible opacity-100;
}
& .fi-fo-builder-add-between-items {
@apply absolute top-1/2 z-10 translate-y-[calc(-50%+0.5rem)] rounded-lg bg-white dark:bg-gray-900;
}
& .fi-fo-builder-label-between-items-ctn {
@apply relative mt-1 -mb-3 flex items-center;
}
& .fi-fo-builder-label-between-items-divider-before {
@apply w-3 shrink-0 border-t border-gray-200 dark:border-white/10;
}
& .fi-fo-builder-label-between-items {
@apply shrink-0 px-1 text-sm font-medium text-gray-500 dark:text-gray-400;
}
& .fi-fo-builder-label-between-items-divider-after {
@apply flex-1 border-t border-gray-200 dark:border-white/10;
}
& .fi-fo-builder-block-picker {
@apply flex justify-center;
&.fi-align-start,
&.fi-align-left {
@apply justify-start;
}
&.fi-align-end,
&.fi-align-right {
@apply justify-end;
}
}
}
@@ -0,0 +1,45 @@
.fi-fo-checkbox-list {
& .fi-fo-checkbox-list-search-input-wrp {
@apply mb-4;
}
& .fi-fo-checkbox-list-actions {
@apply mb-2;
}
& .fi-fo-checkbox-list-options {
@apply gap-4;
&.fi-grid-direction-col {
@apply -mt-4;
& .fi-fo-checkbox-list-option-ctn {
@apply break-inside-avoid pt-4;
}
}
}
& .fi-fo-checkbox-list-option {
@apply flex gap-x-3;
& .fi-checkbox-input {
@apply mt-1 shrink-0;
}
& .fi-fo-checkbox-list-option-text {
@apply grid text-sm leading-6;
}
& .fi-fo-checkbox-list-option-label {
@apply overflow-hidden font-medium break-words text-gray-950 dark:text-white;
}
& .fi-fo-checkbox-list-option-description {
@apply text-gray-500 dark:text-gray-400;
}
}
& .fi-fo-checkbox-list-no-search-results-message {
@apply text-sm text-gray-500 dark:text-gray-400;
}
}
@@ -0,0 +1,71 @@
.fi-fo-code-editor {
@apply overflow-hidden;
& .cm-editor {
&.cm-focused {
@apply outline-none!;
}
& .cm-gutters {
@apply min-h-48! border-e-gray-300! bg-gray-100! dark:border-e-gray-800! dark:bg-gray-950!;
& .cm-gutter {
&.cm-lineNumbers {
& .cm-gutterElement {
@apply ms-1 rounded-s-md;
&.cm-activeLineGutter {
@apply bg-gray-200! dark:bg-gray-800!;
}
}
}
&.cm-foldGutter {
& .cm-gutterElement {
&.cm-activeLineGutter {
@apply bg-gray-200! dark:bg-gray-800!;
}
}
}
}
}
& .cm-scroller {
@apply min-h-48!;
}
& .cm-line {
@apply me-1 rounded-e-md;
}
}
&.fi-disabled {
& .cm-editor {
& .cm-gutters {
& .cm-gutter {
&.cm-lineNumbers {
& .cm-gutterElement {
&.cm-activeLineGutter {
@apply bg-transparent!;
}
}
}
&.cm-foldGutter {
& .cm-gutterElement {
&.cm-activeLineGutter {
@apply bg-transparent!;
}
}
}
}
}
& .cm-line {
&.cm-activeLine {
@apply bg-transparent!;
}
}
}
}
}
@@ -0,0 +1,17 @@
.fi-fo-color-picker {
& .fi-input-wrp-content {
@apply flex;
}
& .fi-fo-color-picker-preview {
@apply my-auto me-3 size-5 shrink-0 rounded-full select-none;
&.fi-empty {
@apply ring-1 ring-gray-200 ring-inset dark:ring-white/10;
}
}
& .fi-fo-color-picker-panel {
@apply absolute z-10 hidden rounded-lg shadow-lg;
}
}
@@ -0,0 +1,88 @@
.fi-fo-date-time-picker {
/* Prevent excessive date input height in WebKit */
/* https://github.com/twbs/bootstrap/issues/34433 */
& input::-webkit-datetime-edit {
display: block;
padding: 0;
}
& .fi-fo-date-time-picker-trigger {
@apply w-full;
}
& .fi-fo-date-time-picker-display-text-input {
@apply w-full border-none bg-transparent px-3 py-1.5 text-sm leading-6 text-gray-950 outline-hidden transition duration-75 placeholder:text-gray-400 focus:ring-0 disabled:text-gray-500 disabled:[-webkit-text-fill-color:var(--color-gray-500)] dark:text-white dark:placeholder:text-gray-500 dark:disabled:text-gray-400 dark:disabled:[-webkit-text-fill-color:var(--color-gray-400)];
}
& .fi-fo-date-time-picker-panel {
@apply absolute z-10 space-y-3 rounded-lg bg-white p-4 shadow-lg ring-1 ring-gray-950/5 dark:bg-gray-900 dark:ring-white/10;
& .fi-fo-date-time-picker-panel-header {
@apply flex items-center justify-between;
}
}
& .fi-fo-date-time-picker-month-select {
@apply grow cursor-pointer border-none bg-transparent p-0 text-sm font-medium text-gray-950 focus:ring-0 dark:bg-gray-900 dark:text-white;
}
& .fi-fo-date-time-picker-year-input {
@apply w-16 border-none bg-transparent p-0 text-right text-sm text-gray-950 focus:ring-0 dark:text-white;
}
& .fi-fo-date-time-picker-calendar-header {
@apply grid grid-cols-7 gap-1;
& .fi-fo-date-time-picker-calendar-header-day {
@apply text-center text-xs font-medium text-gray-500 dark:text-gray-400;
}
}
& .fi-fo-date-time-picker-calendar {
@apply grid grid-cols-[repeat(7,minmax(--spacing(7),1fr))] gap-1;
& .fi-fo-date-time-picker-calendar-day {
@apply rounded-full text-center text-sm leading-loose transition duration-75;
&.fi-disabled {
@apply pointer-events-none opacity-50;
}
&:not(.fi-disabled) {
@apply cursor-pointer;
}
&.fi-selected {
@apply text-primary-600 dark:text-primary-400 bg-gray-50 dark:bg-white/5;
}
&.fi-focused:not(.fi-selected):not(.fi-disabled) {
@apply bg-gray-100 dark:bg-white/10;
}
&.fi-fo-date-time-picker-calendar-day-today:not(.fi-focused):not(
.fi-selected
):not(.fi-disabled) {
@apply text-primary-600 dark:text-primary-400;
}
&:not(.fi-fo-date-time-picker-calendar-day-today):not(
.fi-selected
) {
@apply text-gray-950 dark:text-white;
}
}
}
& .fi-fo-date-time-picker-time-inputs {
@apply flex items-center justify-center rtl:flex-row-reverse;
& input {
@apply me-1 w-10 border-none bg-transparent p-0 text-center text-sm text-gray-950 focus:ring-0 dark:text-white;
}
& .fi-fo-date-time-picker-time-input-separator {
@apply text-sm font-medium text-gray-500 dark:text-gray-400;
}
}
}
@@ -0,0 +1,76 @@
.fi-fo-field {
@apply grid gap-y-2;
&.fi-fo-field-has-inline-label {
@apply sm:grid-cols-3 sm:items-start sm:gap-x-4;
& .fi-fo-field-content-col {
@apply sm:col-span-2;
}
}
& .fi-fo-field-label-ctn,
& .fi-fo-field-label {
@apply flex items-start gap-x-3;
& > .fi-checkbox-input {
@apply mt-0.5 shrink-0;
}
& > .fi-toggle {
@apply -my-0.5;
}
& > .fi-sc:nth-child(1) {
@apply grow-0;
}
&.fi-hidden {
@apply hidden;
}
}
& .fi-fo-field-label-content {
@apply text-sm font-medium text-gray-950 dark:text-white;
& .fi-fo-field-label-required-mark {
@apply text-danger-600 dark:text-danger-400 font-medium;
}
}
& .fi-fo-field-label-col {
@apply grid h-full auto-cols-fr gap-y-2;
&.fi-vertical-align-start {
@apply sm:items-start;
}
&.fi-vertical-align-center {
@apply sm:items-center;
}
&.fi-vertical-align-end {
@apply sm:items-end;
}
}
& .fi-fo-field-content-col {
@apply grid auto-cols-fr gap-y-2;
}
& .fi-fo-field-content-ctn {
@apply flex w-full items-center gap-x-3;
}
& .fi-fo-field-content {
@apply w-full;
}
& .fi-fo-field-wrp-error-message {
@apply text-danger-600 dark:text-danger-400 text-sm;
}
& .fi-fo-field-wrp-error-list {
@apply list-inside list-disc space-y-0.5;
}
}
@@ -0,0 +1,158 @@
.fi-fo-file-upload {
@apply flex flex-col gap-y-2;
&.fi-align-start,
&.fi-align-left {
@apply items-start;
}
&.fi-align-center {
@apply items-center;
}
&.fi-align-end,
&.fi-align-right {
@apply items-end;
}
& .fi-fo-file-upload-input-ctn {
@apply h-full w-full;
}
&.fi-fo-file-upload-avatar {
& .fi-fo-file-upload-input-ctn {
@apply h-full w-32;
}
}
& .fi-fo-file-upload-error-message {
@apply text-danger-600 dark:text-danger-400 text-sm;
}
& .filepond--root {
@apply mb-0 overflow-hidden rounded-lg bg-white font-sans shadow-sm ring-1 ring-gray-950/10 dark:bg-white/5 dark:ring-white/20;
}
& .filepond--root[data-disabled='disabled'] {
@apply bg-gray-50 dark:bg-transparent dark:ring-white/10;
}
& .filepond--root[data-style-panel-layout='compact circle'] {
@apply rounded-full;
}
& .filepond--panel-root {
@apply bg-transparent;
}
& .filepond--drop-label label {
@apply p-3! text-sm text-gray-600 dark:text-gray-400;
}
& .filepond--label-action {
@apply text-primary-600 hover:text-primary-500 dark:hover:text-primary-500 font-medium no-underline transition duration-75 dark:text-white;
}
& .filepond--drip-blob {
@apply bg-gray-400 dark:bg-gray-500;
}
& .filepond--root[data-style-panel-layout='grid'] .filepond--item {
@apply inline;
width: calc(50% - 0.5rem);
}
@variant lg {
& .filepond--root[data-style-panel-layout='grid'] .filepond--item {
width: calc(33.33% - 0.5rem);
}
}
& .filepond--download-icon {
@apply pointer-events-auto me-1 inline-block size-4 bg-white align-bottom hover:bg-white/70;
-webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItZG93bmxvYWQiPjxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iNyAxMCAxMiAxNSAxNyAxMCI+PC9wb2x5bGluZT48bGluZSB4MT0iMTIiIHkxPSIxNSIgeDI9IjEyIiB5Mj0iMyI+PC9saW5lPjwvc3ZnPg==');
mask-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItZG93bmxvYWQiPjxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iNyAxMCAxMiAxNSAxNyAxMCI+PC9wb2x5bGluZT48bGluZSB4MT0iMTIiIHkxPSIxNSIgeDI9IjEyIiB5Mj0iMyI+PC9saW5lPjwvc3ZnPg==');
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-size: 100%;
mask-size: 100%;
}
& .filepond--open-icon {
@apply pointer-events-auto me-1 inline-block size-4 bg-white align-bottom hover:bg-white/70;
-webkit-mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJ2LTRNMTQgNGg2bTAgMHY2bTAtNkwxMCAxNCIgLz4KPC9zdmc+Cg==);
mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogIDxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwMC0yIDJ2MTBhMiAyIDAgMDAyIDJoMTBhMiAyIDAgMDAyLTJ2LTRNMTQgNGg2bTAgMHY2bTAtNkwxMCAxNCIgLz4KPC9zdmc+Cg==);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-size: 100%;
mask-size: 100%;
}
& .filepond--file-action-button.filepond--action-edit-item {
@apply bg-black/50;
}
& .fi-fo-file-upload-editor {
@apply fixed inset-0 isolate z-50 h-[100dvh] w-screen p-2 sm:p-10 md:p-20;
& .fi-fo-file-upload-editor-overlay {
@apply fixed inset-0 h-full w-full cursor-pointer bg-gray-950/50 dark:bg-gray-950/75;
will-change: transform;
}
& .fi-fo-file-upload-editor-window {
@apply isolate mx-auto flex h-full w-full flex-col overflow-hidden rounded-xl bg-white ring-1 ring-gray-900/10 lg:flex-row dark:bg-gray-800 dark:ring-gray-50/10;
}
& .fi-fo-file-upload-editor-image-ctn {
@apply m-4 max-h-full max-w-full flex-1;
}
& .fi-fo-file-upload-editor-image {
@apply h-full w-auto;
}
& .fi-fo-file-upload-editor-control-panel {
@apply flex h-full w-full flex-1 flex-col overflow-y-auto bg-gray-50 lg:max-w-xs dark:bg-gray-900/30;
& .fi-fo-file-upload-editor-control-panel-main {
@apply flex-1 space-y-6 overflow-auto p-4;
}
& .fi-fo-file-upload-editor-control-panel-group {
@apply grid gap-3;
& .fi-btn-group {
@apply w-full;
}
& .fi-btn.fi-active {
@apply bg-gray-50 dark:bg-gray-700;
}
& .fi-fo-file-upload-editor-control-panel-group-title {
@apply text-xs text-gray-950 dark:text-white;
}
}
& .fi-fo-file-upload-editor-control-panel-footer {
@apply flex items-center gap-3 px-4 py-3;
}
& .fi-fo-file-upload-editor-control-panel-reset-action {
@apply ml-auto;
}
}
& .cropper-drag-box.cropper-crop.cropper-modal {
@apply bg-gray-100/50 opacity-100 dark:bg-gray-900/80;
}
&.fi-fo-file-upload-editor-circle-cropper {
& .cropper-view-box,
& .cropper-face {
border-radius: 50%;
}
}
}
}
@@ -0,0 +1,57 @@
.fi-fo-key-value {
& .fi-fo-key-value-table-ctn {
@apply divide-y divide-gray-200 dark:divide-white/10;
}
& .fi-fo-key-value-table {
@apply w-full table-auto divide-y divide-gray-200 dark:divide-white/5;
& > thead {
& > tr {
& > th {
@apply px-3 py-2 text-start text-sm font-medium text-gray-700 dark:text-gray-200;
&.fi-has-action {
@apply w-9 p-0;
}
}
}
}
& > tbody {
@apply divide-y divide-gray-200 dark:divide-white/5;
& > tr {
@apply divide-x divide-gray-200 rtl:divide-x-reverse dark:divide-white/5;
& > td {
@apply w-1/2 p-0;
&.fi-has-action {
@apply w-auto p-0.5;
& .fi-fo-key-value-table-row-sortable-handle {
@apply flex;
}
}
& .fi-input {
@apply font-mono;
}
}
}
}
}
& .fi-fo-key-value-add-action-ctn {
@apply flex justify-center px-3 py-2;
}
}
.fi-fo-key-value-wrp {
&.fi-fo-field-has-inline-label {
& .fi-fo-field-label-col {
@apply sm:pt-1.5;
}
}
}
@@ -0,0 +1,317 @@
.fi-fo-markdown-editor {
--color-cm-red: #991b1b;
--color-cm-orange: #9a3412;
--color-cm-amber: #92400e;
--color-cm-yellow: #854d0e;
--color-cm-lime: #3f6212;
--color-cm-green: #166534;
--color-cm-emerald: #065f46;
--color-cm-teal: #115e59;
--color-cm-cyan: #155e75;
--color-cm-sky: #075985;
--color-cm-blue: #1e40af;
--color-cm-indigo: #3730a3;
--color-cm-violet: #5b21b6;
--color-cm-purple: #6b21a8;
--color-cm-fuchsia: #86198f;
--color-cm-pink: #9d174d;
--color-cm-rose: #9f1239;
--color-cm-gray: #18181b;
--color-cm-gray-muted: #71717a;
--color-cm-gray-background: #e4e4e7;
&:not(.fi-disabled) {
@apply max-w-full overflow-hidden font-mono text-sm text-gray-950 dark:text-white;
}
&.fi-disabled {
@apply block w-full rounded-lg bg-gray-50 px-3 py-3 text-sm text-gray-500 shadow-xs ring-1 ring-gray-950/10 dark:bg-transparent dark:text-gray-400 dark:ring-white/10;
}
& .EasyMDEContainer .CodeMirror {
@apply px-4! py-3!;
}
& .cm-s-easymde .cm-comment {
background-color: transparent;
color: var(--color-cm-gray-muted);
}
& .EasyMDEContainer .CodeMirror-cursor {
border-color: currentColor;
}
& .EasyMDEContainer .cm-s-easymde .cm-keyword {
color: var(--color-cm-violet);
}
& .EasyMDEContainer .cm-s-easymde .cm-atom {
color: var(--color-cm-blue);
}
& .EasyMDEContainer .cm-s-easymde .cm-number {
color: var(--color-cm-green);
}
& .EasyMDEContainer .cm-s-easymde .cm-def {
color: var(--color-cm-blue);
}
& .EasyMDEContainer .cm-s-easymde .cm-variable {
color: var(--color-cm-yellow);
}
& .EasyMDEContainer .cm-s-easymde .cm-variable-2 {
color: var(--color-cm-blue);
}
& .EasyMDEContainer .cm-s-easymde .cm-variable-3 {
color: var(--color-cm-emerald);
}
& .EasyMDEContainer .cm-s-easymde .cm-property {
color: var(--color-cm-gray);
}
& .EasyMDEContainer .cm-s-easymde .cm-operator {
color: var(--color-cm-gray);
}
& .EasyMDEContainer .cm-s-easymde .cm-string {
color: var(--color-cm-rose);
}
& .EasyMDEContainer .cm-s-easymde .cm-string-2 {
color: var(--color-cm-rose);
}
& .EasyMDEContainer .cm-s-easymde .cm-meta {
color: var(--color-cm-gray-muted);
}
& .EasyMDEContainer .cm-s-easymde .cm-error {
color: var(--color-cm-red);
}
& .EasyMDEContainer .cm-s-easymde .cm-qualifier {
color: var(--color-cm-gray-muted);
}
& .EasyMDEContainer .cm-s-easymde .cm-builtin {
color: var(--color-cm-violet);
}
& .EasyMDEContainer .cm-s-easymde .cm-bracket {
color: var(--color-cm-gray-muted);
}
& .EasyMDEContainer .cm-s-easymde .cm-tag {
color: var(--color-cm-green);
}
& .EasyMDEContainer .cm-s-easymde .cm-attribute {
color: var(--color-cm-blue);
}
& .EasyMDEContainer .cm-s-easymde .cm-hr {
color: var(--color-cm-gray-muted);
}
& .EasyMDEContainer .cm-s-easymde .cm-formatting-quote {
color: var(--color-cm-sky);
}
& .EasyMDEContainer .cm-s-easymde .cm-formatting-quote + .cm-quote {
color: var(--color-cm-gray-muted);
}
& .EasyMDEContainer .cm-s-easymde .cm-formatting-list,
& .EasyMDEContainer .cm-s-easymde .cm-formatting-list + .cm-variable-2,
& .EasyMDEContainer .cm-s-easymde .cm-tab + .cm-variable-2 {
color: var(--color-cm-gray);
}
& .EasyMDEContainer .cm-s-easymde .cm-link {
color: var(--color-cm-blue);
}
& .EasyMDEContainer .cm-s-easymde .cm-tag {
color: var(--color-cm-red);
}
& .EasyMDEContainer .cm-s-easymde .cm-attribute {
color: var(--color-cm-amber);
}
& .EasyMDEContainer .cm-s-easymde .cm-attribute + .cm-string {
color: var(--color-cm-green);
}
&
.EasyMDEContainer
.cm-s-easymde
.cm-formatting-code
+ .cm-comment:not(.cm-formatting-code) {
background-color: var(--color-cm-gray-background);
color: var(--color-cm-gray);
}
& .EasyMDEContainer .cm-s-easymde .cm-header-1 {
@apply text-3xl;
}
& .EasyMDEContainer .cm-s-easymde .cm-header-2 {
@apply text-2xl;
}
& .EasyMDEContainer .cm-s-easymde .cm-header-3 {
@apply text-xl;
}
& .EasyMDEContainer .cm-s-easymde .cm-header-4 {
@apply text-lg;
}
& .EasyMDEContainer .cm-s-easymde .cm-header-5 {
@apply text-base;
}
& .EasyMDEContainer .cm-s-easymde .cm-header-6 {
@apply text-sm;
}
& .EasyMDEContainer .cm-s-easymde .cm-comment {
@apply bg-none;
}
& .EasyMDEContainer .cm-s-easymde .cm-formatting-code-block,
& .EasyMDEContainer .cm-s-easymde .cm-tab + .cm-comment {
@apply bg-transparent text-inherit;
}
& .EasyMDEContainer .CodeMirror {
@apply border-none bg-transparent px-3 py-1.5 text-inherit;
}
& .EasyMDEContainer .CodeMirror-scroll {
@apply h-auto;
}
& .EasyMDEContainer .editor-toolbar {
@apply flex flex-wrap gap-1 rounded-none border-0 border-b border-gray-200 px-2.5 py-2 dark:border-white/10;
}
& .EasyMDEContainer .editor-toolbar button {
@apply grid size-8 place-content-center rounded-lg border-none p-0 transition duration-75 hover:bg-gray-50 focus-visible:bg-gray-50 dark:hover:bg-white/5 dark:focus-visible:bg-white/5;
}
& .EasyMDEContainer .editor-toolbar button.active {
@apply bg-gray-50 dark:bg-white/5;
}
& .EasyMDEContainer .editor-toolbar button::before {
@apply block size-5 bg-gray-700;
content: '';
mask-position: center;
mask-repeat: no-repeat;
}
& .EasyMDEContainer .editor-toolbar button.active::before {
@apply bg-primary-600;
}
& .EasyMDEContainer .editor-toolbar .separator {
@apply m-0! w-1 border-none;
}
& .EasyMDEContainer .editor-toolbar .bold::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M4 3a1 1 0 0 1 1-1h6a4.5 4.5 0 0 1 3.274 7.587A4.75 4.75 0 0 1 11.25 18H5a1 1 0 0 1-1-1V3Zm2.5 5.5v-4H11a2 2 0 1 1 0 4H6.5Zm0 2.5v4.5h4.75a2.25 2.25 0 0 0 0-4.5H6.5Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .italic::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M8 2.75A.75.75 0 0 1 8.75 2h7.5a.75.75 0 0 1 0 1.5h-3.215l-4.483 13h2.698a.75.75 0 0 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h3.215l4.483-13H8.75A.75.75 0 0 1 8 2.75Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .strikethrough::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M11.617 3.963c-1.186-.318-2.418-.323-3.416.015-.992.336-1.49.91-1.642 1.476-.152.566-.007 1.313.684 2.1.528.6 1.273 1.1 2.128 1.446h7.879a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5h3.813a5.976 5.976 0 0 1-.447-.456C5.18 7.479 4.798 6.231 5.11 5.066c.312-1.164 1.268-2.055 2.61-2.509 1.336-.451 2.877-.42 4.286-.043.856.23 1.684.592 2.409 1.074a.75.75 0 1 1-.83 1.25 6.723 6.723 0 0 0-1.968-.875Zm1.909 8.123a.75.75 0 0 1 1.015.309c.53.99.607 2.062.18 3.01-.421.94-1.289 1.648-2.441 2.038-1.336.452-2.877.42-4.286.043-1.409-.377-2.759-1.121-3.69-2.18a.75.75 0 1 1 1.127-.99c.696.791 1.765 1.403 2.952 1.721 1.186.318 2.418.323 3.416-.015.853-.288 1.34-.756 1.555-1.232.21-.467.205-1.049-.136-1.69a.75.75 0 0 1 .308-1.014Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .link::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath d='M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z' /%3E%3Cpath d='M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .heading::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M2.75 4a.75.75 0 0 1 .75.75v4.5h5v-4.5a.75.75 0 0 1 1.5 0v10.5a.75.75 0 0 1-1.5 0v-4.5h-5v4.5a.75.75 0 0 1-1.5 0V4.75A.75.75 0 0 1 2.75 4ZM13 8.75a.75.75 0 0 1 .75-.75h1.75a.75.75 0 0 1 .75.75v5.75h1a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5h1v-5h-1a.75.75 0 0 1-.75-.75Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .quote::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M10 2c-2.236 0-4.43.18-6.57.524C1.993 2.755 1 4.014 1 5.426v5.148c0 1.413.993 2.67 2.43 2.902 1.168.188 2.352.327 3.55.414.28.02.521.18.642.413l1.713 3.293a.75.75 0 0 0 1.33 0l1.713-3.293a.783.783 0 0 1 .642-.413 41.102 41.102 0 0 0 3.55-.414c1.437-.231 2.43-1.49 2.43-2.902V5.426c0-1.413-.993-2.67-2.43-2.902A41.289 41.289 0 0 0 10 2ZM6.75 6a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5h-6.5Zm0 2.5a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .code::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M6.28 5.22a.75.75 0 0 1 0 1.06L2.56 10l3.72 3.72a.75.75 0 0 1-1.06 1.06L.97 10.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Zm7.44 0a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L17.44 10l-3.72-3.72a.75.75 0 0 1 0-1.06ZM11.377 2.011a.75.75 0 0 1 .612.867l-2.5 14.5a.75.75 0 0 1-1.478-.255l2.5-14.5a.75.75 0 0 1 .866-.612Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .unordered-list::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M6 4.75A.75.75 0 0 1 6.75 4h10.5a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 4.75ZM6 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 10Zm0 5.25a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H6.75a.75.75 0 0 1-.75-.75ZM1.99 4.75a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1v-.01ZM1.99 15.25a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1v-.01ZM1.99 10a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1V10Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .ordered-list::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath d='M3 1.25a.75.75 0 0 0 0 1.5h.25v2.5a.75.75 0 0 0 1.5 0V2A.75.75 0 0 0 4 1.25H3ZM2.97 8.654a3.5 3.5 0 0 1 1.524-.12.034.034 0 0 1-.012.012L2.415 9.579A.75.75 0 0 0 2 10.25v1c0 .414.336.75.75.75h2.5a.75.75 0 0 0 0-1.5H3.927l1.225-.613c.52-.26.848-.79.848-1.371 0-.647-.429-1.327-1.193-1.451a5.03 5.03 0 0 0-2.277.155.75.75 0 0 0 .44 1.434ZM7.75 3a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5ZM7.75 9.25a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5ZM7.75 15.5a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5ZM2.625 13.875a.75.75 0 0 0 0 1.5h1.5a.125.125 0 0 1 0 .25H3.5a.75.75 0 0 0 0 1.5h.625a.125.125 0 0 1 0 .25h-1.5a.75.75 0 0 0 0 1.5h1.5a1.625 1.625 0 0 0 1.37-2.5 1.625 1.625 0 0 0-1.37-2.5h-1.5Z' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .table::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M.99 5.24A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25l.01 9.5A2.25 2.25 0 0 1 16.76 17H3.26A2.267 2.267 0 0 1 1 14.74l-.01-9.5Zm8.26 9.52v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75v.615c0 .414.336.75.75.75h5.373a.75.75 0 0 0 .627-.74Zm1.5 0a.75.75 0 0 0 .627.74h5.373a.75.75 0 0 0 .75-.75v-.615a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75v.625Zm6.75-3.63v-.625a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75v.625c0 .414.336.75.75.75h5.25a.75.75 0 0 0 .75-.75Zm-8.25 0v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75v.625c0 .414.336.75.75.75H8.5a.75.75 0 0 0 .75-.75ZM17.5 7.5v-.625a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75V7.5c0 .414.336.75.75.75h5.25a.75.75 0 0 0 .75-.75Zm-8.25 0v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75V7.5c0 .414.336.75.75.75H8.5a.75.75 0 0 0 .75-.75Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .upload-image::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .undo::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M7.793 2.232a.75.75 0 0 1-.025 1.06L3.622 7.25h10.003a5.375 5.375 0 0 1 0 10.75H10.75a.75.75 0 0 1 0-1.5h2.875a3.875 3.875 0 0 0 0-7.75H3.622l4.146 3.957a.75.75 0 0 1-1.036 1.085l-5.5-5.25a.75.75 0 0 1 0-1.085l5.5-5.25a.75.75 0 0 1 1.06.025Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-toolbar .redo::before {
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M12.207 2.232a.75.75 0 0 0 .025 1.06l4.146 3.958H6.375a5.375 5.375 0 0 0 0 10.75H9.25a.75.75 0 0 0 0-1.5H6.375a3.875 3.875 0 0 1 0-7.75h10.003l-4.146 3.957a.75.75 0 0 0 1.036 1.085l5.5-5.25a.75.75 0 0 0 0-1.085l-5.5-5.25a.75.75 0 0 0-1.06.025Z' clip-rule='evenodd' /%3E%3C/svg%3E%0A");
}
& .EasyMDEContainer .editor-statusbar {
@apply hidden;
}
@variant dark {
--color-cm-red: #f87171;
--color-cm-orange: #fb923c;
--color-cm-amber: #fbbf24;
--color-cm-yellow: #facc15;
--color-cm-lime: #a3e635;
--color-cm-green: #4ade80;
--color-cm-emerald: #4ade80;
--color-cm-teal: #2dd4bf;
--color-cm-cyan: #22d3ee;
--color-cm-sky: #38bdf8;
--color-cm-blue: #60a5fa;
--color-cm-indigo: #818cf8;
--color-cm-violet: #a78bfa;
--color-cm-purple: #c084fc;
--color-cm-fuchsia: #e879f9;
--color-cm-pink: #f472b6;
--color-cm-rose: #fb7185;
--color-cm-gray: #fafafa;
--color-cm-gray-muted: #a1a1aa;
--color-cm-gray-background: #52525b;
& .EasyMDEContainer .cm-s-easymde span.CodeMirror-selectedtext {
filter: invert(100%);
}
& .EasyMDEContainer .editor-toolbar button::before {
@apply bg-gray-300;
}
& .EasyMDEContainer .editor-toolbar button.active::before {
@apply bg-primary-400;
}
}
}
@@ -0,0 +1,17 @@
.fi-fo-modal-table-select {
&:not(.fi-fo-modal-table-select-multiple) {
@apply flex items-start gap-x-3 leading-5;
}
&.fi-fo-modal-table-select-multiple {
@apply grid gap-2;
& .fi-fo-modal-table-select-badges-ctn {
@apply flex flex-wrap gap-1.5;
}
}
& .fi-fo-modal-table-select-placeholder {
@apply text-gray-400 dark:text-gray-500;
}
}
@@ -0,0 +1,31 @@
.fi-fo-radio {
@apply gap-4;
&.fi-inline {
@apply flex flex-wrap;
}
&:not(.fi-inline).fi-grid-direction-col {
@apply -mt-4;
& > .fi-fo-radio-label {
@apply break-inside-avoid pt-4;
}
}
& > .fi-fo-radio-label {
@apply flex gap-x-3 self-start;
& > .fi-radio-input {
@apply mt-1 shrink-0;
}
& > .fi-fo-radio-label-text {
@apply grid text-sm leading-6 font-medium text-gray-950 dark:text-white;
}
& .fi-fo-radio-label-description {
@apply font-normal text-gray-500 dark:text-gray-400;
}
}
}
@@ -0,0 +1,377 @@
.fi-fo-repeater {
@apply grid gap-y-4;
& .fi-fo-repeater-actions {
@apply flex gap-x-3;
&.fi-hidden {
@apply hidden;
}
}
& .fi-fo-repeater-items {
@apply items-start gap-4;
}
& .fi-fo-repeater-item {
@apply rounded-xl bg-white shadow-xs ring-1 ring-gray-950/5 dark:bg-white/5 dark:ring-white/10;
&.fi-collapsed {
& .fi-fo-repeater-item-header-collapsible-actions {
@apply -rotate-180;
}
& .fi-fo-repeater-item-header-collapse-action {
@apply pointer-events-none opacity-0;
}
}
&:not(.fi-collapsed) {
& .fi-fo-repeater-item-header-expand-action {
@apply pointer-events-none opacity-0;
}
}
}
& .fi-fo-repeater-item-header {
@apply flex items-center gap-x-3 overflow-hidden px-4 py-3;
}
&.fi-collapsible {
& .fi-fo-repeater-item-header {
@apply cursor-pointer select-none;
}
}
& .fi-fo-repeater-item-header-start-actions {
@apply flex items-center gap-x-3;
}
& .fi-fo-repeater-item-header-icon {
@apply text-gray-400 dark:text-gray-500;
}
& .fi-fo-repeater-item-header-label {
@apply text-sm font-medium text-gray-950 dark:text-white;
&.fi-truncated {
@apply truncate;
}
}
& .fi-fo-repeater-item-header-end-actions {
@apply ms-auto flex items-center gap-x-3;
}
& .fi-fo-repeater-item-header-collapsible-actions {
@apply relative transition;
}
& .fi-fo-repeater-item-header-collapse-action {
@apply transition;
}
& .fi-fo-repeater-item-header-expand-action {
@apply absolute inset-0 rotate-180 transition;
}
& .fi-fo-repeater-item-has-header > .fi-fo-repeater-item-content {
@apply border-t border-gray-100 dark:border-white/10;
}
& .fi-fo-repeater-item-content {
@apply p-4;
}
& .fi-fo-repeater-add-between-items-ctn {
@apply flex w-full justify-center;
}
& .fi-fo-repeater-add-between-items {
@apply rounded-lg bg-white dark:bg-gray-900;
}
& .fi-fo-repeater-label-between-items-ctn {
@apply relative -my-2 flex items-center;
}
& .fi-fo-repeater-label-between-items-divider-before {
@apply w-3 shrink-0 border-t border-gray-200 dark:border-white/10;
}
& .fi-fo-repeater-label-between-items {
@apply shrink-0 px-1 text-sm font-medium text-gray-500 dark:text-gray-400;
}
& .fi-fo-repeater-label-between-items-divider-after {
@apply flex-1 border-t border-gray-200 dark:border-white/10;
}
& .fi-fo-repeater-add {
@apply flex w-full justify-center;
&.fi-align-start,
&.fi-align-left {
@apply justify-start;
}
&.fi-align-end,
&.fi-align-right {
@apply justify-end;
}
}
}
.fi-fo-simple-repeater {
@apply grid gap-y-4;
& .fi-fo-simple-repeater-items {
@apply gap-4;
}
& .fi-fo-simple-repeater-item {
@apply flex justify-start gap-x-3;
}
& .fi-fo-simple-repeater-item-content {
@apply flex-1;
}
& .fi-fo-simple-repeater-item-actions {
@apply flex items-center gap-x-1;
}
& .fi-fo-simple-repeater-add {
@apply flex w-full justify-center;
&.fi-align-start,
&.fi-align-left {
@apply justify-start;
}
&.fi-align-end,
&.fi-align-right {
@apply justify-end;
}
}
}
.fi-fo-table-repeater {
@apply grid gap-3;
& > table {
@apply block w-full divide-y divide-gray-200 rounded-xl bg-white shadow-sm ring-1 ring-gray-950/5 dark:divide-white/10 dark:bg-gray-900 dark:ring-white/10;
& > thead {
@apply hidden whitespace-nowrap;
& > tr {
& > th {
@apply border-gray-200 bg-gray-50 px-3 py-2 text-sm font-semibold text-gray-950 first-of-type:rounded-tl-xl last-of-type:rounded-tr-xl dark:border-white/5 dark:bg-white/5 dark:text-white [&:not(:first-of-type)]:border-s [&:not(:last-of-type)]:border-e;
&.fi-align-start,
&.fi-align-left {
@apply text-start;
}
&.fi-align-end,
&.fi-align-right {
@apply text-end;
}
&.fi-wrapped {
@apply whitespace-normal;
}
&:not(.fi-wrapped) {
@apply whitespace-nowrap;
}
&.fi-fo-table-repeater-empty-header-cell {
@apply w-1;
}
}
}
}
& > tbody {
@apply block divide-y divide-gray-200 dark:divide-white/5;
& > tr {
@apply grid gap-6 p-6;
& > td {
@apply block;
&.fi-hidden {
@apply hidden;
}
}
}
}
& .fi-fo-table-repeater-header-required-mark {
@apply text-danger-600 dark:text-danger-400 font-medium;
}
& .fi-fo-table-repeater-actions {
@apply flex h-full items-center gap-x-3;
}
}
@supports (container-type: inline-size) {
@apply @container;
& > table {
@apply @xl:table;
& > thead {
@apply @xl:table-header-group;
}
& > tbody {
@apply @xl:table-row-group;
& > tr {
@apply @xl:table-row @xl:p-0;
& > td {
@apply @xl:table-cell @xl:px-3 @xl:py-2;
&.fi-hidden {
@apply @xl:table-cell;
}
& .fi-fo-field {
@apply @xl:gap-y-0;
}
& .fi-in-entry {
@apply @xl:gap-y-0;
}
& .fi-fo-field-label-content {
@apply @xl:hidden;
}
& .fi-in-entry-label {
@apply @xl:hidden;
}
}
}
}
& .fi-fo-table-repeater-actions {
@apply @xl:px-3 @xl:py-2;
}
}
&.fi-compact {
& > table {
& > tbody {
& > tr {
& > td {
@apply @xl:border-gray-200 @xl:px-0 @xl:py-1 @xl:dark:border-white/5 @xl:[&:not(:first-of-type)]:border-s @xl:[&:not(:last-of-type)]:border-e;
}
}
}
}
& .fi-input-wrp {
@apply @xl:bg-transparent! @xl:shadow-none @xl:ring-0!;
}
& .fi-fo-field-wrp-error-message {
@apply @xl:px-3 @xl:pb-2;
}
& .fi-in-entry-content {
@apply @xl:px-3;
}
}
}
@supports not (container-type: inline-size) {
& > table {
@apply lg:table;
& > thead {
@apply lg:table-header-group;
}
& > tbody {
@apply lg:table-row-group;
& > tr {
@apply lg:table-row lg:p-0;
& > td {
@apply lg:table-cell lg:px-3 lg:py-2;
&.fi-hidden {
@apply lg:table-cell;
}
& .fi-fo-field {
@apply lg:gap-y-0;
}
& .fi-in-entry {
@apply lg:gap-y-0;
}
& .fi-fo-field-label-content {
@apply lg:hidden;
}
& .fi-in-entry-label {
@apply lg:hidden;
}
}
}
}
& .fi-fo-table-repeater-actions {
@apply lg:px-3 lg:py-2;
}
}
&.fi-compact {
& > table {
& > tbody {
& > tr {
& > td {
@apply lg:border-gray-200 lg:px-0 lg:py-1 lg:dark:border-white/5 lg:[&:not(:first-of-type)]:border-s lg:[&:not(:last-of-type)]:border-e;
}
}
}
}
& .fi-input-wrp {
@apply lg:bg-transparent! lg:shadow-none lg:ring-0!;
}
& .fi-fo-field-wrp-error-message {
@apply lg:px-3 lg:pb-2;
}
& .fi-in-entry-content {
@apply lg:px-3;
}
}
}
& .fi-fo-table-repeater-add {
@apply flex w-full justify-center;
&.fi-align-start,
&.fi-align-left {
@apply justify-start;
}
&.fi-align-end,
&.fi-align-right {
@apply justify-end;
}
}
}
@@ -0,0 +1,271 @@
.fi-fo-rich-editor {
& .fi-fo-rich-editor-uploading-file {
@apply pointer-events-none cursor-wait opacity-50;
}
& .fi-fo-rich-editor-toolbar {
@apply relative flex flex-wrap gap-x-3 gap-y-1 border-b border-gray-200 px-2.5 py-2 dark:border-white/10;
}
& .fi-fo-rich-editor-floating-toolbar {
@apply invisible absolute z-[20] -mt-1 flex max-w-full flex-wrap gap-x-3 gap-y-1 rounded-lg border border-gray-300 bg-white p-1 shadow dark:border-gray-600 dark:bg-gray-800;
}
& .fi-fo-rich-editor-toolbar-group {
@apply flex gap-x-1;
}
& .fi-fo-rich-editor-tool {
@apply flex h-8 min-w-8 items-center justify-center rounded-lg text-sm font-semibold text-gray-700 transition duration-75 hover:bg-gray-50 focus-visible:bg-gray-50 dark:text-gray-200 dark:hover:bg-white/5 dark:focus-visible:bg-white/5;
&[disabled] {
@apply pointer-events-none cursor-default opacity-70;
}
&.fi-active {
@apply text-primary-600 dark:text-primary-400 bg-gray-50 dark:bg-white/5;
}
}
& .fi-fo-rich-editor-uploading-file-message {
@apply flex items-center gap-x-3 border-b border-gray-200 bg-gray-50 px-5 py-1.5 text-sm leading-6 font-medium text-gray-700 dark:border-white/10 dark:bg-white/5 dark:text-gray-200;
& .fi-loading-indicator {
@apply text-gray-400 dark:text-gray-500;
}
}
& .fi-fo-rich-editor-file-validation-message {
@apply border-danger-200 bg-danger-50 text-danger-700 dark:text-danger-200 flex items-center gap-x-3 border-b px-5 py-1.5 text-sm leading-6 font-medium dark:border-white/10 dark:bg-white/5;
}
& .fi-fo-rich-editor-main {
@apply flex flex-col-reverse;
}
& .fi-fo-rich-editor-content {
@apply relative min-h-12 w-full flex-1 px-5 py-3;
}
& span[data-type='mergeTag'] {
&::before {
@apply me-1 font-normal opacity-60;
content: '{{';
}
&::after {
@apply ms-1 font-normal opacity-60;
content: '}}';
}
}
& .fi-fo-rich-editor-panels {
@apply w-full border-b border-gray-200 bg-gray-50 dark:border-white/10 dark:bg-gray-900/30;
}
& .fi-fo-rich-editor-panel-header {
@apply flex items-start gap-3 px-4 py-3;
}
& .fi-fo-rich-editor-panel-heading {
@apply flex-1 text-sm font-semibold text-gray-950 dark:text-white;
}
& .fi-fo-rich-editor-panel-close-btn-ctn {
@apply shrink-0;
}
& .fi-fo-rich-editor-panel {
@apply grid divide-y divide-gray-200 dark:divide-white/10;
}
& .fi-fo-rich-editor-merge-tags-list {
@apply flex flex-wrap gap-2 px-4 py-3;
}
& .fi-fo-rich-editor-merge-tag-btn {
@apply cursor-move rounded-lg bg-white p-1 text-start text-sm text-gray-600 ring-1 ring-gray-600/10 dark:bg-gray-400/10 dark:text-gray-200 dark:ring-gray-400/20;
}
& .fi-fo-rich-editor-custom-blocks-list {
@apply flex flex-wrap gap-2 px-4 py-3;
}
& .fi-fo-rich-editor-custom-block-btn {
@apply flex cursor-move gap-1.5 rounded-lg bg-white px-2 py-1 text-start text-sm text-gray-600 ring-1 ring-gray-600/10 dark:bg-gray-400/10 dark:text-gray-200 dark:ring-gray-400/20;
}
& .tiptap {
@apply h-full;
&:focus {
@apply outline-none;
& .ProseMirror-selectednode {
div&[data-type='customBlock'],
img& {
@apply ring-primary-600 dark:ring-primary-500 ring-2;
}
}
}
& p.is-editor-empty:first-child {
&::before {
@apply pointer-events-none float-start h-0 text-gray-400;
content: attr(data-placeholder);
}
@variant dark {
&::before {
@apply text-gray-500;
}
}
}
& [data-type='details'] {
@apply my-6 flex gap-1 rounded-md border border-gray-950/20 p-4 dark:border-white/20;
& > div:first-of-type {
@apply !mt-0;
}
& summary {
@apply list-none font-medium;
}
& > button {
@apply mt-px mr-2 flex size-5 items-center justify-center rounded-md bg-transparent p-1 text-xs leading-none hover:bg-gray-950/5 dark:hover:bg-white/5;
&::before {
content: '\25B6';
}
}
&.is-open > button::before {
transform: rotate(90deg);
}
& > div {
@apply flex w-full flex-col gap-4;
& > [data-type='detailsContent'] {
@apply !mt-0;
& > :last-child {
@apply mb-4;
}
}
}
}
& table {
@apply m-0 w-full table-fixed border-collapse overflow-hidden first:mt-0;
& td,
& th {
@apply relative min-w-[1em] border border-gray-300 !p-2 align-top dark:border-gray-600;
& > * {
@apply mb-0;
}
}
& th {
@apply bg-gray-100 text-start font-bold dark:bg-gray-800 dark:text-white;
}
& .selectedCell {
&::after {
@apply pointer-events-none absolute start-0 end-0 top-0 bottom-0 z-2 bg-gray-200/80 content-[''];
}
@variant dark {
&::after {
@apply bg-gray-800/80;
}
}
}
& .column-resize-handle {
@apply bg-primary-600 pointer-events-none absolute end-0 top-0 bottom-0 !m-0 w-1;
}
}
& .tableWrapper {
@apply overflow-x-auto;
}
&.resize-cursor {
@apply cursor-col-resize cursor-ew-resize;
}
& .grid-layout > .grid-layout-col {
@apply rounded-md border border-gray-950/20 p-4 dark:border-white/20;
}
}
& .tiptap.ProseMirror {
/* https://defensivecss.dev/tip/input-zoom-safari */
@supports (-webkit-touch-callout: none) {
@apply text-base;
}
}
& img {
@apply inline-block;
}
& div[data-type='customBlock'] {
@apply grid divide-y divide-gray-200 overflow-hidden rounded-lg shadow-sm ring-1 ring-gray-950/10 dark:divide-white/10 dark:ring-white/20;
}
& .fi-fo-rich-editor-custom-block-header {
@apply flex items-start gap-3 bg-gray-50 px-4 py-3 dark:bg-gray-900/30;
}
& .fi-fo-rich-editor-custom-block-heading {
@apply flex-1 text-sm font-semibold text-gray-950 dark:text-white;
}
& .fi-fo-rich-editor-custom-block-edit-btn-ctn {
@apply shrink-0;
}
& .fi-fo-rich-editor-custom-block-delete-btn-ctn {
@apply shrink-0;
}
& .fi-fo-rich-editor-custom-block-preview {
@apply px-4 py-3;
}
@supports (container-type: inline-size) {
@apply @container;
& .fi-fo-rich-editor-main {
@apply @2xl:flex-row;
}
& .fi-fo-rich-editor-panels {
@apply @2xl:max-w-3xs @2xl:rounded-ee-lg @2xl:border-s @2xl:border-b-0;
}
}
@supports not (container-type: inline-size) {
& .fi-fo-rich-editor-main {
@apply md:flex-row;
}
& .fi-fo-rich-editor-panels {
@apply md:max-w-3xs md:rounded-ee-lg md:border-s md:border-b-0;
}
}
}
& .fi-fo-rich-editor-text-color-select-option {
@apply flex items-center gap-2;
& .fi-fo-rich-editor-text-color-select-option-preview {
@apply h-5 w-5 shrink-0 rounded-full bg-(--color) dark:bg-(--dark-color);
}
}
@@ -0,0 +1,13 @@
.fi-fo-select {
& .fi-hidden {
@apply hidden;
}
}
.fi-fo-select-wrp {
&.fi-fo-field-has-inline-label {
& .fi-fo-field-label-col {
@apply sm:pt-1.5;
}
}
}
@@ -0,0 +1,54 @@
.fi-fo-slider {
@apply gap-4 rounded-lg border-0 bg-transparent shadow-sm ring-1 ring-gray-950/10 dark:ring-white/20;
& .noUi-connect {
@apply bg-primary-500 dark:bg-primary-600;
}
& .noUi-connects {
@apply rounded-lg bg-gray-950/5 dark:bg-white/5;
}
& .noUi-handle {
@apply focus:outline-primary-600 dark:focus:outline-primary-500 absolute rounded-lg border-1 border-gray-950/10 bg-white shadow-none backface-hidden focus:outline-2 dark:border-white/20 dark:bg-gray-700;
&::before,
&::after {
@apply border-0 bg-gray-400;
}
}
& .noUi-tooltip {
@apply rounded-md border-0 bg-white text-gray-950 shadow-sm ring-1 ring-gray-950/10 dark:bg-gray-800 dark:text-white dark:ring-white/20;
}
& .noUi-pips {
& .noUi-value {
@apply text-gray-950 dark:text-white;
}
}
&.fi-fo-slider-vertical {
@apply mt-4 h-40;
&.fi-fo-slider-has-tooltips {
@apply ms-10;
}
}
&:not(.fi-fo-slider-vertical) {
&.fi-fo-slider-has-pips {
@apply mb-8;
}
&.fi-fo-slider-has-tooltips {
@apply mt-10;
}
& .noUi-pips {
& .noUi-value {
@apply mt-1;
}
}
}
}
@@ -0,0 +1,33 @@
.fi-fo-tags-input {
&.fi-disabled {
& .fi-badge-delete-btn {
@apply hidden;
}
}
& .fi-fo-tags-input-tags-ctn {
@apply flex w-full flex-wrap gap-1.5 border-t border-t-gray-200 p-2 dark:border-t-white/10;
& > template {
@apply hidden;
}
& > .fi-badge {
&.fi-reorderable {
@apply cursor-move;
}
& .fi-badge-label-ctn {
@apply text-start select-none;
}
}
}
}
.fi-fo-tags-input-wrp {
&.fi-fo-field-has-inline-label {
& .fi-fo-field-label-col {
@apply sm:pt-1.5;
}
}
}
@@ -0,0 +1,9 @@
.fi-fo-text-input {
@apply overflow-hidden;
& input {
&.fi-revealable {
@apply [&::-ms-reveal]:hidden;
}
}
}
@@ -0,0 +1,26 @@
.fi-fo-textarea {
@apply overflow-hidden;
& textarea {
@apply block h-full w-full border-none bg-transparent px-3 py-1.5 text-sm leading-6 text-gray-950 placeholder:text-gray-400 focus:ring-0 focus:outline-none disabled:text-gray-500 disabled:[-webkit-text-fill-color:var(--color-gray-500)] disabled:placeholder:[-webkit-text-fill-color:var(--color-gray-400)] dark:text-white dark:placeholder:text-gray-500 dark:disabled:text-gray-400 dark:disabled:[-webkit-text-fill-color:var(--color-gray-400)] dark:disabled:placeholder:[-webkit-text-fill-color:var(--color-gray-500)];
/* https://defensivecss.dev/tip/input-zoom-safari */
@supports (-webkit-touch-callout: none) {
@apply text-base;
}
}
&.fi-autosizable {
& textarea {
@apply resize-none;
}
}
}
.fi-fo-textarea-wrp {
&.fi-fo-field-has-inline-label {
& .fi-fo-field-label-col {
@apply sm:pt-1.5;
}
}
}
@@ -0,0 +1,33 @@
.fi-fo-toggle-buttons {
&.fi-btn-group {
@apply w-max;
}
&:not(.fi-btn-group) {
@apply gap-3;
&.fi-inline {
@apply flex flex-wrap;
}
&:not(.fi-inline).fi-grid-direction-col {
@apply -mt-3;
& .fi-fo-toggle-buttons-btn-ctn {
@apply break-inside-avoid pt-3;
}
}
}
& .fi-fo-toggle-buttons-input {
@apply pointer-events-none absolute opacity-0;
}
}
.fi-fo-toggle-buttons-wrp {
&.fi-fo-field-has-inline-label {
& .fi-fo-field-label-col {
@apply sm:pt-1.5;
}
}
}
@@ -0,0 +1,20 @@
@import '../../dist/index.css' layer(components);
@import './components/builder.css' layer(components);
@import './components/checkbox-list.css' layer(components);
@import './components/code-editor.css' layer(components);
@import './components/color-picker.css' layer(components);
@import './components/date-time-picker.css' layer(components);
@import './components/field.css' layer(components);
@import './components/file-upload.css' layer(components);
@import './components/key-value.css' layer(components);
@import './components/markdown-editor.css' layer(components);
@import './components/modal-table-select.css' layer(components);
@import './components/radio.css' layer(components);
@import './components/repeater.css' layer(components);
@import './components/rich-editor.css' layer(components);
@import './components/select.css' layer(components);
@import './components/slider.css' layer(components);
@import './components/tags-input.css' layer(components);
@import './components/text-input.css' layer(components);
@import './components/textarea.css' layer(components);
@import './components/toggle-buttons.css' layer(components);
@@ -0,0 +1,112 @@
export default function checkboxListFormComponent({ livewireId }) {
return {
areAllCheckboxesChecked: false,
checkboxListOptions: [],
search: '',
visibleCheckboxListOptions: [],
init() {
this.checkboxListOptions = Array.from(
this.$root.querySelectorAll('.fi-fo-checkbox-list-option'),
)
this.updateVisibleCheckboxListOptions()
this.$nextTick(() => {
this.checkIfAllCheckboxesAreChecked()
})
Livewire.hook(
'commit',
({ component, commit, succeed, fail, respond }) => {
succeed(({ snapshot, effect }) => {
this.$nextTick(() => {
if (component.id !== livewireId) {
return
}
this.checkboxListOptions = Array.from(
this.$root.querySelectorAll(
'.fi-fo-checkbox-list-option',
),
)
this.updateVisibleCheckboxListOptions()
this.checkIfAllCheckboxesAreChecked()
})
})
},
)
this.$watch('search', () => {
this.updateVisibleCheckboxListOptions()
this.checkIfAllCheckboxesAreChecked()
})
},
checkIfAllCheckboxesAreChecked() {
this.areAllCheckboxesChecked =
this.visibleCheckboxListOptions.length ===
this.visibleCheckboxListOptions.filter((checkboxLabel) =>
checkboxLabel.querySelector(
'input[type=checkbox]:checked, input[type=checkbox]:disabled',
),
).length
},
toggleAllCheckboxes() {
this.checkIfAllCheckboxesAreChecked()
const inverseAreAllCheckboxesChecked = !this.areAllCheckboxesChecked
this.visibleCheckboxListOptions.forEach((checkboxLabel) => {
const checkbox = checkboxLabel.querySelector(
'input[type=checkbox]',
)
if (checkbox.disabled) {
return
}
if (checkbox.checked === inverseAreAllCheckboxesChecked) {
return
}
checkbox.checked = inverseAreAllCheckboxesChecked
checkbox.dispatchEvent(new Event('change'))
})
this.areAllCheckboxesChecked = inverseAreAllCheckboxesChecked
},
updateVisibleCheckboxListOptions() {
this.visibleCheckboxListOptions = this.checkboxListOptions.filter(
(checkboxListItem) => {
if (['', null, undefined].includes(this.search)) {
return true
}
if (
checkboxListItem
.querySelector('.fi-fo-checkbox-list-option-label')
?.innerText.toLowerCase()
.includes(this.search.toLowerCase())
) {
return true
}
return checkboxListItem
.querySelector(
'.fi-fo-checkbox-list-option-description',
)
?.innerText.toLowerCase()
.includes(this.search.toLowerCase())
},
)
},
}
}
@@ -0,0 +1,152 @@
import { EditorState, Compartment } from '@codemirror/state'
import { EditorView, basicSetup } from 'codemirror-v6'
import { indentWithTab } from '@codemirror/commands'
import { oneDark } from '@codemirror/theme-one-dark'
import { keymap } from '@codemirror/view'
import { cpp } from '@codemirror/lang-cpp'
import { css } from '@codemirror/lang-css'
import { go } from '@codemirror/lang-go'
import { html } from '@codemirror/lang-html'
import { java } from '@codemirror/lang-java'
import { javascript } from '@codemirror/lang-javascript'
import { json } from '@codemirror/lang-json'
import { markdown } from '@codemirror/lang-markdown'
import { php } from '@codemirror/lang-php'
import { python } from '@codemirror/lang-python'
import { sql } from '@codemirror/lang-sql'
import { xml } from '@codemirror/lang-xml'
import { yaml } from '@codemirror/lang-yaml'
export default function codeEditorFormComponent({
isDisabled,
isLive,
isLiveDebounced,
isLiveOnBlur,
liveDebounce,
language,
state,
}) {
return {
editor: null,
themeCompartment: new Compartment(),
isDocChanged: false,
state,
init() {
const languageExtension = this.getLanguageExtension()
const debouncedCommit = Alpine.debounce(
() => this.$wire.commit(),
liveDebounce ?? 300,
)
this.editor = new EditorView({
parent: this.$refs.editor,
state: EditorState.create({
doc: this.state,
extensions: [
basicSetup,
keymap.of([indentWithTab]),
EditorState.readOnly.of(isDisabled),
EditorView.editable.of(!isDisabled),
EditorView.updateListener.of((viewUpdate) => {
if (!viewUpdate.docChanged) {
return
}
this.isDocChanged = true
this.state = viewUpdate.state.doc.toString()
if (!isLiveOnBlur && (isLive || isLiveDebounced)) {
debouncedCommit()
}
}),
EditorView.domEventHandlers({
blur: (event, view) => {
if (isLiveOnBlur && this.isDocChanged) {
this.$wire.$commit()
}
},
}),
...(languageExtension ? [languageExtension] : []),
this.themeCompartment.of(this.getThemeExtensions()),
],
}),
})
this.$watch('state', () => {
if (this.state === undefined) {
return
}
if (this.editor.state.doc.toString() === this.state) {
return
}
this.editor.dispatch({
changes: {
from: 0,
to: this.editor.state.doc.length,
insert: this.state,
},
})
})
this.themeObserver = new MutationObserver(() => {
this.editor.dispatch({
effects: this.themeCompartment.reconfigure(
this.getThemeExtensions(),
),
})
})
this.themeObserver.observe(document.documentElement, {
attributes: true,
attributeFilter: ['class'],
})
},
isDarkMode() {
return document.documentElement.classList.contains('dark')
},
getThemeExtensions() {
return this.isDarkMode() ? [oneDark] : []
},
getLanguageExtension() {
if (!language) {
return null
}
const extensions = {
cpp,
css,
go,
html,
java,
javascript,
json,
markdown,
php,
python,
sql,
xml,
yaml,
}
return extensions[language]?.() || null
},
destroy() {
if (this.themeObserver) {
this.themeObserver.disconnect()
this.themeObserver = null
}
if (this.editor) {
this.editor.destroy()
this.editor = null
}
},
}
}
@@ -0,0 +1,90 @@
import 'vanilla-colorful/hex-color-picker.js'
import 'vanilla-colorful/hsl-string-color-picker.js'
import 'vanilla-colorful/rgb-string-color-picker.js'
import 'vanilla-colorful/rgba-string-color-picker.js'
export default function colorPickerFormComponent({
isAutofocused,
isDisabled,
isLive,
isLiveDebounced,
isLiveOnBlur,
liveDebounce,
state,
}) {
return {
state,
init() {
if (!(this.state === null || this.state === '')) {
this.setState(this.state)
}
if (isAutofocused) {
this.togglePanelVisibility(this.$refs.input)
}
this.$refs.input.addEventListener('change', (event) => {
this.setState(event.target.value)
})
this.$refs.panel.addEventListener('color-changed', (event) => {
this.setState(event.detail.value)
if (isLiveOnBlur || !(isLive || isLiveDebounced)) {
return
}
setTimeout(
() => {
if (this.state !== event.detail.value) {
return
}
this.commitState()
},
isLiveDebounced ? liveDebounce : 250,
)
})
if (isLive || isLiveDebounced || isLiveOnBlur) {
new MutationObserver(() =>
this.isOpen() ? null : this.commitState(),
).observe(this.$refs.panel, {
attributes: true,
childList: true,
})
}
},
togglePanelVisibility() {
if (isDisabled) {
return
}
this.$refs.panel.toggle(this.$refs.input)
},
setState(value) {
this.state = value
this.$refs.input.value = value
this.$refs.panel.color = value
},
isOpen() {
return this.$refs.panel.style.display === 'block'
},
commitState() {
if (
JSON.stringify(this.$wire.__instance.canonical) ===
JSON.stringify(this.$wire.__instance.ephemeral)
) {
return
}
this.$wire.$commit()
},
}
}
@@ -0,0 +1,551 @@
import dayjs from 'dayjs/esm'
import advancedFormat from 'dayjs/plugin/advancedFormat'
import customParseFormat from 'dayjs/plugin/customParseFormat'
import localeData from 'dayjs/plugin/localeData'
import timezone from 'dayjs/plugin/timezone'
import utc from 'dayjs/plugin/utc'
dayjs.extend(advancedFormat)
dayjs.extend(customParseFormat)
dayjs.extend(localeData)
dayjs.extend(timezone)
dayjs.extend(utc)
window.dayjs = dayjs
export default function dateTimePickerFormComponent({
defaultFocusedDate,
displayFormat,
firstDayOfWeek,
isAutofocused,
locale,
shouldCloseOnDateSelection,
state,
}) {
const timezone = dayjs.tz.guess()
return {
daysInFocusedMonth: [],
displayText: '',
emptyDaysInFocusedMonth: [],
focusedDate: null,
focusedMonth: null,
focusedYear: null,
hour: null,
isClearingState: false,
minute: null,
second: null,
state,
defaultFocusedDate,
dayLabels: [],
months: [],
init() {
dayjs.locale(locales[locale] ?? locales['en'])
this.$nextTick(() => {
this.focusedDate ??= (
this.getDefaultFocusedDate() ?? dayjs()
).tz(timezone)
this.focusedMonth ??= this.focusedDate.month()
this.focusedYear ??= this.focusedDate.year()
})
let date =
this.getSelectedDate() ??
this.getDefaultFocusedDate() ??
dayjs().tz(timezone).hour(0).minute(0).second(0)
if (this.getMaxDate() !== null && date.isAfter(this.getMaxDate())) {
date = null
} else if (
this.getMinDate() !== null &&
date.isBefore(this.getMinDate())
) {
date = null
}
this.hour = date?.hour() ?? 0
this.minute = date?.minute() ?? 0
this.second = date?.second() ?? 0
this.setDisplayText()
this.setMonths()
this.setDayLabels()
if (isAutofocused) {
this.$nextTick(() =>
this.togglePanelVisibility(this.$refs.button),
)
}
this.$watch('focusedMonth', () => {
this.focusedMonth = +this.focusedMonth
if (this.focusedDate.month() === this.focusedMonth) {
return
}
this.focusedDate = this.focusedDate.month(this.focusedMonth)
})
this.$watch('focusedYear', () => {
if (this.focusedYear?.length > 4) {
this.focusedYear = this.focusedYear.substring(0, 4)
}
if (!this.focusedYear || this.focusedYear?.length !== 4) {
return
}
let year = +this.focusedYear
if (!Number.isInteger(year)) {
year = dayjs().tz(timezone).year()
this.focusedYear = year
}
if (this.focusedDate.year() === year) {
return
}
this.focusedDate = this.focusedDate.year(year)
})
this.$watch('focusedDate', () => {
let month = this.focusedDate.month()
let year = this.focusedDate.year()
if (this.focusedMonth !== month) {
this.focusedMonth = month
}
if (this.focusedYear !== year) {
this.focusedYear = year
}
this.setupDaysGrid()
})
this.$watch('hour', () => {
let hour = +this.hour
if (!Number.isInteger(hour)) {
this.hour = 0
} else if (hour > 23) {
this.hour = 0
} else if (hour < 0) {
this.hour = 23
} else {
this.hour = hour
}
if (this.isClearingState) {
return
}
let date = this.getSelectedDate() ?? this.focusedDate
this.setState(date.hour(this.hour ?? 0))
})
this.$watch('minute', () => {
let minute = +this.minute
if (!Number.isInteger(minute)) {
this.minute = 0
} else if (minute > 59) {
this.minute = 0
} else if (minute < 0) {
this.minute = 59
} else {
this.minute = minute
}
if (this.isClearingState) {
return
}
let date = this.getSelectedDate() ?? this.focusedDate
this.setState(date.minute(this.minute ?? 0))
})
this.$watch('second', () => {
let second = +this.second
if (!Number.isInteger(second)) {
this.second = 0
} else if (second > 59) {
this.second = 0
} else if (second < 0) {
this.second = 59
} else {
this.second = second
}
if (this.isClearingState) {
return
}
let date = this.getSelectedDate() ?? this.focusedDate
this.setState(date.second(this.second ?? 0))
})
this.$watch('state', () => {
if (this.state === undefined) {
return
}
let date = this.getSelectedDate()
if (date === null) {
this.clearState()
return
}
if (
this.getMaxDate() !== null &&
date?.isAfter(this.getMaxDate())
) {
date = null
}
if (
this.getMinDate() !== null &&
date?.isBefore(this.getMinDate())
) {
date = null
}
const newHour = date?.hour() ?? 0
if (this.hour !== newHour) {
this.hour = newHour
}
const newMinute = date?.minute() ?? 0
if (this.minute !== newMinute) {
this.minute = newMinute
}
const newSecond = date?.second() ?? 0
if (this.second !== newSecond) {
this.second = newSecond
}
this.setDisplayText()
})
},
clearState() {
this.isClearingState = true
this.setState(null)
this.hour = 0
this.minute = 0
this.second = 0
this.$nextTick(() => (this.isClearingState = false))
},
dateIsDisabled(date) {
if (
this.$refs?.disabledDates &&
JSON.parse(this.$refs.disabledDates.value ?? []).some(
(disabledDate) => {
disabledDate = dayjs(disabledDate)
if (!disabledDate.isValid()) {
return false
}
return disabledDate.isSame(date, 'day')
},
)
) {
return true
}
if (this.getMaxDate() && date.isAfter(this.getMaxDate(), 'day')) {
return true
}
if (this.getMinDate() && date.isBefore(this.getMinDate(), 'day')) {
return true
}
return false
},
dayIsDisabled(day) {
this.focusedDate ??= dayjs().tz(timezone)
return this.dateIsDisabled(this.focusedDate.date(day))
},
dayIsSelected(day) {
let selectedDate = this.getSelectedDate()
if (selectedDate === null) {
return false
}
this.focusedDate ??= dayjs().tz(timezone)
return (
selectedDate.date() === day &&
selectedDate.month() === this.focusedDate.month() &&
selectedDate.year() === this.focusedDate.year()
)
},
dayIsToday(day) {
let date = dayjs().tz(timezone)
this.focusedDate ??= date
return (
date.date() === day &&
date.month() === this.focusedDate.month() &&
date.year() === this.focusedDate.year()
)
},
focusPreviousDay() {
this.focusedDate ??= dayjs().tz(timezone)
this.focusedDate = this.focusedDate.subtract(1, 'day')
},
focusPreviousWeek() {
this.focusedDate ??= dayjs().tz(timezone)
this.focusedDate = this.focusedDate.subtract(1, 'week')
},
focusNextDay() {
this.focusedDate ??= dayjs().tz(timezone)
this.focusedDate = this.focusedDate.add(1, 'day')
},
focusNextWeek() {
this.focusedDate ??= dayjs().tz(timezone)
this.focusedDate = this.focusedDate.add(1, 'week')
},
getDayLabels() {
const labels = dayjs.weekdaysShort()
if (firstDayOfWeek === 0) {
return labels
}
return [
...labels.slice(firstDayOfWeek),
...labels.slice(0, firstDayOfWeek),
]
},
getMaxDate() {
let date = dayjs(this.$refs.maxDate?.value)
return date.isValid() ? date : null
},
getMinDate() {
let date = dayjs(this.$refs.minDate?.value)
return date.isValid() ? date : null
},
getSelectedDate() {
if (this.state === undefined) {
return null
}
if (this.state === null) {
return null
}
let date = dayjs(this.state)
if (!date.isValid()) {
return null
}
return date
},
getDefaultFocusedDate() {
if (this.defaultFocusedDate === null) {
return null
}
let defaultFocusedDate = dayjs(this.defaultFocusedDate)
if (!defaultFocusedDate.isValid()) {
return null
}
return defaultFocusedDate
},
togglePanelVisibility() {
if (!this.isOpen()) {
this.focusedDate =
this.getSelectedDate() ??
this.focusedDate ??
this.getMinDate() ??
dayjs().tz(timezone)
this.setupDaysGrid()
}
this.$refs.panel.toggle(this.$refs.button)
},
selectDate(day = null) {
if (day) {
this.setFocusedDay(day)
}
this.focusedDate ??= dayjs().tz(timezone)
this.setState(this.focusedDate)
if (shouldCloseOnDateSelection) {
this.togglePanelVisibility()
}
},
setDisplayText() {
this.displayText = this.getSelectedDate()
? this.getSelectedDate().format(displayFormat)
: ''
},
setMonths() {
this.months = dayjs.months()
},
setDayLabels() {
this.dayLabels = this.getDayLabels()
},
setupDaysGrid() {
this.focusedDate ??= dayjs().tz(timezone)
this.emptyDaysInFocusedMonth = Array.from(
{
length: this.focusedDate.date(8 - firstDayOfWeek).day(),
},
(_, i) => i + 1,
)
this.daysInFocusedMonth = Array.from(
{
length: this.focusedDate.daysInMonth(),
},
(_, i) => i + 1,
)
},
setFocusedDay(day) {
this.focusedDate = (this.focusedDate ?? dayjs().tz(timezone)).date(
day,
)
},
setState(date) {
if (date === null) {
this.state = null
this.setDisplayText()
return
}
if (this.dateIsDisabled(date)) {
return
}
this.state = date
.hour(this.hour ?? 0)
.minute(this.minute ?? 0)
.second(this.second ?? 0)
.format('YYYY-MM-DD HH:mm:ss')
this.setDisplayText()
},
isOpen() {
return this.$refs.panel?.style.display === 'block'
},
}
}
const locales = {
am: require('dayjs/locale/am'),
ar: require('dayjs/locale/ar'),
bs: require('dayjs/locale/bs'),
ca: require('dayjs/locale/ca'),
ckb: require('dayjs/locale/ku'),
cs: require('dayjs/locale/cs'),
cy: require('dayjs/locale/cy'),
da: require('dayjs/locale/da'),
de: require('dayjs/locale/de'),
el: require('dayjs/locale/el'),
en: require('dayjs/locale/en'),
es: require('dayjs/locale/es'),
et: require('dayjs/locale/et'),
fa: require('dayjs/locale/fa'),
fi: require('dayjs/locale/fi'),
fr: require('dayjs/locale/fr'),
hi: require('dayjs/locale/hi'),
hu: require('dayjs/locale/hu'),
hy: require('dayjs/locale/hy-am'),
id: require('dayjs/locale/id'),
it: require('dayjs/locale/it'),
ja: require('dayjs/locale/ja'),
ka: require('dayjs/locale/ka'),
km: require('dayjs/locale/km'),
ku: require('dayjs/locale/ku'),
lt: require('dayjs/locale/lt'),
lv: require('dayjs/locale/lv'),
ms: require('dayjs/locale/ms'),
my: require('dayjs/locale/my'),
nb: require('dayjs/locale/nb'),
nl: require('dayjs/locale/nl'),
pl: require('dayjs/locale/pl'),
pt: require('dayjs/locale/pt'),
pt_BR: require('dayjs/locale/pt-br'),
ro: require('dayjs/locale/ro'),
ru: require('dayjs/locale/ru'),
sl: require('dayjs/locale/sl'),
sr_Cyrl: require('dayjs/locale/sr-cyrl'),
sr_Latn: require('dayjs/locale/sr'),
sv: require('dayjs/locale/sv'),
th: require('dayjs/locale/th'),
tr: require('dayjs/locale/tr'),
uk: require('dayjs/locale/uk'),
ur: require('dayjs/locale/ur'),
vi: require('dayjs/locale/vi'),
zh_CN: require('dayjs/locale/zh-cn'),
zh_HK: require('dayjs/locale/zh-hk'),
zh_TW: require('dayjs/locale/zh-tw'),
}
@@ -0,0 +1,849 @@
import * as FilePond from 'filepond'
import Cropper from 'cropperjs'
import mime from 'mime'
import FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size'
import FilePondPluginFileValidateType from 'filepond-plugin-file-validate-type'
import FilePondPluginImageCrop from 'filepond-plugin-image-crop'
import FilePondPluginImageEdit from 'filepond-plugin-image-edit'
import FilePondPluginImageExifOrientation from 'filepond-plugin-image-exif-orientation'
import FilePondPluginImagePreview from 'filepond-plugin-image-preview'
import FilePondPluginImageResize from 'filepond-plugin-image-resize'
import FilePondPluginImageTransform from 'filepond-plugin-image-transform'
import FilePondPluginMediaPreview from 'filepond-plugin-media-preview'
FilePond.registerPlugin(FilePondPluginFileValidateSize)
FilePond.registerPlugin(FilePondPluginFileValidateType)
FilePond.registerPlugin(FilePondPluginImageCrop)
FilePond.registerPlugin(FilePondPluginImageEdit)
FilePond.registerPlugin(FilePondPluginImageExifOrientation)
FilePond.registerPlugin(FilePondPluginImagePreview)
FilePond.registerPlugin(FilePondPluginImageResize)
FilePond.registerPlugin(FilePondPluginImageTransform)
FilePond.registerPlugin(FilePondPluginMediaPreview)
window.FilePond = FilePond
export default function fileUploadFormComponent({
acceptedFileTypes,
imageEditorEmptyFillColor,
imageEditorMode,
imageEditorViewportHeight,
imageEditorViewportWidth,
deleteUploadedFileUsing,
isDeletable,
isDisabled,
getUploadedFilesUsing,
imageCropAspectRatio,
imagePreviewHeight,
imageResizeMode,
imageResizeTargetHeight,
imageResizeTargetWidth,
imageResizeUpscale,
isAvatar,
hasImageEditor,
hasCircleCropper,
canEditSvgs,
isSvgEditingConfirmed,
confirmSvgEditingMessage,
disabledSvgEditingMessage,
isDownloadable,
isMultiple,
isOpenable,
isPasteable,
isPreviewable,
isReorderable,
itemPanelAspectRatio,
loadingIndicatorPosition,
locale,
maxFiles,
maxFilesValidationMessage,
maxSize,
minSize,
maxParallelUploads,
mimeTypeMap,
panelAspectRatio,
panelLayout,
placeholder,
removeUploadedFileButtonPosition,
removeUploadedFileUsing,
reorderUploadedFilesUsing,
shouldAppendFiles,
shouldOrientImageFromExif,
shouldTransformImage,
state,
uploadButtonPosition,
uploadingMessage,
uploadProgressIndicatorPosition,
uploadUsing,
}) {
return {
fileKeyIndex: {},
pond: null,
shouldUpdateState: true,
state,
lastState: null,
error: null,
uploadedFileIndex: {},
isEditorOpen: false,
editingFile: {},
currentRatio: '',
editor: {},
async init() {
FilePond.setOptions(locales[locale] ?? locales['en'])
this.pond = FilePond.create(this.$refs.input, {
acceptedFileTypes,
allowImageExifOrientation: shouldOrientImageFromExif,
allowPaste: isPasteable,
allowRemove: isDeletable,
allowReorder: isReorderable,
allowImagePreview: isPreviewable,
allowVideoPreview: isPreviewable,
allowAudioPreview: isPreviewable,
allowImageTransform: shouldTransformImage,
credits: false,
files: await this.getFiles(),
imageCropAspectRatio,
imagePreviewHeight,
imageResizeTargetHeight,
imageResizeTargetWidth,
imageResizeMode,
imageResizeUpscale,
imageTransformOutputStripImageHead: false,
itemInsertLocation: shouldAppendFiles ? 'after' : 'before',
...(placeholder && { labelIdle: placeholder }),
maxFiles,
fileAttachmentsMaxFileSize: maxSize,
minFileSize: minSize,
...(maxParallelUploads && { maxParallelUploads }),
styleButtonProcessItemPosition: uploadButtonPosition,
styleButtonRemoveItemPosition: removeUploadedFileButtonPosition,
styleItemPanelAspectRatio: itemPanelAspectRatio,
styleLoadIndicatorPosition: loadingIndicatorPosition,
stylePanelAspectRatio: panelAspectRatio,
stylePanelLayout: panelLayout,
styleProgressIndicatorPosition: uploadProgressIndicatorPosition,
server: {
load: async (source, load) => {
let response = await fetch(source, {
cache: 'no-store',
})
let blob = await response.blob()
load(blob)
},
process: (
fieldName,
file,
metadata,
load,
error,
progress,
) => {
this.shouldUpdateState = false
let fileKey = (
[1e7] +
-1e3 +
-4e3 +
-8e3 +
-1e11
).replace(/[018]/g, (c) =>
(
c ^
(crypto.getRandomValues(new Uint8Array(1))[0] &
(15 >> (c / 4)))
).toString(16),
)
uploadUsing(
fileKey,
file,
(fileKey) => {
this.shouldUpdateState = true
load(fileKey)
},
error,
progress,
)
},
remove: async (source, load) => {
let fileKey = this.uploadedFileIndex[source] ?? null
if (!fileKey) {
return
}
await deleteUploadedFileUsing(fileKey)
load()
},
revert: async (uniqueFileId, load) => {
await removeUploadedFileUsing(uniqueFileId)
load()
},
},
allowImageEdit: hasImageEditor,
imageEditEditor: {
open: (file) => this.loadEditor(file),
onconfirm: () => {},
oncancel: () => this.closeEditor(),
onclose: () => this.closeEditor(),
},
fileValidateTypeDetectType: (source, detectedType) => {
return new Promise((resolve, reject) => {
const extension = source.name
.split('.')
.pop()
.toLowerCase()
const mimeType =
mimeTypeMap[extension] ||
detectedType ||
mime.getType(extension)
mimeType ? resolve(mimeType) : reject()
})
},
})
this.$watch('state', async () => {
if (!this.pond) {
return
}
if (!this.shouldUpdateState) {
return
}
if (this.state === undefined) {
return
}
// We don't want to overwrite the files that are already in the input, if they haven't been saved yet.
if (
this.state !== null &&
Object.values(this.state).filter((file) =>
file.startsWith('livewire-file:'),
).length
) {
this.lastState = null
return
}
// Don't do anything if the state hasn't changed
if (JSON.stringify(this.state) === this.lastState) {
return
}
this.lastState = JSON.stringify(this.state)
this.pond.files = await this.getFiles()
})
this.pond.on('reorderfiles', async (files) => {
const orderedFileKeys = files
.map((file) =>
file.source instanceof File
? file.serverId
: (this.uploadedFileIndex[file.source] ?? null),
) // file.serverId is null for a file that is not yet uploaded
.filter((fileKey) => fileKey)
await reorderUploadedFilesUsing(
shouldAppendFiles
? orderedFileKeys
: orderedFileKeys.reverse(),
)
})
this.pond.on('initfile', async (fileItem) => {
if (!isDownloadable) {
return
}
if (isAvatar) {
return
}
this.insertDownloadLink(fileItem)
})
this.pond.on('initfile', async (fileItem) => {
if (!isOpenable) {
return
}
if (isAvatar) {
return
}
this.insertOpenLink(fileItem)
})
this.pond.on('addfilestart', async (file) => {
this.error = null
if (file.status !== FilePond.FileStatus.PROCESSING_QUEUED) {
return
}
this.dispatchFormEvent('form-processing-started', {
message: uploadingMessage,
})
})
const handleFileProcessing = async () => {
if (
this.pond
.getFiles()
.filter(
(file) =>
file.status ===
FilePond.FileStatus.PROCESSING ||
file.status ===
FilePond.FileStatus.PROCESSING_QUEUED,
).length
) {
return
}
this.dispatchFormEvent('form-processing-finished')
}
this.pond.on('processfile', handleFileProcessing)
this.pond.on('processfileabort', handleFileProcessing)
this.pond.on('processfilerevert', handleFileProcessing)
this.pond.on('warning', (warning) => {
if (warning.body === 'Max files') {
this.error = maxFilesValidationMessage
}
})
if (panelLayout === 'compact circle') {
// The compact circle layout does not have enough space to render an error message inside the input.
// As such, we need to display the error message outside of the input, using the `error` Alpine.js
// property that is output as a message in the field's view.
this.pond.on('error', (error) => {
// FilePond has a weird English translation for the error message when a file of an unexpected
// type is uploaded, for example: `File of invalid type: Expects or image/*`. This is a
// hacky workaround to fix the message to be `File of invalid type: Expects image/*`.
this.error = `${error.main}: ${error.sub}`.replace(
'Expects or',
'Expects',
)
})
}
this.pond.on('removefile', () => (this.error = null))
},
destroy() {
this.destroyEditor()
FilePond.destroy(this.$refs.input)
this.pond = null
},
dispatchFormEvent(name, detail = {}) {
this.$el.closest('form')?.dispatchEvent(
new CustomEvent(name, {
composed: true,
cancelable: true,
detail,
}),
)
},
async getUploadedFiles() {
const uploadedFiles = await getUploadedFilesUsing()
this.fileKeyIndex = uploadedFiles ?? {}
this.uploadedFileIndex = Object.entries(this.fileKeyIndex)
.filter(([key, value]) => value?.url)
.reduce((obj, [key, value]) => {
obj[value.url] = key
return obj
}, {})
},
async getFiles() {
await this.getUploadedFiles()
let files = []
for (const uploadedFile of Object.values(this.fileKeyIndex)) {
if (!uploadedFile) {
continue
}
files.push({
source: uploadedFile.url,
options: {
type: 'local',
...(!uploadedFile.type ||
(isPreviewable &&
(/^audio/.test(uploadedFile.type) ||
/^image/.test(uploadedFile.type) ||
/^video/.test(uploadedFile.type)))
? {}
: {
file: {
name: uploadedFile.name,
size: uploadedFile.size,
type: uploadedFile.type,
},
}),
},
})
}
return shouldAppendFiles ? files : files.reverse()
},
insertDownloadLink(file) {
if (file.origin !== FilePond.FileOrigin.LOCAL) {
return
}
const anchor = this.getDownloadLink(file)
if (!anchor) {
return
}
document
.getElementById(`filepond--item-${file.id}`)
.querySelector('.filepond--file-info-main')
.prepend(anchor)
},
insertOpenLink(file) {
if (file.origin !== FilePond.FileOrigin.LOCAL) {
return
}
const anchor = this.getOpenLink(file)
if (!anchor) {
return
}
document
.getElementById(`filepond--item-${file.id}`)
.querySelector('.filepond--file-info-main')
.prepend(anchor)
},
getDownloadLink(file) {
let fileSource = file.source
if (!fileSource) {
return
}
const anchor = document.createElement('a')
anchor.className = 'filepond--download-icon'
anchor.href = fileSource
anchor.download = file.file.name
return anchor
},
getOpenLink(file) {
let fileSource = file.source
if (!fileSource) {
return
}
const anchor = document.createElement('a')
anchor.className = 'filepond--open-icon'
anchor.href = fileSource
anchor.target = '_blank'
return anchor
},
initEditor() {
if (isDisabled) {
return
}
if (!hasImageEditor) {
return
}
this.editor = new Cropper(this.$refs.editor, {
aspectRatio:
imageEditorViewportWidth / imageEditorViewportHeight,
autoCropArea: 1,
center: true,
crop: (event) => {
this.$refs.xPositionInput.value = Math.round(event.detail.x)
this.$refs.yPositionInput.value = Math.round(event.detail.y)
this.$refs.heightInput.value = Math.round(
event.detail.height,
)
this.$refs.widthInput.value = Math.round(event.detail.width)
this.$refs.rotationInput.value = event.detail.rotate
},
cropBoxResizable: true,
guides: true,
highlight: true,
responsive: true,
toggleDragModeOnDblclick: true,
viewMode: imageEditorMode,
wheelZoomRatio: 0.02,
})
},
closeEditor() {
this.editingFile = {}
this.isEditorOpen = false
this.destroyEditor()
},
fixImageDimensions(file, callback) {
if (file.type !== 'image/svg+xml') {
return callback(file)
}
const svgReader = new FileReader()
svgReader.onload = (event) => {
const svgElement = new DOMParser()
.parseFromString(event.target.result, 'image/svg+xml')
?.querySelector('svg')
if (!svgElement) {
return callback(file)
}
const viewBoxAttribute = ['viewBox', 'ViewBox', 'viewbox'].find(
(attribute) => svgElement.hasAttribute(attribute),
)
if (!viewBoxAttribute) {
return callback(file)
}
const viewBox = svgElement
.getAttribute(viewBoxAttribute)
.split(' ')
if (!viewBox || viewBox.length !== 4) {
return callback(file)
}
svgElement.setAttribute('width', parseFloat(viewBox[2]) + 'pt')
svgElement.setAttribute('height', parseFloat(viewBox[3]) + 'pt')
return callback(
new File(
[
new Blob(
[
new XMLSerializer().serializeToString(
svgElement,
),
],
{ type: 'image/svg+xml' },
),
],
file.name,
{
type: 'image/svg+xml',
_relativePath: '',
},
),
)
}
svgReader.readAsText(file)
},
loadEditor(file) {
if (isDisabled) {
return
}
if (!hasImageEditor) {
return
}
if (!file) {
return
}
const isFileSvg = file.type === 'image/svg+xml'
if (!canEditSvgs && isFileSvg) {
alert(disabledSvgEditingMessage)
return
}
if (
isSvgEditingConfirmed &&
isFileSvg &&
!confirm(confirmSvgEditingMessage)
) {
return
}
this.fixImageDimensions(file, (editingFile) => {
this.editingFile = editingFile
this.initEditor()
const reader = new FileReader()
reader.onload = (event) => {
this.isEditorOpen = true
setTimeout(
() => this.editor.replace(event.target.result),
200,
)
}
reader.readAsDataURL(file)
})
},
getRoundedCanvas(sourceCanvas) {
let width = sourceCanvas.width
let height = sourceCanvas.height
let canvas = document.createElement('canvas')
canvas.width = width
canvas.height = height
let context = canvas.getContext('2d')
context.imageSmoothingEnabled = true
context.drawImage(sourceCanvas, 0, 0, width, height)
context.globalCompositeOperation = 'destination-in'
context.beginPath()
context.ellipse(
width / 2,
height / 2,
width / 2,
height / 2,
0,
0,
2 * Math.PI,
)
context.fill()
return canvas
},
saveEditor() {
if (isDisabled) {
return
}
if (!hasImageEditor) {
return
}
let croppedCanvas = this.editor.getCroppedCanvas({
fillColor: imageEditorEmptyFillColor ?? 'transparent',
height: imageResizeTargetHeight,
imageSmoothingEnabled: true,
imageSmoothingQuality: 'high',
width: imageResizeTargetWidth,
})
if (hasCircleCropper) {
croppedCanvas = this.getRoundedCanvas(croppedCanvas)
}
croppedCanvas.toBlob(
(croppedImage) => {
if (isMultiple) {
this.pond.removeFile(
this.pond
.getFiles()
.find(
(uploadedFile) =>
uploadedFile.filename ===
this.editingFile.name,
)?.id,
{ revert: true },
)
}
this.$nextTick(() => {
this.shouldUpdateState = false
let editingFileName = this.editingFile.name.slice(
0,
this.editingFile.name.lastIndexOf('.'),
)
let editingFileExtension = this.editingFile.name
.split('.')
.pop()
if (editingFileExtension === 'svg') {
editingFileExtension = 'png'
}
const fileNameVersionRegex = /-v(\d+)/
if (fileNameVersionRegex.test(editingFileName)) {
editingFileName = editingFileName.replace(
fileNameVersionRegex,
(match, number) => {
const newNumber = Number(number) + 1
return `-v${newNumber}`
},
)
} else {
editingFileName += '-v1'
}
this.pond
.addFile(
new File(
[croppedImage],
`${editingFileName}.${editingFileExtension}`,
{
type:
this.editingFile.type ===
'image/svg+xml' ||
hasCircleCropper
? 'image/png'
: this.editingFile.type,
lastModified: new Date().getTime(),
},
),
)
.then(() => {
this.closeEditor()
})
.catch(() => {
this.closeEditor()
})
})
},
hasCircleCropper ? 'image/png' : this.editingFile.type,
)
},
destroyEditor() {
if (this.editor && typeof this.editor.destroy === 'function') {
this.editor.destroy()
}
this.editor = null
},
}
}
import am from 'filepond/locale/am-et'
import ar from 'filepond/locale/ar-ar'
import az from 'filepond/locale/az-az'
import ca from 'filepond/locale/ca-ca'
import ckb from 'filepond/locale/ku-ckb'
import cs from 'filepond/locale/cs-cz'
import da from 'filepond/locale/da-dk'
import de from 'filepond/locale/de-de'
import el from 'filepond/locale/el-el'
import en from 'filepond/locale/en-en'
import es from 'filepond/locale/es-es'
import fa from 'filepond/locale/fa_ir'
import fi from 'filepond/locale/fi-fi'
import fr from 'filepond/locale/fr-fr'
import he from 'filepond/locale/he-he'
import hr from 'filepond/locale/hr-hr'
import hu from 'filepond/locale/hu-hu'
import id from 'filepond/locale/id-id'
import it from 'filepond/locale/it-it'
import ja from 'filepond/locale/ja-ja'
import km from 'filepond/locale/km-km'
import ko from 'filepond/locale/ko-kr'
import lt from 'filepond/locale/lt-lt'
import lus from 'filepond/locale/lus-lus'
import lv from 'filepond/locale/lv-lv'
import nb from 'filepond/locale/no_nb'
import nl from 'filepond/locale/nl-nl'
import pl from 'filepond/locale/pl-pl'
import pt from 'filepond/locale/pt-pt'
import pt_BR from 'filepond/locale/pt-br'
import ro from 'filepond/locale/ro-ro'
import ru from 'filepond/locale/ru-ru'
import sk from 'filepond/locale/sk-sk'
import sv from 'filepond/locale/sv_se'
import tr from 'filepond/locale/tr-tr'
import uk from 'filepond/locale/uk-ua'
import vi from 'filepond/locale/vi-vi'
import zh_CN from 'filepond/locale/zh-cn'
import zh_HK from 'filepond/locale/zh-hk'
import zh_TW from 'filepond/locale/zh-tw'
const locales = {
am,
ar,
az,
ca,
ckb,
cs,
da,
de,
el,
en,
es,
fa,
fi,
fr,
he,
hr,
hu,
id,
it,
ja,
km,
ko,
lt,
lus,
lv,
nb,
nl,
pl,
pt,
pt_BR,
ro,
ru,
sk,
sv,
tr,
uk,
vi,
zh_CN,
zh_HK,
zh_TW,
}
@@ -0,0 +1,109 @@
export default function keyValueFormComponent({ state }) {
return {
state,
rows: [],
init() {
this.updateRows()
if (this.rows.length <= 0) {
this.rows.push({ key: '', value: '' })
} else {
this.updateState()
}
this.$watch('state', (state, oldState) => {
const getLength = (value) => {
if (value === null) {
return 0
}
if (Array.isArray(value)) {
return value.length
}
if (typeof value !== 'object') {
return 0
}
return Object.keys(value).length
}
if (getLength(state) === 0 && getLength(oldState) === 0) {
return
}
this.updateRows()
})
},
addRow() {
this.rows.push({ key: '', value: '' })
this.updateState()
},
deleteRow(index) {
this.rows.splice(index, 1)
if (this.rows.length <= 0) {
this.addRow()
}
this.updateState()
},
reorderRows(event) {
const rows = Alpine.raw(this.rows)
this.rows = []
const reorderedRow = rows.splice(event.oldIndex, 1)[0]
rows.splice(event.newIndex, 0, reorderedRow)
this.$nextTick(() => {
this.rows = rows
this.updateState()
})
},
// https://github.com/filamentphp/filament/issues/1107
// https://github.com/filamentphp/filament/issues/12824
updateRows() {
const state = Alpine.raw(this.state)
const mergedRows = state.map(({ key, value }) => ({ key, value }))
this.rows.forEach((row) => {
if (row.key === '' || row.key === null) {
mergedRows.push({
key: '',
value: row.value,
})
}
})
this.rows = mergedRows
},
updateState() {
let state = []
this.rows.forEach((row) => {
if (row.key === '' || row.key === null) {
return
}
state.push({
key: row.key,
value: row.value,
})
})
if (JSON.stringify(this.state) !== JSON.stringify(state)) {
this.state = state
}
},
}
}
@@ -0,0 +1,411 @@
window.CodeMirror = require('codemirror/lib/codemirror')
require('codemirror')
require('codemirror/addon/mode/overlay')
require('codemirror/addon/edit/continuelist')
require('codemirror/addon/display/placeholder')
require('codemirror/addon/selection/mark-selection')
require('codemirror/addon/search/searchcursor')
require('codemirror/mode/clike/clike')
require('codemirror/mode/cmake/cmake')
require('codemirror/mode/css/css')
require('codemirror/mode/diff/diff')
require('codemirror/mode/django/django')
require('codemirror/mode/dockerfile/dockerfile')
require('codemirror/mode/gfm/gfm')
require('codemirror/mode/go/go')
require('codemirror/mode/htmlmixed/htmlmixed')
require('codemirror/mode/http/http')
require('codemirror/mode/javascript/javascript')
require('codemirror/mode/jinja2/jinja2')
require('codemirror/mode/jsx/jsx')
require('codemirror/mode/markdown/markdown')
require('codemirror/mode/nginx/nginx')
require('codemirror/mode/pascal/pascal')
require('codemirror/mode/perl/perl')
require('codemirror/mode/php/php')
require('codemirror/mode/protobuf/protobuf')
require('codemirror/mode/python/python')
require('codemirror/mode/ruby/ruby')
require('codemirror/mode/rust/rust')
require('codemirror/mode/sass/sass')
require('codemirror/mode/shell/shell')
require('codemirror/mode/sql/sql')
require('codemirror/mode/stylus/stylus')
require('codemirror/mode/swift/swift')
require('codemirror/mode/vue/vue')
require('codemirror/mode/xml/xml')
require('codemirror/mode/yaml/yaml')
require('./markdown-editor/EasyMDE')
CodeMirror.commands.tabAndIndentMarkdownList = function (codemirror) {
var ranges = codemirror.listSelections()
var pos = ranges[0].head
var eolState = codemirror.getStateAfter(pos.line)
var inList = eolState.list !== false
if (inList) {
codemirror.execCommand('indentMore')
return
}
if (codemirror.options.indentWithTabs) {
codemirror.execCommand('insertTab')
return
}
var spaces = Array(codemirror.options.tabSize + 1).join(' ')
codemirror.replaceSelection(spaces)
}
CodeMirror.commands.shiftTabAndUnindentMarkdownList = function (codemirror) {
var ranges = codemirror.listSelections()
var pos = ranges[0].head
var eolState = codemirror.getStateAfter(pos.line)
var inList = eolState.list !== false
if (inList) {
codemirror.execCommand('indentLess')
return
}
if (codemirror.options.indentWithTabs) {
codemirror.execCommand('insertTab')
return
}
var spaces = Array(codemirror.options.tabSize + 1).join(' ')
codemirror.replaceSelection(spaces)
}
export default function markdownEditorFormComponent({
canAttachFiles,
isLiveDebounced,
isLiveOnBlur,
liveDebounce,
maxHeight,
minHeight,
placeholder,
setUpUsing,
state,
translations,
toolbarButtons,
uploadFileAttachmentUsing,
}) {
return {
editor: null,
state,
async init() {
// If the editor is inside a modal, wait for the modal transition to finish before initializing the editor.
// This is necessary to prevent the editor from being initialized before the modal is fully visible,
// which can cause it to render without any content.
if (this.$root.closest('.fi-modal')) {
await new Promise((resolve) => setTimeout(resolve, 300))
}
if (this.$root._editor) {
this.$root._editor.toTextArea()
this.$root._editor = null
}
this.$root._editor = this.editor = new EasyMDE({
autoDownloadFontAwesome: false,
autoRefresh: true,
autoSave: false,
element: this.$refs.editor,
imageAccept:
'image/png, image/jpeg, image/gif, image/avif, image/webp',
imageUploadFunction: uploadFileAttachmentUsing,
initialValue: this.state ?? '',
maxHeight,
minHeight,
placeholder,
previewImagesInEditor: true,
spellChecker: false,
status: [
{
className: 'upload-image',
defaultValue: '',
},
],
toolbar: this.getToolbar(),
uploadImage: canAttachFiles,
})
this.editor.codemirror.setOption(
'direction',
document.documentElement?.dir ?? 'ltr',
)
// When creating a link, highlight the URL instead of the label:
this.editor.codemirror.on('changes', (instance, changes) => {
try {
const lastChange = changes[changes.length - 1]
if (lastChange.origin === '+input') {
const urlPlaceholder = '(https://)'
const urlLineText =
lastChange.text[lastChange.text.length - 1]
if (
urlLineText.endsWith(urlPlaceholder) &&
urlLineText !== '[]' + urlPlaceholder
) {
const from = lastChange.from
const to = lastChange.to
const isSelectionMultiline =
lastChange.text.length > 1
const baseIndex = isSelectionMultiline ? 0 : from.ch
setTimeout(() => {
instance.setSelection(
{
line: to.line,
ch:
baseIndex +
urlLineText.lastIndexOf('(') +
1,
},
{
line: to.line,
ch:
baseIndex +
urlLineText.lastIndexOf(')'),
},
)
}, 25)
}
}
} catch (error) {
// Revert to original behavior.
}
})
this.editor.codemirror.on(
'change',
Alpine.debounce(() => {
if (!this.editor) {
return
}
this.state = this.editor.value()
if (isLiveDebounced) {
this.$wire.commit()
}
}, liveDebounce ?? 300),
)
if (isLiveOnBlur) {
this.editor.codemirror.on('blur', () => this.$wire.commit())
}
this.$watch('state', () => {
if (!this.editor) {
return
}
if (this.editor.codemirror.hasFocus()) {
return
}
Alpine.raw(this.editor).value(this.state ?? '')
})
if (setUpUsing) {
setUpUsing(this)
}
},
destroy() {
this.editor.cleanup()
this.editor = null
},
getToolbar() {
let toolbar = []
toolbarButtons.forEach((buttonGroup) => {
buttonGroup.forEach((button) =>
toolbar.push(this.getToolbarButton(button)),
)
if (buttonGroup.length > 0) {
toolbar.push('|')
}
})
if (toolbar[toolbar.length - 1] === '|') {
toolbar.pop()
}
return toolbar
},
getToolbarButton(name) {
if (name === 'bold') {
return this.getBoldToolbarButton()
}
if (name === 'italic') {
return this.getItalicToolbarButton()
}
if (name === 'strike') {
return this.getStrikeToolbarButton()
}
if (name === 'link') {
return this.getLinkToolbarButton()
}
if (name === 'heading') {
return this.getHeadingToolbarButton()
}
if (name === 'blockquote') {
return this.getBlockquoteToolbarButton()
}
if (name === 'codeBlock') {
return this.getCodeBlockToolbarButton()
}
if (name === 'bulletList') {
return this.getBulletListToolbarButton()
}
if (name === 'orderedList') {
return this.getOrderedListToolbarButton()
}
if (name === 'table') {
return this.getTableToolbarButton()
}
if (name === 'attachFiles') {
return this.getAttachFilesToolbarButton()
}
if (name === 'undo') {
return this.getUndoToolbarButton()
}
if (name === 'redo') {
return this.getRedoToolbarButton()
}
console.error(`Markdown editor toolbar button "${name}" not found.`)
},
getBoldToolbarButton() {
return {
name: 'bold',
action: EasyMDE.toggleBold,
title: translations.tools?.bold,
}
},
getItalicToolbarButton() {
return {
name: 'italic',
action: EasyMDE.toggleItalic,
title: translations.tools?.italic,
}
},
getStrikeToolbarButton() {
return {
name: 'strikethrough',
action: EasyMDE.toggleStrikethrough,
title: translations.tools?.strike,
}
},
getLinkToolbarButton() {
return {
name: 'link',
action: EasyMDE.drawLink,
title: translations.tools?.link,
}
},
getHeadingToolbarButton() {
return {
name: 'heading',
action: EasyMDE.toggleHeadingSmaller,
title: translations.tools?.heading,
}
},
getBlockquoteToolbarButton() {
return {
name: 'quote',
action: EasyMDE.toggleBlockquote,
title: translations.tools?.blockquote,
}
},
getCodeBlockToolbarButton() {
return {
name: 'code',
action: EasyMDE.toggleCodeBlock,
title: translations.tools?.code_block,
}
},
getBulletListToolbarButton() {
return {
name: 'unordered-list',
action: EasyMDE.toggleUnorderedList,
title: translations.tools?.bullet_list,
}
},
getOrderedListToolbarButton() {
return {
name: 'ordered-list',
action: EasyMDE.toggleOrderedList,
title: translations.tools?.ordered_list,
}
},
getTableToolbarButton() {
return {
name: 'table',
action: EasyMDE.drawTable,
title: translations.tools?.table,
}
},
getAttachFilesToolbarButton() {
return {
name: 'upload-image',
action: EasyMDE.drawUploadedImage,
title: translations.tools?.attach_files,
}
},
getUndoToolbarButton() {
return {
name: 'undo',
action: EasyMDE.undo,
title: translations.tools?.undo,
}
},
getRedoToolbarButton() {
return {
name: 'redo',
action: EasyMDE.redo,
title: translations.tools?.redo,
}
},
}
}
@@ -0,0 +1,361 @@
import { Editor } from '@tiptap/core'
import getExtensions from './rich-editor/extensions'
import { Selection } from '@tiptap/pm/state'
import { BubbleMenuPlugin } from '@tiptap/extension-bubble-menu'
export default function richEditorFormComponent({
acceptedFileTypes,
acceptedFileTypesValidationMessage,
activePanel,
canAttachFiles,
deleteCustomBlockButtonIconHtml,
editCustomBlockButtonIconHtml,
extensions,
key,
isDisabled,
isLiveDebounced,
isLiveOnBlur,
liveDebounce,
livewireId,
maxFileSize,
maxFileSizeValidationMessage,
mergeTags,
noMergeTagSearchResultsMessage,
placeholder,
state,
statePath,
textColors,
uploadingFileMessage,
floatingToolbars,
}) {
let editor
let eventListeners = []
let isDestroyed = false
return {
state,
activePanel,
editorSelection: { type: 'text', anchor: 1, head: 1 },
isUploadingFile: false,
fileValidationMessage: null,
shouldUpdateState: true,
editorUpdatedAt: Date.now(),
async init() {
editor = new Editor({
editable: !isDisabled,
element: this.$refs.editor,
extensions: await getExtensions({
acceptedFileTypes,
acceptedFileTypesValidationMessage,
canAttachFiles,
customExtensionUrls: extensions,
deleteCustomBlockButtonIconHtml,
editCustomBlockButtonIconHtml,
editCustomBlockUsing: (id, config) =>
this.$wire.mountAction(
'customBlock',
{
editorSelection: this.editorSelection,
id,
config,
mode: 'edit',
},
{ schemaComponent: key },
),
insertCustomBlockUsing: (id, dragPosition = null) =>
this.$wire.mountAction(
'customBlock',
{ id, dragPosition, mode: 'insert' },
{ schemaComponent: key },
),
key,
maxFileSize,
maxFileSizeValidationMessage,
mergeTags,
noMergeTagSearchResultsMessage,
placeholder,
statePath,
textColors,
uploadingFileMessage,
$wire: this.$wire,
floatingToolbars,
}),
content: this.state,
})
Object.keys(floatingToolbars).forEach((key) => {
const element = this.$refs[`floatingToolbar::${key}`]
if (!element) {
console.warn(`Floating toolbar [${key}] not found.`)
return
}
editor.registerPlugin(
BubbleMenuPlugin({
editor,
element,
pluginKey: `floatingToolbar::${key}`,
shouldShow: ({ editor }) =>
editor.isFocused && editor.isActive(key),
options: {
placement: 'bottom',
offset: 15,
},
}),
)
})
editor.on('create', () => {
this.editorUpdatedAt = Date.now()
})
const debouncedCommit = Alpine.debounce(() => {
if (!isDestroyed) {
this.$wire.commit()
}
}, liveDebounce ?? 300)
editor.on('update', ({ editor }) =>
this.$nextTick(() => {
if (isDestroyed) return
this.editorUpdatedAt = Date.now()
this.state = editor.getJSON()
this.shouldUpdateState = false
this.fileValidationMessage = null
if (isLiveDebounced) {
debouncedCommit()
}
}),
)
editor.on('selectionUpdate', ({ transaction }) => {
if (isDestroyed) return
this.editorUpdatedAt = Date.now()
this.editorSelection = transaction.selection.toJSON()
})
if (isLiveOnBlur) {
editor.on('blur', () => {
if (!isDestroyed) {
this.$wire.commit()
}
})
}
this.$watch('state', () => {
if (isDestroyed) return
if (!this.shouldUpdateState) {
this.shouldUpdateState = true
return
}
editor.commands.setContent(this.state)
})
const runCommandsHandler = (event) => {
if (event.detail.livewireId !== livewireId) {
return
}
if (event.detail.key !== key) {
return
}
this.runEditorCommands(event.detail)
}
window.addEventListener(
'run-rich-editor-commands',
runCommandsHandler,
)
eventListeners.push([
'run-rich-editor-commands',
runCommandsHandler,
])
const uploadingFileHandler = (event) => {
if (event.detail.livewireId !== livewireId) {
return
}
if (event.detail.key !== key) {
return
}
this.isUploadingFile = true
this.fileValidationMessage = null
event.stopPropagation()
}
window.addEventListener(
'rich-editor-uploading-file',
uploadingFileHandler,
)
eventListeners.push([
'rich-editor-uploading-file',
uploadingFileHandler,
])
const uploadedFileHandler = (event) => {
if (event.detail.livewireId !== livewireId) {
return
}
if (event.detail.key !== key) {
return
}
this.isUploadingFile = false
event.stopPropagation()
}
window.addEventListener(
'rich-editor-uploaded-file',
uploadedFileHandler,
)
eventListeners.push([
'rich-editor-uploaded-file',
uploadedFileHandler,
])
const validationMessageHandler = (event) => {
if (event.detail.livewireId !== livewireId) {
return
}
if (event.detail.key !== key) {
return
}
this.isUploadingFile = false
this.fileValidationMessage = event.detail.validationMessage
event.stopPropagation()
}
window.addEventListener(
'rich-editor-file-validation-message',
validationMessageHandler,
)
eventListeners.push([
'rich-editor-file-validation-message',
validationMessageHandler,
])
window.dispatchEvent(
new CustomEvent(`schema-component-${livewireId}-${key}-loaded`),
)
},
getEditor() {
return editor
},
$getEditor() {
return this.getEditor()
},
setEditorSelection(selection) {
if (!selection) {
return
}
this.editorSelection = selection
editor
.chain()
.command(({ tr }) => {
tr.setSelection(
Selection.fromJSON(
editor.state.doc,
this.editorSelection,
),
)
return true
})
.run()
},
runEditorCommands({ commands, editorSelection }) {
this.setEditorSelection(editorSelection)
let commandChain = editor.chain()
commands.forEach(
(command) =>
(commandChain = commandChain[command.name](
...(command.arguments ?? []),
)),
)
commandChain.run()
},
togglePanel(id = null) {
if (this.isPanelActive(id)) {
this.activePanel = null
return
}
this.activePanel = id
},
isPanelActive(id = null) {
if (id === null) {
return this.activePanel !== null
}
return this.activePanel === id
},
insertMergeTag(id) {
editor
.chain()
.focus()
.insertContent([
{
type: 'mergeTag',
attrs: { id },
},
{
type: 'text',
text: ' ',
},
])
.run()
},
destroy() {
isDestroyed = true
eventListeners.forEach(([eventName, handler]) => {
window.removeEventListener(eventName, handler)
})
eventListeners = []
if (editor) {
editor.destroy()
editor = null
}
this.shouldUpdateState = true
},
}
}
@@ -0,0 +1,233 @@
import { mergeAttributes, Node, NodePos } from '@tiptap/core'
import { Node as ProseMirrorNode } from '@tiptap/pm/model'
import { Plugin, PluginKey } from '@tiptap/pm/state'
export default Node.create({
name: 'customBlock',
group: 'block',
atom: true,
defining: true,
draggable: true,
selectable: true,
isolating: true,
allowGapCursor: true,
inline: false,
addNodeView() {
return ({
editor,
node,
getPos,
HTMLAttributes,
decorations,
extension,
}) => {
const dom = document.createElement('div')
dom.setAttribute('data-config', node.attrs.config)
dom.setAttribute('data-id', node.attrs.id)
dom.setAttribute('data-type', 'customBlock')
const header = document.createElement('div')
header.className =
'fi-fo-rich-editor-custom-block-header fi-not-prose'
dom.appendChild(header)
if (
editor.isEditable &&
typeof node.attrs.config === 'object' &&
node.attrs.config !== null &&
Object.keys(node.attrs.config).length > 0
) {
const editButtonContainer = document.createElement('div')
editButtonContainer.className =
'fi-fo-rich-editor-custom-block-edit-btn-ctn'
header.appendChild(editButtonContainer)
const editButton = document.createElement('button')
editButton.className = 'fi-icon-btn'
editButton.type = 'button'
editButton.innerHTML =
extension.options.editCustomBlockButtonIconHtml
editButton.addEventListener('click', () =>
extension.options.editCustomBlockUsing(
node.attrs.id,
node.attrs.config,
),
)
editButtonContainer.appendChild(editButton)
}
const heading = document.createElement('p')
heading.className = 'fi-fo-rich-editor-custom-block-heading'
heading.textContent = node.attrs.label
header.appendChild(heading)
if (editor.isEditable) {
const deleteButtonContainer = document.createElement('div')
deleteButtonContainer.className =
'fi-fo-rich-editor-custom-block-delete-btn-ctn'
header.appendChild(deleteButtonContainer)
const deleteButton = document.createElement('button')
deleteButton.className = 'fi-icon-btn'
deleteButton.type = 'button'
deleteButton.innerHTML =
extension.options.deleteCustomBlockButtonIconHtml
deleteButton.addEventListener('click', () =>
editor
.chain()
.setNodeSelection(getPos())
.deleteSelection()
.run(),
)
deleteButtonContainer.appendChild(deleteButton)
}
if (node.attrs.preview) {
const preview = document.createElement('div')
preview.className =
'fi-fo-rich-editor-custom-block-preview fi-not-prose'
preview.innerHTML = new TextDecoder().decode(
Uint8Array.from(atob(node.attrs.preview), (char) =>
char.charCodeAt(0),
),
)
dom.appendChild(preview)
}
return {
dom,
}
}
},
addOptions() {
return {
deleteCustomBlockButtonIconHtml: null,
editCustomBlockButtonIconHtml: null,
editCustomBlockUsing: () => {},
insertCustomBlockUsing: () => {},
}
},
addAttributes() {
return {
config: {
default: null,
parseHTML: (element) =>
JSON.parse(element.getAttribute('data-config')),
},
id: {
default: null,
parseHTML: (element) => element.getAttribute('data-id'),
renderHTML: (attributes) => {
if (!attributes.id) {
return {}
}
return {
'data-id': attributes.id,
}
},
},
label: {
default: null,
parseHTML: (element) => element.getAttribute('data-label'),
rendered: false,
},
preview: {
default: null,
parseHTML: (element) => element.getAttribute('data-preview'),
rendered: false,
},
}
},
parseHTML() {
return [
{
tag: `div[data-type="${this.name}"]`,
},
]
},
renderHTML({ HTMLAttributes }) {
return ['div', mergeAttributes(HTMLAttributes)]
},
addKeyboardShortcuts() {
return {
Backspace: () =>
this.editor.commands.command(({ tr, state }) => {
let isCustomBlock = false
const { selection } = state
const { empty, anchor } = selection
if (!empty) {
return false
}
// Store node and position for later use
let customBlockNode = new ProseMirrorNode()
let customBlockPos = 0
state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
if (node.type.name === this.name) {
isCustomBlock = true
customBlockNode = node
customBlockPos = pos
return false
}
})
return isCustomBlock
}),
}
},
addProseMirrorPlugins() {
const { insertCustomBlockUsing } = this.options
return [
new Plugin({
props: {
handleDrop(view, event) {
if (!event) {
return false
}
event.preventDefault()
if (!event.dataTransfer.getData('customBlock')) {
return false
}
const customBlockId =
event.dataTransfer.getData('customBlock')
insertCustomBlockUsing(
customBlockId,
view.posAtCoords({
left: event.clientX,
top: event.clientY,
}).pos,
)
return false
},
},
}),
]
},
})
@@ -0,0 +1,58 @@
import { Node, mergeAttributes } from '@tiptap/core'
export default Node.create({
name: 'gridColumn',
content: 'block+',
isolating: true,
addOptions() {
return {
HTMLAttributes: {
class: 'grid-layout-col',
},
}
},
addAttributes() {
return {
'data-col-span': {
default: 1,
parseHTML: (element) => element.getAttribute('data-col-span'),
renderHTML: (attributes) => {
return {
'data-col-span': attributes['data-col-span'] ?? 1,
}
},
},
style: {
default: null,
parseHTML: (element) => element.getAttribute('style'),
renderHTML: (attributes) => {
return {
style: `grid-column: span ${attributes['data-col-span'] ?? 1};`,
}
},
},
}
},
parseHTML() {
return [
{
tag: 'div',
getAttrs: (node) =>
node.classList.contains('grid-layout-col') && null,
},
]
},
renderHTML({ HTMLAttributes }) {
return [
'div',
mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),
0,
]
},
})
@@ -0,0 +1,132 @@
import { mergeAttributes, Node } from '@tiptap/core'
import { TextSelection } from '@tiptap/pm/state'
export default Node.create({
name: 'grid',
group: 'block',
defining: true,
isolating: true,
allowGapCursor: false,
content: 'gridColumn+',
addOptions() {
return {
HTMLAttributes: {
class: 'grid-layout',
},
}
},
addAttributes() {
return {
'data-cols': {
default: 2,
parseHTML: (element) => element.getAttribute('data-cols'),
},
'data-from-breakpoint': {
default: 'md',
parseHTML: (element) =>
element.getAttribute('data-from-breakpoint'),
},
style: {
default: null,
parseHTML: (element) => element.getAttribute('style'),
renderHTML: (attributes) => {
return {
style: `grid-template-columns: repeat(${attributes['data-cols']}, 1fr)`,
}
},
},
}
},
parseHTML() {
return [
{
tag: 'div',
getAttrs: (node) =>
node.classList.contains('grid-layout') && null,
},
]
},
renderHTML({ HTMLAttributes }) {
return [
'div',
mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),
0,
]
},
addCommands() {
return {
insertGrid:
({
columns = [1, 1],
fromBreakpoint,
coordinates = null,
} = {}) =>
({ tr, dispatch, editor }) => {
const columnNodeType = editor.schema.nodes.gridColumn
const spans =
Array.isArray(columns) && columns.length
? columns
: [1, 1]
const columnNodes = []
for (let index = 0; index < spans.length; index += 1) {
columnNodes.push(
columnNodeType.createAndFill({
'data-col-span': Number(spans[index] ?? 1) || 1,
}),
)
}
const totalColumnsCount = spans
.map((v) => Number(v) || 1)
.reduce((a, b) => a + b, 0)
const node = editor.schema.nodes.grid.createChecked(
{
'data-cols': totalColumnsCount,
'data-from-breakpoint': fromBreakpoint,
},
columnNodes,
)
if (dispatch) {
const offset = tr.selection.anchor + 1
if (![null, undefined].includes(coordinates?.from)) {
tr.replaceRangeWith(
coordinates.from,
coordinates.to,
node,
)
.scrollIntoView()
.setSelection(
TextSelection.near(
tr.doc.resolve(coordinates.from),
),
)
} else {
tr.replaceSelectionWith(node)
.scrollIntoView()
.setSelection(
TextSelection.near(tr.doc.resolve(offset)),
)
}
}
return true
},
}
},
})
@@ -0,0 +1,23 @@
import Image from '@tiptap/extension-image'
export default Image.extend({
addAttributes() {
return {
...this.parent?.(),
id: {
default: null,
parseHTML: (element) => element.getAttribute('data-id'),
renderHTML: (attributes) => {
if (!attributes.id) {
return {}
}
return {
'data-id': attributes.id,
}
},
},
}
},
})
@@ -0,0 +1,44 @@
import { Node, mergeAttributes } from '@tiptap/core'
export default Node.create({
name: 'lead',
group: 'block',
content: 'block+',
addOptions() {
return {
HTMLAttributes: {
class: 'lead',
},
}
},
parseHTML() {
return [
{
tag: 'div',
getAttrs: (element) => element.classList.contains('lead'),
},
]
},
renderHTML({ HTMLAttributes }) {
return [
'div',
mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),
0,
]
},
addCommands() {
return {
toggleLead:
() =>
({ commands }) => {
return commands.toggleWrap(this.name)
},
}
},
})
@@ -0,0 +1,317 @@
import { Extension } from '@tiptap/core'
import { Plugin, PluginKey } from '@tiptap/pm/state'
const dispatchFormEvent = (editorView, name, detail = {}) => {
editorView.dom.closest('form')?.dispatchEvent(
new CustomEvent(name, {
composed: true,
cancelable: true,
detail,
}),
)
}
const validateFiles = ({
files,
acceptedTypes,
acceptedTypesValidationMessage,
maxSize,
maxSizeValidationMessage,
}) => {
for (const file of files) {
if (acceptedTypes && !acceptedTypes.includes(file.type)) {
return acceptedTypesValidationMessage
}
if (maxSize && file.size > +maxSize * 1024) {
return maxSizeValidationMessage
}
}
return null
}
const LocalFilesPlugin = ({
editor,
acceptedTypes,
acceptedTypesValidationMessage,
get$WireUsing,
key,
maxSize,
maxSizeValidationMessage,
statePath,
uploadingMessage,
}) => {
const getFileAttachmentUrl = (fileKey) =>
get$WireUsing().callSchemaComponentMethod(
key,
'getUploadedFileAttachmentTemporaryUrl',
{
attachment: fileKey,
},
)
return new Plugin({
key: new PluginKey('localFiles'),
props: {
handleDrop(editorView, event) {
if (!event.dataTransfer?.files.length) {
return false
}
const files = Array.from(event.dataTransfer.files)
const validationMessage = validateFiles({
files,
acceptedTypes,
acceptedTypesValidationMessage,
maxSize,
maxSizeValidationMessage,
})
if (validationMessage) {
editorView.dom.dispatchEvent(
new CustomEvent('rich-editor-file-validation-message', {
bubbles: true,
detail: {
key,
livewireId: get$WireUsing().id,
validationMessage,
},
}),
)
return false
}
if (!files.length) {
return false
}
dispatchFormEvent(editorView, 'form-processing-started', {
message: uploadingMessage,
})
event.preventDefault()
event.stopPropagation()
const position = editorView.posAtCoords({
left: event.clientX,
top: event.clientY,
})
files.forEach((file, fileIndex) => {
editor.setEditable(false)
editorView.dom.dispatchEvent(
new CustomEvent('rich-editor-uploading-file', {
bubbles: true,
detail: {
key,
livewireId: get$WireUsing().id,
},
}),
)
let fileKey = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(
/[018]/g,
(c) =>
(
c ^
(crypto.getRandomValues(new Uint8Array(1))[0] &
(15 >> (c / 4)))
).toString(16),
)
get$WireUsing().upload(
`componentFileAttachments.${statePath}.${fileKey}`,
file,
() => {
getFileAttachmentUrl(fileKey).then((url) => {
if (!url) {
return
}
editor
.chain()
.insertContentAt(position?.pos ?? 0, {
type: 'image',
attrs: {
id: fileKey,
src: url,
},
})
.run()
editor.setEditable(true)
editorView.dom.dispatchEvent(
new CustomEvent(
'rich-editor-uploaded-file',
{
bubbles: true,
detail: {
key,
livewireId: get$WireUsing().id,
},
},
),
)
if (fileIndex === files.length - 1) {
dispatchFormEvent(
editorView,
'form-processing-finished',
)
}
})
},
)
})
return true
},
handlePaste(editorView, event) {
if (!event.clipboardData?.files.length) {
return false
}
if (event.clipboardData?.getData('text').length) {
return false
}
const files = Array.from(event.clipboardData.files)
const validationMessage = validateFiles({
files,
acceptedTypes,
acceptedTypesValidationMessage,
maxSize,
maxSizeValidationMessage,
})
if (validationMessage) {
editorView.dom.dispatchEvent(
new CustomEvent('rich-editor-file-validation-message', {
bubbles: true,
detail: {
key,
livewireId: get$WireUsing().id,
validationMessage,
},
}),
)
return false
}
if (!files.length) {
return false
}
event.preventDefault()
event.stopPropagation()
dispatchFormEvent(editorView, 'form-processing-started', {
message: uploadingMessage,
})
files.forEach((file, fileIndex) => {
editor.setEditable(false)
editorView.dom.dispatchEvent(
new CustomEvent('rich-editor-uploading-file', {
bubbles: true,
detail: {
key,
livewireId: get$WireUsing().id,
},
}),
)
let fileKey = ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(
/[018]/g,
(c) =>
(
c ^
(crypto.getRandomValues(new Uint8Array(1))[0] &
(15 >> (c / 4)))
).toString(16),
)
get$WireUsing().upload(
`componentFileAttachments.${statePath}.${fileKey}`,
file,
() => {
getFileAttachmentUrl(fileKey).then((url) => {
if (!url) {
return
}
editor
.chain()
.insertContentAt(
editor.state.selection.anchor,
{
type: 'image',
attrs: {
id: fileKey,
src: url,
},
},
)
.run()
editor.setEditable(true)
editorView.dom.dispatchEvent(
new CustomEvent(
'rich-editor-uploaded-file',
{
bubbles: true,
detail: {
key,
livewireId: get$WireUsing().id,
},
},
),
)
if (fileIndex === files.length - 1) {
dispatchFormEvent(
editorView,
'form-processing-finished',
)
}
})
},
)
})
return true
},
},
})
}
export default Extension.create({
name: 'localFiles',
addOptions() {
return {
acceptedTypes: [],
acceptedTypesValidationMessage: null,
key: null,
maxSize: null,
maxSizeValidationMessage: null,
statePath: null,
uploadingMessage: null,
get$WireUsing: null,
}
},
addProseMirrorPlugins() {
return [
LocalFilesPlugin({
editor: this.editor,
...this.options,
}),
]
},
})
@@ -0,0 +1,279 @@
import { mergeAttributes, Node } from '@tiptap/core'
import { Node as ProseMirrorNode } from '@tiptap/pm/model'
import { Plugin, PluginKey } from '@tiptap/pm/state'
import Suggestion from '@tiptap/suggestion'
const getSuggestionOptions = function ({
editor: tiptapEditor,
overrideSuggestionOptions,
extensionName,
}) {
const pluginKey = new PluginKey()
return {
editor: tiptapEditor,
char: '{{',
pluginKey,
command: ({ editor, range, props }) => {
// increase range.to by one when the next node is of type "text"
// and starts with a space character
const nodeAfter = editor.view.state.selection.$to.nodeAfter
const overrideSpace = nodeAfter?.text?.startsWith(' ')
if (overrideSpace) {
range.to += 1
}
editor
.chain()
.focus()
.insertContentAt(range, [
{
type: extensionName,
attrs: { ...props },
},
{
type: 'text',
text: ' ',
},
])
.run()
// get reference to `window` object from editor element, to support cross-frame JS usage
editor.view.dom.ownerDocument.defaultView
?.getSelection()
?.collapseToEnd()
},
allow: ({ state, range }) => {
const $from = state.doc.resolve(range.from)
const type = state.schema.nodes[extensionName]
const allow = !!$from.parent.type.contentMatch.matchType(type)
return allow
},
...overrideSuggestionOptions,
}
}
export default Node.create({
name: 'mergeTag',
priority: 101,
addStorage() {
return {
mergeTags: [],
suggestions: [],
getSuggestionFromChar: () => null,
}
},
addOptions() {
return {
HTMLAttributes: {},
renderText({ node }) {
return `{{ ${this.mergeTags[node.attrs.id]} }}`
},
deleteTriggerWithBackspace: false,
renderHTML({ options, node }) {
return [
'span',
mergeAttributes(
this.HTMLAttributes,
options.HTMLAttributes,
),
`${this.mergeTags[node.attrs.id]}`,
]
},
suggestions: [],
suggestion: {},
}
},
group: 'inline',
inline: true,
selectable: false,
atom: true,
addAttributes() {
return {
id: {
default: null,
parseHTML: (element) => element.getAttribute('data-id'),
renderHTML: (attributes) => {
if (!attributes.id) {
return {}
}
return {
'data-id': attributes.id,
}
},
},
}
},
parseHTML() {
return [
{
tag: `span[data-type="${this.name}"]`,
},
]
},
renderHTML({ node, HTMLAttributes }) {
// We cannot use the `this.storage` property here because, when accessed this method,
// it returns the initial value of the extension storage
const suggestion =
this.editor?.extensionStorage?.[this.name]?.getSuggestionFromChar(
'{{',
)
const mergedOptions = { ...this.options }
mergedOptions.HTMLAttributes = mergeAttributes(
{ 'data-type': this.name },
this.options.HTMLAttributes,
HTMLAttributes,
)
const html = this.options.renderHTML({
options: mergedOptions,
node,
suggestion,
})
if (typeof html === 'string') {
return [
'span',
mergeAttributes(
{ 'data-type': this.name },
this.options.HTMLAttributes,
HTMLAttributes,
),
html,
]
}
return html
},
renderText({ node }) {
const args = {
options: this.options,
node,
suggestion:
this.editor?.extensionStorage?.[
this.name
]?.getSuggestionFromChar('{{'),
}
return this.options.renderText(args)
},
addKeyboardShortcuts() {
return {
Backspace: () =>
this.editor.commands.command(({ tr, state }) => {
let isMergeTag = false
const { selection } = state
const { empty, anchor } = selection
if (!empty) {
return false
}
// Store node and position for later use
let mergeTagNode = new ProseMirrorNode()
let mergeTagPos = 0
state.doc.nodesBetween(anchor - 1, anchor, (node, pos) => {
if (node.type.name === this.name) {
isMergeTag = true
mergeTagNode = node
mergeTagPos = pos
return false
}
})
if (isMergeTag) {
tr.insertText(
this.options.deleteTriggerWithBackspace ? '' : '{{',
mergeTagPos,
mergeTagPos + mergeTagNode.nodeSize,
)
}
return isMergeTag
}),
}
},
addProseMirrorPlugins() {
return [
...this.storage.suggestions.map(Suggestion), // Create a plugin for each suggestion configuration
new Plugin({
props: {
handleDrop(view, event) {
if (!event) {
return false
}
event.preventDefault()
if (!event.dataTransfer.getData('mergeTag')) {
return false
}
const mergeTagId =
event.dataTransfer.getData('mergeTag')
view.dispatch(
view.state.tr.insert(
view.posAtCoords({
left: event.clientX,
top: event.clientY,
}).pos,
view.state.schema.nodes.mergeTag.create({
id: mergeTagId,
}),
),
)
return false
},
},
}),
]
},
onBeforeCreate() {
this.storage.suggestions = (
this.options.suggestions.length
? this.options.suggestions
: [this.options.suggestion]
).map((suggestion) =>
getSuggestionOptions({
editor: this.editor,
overrideSuggestionOptions: suggestion,
extensionName: this.name,
}),
)
this.storage.getSuggestionFromChar = (char) => {
const suggestion = this.storage.suggestions.find(
(s) => s.char === char,
)
if (suggestion) {
return suggestion
}
if (this.storage.suggestions.length) {
return this.storage.suggestions[0]
}
return null
}
},
})
@@ -0,0 +1,37 @@
import { Mark } from '@tiptap/core'
export default Mark.create({
name: 'small',
parseHTML() {
return [
{
tag: 'small',
},
]
},
renderHTML({ HTMLAttributes }) {
return ['small', HTMLAttributes, 0]
},
addCommands() {
return {
setSmall:
() =>
({ commands }) => {
return commands.setMark(this.name)
},
toggleSmall:
() =>
({ commands }) => {
return commands.toggleMark(this.name)
},
unsetSmall:
() =>
({ commands }) => {
return commands.unsetMark(this.name)
},
}
},
})
@@ -0,0 +1,78 @@
import { Mark } from '@tiptap/core'
export default Mark.create({
name: 'textColor',
addOptions() {
return {
textColors: {},
}
},
parseHTML() {
return [
{
tag: 'span',
getAttrs: (element) => element.classList?.contains('color'),
},
]
},
renderHTML({ HTMLAttributes }) {
const attrs = { ...HTMLAttributes }
const existingClass = HTMLAttributes.class
attrs.class = ['color', existingClass].filter(Boolean).join(' ')
const colorName = HTMLAttributes['data-color']
const colors = this.options.textColors || {}
const config = colors[colorName]
const hasColorName =
typeof colorName === 'string' && colorName.length > 0
const cssVars = config
? `--color: ${config.color}; --dark-color: ${config.darkColor}`
: hasColorName
? `--color: ${colorName}; --dark-color: ${colorName}`
: null
if (cssVars) {
const existingStyle =
typeof HTMLAttributes.style === 'string'
? HTMLAttributes.style
: ''
attrs.style = existingStyle
? `${cssVars}; ${existingStyle}`
: cssVars
}
return ['span', attrs, 0]
},
addAttributes() {
return {
'data-color': {
default: null,
parseHTML: (element) => element.getAttribute('data-color'),
renderHTML: (attributes) => {
if (!attributes['data-color']) return {}
return { 'data-color': attributes['data-color'] }
},
},
}
},
addCommands() {
return {
setTextColor:
({ color }) =>
({ commands }) => {
return commands.setMark(this.name, { 'data-color': color })
},
unsetTextColor:
() =>
({ commands }) => {
return commands.unsetMark(this.name)
},
}
},
})
@@ -0,0 +1,197 @@
import { Dropcursor, Gapcursor, UndoRedo } from '@tiptap/extensions'
import Blockquote from '@tiptap/extension-blockquote'
import Bold from '@tiptap/extension-bold'
import Code from '@tiptap/extension-code'
import CodeBlock from '@tiptap/extension-code-block'
import CustomBlock from './extension-custom-block.js'
import {
Details,
DetailsSummary,
DetailsContent,
} from '@tiptap/extension-details'
import Document from '@tiptap/extension-document'
import Grid from './extension-grid.js'
import GridColumn from './extension-grid-column.js'
import HardBreak from '@tiptap/extension-hard-break'
import Heading from '@tiptap/extension-heading'
import Highlight from '@tiptap/extension-highlight'
import HorizontalRule from '@tiptap/extension-horizontal-rule'
import Italic from '@tiptap/extension-italic'
import Image from './extension-image.js'
import Lead from './extension-lead.js'
import Link from '@tiptap/extension-link'
import { BulletList, ListItem, OrderedList } from '@tiptap/extension-list'
import LocalFiles from './extension-local-files.js'
import MergeTag from './extension-merge-tag.js'
import Paragraph from '@tiptap/extension-paragraph'
import Placeholder from '@tiptap/extension-placeholder'
import Small from './extension-small.js'
import TextColor from './extension-text-color.js'
import Strike from '@tiptap/extension-strike'
import Subscript from '@tiptap/extension-subscript'
import Superscript from '@tiptap/extension-superscript'
import { TableKit } from '@tiptap/extension-table'
import Text from '@tiptap/extension-text'
import TextAlign from '@tiptap/extension-text-align'
import Underline from '@tiptap/extension-underline'
import getMergeTagSuggestion from './merge-tag-suggestion.js'
export default async ({
acceptedFileTypes,
acceptedFileTypesValidationMessage,
canAttachFiles,
customExtensionUrls,
deleteCustomBlockButtonIconHtml,
editCustomBlockButtonIconHtml,
editCustomBlockUsing,
insertCustomBlockUsing,
key,
maxFileSize,
maxFileSizeValidationMessage,
mergeTags,
noMergeTagSearchResultsMessage,
placeholder,
statePath,
textColors,
uploadingFileMessage,
$wire,
}) => {
const extensions = [
Blockquote,
Bold,
BulletList,
Code,
CodeBlock,
CustomBlock.configure({
deleteCustomBlockButtonIconHtml,
editCustomBlockButtonIconHtml,
editCustomBlockUsing,
insertCustomBlockUsing,
}),
Details,
DetailsSummary,
DetailsContent,
Document,
Dropcursor,
Gapcursor,
Grid,
GridColumn,
HardBreak,
Heading,
Highlight,
HorizontalRule,
Italic,
Image.configure({
inline: true,
}),
Lead,
Link.configure({
autolink: true,
openOnClick: false,
}),
ListItem,
...(canAttachFiles
? [
LocalFiles.configure({
acceptedTypes: acceptedFileTypes,
acceptedTypesValidationMessage:
acceptedFileTypesValidationMessage,
get$WireUsing: () => $wire,
key,
maxSize: maxFileSize,
maxSizeValidationMessage: maxFileSizeValidationMessage,
statePath,
uploadingMessage: uploadingFileMessage,
}),
]
: []),
...(Object.keys(mergeTags).length
? [
MergeTag.configure({
deleteTriggerWithBackspace: true,
suggestion: getMergeTagSuggestion({
mergeTags,
noMergeTagSearchResultsMessage,
}),
mergeTags,
}),
]
: []),
OrderedList,
Paragraph,
Placeholder.configure({
placeholder,
}),
TextColor.configure({
textColors,
}),
Small,
Strike,
Subscript,
Superscript,
TableKit.configure({
table: {
resizable: true,
},
}),
Text,
TextAlign.configure({
types: ['heading', 'paragraph'],
alignments: ['start', 'center', 'end', 'justify'],
defaultAlignment: 'start',
}),
Underline,
UndoRedo,
]
const loadedCustomExtensions = await Promise.all(
customExtensionUrls.map(async (url) => {
const absoluteUrlRegExp = new RegExp('^(?:[a-z+]+:)?//', 'i')
if (!absoluteUrlRegExp.test(url)) {
url = new URL(url, document.baseURI).href
}
try {
const factoryOrInstance = (await import(url)).default
return typeof factoryOrInstance === 'function'
? factoryOrInstance()
: factoryOrInstance
} catch (error) {
console.error(
`Failed to load rich editor custom extension from [${url}]:`,
error,
)
return null
}
}),
)
for (let customExtension of loadedCustomExtensions) {
if (!customExtension || !customExtension.name) {
continue
}
const existingIndex = extensions.findIndex(
(extension) => extension.name === customExtension.name,
)
if (
customExtension.name === 'placeholder' &&
customExtension.parent === null
) {
customExtension = Placeholder.configure(customExtension.options)
}
if (existingIndex !== -1) {
extensions[existingIndex] = customExtension
} else {
extensions.push(customExtension)
}
}
return extensions
}
@@ -0,0 +1,222 @@
import { computePosition, flip, shift } from '@floating-ui/dom'
const updatePosition = (editor, element) => {
const referenceElement = {
getBoundingClientRect: () => {
const { from, to } = editor.state.selection
const start = editor.view.coordsAtPos(from)
const end = editor.view.coordsAtPos(to)
return {
top: Math.min(start.top, end.top),
bottom: Math.max(start.bottom, end.bottom),
left: Math.min(start.left, end.left),
right: Math.max(start.right, end.right),
width: Math.abs(end.right - start.left),
height: Math.abs(end.bottom - start.top),
x: Math.min(start.left, end.left),
y: Math.min(start.top, end.top),
}
},
}
computePosition(referenceElement, element, {
placement: 'bottom-start',
strategy: 'absolute',
middleware: [shift(), flip()],
}).then(({ x, y, strategy }) => {
element.style.width = 'max-content'
element.style.position = strategy
element.style.left = `${x}px`
element.style.top = `${y}px`
})
}
export default ({ mergeTags, noMergeTagSearchResultsMessage }) => ({
items: ({ query }) => {
return Object.entries(mergeTags)
.filter(
([id, label]) =>
id
.toLowerCase()
.replace(/\s/g, '')
.includes(query.toLowerCase()) ||
label
.toLowerCase()
.replace(/\s/g, '')
.includes(query.toLowerCase()),
)
.map(([id, label]) => ({ id, label }))
},
render: () => {
let element
let selectedIndex = 0
let currentProps = null
const createDropdown = () => {
const dropdown = document.createElement('div')
dropdown.className = 'fi-dropdown-panel fi-dropdown-list'
return dropdown
}
const renderItems = () => {
if (!element || !currentProps) return
const items = currentProps.items || []
// Clear existing items
element.innerHTML = ''
if (items.length) {
items.forEach((item, index) => {
const button = document.createElement('button')
button.className = `fi-dropdown-list-item fi-dropdown-list-item-label ${index === selectedIndex ? 'fi-selected' : ''}`
button.textContent = item.label
button.type = 'button'
button.addEventListener('click', () => selectItem(index))
element.appendChild(button)
})
} else {
const noSearchResultsMessage = document.createElement('div')
noSearchResultsMessage.className = 'fi-dropdown-header'
noSearchResultsMessage.textContent =
noMergeTagSearchResultsMessage
element.appendChild(noSearchResultsMessage)
}
}
const selectItem = (index) => {
if (!currentProps) return
const items = currentProps.items || []
const item = items[index]
if (item) {
currentProps.command({ id: item.id })
}
}
const scrollToSelected = () => {
if (!element || !currentProps || currentProps.items.length === 0)
return
const selectedButton = element.children[selectedIndex]
if (selectedButton) {
const rect = selectedButton.getBoundingClientRect()
const containerRect = element.getBoundingClientRect()
if (
rect.top < containerRect.top ||
rect.bottom > containerRect.bottom
) {
selectedButton.scrollIntoView({ block: 'nearest' })
}
}
}
const upHandler = () => {
if (!currentProps) return
const items = currentProps.items || []
if (items.length === 0) return
selectedIndex = (selectedIndex + items.length - 1) % items.length
renderItems()
scrollToSelected()
}
const downHandler = () => {
if (!currentProps) return
const items = currentProps.items || []
if (items.length === 0) return
selectedIndex = (selectedIndex + 1) % items.length
renderItems()
scrollToSelected()
}
const enterHandler = () => {
selectItem(selectedIndex)
}
return {
onStart: (props) => {
// Store current props
currentProps = props
// Reset selected index when items change
selectedIndex = 0
// Create dropdown element
element = createDropdown()
element.style.position = 'absolute'
// Render initial items
renderItems()
// Append to DOM
document.body.appendChild(element)
if (!props.clientRect) {
return
}
updatePosition(props.editor, element)
},
onUpdate: (props) => {
// Store current props
currentProps = props
// Reset selected index when items change
selectedIndex = 0
// Update dropdown items
renderItems()
scrollToSelected()
if (!props.clientRect) {
return
}
updatePosition(props.editor, element)
},
onKeyDown: (props) => {
if (props.event.key === 'Escape') {
if (element && element.parentNode) {
element.parentNode.removeChild(element)
}
return true
}
if (props.event.key === 'ArrowUp') {
upHandler()
return true
}
if (props.event.key === 'ArrowDown') {
downHandler()
return true
}
if (props.event.key === 'Enter') {
enterHandler()
return true
}
return false
},
onExit: () => {
if (element && element.parentNode) {
element.parentNode.removeChild(element)
}
},
}
},
})
@@ -0,0 +1,96 @@
import { Select } from '../../../../support/resources/js/utilities/select.js'
export default function selectFormComponent({
canOptionLabelsWrap,
canSelectPlaceholder,
isHtmlAllowed,
getOptionLabelUsing,
getOptionLabelsUsing,
getOptionsUsing,
getSearchResultsUsing,
initialOptionLabel,
initialOptionLabels,
initialState,
isAutofocused,
isDisabled,
isMultiple,
isSearchable,
hasDynamicOptions,
hasDynamicSearchResults,
livewireId,
loadingMessage,
maxItems,
maxItemsMessage,
noSearchResultsMessage,
options,
optionsLimit,
placeholder,
position,
searchDebounce,
searchingMessage,
searchPrompt,
searchableOptionFields,
state,
statePath,
}) {
return {
select: null,
state,
init() {
this.select = new Select({
element: this.$refs.select,
options,
placeholder,
state: this.state,
canOptionLabelsWrap,
canSelectPlaceholder,
initialOptionLabel,
initialOptionLabels,
initialState,
isHtmlAllowed,
isAutofocused,
isDisabled,
isMultiple,
isSearchable,
getOptionLabelUsing,
getOptionLabelsUsing,
getOptionsUsing,
getSearchResultsUsing,
hasDynamicOptions,
hasDynamicSearchResults,
searchPrompt,
searchDebounce,
loadingMessage,
searchingMessage,
noSearchResultsMessage,
maxItems,
maxItemsMessage,
optionsLimit,
position,
searchableOptionFields,
livewireId,
statePath,
onStateChange: (newState) => {
this.state = newState
},
})
this.$watch('state', (newState) => {
if (this.select && this.select.state !== newState) {
this.select.state = newState
this.select.updateSelectedDisplay()
this.select.renderOptions()
}
})
},
destroy() {
if (this.select) {
this.select.destroy()
this.select = null
}
},
}
}
@@ -0,0 +1,85 @@
import noUiSlider from 'nouislider'
export default function sliderFormComponent({
arePipsStepped,
behavior,
decimalPlaces,
fillTrack,
isDisabled,
isRtl,
isVertical,
maxDifference,
minDifference,
maxValue,
minValue,
nonLinearPoints,
pipsDensity,
pipsFilter,
pipsFormatter,
pipsMode,
pipsValues,
rangePadding,
state,
step,
tooltips,
}) {
return {
state,
slider: null,
init() {
this.slider = noUiSlider.create(this.$el, {
behaviour: behavior,
direction: isRtl ? 'rtl' : 'ltr',
connect: fillTrack,
format: {
from: (value) => +value,
to: (value) =>
decimalPlaces !== null
? +value.toFixed(decimalPlaces)
: value,
},
limit: maxDifference,
margin: minDifference,
orientation: isVertical ? 'vertical' : 'horizontal',
padding: rangePadding,
pips: pipsMode
? {
density: pipsDensity ?? 10,
filter: pipsFilter,
format: pipsFormatter,
mode: pipsMode,
stepped: arePipsStepped,
values: pipsValues,
}
: null,
range: {
min: minValue,
...(nonLinearPoints ?? {}),
max: maxValue,
},
start: Alpine.raw(this.state),
step,
tooltips,
})
if (isDisabled) {
this.slider.disable()
}
this.slider.on('change', (values) => {
this.state = values.length > 1 ? values : values[0]
})
this.$watch('state', () => {
this.slider.set(Alpine.raw(this.state))
})
},
destroy() {
this.slider.destroy()
this.slider = null
},
}
}
@@ -0,0 +1,72 @@
export default function tagsInputFormComponent({ state, splitKeys }) {
return {
newTag: '',
state,
createTag() {
this.newTag = this.newTag.trim()
if (this.newTag === '') {
return
}
if (this.state.includes(this.newTag)) {
this.newTag = ''
return
}
this.state.push(this.newTag)
this.newTag = ''
},
deleteTag(tagToDelete) {
this.state = this.state.filter((tag) => tag !== tagToDelete)
},
reorderTags(event) {
const reordered = this.state.splice(event.oldIndex, 1)[0]
this.state.splice(event.newIndex, 0, reordered)
this.state = [...this.state]
},
input: {
['x-on:blur']: 'createTag()',
['x-model']: 'newTag',
['x-on:keydown'](event) {
if (['Enter', ...splitKeys].includes(event.key)) {
event.preventDefault()
event.stopPropagation()
this.createTag()
}
},
['x-on:paste']() {
this.$nextTick(() => {
if (splitKeys.length === 0) {
this.createTag()
return
}
const pattern = splitKeys
.map((key) =>
key.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&'),
)
.join('|')
this.newTag
.split(new RegExp(pattern, 'g'))
.forEach((tag) => {
this.newTag = tag
this.createTag()
})
})
},
},
}
}
@@ -0,0 +1,57 @@
export default function textareaFormComponent({
initialHeight,
shouldAutosize,
state,
}) {
return {
state,
wrapperEl: null,
init() {
this.wrapperEl = this.$el.parentNode
this.setInitialHeight()
if (shouldAutosize) {
this.$watch('state', () => {
this.resize()
})
} else {
this.setUpResizeObserver()
}
},
setInitialHeight() {
if (this.$el.scrollHeight <= 0) {
return
}
this.wrapperEl.style.height = initialHeight + 'rem'
},
resize() {
this.setInitialHeight()
if (this.$el.scrollHeight <= 0) {
return
}
const newHeight = this.$el.scrollHeight + 'px'
if (this.wrapperEl.style.height === newHeight) {
return
}
this.wrapperEl.style.height = newHeight
},
setUpResizeObserver() {
const observer = new ResizeObserver(() => {
this.wrapperEl.style.height = this.$el.style.height
})
observer.observe(this.$el)
},
}
}
@@ -0,0 +1,7 @@
import 'easymde/dist/easymde.min.css'
import 'cropperjs/dist/cropper.min.css'
import 'filepond/dist/filepond.min.css'
import 'filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css'
import 'filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css'
import 'filepond-plugin-media-preview/dist/filepond-plugin-media-preview.css'
import 'nouislider/dist/nouislider.css'
@@ -0,0 +1,442 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'ድገም',
],
'add' => [
'label' => 'ወደ :label ጨምር',
'modal' => [
'heading' => 'ወደ :label ጨምር',
'actions' => [
'add' => [
'label' => 'ጨምር',
],
],
],
],
'add_between' => [
'label' => 'በብሎኮች መካከል አስገባ',
'modal' => [
'heading' => 'ወደ :label ጨምር',
'actions' => [
'add' => [
'label' => 'ጨምር',
],
],
],
],
'delete' => [
'label' => 'አጥፋ',
],
'edit' => [
'label' => 'አድስ',
'modal' => [
'heading' => 'የማደሻ ክልል',
'actions' => [
'save' => [
'label' => 'ለውጦችን አኑር',
],
],
],
],
'reorder' => [
'label' => 'አንቀሳቅስ',
],
'move_down' => [
'label' => 'ወደ ታች አንቀሳቅስ',
],
'move_up' => [
'label' => 'ወደ ላይ አንቀሳቅስ',
],
'collapse' => [
'label' => 'ሰብስብ',
],
'expand' => [
'label' => 'ዘርጋ',
],
'collapse_all' => [
'label' => 'ሁሉንም ሰብስብ',
],
'expand_all' => [
'label' => 'ሁሉንም ዘርጋ',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'ሁሉንም አለመምረጥ',
],
'select_all' => [
'label' => 'ሁሉንም መምረጥ',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'ይቅር',
],
'drag_crop' => [
'label' => 'Drag mode "crop"',
],
'drag_move' => [
'label' => 'Drag mode "move"',
],
'flip_horizontal' => [
'label' => 'ምስሉን በአግድም ገልብጥ',
],
'flip_vertical' => [
'label' => '',
],
'move_down' => [
'label' => 'ምስሉን በአቀባዊ ገልብጥ',
],
'move_left' => [
'label' => 'ምስል ወደ ግራ ውሰድ',
],
'move_right' => [
'label' => 'ምስል ወደ ቀኝ ውሰድ',
],
'move_up' => [
'label' => 'ምስል ወደ ላይ ውሰድ',
],
'reset' => [
'label' => 'ዳግም አስጀምር',
],
'rotate_left' => [
'label' => 'ምስሉን ወደ ግራ አሽከርክር',
],
'rotate_right' => [
'label' => 'ምስሉን ወደ ቀኝ አሽከርክር',
],
'set_aspect_ratio' => [
'label' => 'ምስሉን ወደ :ratio መጥን',
],
'save' => [
'label' => 'አስቀምጥ',
],
'zoom_100' => [
'label' => 'ምስል ወደ 100% አሳድግ',
],
'zoom_in' => [
'label' => 'አሳንስ',
],
'zoom_out' => [
'label' => 'አሳድግ',
],
],
'fields' => [
'height' => [
'label' => 'ቁመት',
'unit' => 'px',
],
'rotation' => [
'label' => 'አዙር',
'unit' => 'ድግሪ',
],
'width' => [
'label' => 'ስፋት',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'ምጥጥነ ገጽታ',
'no_fixed' => [
'label' => 'ነጻ',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVG ፋይሎችን ማስተካከል አይመከርም ምክንያቱም የጥራት መጥፋት ሊያስከትል ስለሚችል ነው።\\n እርግጠኛ ነዎት መቀጠል ይፈልጋሉ?',
'disabled' => 'የ SVG ፋይሎችን ማስተካከል አክቲቭ አይደለም። ምክንያቱም የጥራት መጥፋትን ሊያስከትል ስለሚችል ነው።',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'ረድፍ ለመጨመር',
],
'delete' => [
'label' => 'ረድፍ አጥፋ',
],
'reorder' => [
'label' => 'ረድፍን እንደገና ደርድር',
],
],
'fields' => [
'key' => [
'label' => 'ስም',
],
'value' => [
'label' => 'ዋጋ',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'ፋይል ለማጣመር',
'blockquote' => 'ጥቅስ',
'bold' => 'ለማጉላት',
'bullet_list' => 'በነጥብ ዝርዝር',
'code_block' => 'Code block',
'heading' => 'ርዕስ',
'italic' => 'Italic',
'link' => 'ማስፈንጠርያ',
'ordered_list' => 'በቁጥር ዝርዝር',
'redo' => 'እንደገና',
'strike' => 'በላዩላይ ለማስመር',
'table' => 'ሰንጠረዝ',
'undo' => 'ይቅር(ወደኋላ)',
],
],
'radio' => [
'boolean' => [
'true' => 'አዎ',
'false' => 'ኣይ',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'ወደ :label ጨምር',
],
'add_between' => [
'label' => 'መካከል አስገባ',
],
'delete' => [
'label' => 'አጥፋ',
],
'clone' => [
'label' => 'ቅዳ',
],
'reorder' => [
'label' => 'አንቀሳቅስ',
],
'move_down' => [
'label' => 'ወደ ታች አንቀሳቅስ',
],
'move_up' => [
'label' => 'ወደ ላይ አንቀሳቅስ',
],
'collapse' => [
'label' => 'ሰብስብ',
],
'expand' => [
'label' => 'ዘርጋ',
],
'collapse_all' => [
'label' => 'ሁሉንም ሰብስብ',
],
'expand_all' => [
'label' => 'ሁሉንም ዘርጋ',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'አገናኝ',
'unlink' => 'አለያይ',
],
'label' => 'URL',
'placeholder' => 'URL አስገባ',
],
],
'tools' => [
'attach_files' => 'ፋይሎችን ያያይዙ',
'blockquote' => 'Blockquote',
'bold' => 'ለማጉላት',
'bullet_list' => 'በነጥብ ዝርዝር',
'code_block' => 'Code block',
'h1' => 'ዋና ርዕስ',
'h2' => 'ርዕስ',
'h3' => 'ንኡስ ርዕስ',
'italic' => 'Italic',
'link' => 'ማስፈንጠርያ',
'ordered_list' => 'በቁጥር ዝርዝር',
'redo' => 'እንደገና',
'strike' => 'በላዩላይ ለማስመር',
'underline' => 'ለማስመር',
'undo' => 'ይቅር(ወደኋላ)',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'መዝግብ',
'actions' => [
'create' => [
'label' => 'መዝግብ',
],
'create_another' => [
'label' => 'መዝግብና ሌላ ምዝገባ ጀምር',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'አድስ',
'actions' => [
'save' => [
'label' => 'አስቀምጥ',
],
],
],
],
],
'boolean' => [
'true' => 'አዎ',
'false' => 'ኣይ',
],
'loading_message' => 'በመጫን ላይ...',
'max_items_message' => 'መምረጥ የምቻለው :count ብቻ ነው።',
'no_search_results_message' => 'ከፍለጋዎ ጋር የሚዛመዱ አማራጮች የሉም።',
'placeholder' => 'ከአማራጮች ይምረጡ',
'searching_message' => 'በመፈለግ ላይ...',
'search_prompt' => 'ለመፈለግ መተየብ ይጀምሩ...',
],
'tags_input' => [
'placeholder' => 'አዲስ መለያ',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'የይለፍ ቃል ደብቅ',
],
'show_password' => [
'label' => 'የይለፍ ቃል አሳይ',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'አዎ',
'false' => 'ኣይ',
],
],
];
@@ -0,0 +1,9 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'በ:attribute መስክ ቢያንስ አንድ መመረጥ አለበት።',
'only_one_must_be_selected' => 'በ:attribute መስክ አንድ ብቻ ነው መመረጥ አለበት።',
],
];
@@ -0,0 +1,658 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'نسخ',
],
'add' => [
'label' => 'إضافة إلى :label',
'modal' => [
'heading' => 'إضافة إلى :label',
'actions' => [
'add' => [
'label' => 'إضافة',
],
],
],
],
'add_between' => [
'label' => 'إدراج بين الوحدات',
'modal' => [
'heading' => 'إضافة إلى :label',
'actions' => [
'add' => [
'label' => 'إضافة',
],
],
],
],
'delete' => [
'label' => 'حذف',
],
'edit' => [
'label' => 'تعديل',
'modal' => [
'heading' => 'تعديل القسم',
'actions' => [
'save' => [
'label' => 'حفظ التغييرات',
],
],
],
],
'reorder' => [
'label' => 'نقل',
],
'move_down' => [
'label' => 'تحريك لأسفل',
],
'move_up' => [
'label' => 'تحريك لأعلى',
],
'collapse' => [
'label' => 'طيّ',
],
'expand' => [
'label' => 'توسيع',
],
'collapse_all' => [
'label' => 'طيّ الكل',
],
'expand_all' => [
'label' => 'توسيع الكل',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'إلغاء تحديد الكل',
],
'select_all' => [
'label' => 'تحديد الكل',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'إلغاء',
],
'drag_crop' => [
'label' => 'وضع السحب "قص"',
],
'drag_move' => [
'label' => 'وضع السحب "تحريك"',
],
'flip_horizontal' => [
'label' => 'قلب الصورة أفقياً',
],
'flip_vertical' => [
'label' => 'قلب الصورة عمودياً',
],
'move_down' => [
'label' => 'تحريك الصورة لأسفل',
],
'move_left' => [
'label' => 'تحريك الصورة لليسار',
],
'move_right' => [
'label' => 'تحريك الصورة لليمين',
],
'move_up' => [
'label' => 'تحريك الصورة لأعلى',
],
'reset' => [
'label' => 'استعادة',
],
'rotate_left' => [
'label' => 'تدوير الصورة لليسار',
],
'rotate_right' => [
'label' => 'تدوير الصورة لليمين',
],
'set_aspect_ratio' => [
'label' => 'تعيين نسبة العرض للإرتفاع إلى :ratio',
],
'save' => [
'label' => 'حفظ',
],
'zoom_100' => [
'label' => 'تحجيم الصورة إلى 100%',
],
'zoom_in' => [
'label' => 'تكبير',
],
'zoom_out' => [
'label' => 'تصغير',
],
],
'fields' => [
'height' => [
'label' => 'الارتفاع',
'unit' => 'px',
],
'rotation' => [
'label' => 'الدوران',
'unit' => 'deg',
],
'width' => [
'label' => 'العرض',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'نسبة الأبعاد',
'no_fixed' => [
'label' => 'حر',
],
],
'svg' => [
'messages' => [
'confirmation' => 'لا يوصى بتحرير ملفات SVG لأنه قد يؤدي إلى فقدان الجودة عند تغيير الحجم.\n هل أنت متأكد من رغبتك في المتابعة؟',
'disabled' => 'تم تعطيل تحرير ملفات SVG لأنه قد يؤدي إلى فقدان الجودة عند تغيير الحجم.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'إضافة صف',
],
'delete' => [
'label' => 'حذف صف',
],
'reorder' => [
'label' => 'إعادة ترتيب الصف',
],
],
'fields' => [
'key' => [
'label' => 'المفتاح',
],
'value' => [
'label' => 'القيمة',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'يجب أن تكون الملفات المرفوعة من نوع: :values.',
'file_attachments_max_size_message' => 'يجب ألا يتجاوز حجم الملفات المرفوعة :max كيلوبايت.',
'tools' => [
'attach_files' => 'إرفاق ملفات',
'blockquote' => 'اقتباس',
'bold' => 'عريض',
'bullet_list' => 'قائمة نقطية',
'code_block' => 'نص برمجي',
'heading' => 'العناوين',
'italic' => 'مائل',
'link' => 'رابط تشعبي',
'ordered_list' => 'قائمة رقمية',
'redo' => 'إعادة',
'strike' => 'يتوسطه خط',
'table' => 'جدول',
'undo' => 'تراجع',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'تحديد',
'actions' => [
'select' => [
'label' => 'تحديد',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'نعم',
'false' => 'لا',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'إضافة إلى :label',
],
'add_between' => [
'label' => 'إدراج بين',
],
'delete' => [
'label' => 'حذف',
],
'clone' => [
'label' => 'نسخ',
],
'reorder' => [
'label' => 'نقل',
],
'move_down' => [
'label' => 'تحريك لأسفل',
],
'move_up' => [
'label' => 'تحريك لأعلى',
],
'collapse' => [
'label' => 'طيّ',
],
'expand' => [
'label' => 'توسيع',
],
'collapse_all' => [
'label' => 'طيّ الكل',
],
'expand_all' => [
'label' => 'توسيع الكل',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'رفع ملف',
'modal' => [
'heading' => 'رفع ملف',
'form' => [
'file' => [
'label' => [
'new' => 'الملف',
'existing' => 'استبدال الملف',
],
],
'alt' => [
'label' => [
'new' => 'النص البديل',
'existing' => 'تعديل النص البديل',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'إدراج',
],
'save' => [
'label' => 'حفظ',
],
],
],
],
'link' => [
'label' => 'تعديل',
'modal' => [
'heading' => 'رابط',
'form' => [
'url' => [
'label' => 'الرابط',
],
'should_open_in_new_tab' => [
'label' => 'فتح في تبويب جديد',
],
],
],
],
'text_color' => [
'label' => 'لون النص',
'modal' => [
'heading' => 'لون النص',
'form' => [
'color' => [
'label' => 'اللون',
],
'custom_color' => [
'label' => 'لون مخصص',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'يجب أن تكون الملفات المرفوعة من نوع: :values.',
'file_attachments_max_size_message' => 'يجب ألا يتجاوز حجم الملفات المرفوعة :max كيلوبايت.',
'no_merge_tag_search_results_message' => 'لا توجد نتائج لوسوم الدمج.',
'tools' => [
'align_center' => 'محاذاة للوسط',
'align_end' => 'محاذاة للنهاية',
'align_justify' => 'محاذاة للضبط',
'align_start' => 'محاذاة للبداية',
'attach_files' => 'إرفاق ملفات',
'blockquote' => 'إقتباس',
'bold' => 'عريض',
'bullet_list' => 'قائمة نقطية',
'clear_formatting' => 'مسح التنسيق',
'code' => 'كود',
'code_block' => 'نص برمجي',
'custom_blocks' => 'الكتل المخصصة',
'details' => 'التفاصيل',
'h1' => 'عنوان',
'h2' => 'عنوان رئيسي',
'h3' => 'عنوان فرعي',
'highlight' => 'تظليل',
'horizontal_rule' => 'خط أفقي',
'italic' => 'مائل',
'lead' => 'نص بارز',
'link' => 'رابط تشعبي',
'merge_tags' => 'حقول الدمج',
'ordered_list' => 'قائمة رقمية',
'redo' => 'إعادة',
'small' => 'نص صغير',
'strike' => 'خط في المنتصف',
'subscript' => 'نص سفلي',
'superscript' => 'نص علوي',
'table' => 'جدول',
'table_delete' => 'حذف الجدول',
'table_add_column_before' => 'إضافة عمود قبل',
'table_add_column_after' => 'إضافة عمود بعد',
'table_delete_column' => 'حذف العمود',
'table_add_row_before' => 'إضافة صف قبل',
'table_add_row_after' => 'إضافة صف بعد',
'table_delete_row' => 'حذف الصف',
'table_merge_cells' => 'دمج الخلايا',
'table_split_cell' => 'فصل الخلايا',
'table_toggle_header_row' => 'إظهار/إخفاء الترويسة',
'text_color' => 'لون النص',
'underline' => 'خط اسفل النص',
'undo' => 'تراجع',
],
'uploading_file_message' => 'جاري رفع الملف...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'إضافة',
'modal' => [
'heading' => 'إضافة',
'actions' => [
'create' => [
'label' => 'إضافة',
],
'create_another' => [
'label' => 'إضافة وبدء إضافة المزيد',
],
],
],
],
'edit_option' => [
'label' => 'تعديل',
'modal' => [
'heading' => 'تحرير',
'actions' => [
'save' => [
'label' => 'حفظ',
],
],
],
],
],
'boolean' => [
'true' => 'نعم',
'false' => 'لا',
],
'loading_message' => 'تحميل...',
'max_items_message' => 'يمكنك اختيار :count فقط.',
'no_search_results_message' => 'لا توجد خيارات تطابق بحثك.',
'placeholder' => 'اختر',
'searching_message' => 'جاري البحث...',
'search_prompt' => 'ابدأ بالكتابة للبحث...',
],
'tags_input' => [
'placeholder' => 'كلمة مفتاحية جديدة',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'نسخ',
'message' => 'تم النسخ',
],
'hide_password' => [
'label' => 'إخفاء كلمة المرور',
],
'show_password' => [
'label' => 'عرض كلمة المرور',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'نعم',
'false' => 'لا',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'يجب تحديد حقل :attribute واحد على الأقل.',
'only_one_must_be_selected' => 'يجب تحديد حقل :attribute واحد فقط.',
],
];
@@ -0,0 +1,495 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Klonla',
],
'add' => [
'label' => ':label əlavə et',
'modal' => [
'heading' => ':label əlavə et',
'actions' => [
'add' => [
'label' => 'əlavə et',
],
],
],
],
'add_between' => [
'label' => 'Bloklar arasına əlavə et',
'modal' => [
'heading' => ':label əlavə et',
'actions' => [
'add' => [
'label' => 'əlavə et',
],
],
],
],
'delete' => [
'label' => 'Sil',
],
'edit' => [
'label' => 'Dəyişdir',
'modal' => [
'heading' => 'Bloku redaktə et',
'actions' => [
'save' => [
'label' => 'Dəyişiklikləri yadda saxla',
],
],
],
],
'reorder' => [
'label' => 'Sırala',
],
'move_down' => [
'label' => 'Aşağı hərəkət etdir',
],
'move_up' => [
'label' => 'Yuxarı hərəkət etdir',
],
'collapse' => [
'label' => 'Kiçilt',
],
'expand' => [
'label' => 'Genişlət',
],
'collapse_all' => [
'label' => 'Hamısını kiçilt',
],
'expand_all' => [
'label' => 'Hamısını genişlət',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Heçbirini seçmə',
],
'select_all' => [
'label' => 'Hamısını seç',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'İmtina',
],
'drag_crop' => [
'label' => 'Kəsmə moduna sürüşdürün',
],
'drag_move' => [
'label' => 'Daşıma moduna sürüşdürün',
],
'flip_horizontal' => [
'label' => 'Şəkili üfüqi çevir',
],
'flip_vertical' => [
'label' => 'Şəkili şaquli çevir',
],
'move_down' => [
'label' => 'Şəkili aşağı hərəkət etdir',
],
'move_left' => [
'label' => 'Şəkili sola hərəkət etdir',
],
'move_right' => [
'label' => 'Şəkili sağa hərəkət etdir',
],
'move_up' => [
'label' => 'Şəkili yuxarı hərəkət etdir',
],
'reset' => [
'label' => 'Sıfırla',
],
'rotate_left' => [
'label' => 'Şəkili sola çevir',
],
'rotate_right' => [
'label' => 'Şəkili sağa çevir',
],
'set_aspect_ratio' => [
'label' => 'En uzun nisbətini :ratio et',
],
'save' => [
'label' => 'Yadda saxla',
],
'zoom_100' => [
'label' => 'Şəkili %100 yaxınlaşdır',
],
'zoom_in' => [
'label' => 'Yaxınlaşdır',
],
'zoom_out' => [
'label' => 'Uzaqlaşdır',
],
],
'fields' => [
'height' => [
'label' => 'Yüksəklik',
'unit' => 'px',
],
'rotation' => [
'label' => 'Çevirmə',
'unit' => '°',
],
'width' => [
'label' => 'Genişlik',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'En uzun nisbətləri',
'no_fixed' => [
'label' => 'Sərbəst',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVG fayllarını redaktə etmək tövsiyə edilmir, çünki miqyaslandırılarkən keyfiyyət itkisinə səbəb ola bilər.\n Davam etmək istədiyinizə əminsiniz.',
'disabled' => 'SVG fayllarını redaktə etmək deaktiv edilib, çünki miqyaslandırılarkən keyfiyyət itkisinə səbəb ola bilər.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Sətir əlavə et',
],
'delete' => [
'label' => 'Sətir sil',
],
'reorder' => [
'label' => 'Sətir sırala',
],
],
'fields' => [
'key' => [
'label' => 'Açar',
],
'value' => [
'label' => 'Dəyər',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Fayl əlavə et',
'blockquote' => 'Sitat',
'bold' => 'Qalın',
'bullet_list' => 'List',
'code_block' => 'Kod bloku',
'heading' => 'Başlıq',
'italic' => 'Əyik',
'link' => 'Keçid',
'ordered_list' => 'Nömrəli list',
'redo' => 'Təkrarla',
'strike' => 'Üstü xətli',
'table' => 'Cədvəl',
'undo' => 'Geri al',
],
],
'radio' => [
'boolean' => [
'true' => 'Bəli',
'false' => 'Xeyr',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => ':label\'e əlavə et',
],
'add_between' => [
'label' => 'Arasına daxil et',
],
'delete' => [
'label' => 'Sil',
],
'clone' => [
'label' => 'Klonla',
],
'reorder' => [
'label' => 'Sırala',
],
'move_down' => [
'label' => 'Aşağı hərəkət etdir',
],
'move_up' => [
'label' => 'Yuxarı hərəkət etdir',
],
'collapse' => [
'label' => 'Kiçilt',
],
'expand' => [
'label' => 'Genişlət',
],
'collapse_all' => [
'label' => 'Hamısını kiçilt',
],
'expand_all' => [
'label' => 'Hamısını genişlət',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Keçid',
'unlink' => 'Keçidi yığışdır',
],
'label' => 'URL',
'placeholder' => 'Bir URL daxil edin',
],
],
'tools' => [
'attach_files' => 'Fayl əlavə et',
'blockquote' => 'Sitat',
'bold' => 'Qalın',
'bullet_list' => 'Sırasız list',
'code_block' => 'Kod bloku',
'h1' => 'Başlıq',
'h2' => 'Başlıq 2',
'h3' => 'Alt başlıq',
'italic' => 'Əyik',
'link' => 'Keçid',
'ordered_list' => 'Sıralı list',
'redo' => 'Təkrarla',
'strike' => 'Üstü xətli',
'underline' => 'Altı xətli',
'undo' => 'Geri al',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Yarat',
'actions' => [
'create' => [
'label' => 'Yarat',
],
'create_another' => [
'label' => 'Yarat & başqasını yarat',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'Redaktə et',
'actions' => [
'save' => [
'label' => 'Yadda saxla',
],
],
],
],
],
'boolean' => [
'true' => 'Hə',
'false' => 'Yox',
],
'loading_message' => 'Yüklənir...',
'max_items_message' => 'Sadəcə :count seçiləbilər.',
'no_search_results_message' => 'Axtarışa uyğun seçim yoxdur.',
'placeholder' => 'Bir seçim seçin',
'searching_message' => 'Axtarılır...',
'search_prompt' => 'Axtarmaq üçün yazmağa başlayın...',
],
'tags_input' => [
'placeholder' => 'Yeni etiket',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Şifrəni gizlət',
],
'show_password' => [
'label' => 'Şifrəni göstər',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Bəli',
'false' => 'Xeyr',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Ən azı bir :attribute sahəsi seçilməlidir.',
'only_one_must_be_selected' => 'Yalnız bir :attribute sahəsi seçilməlidir',
],
];
@@ -0,0 +1,400 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Клонирай',
],
'add' => [
'label' => 'Добави към :label',
],
'add_between' => [
'label' => 'Вмъкни между блоковете',
],
'delete' => [
'label' => 'Изтриване',
],
'reorder' => [
'label' => 'Преместване',
],
'move_down' => [
'label' => 'Преместване надолу',
],
'move_up' => [
'label' => 'Преместване нагоре',
],
'collapse' => [
'label' => 'Свиване',
],
'expand' => [
'label' => 'Разширяване',
],
'collapse_all' => [
'label' => 'Свиване на всички',
],
'expand_all' => [
'label' => 'Разширяване на всички',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Отмаркирай всички',
],
'select_all' => [
'label' => 'Избери всички',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Отказ',
],
'drag_crop' => [
'label' => 'Влачене режим "изрязване"',
],
'drag_move' => [
'label' => 'Влачене режим "преместване"',
],
'flip_horizontal' => [
'label' => 'Обърни изображението хоризонтално',
],
'flip_vertical' => [
'label' => 'Обърни изображението вертикално',
],
'move_down' => [
'label' => 'Преместване надолу',
],
'move_left' => [
'label' => 'Преместване наляво',
],
'move_right' => [
'label' => 'Преместване надясно',
],
'move_up' => [
'label' => 'Преместване нагоре',
],
'reset' => [
'label' => 'Нулиране',
],
'rotate_left' => [
'label' => 'Завъртане на изображението наляво',
],
'rotate_right' => [
'label' => 'Завъртане на изображението надясно',
],
'set_aspect_ratio' => [
'label' => 'Задай съотношение на страните на :ratio',
],
'save' => [
'label' => 'Запазване',
],
'zoom_100' => [
'label' => 'Увеличение 100%',
],
'zoom_in' => [
'label' => 'Увеличаване',
],
'zoom_out' => [
'label' => 'Намаляне',
],
],
'fields' => [
'height' => [
'label' => 'Височина',
'unit' => 'px',
],
'rotation' => [
'label' => 'Ротация',
'unit' => 'deg',
],
'width' => [
'label' => 'Ширина',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Съотношение на страните',
'no_fixed' => [
'label' => 'Нефиксирано',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Добави ред',
],
'delete' => [
'label' => 'Изтрий ред',
],
'reorder' => [
'label' => 'Пренареди редове',
],
],
'fields' => [
'key' => [
'label' => 'Ключ',
],
'value' => [
'label' => 'Стойност',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Прикачи файлове',
'blockquote' => 'Цитат',
'bold' => 'Удебелен текст',
'bullet_list' => 'Списък с точки',
'code_block' => 'Код',
'heading' => 'Заглавие',
'italic' => 'Курсив',
'link' => 'Връзка',
'ordered_list' => 'Номериран списък',
'redo' => 'Повтори',
'strike' => 'Зачертан текст',
'table' => 'Таблица',
'undo' => 'Отмени',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Добави към :label',
],
'delete' => [
'label' => 'Изтриване',
],
'clone' => [
'label' => 'Клониране',
],
'reorder' => [
'label' => 'Преместване',
],
'move_down' => [
'label' => 'Преместване надолу',
],
'move_up' => [
'label' => 'Преместване нагоре',
],
'collapse' => [
'label' => 'Свиване',
],
'expand' => [
'label' => 'Разширяване',
],
'collapse_all' => [
'label' => 'Свиване на всички',
],
'expand_all' => [
'label' => 'Разширяване на всички',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Добави връзка',
'unlink' => 'Премахни връзка',
],
'label' => 'URL',
'placeholder' => 'Въведи URL',
],
],
'tools' => [
'attach_files' => 'Прикачи файлове',
'blockquote' => 'Цитат',
'bold' => 'Удебелен текст',
'bullet_list' => 'Списък с точки',
'code_block' => 'Код',
'h1' => 'Заглавие',
'h2' => 'Подзаглавие',
'h3' => 'Под-подзаглавие',
'italic' => 'Курсив',
'link' => 'Връзка',
'ordered_list' => 'Номериран списък',
'redo' => 'Повтори',
'strike' => 'Зачертан текст',
'underline' => 'Подчертан текст',
'undo' => 'Отмени',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Създаване на опция',
'actions' => [
'create' => [
'label' => 'Създаване',
],
'create_another' => [
'label' => 'Създаване и добавяне на друга',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'Редакция',
'actions' => [
'save' => [
'label' => 'Запазване',
],
],
],
],
],
'boolean' => [
'true' => 'Да',
'false' => 'Не',
],
'loading_message' => 'Зареждане...',
'max_items_message' => 'Само :count могат да бъдат избрани.',
'no_search_results_message' => 'Няма намерени резултати.',
'placeholder' => 'Избери опция',
'searching_message' => 'Търсене...',
'search_prompt' => 'Търсене...',
],
'tags_input' => [
'placeholder' => 'Нов таг',
],
];
@@ -0,0 +1,255 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'অনুলিপি করুন',
],
'add' => [
'label' => ':label এ যোগ করুন',
],
'add_between' => [
'label' => 'প্রবেশ করান',
],
'delete' => [
'label' => 'মুছে ফেলুন',
],
'reorder' => [
'label' => 'সরান',
],
'move_down' => [
'label' => 'নিচে সরান',
],
'move_up' => [
'label' => 'উপরে সরান',
],
'collapse' => [
'label' => 'ছোট করুন',
],
'expand' => [
'label' => 'বড় করুন',
],
'collapse_all' => [
'label' => 'সব ছোট করুন',
],
'expand_all' => [
'label' => 'সব বড় করুন',
],
],
],
'checkbox_list' => [
'actions' => [
'select_all' => [
'label' => 'সব নির্বাচিত করুন',
],
'deselect_all' => [
'label' => 'সব অনির্বাচিত করুন',
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'সারি যোগ করুন',
],
'delete' => [
'label' => 'সারি মুছে ফেলুন',
],
'reorder' => [
'label' => 'সারি পুনর্বিন্যাস করুন',
],
],
'fields' => [
'key' => [
'label' => 'চাবি',
],
'value' => [
'label' => 'মান',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'নথি যোগ করুন',
'bold' => 'বোল্ড',
'bullet_list' => 'বুলেট তালিকা',
'code_block' => 'কোড ব্লক',
'edit' => 'সম্পাদন',
'italic' => 'তির্যক',
'link' => 'লিংক',
'ordered_list' => 'সংখ্যাযুক্ত তালিকা',
'preview' => 'পূর্বরূপ',
'strike' => 'স্ট্রাইকথ্রু',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => ':label এ যোগ করুন',
],
'delete' => [
'label' => 'মুছে ফেলুন',
],
'clone' => [
'label' => 'অনুলিপি করুন',
],
'reorder' => [
'label' => 'সরান',
],
'move_down' => [
'label' => 'নিচে সরান',
],
'move_up' => [
'label' => 'উপরে সরান',
],
'collapse' => [
'label' => 'ছোট করুন',
],
'expand' => [
'label' => 'বড় করুন',
],
'collapse_all' => [
'label' => 'সব ছোট করুন',
],
'expand_all' => [
'label' => 'সব বড় করুন',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'লিংক',
'unlink' => 'আনলিংক',
],
'label' => 'ইউআরএল',
'placeholder' => 'ইউআরএল দিন',
],
],
'tools' => [
'attach_files' => 'নথি যোগ করুন',
'blockquote' => 'ব্লককোট',
'bold' => 'বোল্ড',
'bullet_list' => 'বুলেট তালিকা',
'code_block' => 'কোড ব্লক',
'h1' => 'শিরোনাম',
'h2' => 'শিরোনাম',
'h3' => 'উপশিরোনাম',
'italic' => 'তির্যক',
'link' => 'লিংক',
'ordered_list' => 'সংখ্যাযুক্ত তালিকা',
'redo' => 'পরবর্তী',
'strike' => 'স্ট্রাইকথ্রু',
'undo' => 'পূর্বাবস্থা',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'তৈরি করুন',
'actions' => [
'create' => [
'label' => 'তৈরি করুন',
],
],
],
],
],
'boolean' => [
'true' => 'হ্যাঁ',
'false' => 'না',
],
'loading_message' => 'লোড হচ্ছে...',
'max_items_message' => 'মাত্র :count টা নির্বাচন করা যাবে।',
'no_search_results_message' => 'খুঁজে পাওয়া যায় নি।',
'placeholder' => 'নির্বাচন করুন',
'searching_message' => 'খুঁজুন...',
'search_prompt' => 'লিখুন...',
],
'tags_input' => [
'placeholder' => 'নতুন ট্যাগ',
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'অন্তত একটি :attribute ক্ষেত্র নির্বাচিত হতে হবে।',
'only_one_must_be_selected' => 'শুধুমাত্র একটি :attribute ক্ষেত্র নির্বাচিত হতে হবে।',
],
];
@@ -0,0 +1,255 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Kloniraj',
],
'add' => [
'label' => 'Dodaj :label',
],
'add_between' => [
'label' => 'Ubaci',
],
'delete' => [
'label' => 'Izbriši',
],
'reorder' => [
'label' => 'Pomjeri',
],
'move_down' => [
'label' => 'Dolje',
],
'move_up' => [
'label' => 'Gore',
],
'collapse' => [
'label' => 'Sažimanje',
],
'expand' => [
'label' => 'Proširivanje',
],
'collapse_all' => [
'label' => 'Sažmi sve',
],
'expand_all' => [
'label' => 'Proširi sve',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Odznači sve',
],
'select_all' => [
'label' => 'Označi sve',
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Dodaj red',
],
'delete' => [
'label' => 'Izbriši red',
],
'reorder' => [
'label' => 'Preuredi red',
],
],
'fields' => [
'key' => [
'label' => 'Ključ',
],
'value' => [
'label' => 'Vrijednost',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Priloži fajlove',
'bold' => 'Bold',
'bullet_list' => 'Bullet list',
'code_block' => 'Blok koda',
'edit' => 'Uredi',
'italic' => 'Kurziv',
'link' => 'Link',
'ordered_list' => 'Numerisana lista',
'preview' => 'Prethodan pregled',
'strike' => 'Precrtano',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Dodaj :label',
],
'delete' => [
'label' => 'Izbriši',
],
'clone' => [
'label' => 'Kloniraj',
],
'reorder' => [
'label' => 'Pomjeriti',
],
'move_down' => [
'label' => 'Dolje',
],
'move_up' => [
'label' => 'Gore',
],
'collapse' => [
'label' => 'Sažimanje',
],
'expand' => [
'label' => 'Proširivanje',
],
'collapse_all' => [
'label' => 'Sažmi sve',
],
'expand_all' => [
'label' => 'Proširi sve',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Link',
'unlink' => 'Otkačite link',
],
'label' => 'URL',
'placeholder' => 'Unesite URL',
],
],
'tools' => [
'attach_files' => 'Priloži fajlove',
'blockquote' => 'Blok citat',
'bold' => 'Bold',
'bullet_list' => 'Bullet list',
'code_block' => 'Blok koda',
'h1' => 'Titula',
'h2' => 'Naslov',
'h3' => 'Podnaslov',
'italic' => 'Kurziv',
'link' => 'Link',
'ordered_list' => 'Numerisana lista',
'redo' => 'Ponovo uradite',
'strike' => 'Precrtano',
'undo' => 'Poništi',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Napravi',
'actions' => [
'create' => [
'label' => 'Napravi',
],
],
],
],
],
'boolean' => [
'true' => 'Da',
'false' => 'Ne',
],
'loading_message' => 'Učitavanje ...',
'max_items_message' => 'Mogu se odabrati samo :count.',
'no_search_results_message' => 'Nijedna opcija ne odgovara vašoj pretrazi.',
'placeholder' => 'Izaberi opciju',
'searching_message' => 'Traženje ...',
'search_prompt' => 'Počni da kucate da biste pretraživali ...',
],
'tags_input' => [
'placeholder' => 'Nova oznaka',
],
];
@@ -0,0 +1,497 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Clonar',
],
'add' => [
'label' => 'Afegir a :label',
'modal' => [
'heading' => 'Afegeix a :label',
'actions' => [
'add' => [
'label' => 'Afegeix',
],
],
],
],
'add_between' => [
'label' => 'Inserir entre blocs',
'modal' => [
'heading' => 'Afegir a :label',
'actions' => [
'add' => [
'label' => 'Afegir',
],
],
],
],
'edit' => [
'label' => 'Edita',
'modal' => [
'heading' => 'Edita bloc',
'actions' => [
'save' => [
'label' => 'Desa els canvis',
],
],
],
],
'delete' => [
'label' => 'Esborrar',
],
'reorder' => [
'label' => 'Moure',
],
'move_down' => [
'label' => 'Moure cap avall',
],
'move_up' => [
'label' => 'Moure cap amunt',
],
'collapse' => [
'label' => 'Replegar',
],
'expand' => [
'label' => 'Ampliar',
],
'collapse_all' => [
'label' => 'Replegar tots',
],
'expand_all' => [
'label' => 'Ampliar tots',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Desseleccionar tots',
],
'select_all' => [
'label' => 'Seleccionar tots',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Cancel·lar',
],
'drag_crop' => [
'label' => 'Mode d\'arrossegament "retallar"',
],
'drag_move' => [
'label' => 'Mode d\'arrossegament "moure"',
],
'flip_horizontal' => [
'label' => 'Girar imatge horitzontalment',
],
'flip_vertical' => [
'label' => 'Girar imatge verticalment',
],
'move_down' => [
'label' => 'Mou la imatge cap avall',
],
'move_left' => [
'label' => 'Mou la imatge cap a l\'esquerra',
],
'move_right' => [
'label' => 'Mou la imatge cap a la dreta',
],
'move_up' => [
'label' => 'Mou la imatge cap amunt',
],
'reset' => [
'label' => 'Restablir',
],
'rotate_left' => [
'label' => 'Rota la imatge cap a l\'esquerra',
],
'rotate_right' => [
'label' => 'Rota la imatge cap a la dreta',
],
'set_aspect_ratio' => [
'label' => 'Estableix la relació d\'aspecte a :ratio',
],
'save' => [
'label' => 'Desar',
],
'zoom_100' => [
'label' => 'Amplia la imatge a 100%',
],
'zoom_in' => [
'label' => 'Ampliar el zoom',
],
'zoom_out' => [
'label' => 'Reduir el zoom',
],
],
'fields' => [
'height' => [
'label' => 'Altura',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotació',
'unit' => 'graus',
],
'width' => [
'label' => 'Amplada',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Relacions d\'aspecte',
'no_fixed' => [
'label' => 'Lliure',
],
],
'svg' => [
'messages' => [
'confirmation' => 'No es recomana editar fitxers SVG ja que pot provocar una pèrdua de qualitat en escalar-los.\n Esteu segur que voleu continuar?',
'disabled' => 'L\'edició de fitxers SVG està desactivada ja que pot provocar una pèrdua de qualitat en escalar-los.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Afegir fila',
],
'delete' => [
'label' => 'Esborrar fila',
],
'reorder' => [
'label' => 'Reordenar fila',
],
],
'fields' => [
'key' => [
'label' => 'Clau',
],
'value' => [
'label' => 'Valor',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Adjuntar fitxers',
'blockquote' => 'Cita de bloc',
'bold' => 'Negreta',
'bullet_list' => 'Llista de vinyetes',
'code_block' => 'Bloc de codi',
'heading' => 'Encapçalament',
'italic' => 'Cursiva',
'link' => 'Enllaç',
'ordered_list' => 'Llista numerada',
'redo' => 'Refer',
'strike' => 'Ratllat',
'table' => 'Taula',
'undo' => 'Desfer',
],
],
'radio' => [
'boolean' => [
'true' => 'Sí',
'false' => 'No',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Afegir a :label',
],
'add_between' => [
'label' => 'Inserir entre',
],
'delete' => [
'label' => 'Esborrar',
],
'clone' => [
'label' => 'Clonar',
],
'reorder' => [
'label' => 'Moure',
],
'move_down' => [
'label' => 'Moure cap avall',
],
'move_up' => [
'label' => 'Moure cap amunt',
],
'collapse' => [
'label' => 'Replegar',
],
'expand' => [
'label' => 'Ampliar',
],
'collapse_all' => [
'label' => 'Replegar tots',
],
'expand_all' => [
'label' => 'Ampliar tots',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Enllaç',
'unlink' => 'Elimina l\'enllaç',
],
'label' => 'URL',
'placeholder' => 'Escriu una adreça URL',
],
],
'tools' => [
'attach_files' => 'Adjuntar fitxers',
'blockquote' => 'Bloc de cita',
'bold' => 'Negreta',
'bullet_list' => 'Llista de vinyetes',
'code_block' => 'Bloc de codi',
'h1' => 'Títol',
'h2' => 'Capçalera',
'h3' => 'Subtítol',
'italic' => 'Cursiva',
'link' => 'Enllaç',
'ordered_list' => 'Llista numerada',
'redo' => 'Refer',
'strike' => 'Ratllat',
'underline' => 'Subratllat',
'undo' => 'Desfer',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Nou',
'actions' => [
'create' => [
'label' => 'Crear',
],
'create_another' => [
'label' => 'Crear i crear-ne un altre',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'Editar',
'actions' => [
'save' => [
'label' => 'Desar',
],
],
],
],
],
'boolean' => [
'true' => 'Sí',
'false' => 'No',
],
'loading_message' => 'Carregant...',
'max_items_message' => 'Només :count poden ser seleccionats.',
'no_search_results_message' => 'No s\'ha trobat cap opció que coincideixi amb la vostra cerca.',
'placeholder' => 'Trieu una opció',
'searching_message' => 'Cercant...',
'search_prompt' => 'Comenceu a escriure per cercar...',
],
'tags_input' => [
'placeholder' => 'Nova etiqueta',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Ocultar contrasenya',
],
'show_password' => [
'label' => 'Mostrar contrasenya',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Sí',
'false' => 'No',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'S\'ha de seleccionar almenys un camp :attribute.',
'only_one_must_be_selected' => 'S\'ha de seleccionar només un camp :attribute.',
],
];
@@ -0,0 +1,617 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'لەبەرگرتنەە',
],
'add' => [
'label' => 'زیادکردن بۆ :label',
'modal' => [
'heading' => 'زیادکردن بۆ :label',
'actions' => [
'add' => [
'label' => 'زیادکردن',
],
],
],
],
'add_between' => [
'label' => 'زیادکردن لەنێوان بلۆکەکان',
'modal' => [
'heading' => 'زیادکردن بۆ :label',
'actions' => [
'add' => [
'label' => 'زیادکردن',
],
],
],
],
'delete' => [
'label' => 'سڕینەوە',
],
'edit' => [
'label' => 'دەستکاریکردن',
'modal' => [
'heading' => 'دەستکاریکردنی بلۆک',
'actions' => [
'save' => [
'label' => 'پاشەکەوتکردنی بلۆکەکان',
],
],
],
],
'reorder' => [
'label' => 'جوڵاندن',
],
'move_down' => [
'label' => 'جوڵان بۆ خوارەوە',
],
'move_up' => [
'label' => 'جوڵان بۆ سەرەوە',
],
'collapse' => [
'label' => 'داخستن',
],
'expand' => [
'label' => 'کردنەوە',
],
'collapse_all' => [
'label' => 'داخستنی هەموو',
],
'expand_all' => [
'label' => 'کردنەوەی هەموو',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'هەڵنەبژاردنی هەموو',
],
'select_all' => [
'label' => 'هەڵبژاردنی هەموو',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'پاشگەزبوونەوە',
],
'drag_crop' => [
'label' => 'دۆخی ڕاکێشان "بڕین"',
],
'drag_move' => [
'label' => 'دۆخی ڕاکێشان "جوڵاندن"',
],
'flip_horizontal' => [
'label' => 'هەڵگەڕاندنەوەی وێنە بە ئاسۆیی',
],
'flip_vertical' => [
'label' => 'هەڵگەڕاندنەوەی وێنە بە ستوونی',
],
'move_down' => [
'label' => 'جوڵاندنی وێنە بۆ خوارەوە',
],
'move_left' => [
'label' => 'جوڵاندنی وێنە بۆلای چەپ',
],
'move_right' => [
'label' => 'جوڵاندنی وێنە بۆلای ڕاست',
],
'move_up' => [
'label' => 'جوڵاندنی وێنە بۆ سەرەوە',
],
'reset' => [
'label' => 'هەڵوەشاندنەوە',
],
'rotate_left' => [
'label' => 'وێنەکە بسووڕێنە بۆ لای چەپ',
],
'rotate_right' => [
'label' => 'وێنەکە بسووڕێنە بۆ لای ڕاست',
],
'set_aspect_ratio' => [
'label' => 'ڕێژەی ڕووبەر بۆ :ratio',
],
'save' => [
'label' => 'پاشەکەوتکردن',
],
'zoom_100' => [
'label' => 'نزیککردنەوەی وێنە بۆ 100%',
],
'zoom_in' => [
'label' => 'نزیککردنەوە',
],
'zoom_out' => [
'label' => 'دوورخستنەوە',
],
],
'fields' => [
'height' => [
'label' => 'بەرزی',
'unit' => 'px',
],
'rotation' => [
'label' => 'خولانەوە',
'unit' => 'deg',
],
'width' => [
'label' => 'پانی',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'ڕێژەی ڕووبەرەکان',
'no_fixed' => [
'label' => 'خۆڕایی',
],
],
'svg' => [
'messages' => [
'confirmation' => 'دەستکاریکردنی پەڕگەی SVG ڕێگەپێدراو نییە، چونکە لەوانەیە ببێتە هۆی لەدەستدانی کوالیتی کاتێک بەقەبارە دەگۆڕدرێت.\n ئایا دڵنیایت کە دەتەوێت بەردەوام بیت؟',
'disabled' => 'دەستکاریکردنی پەڕگەی SVG ناکرێت، چونکە لەوانەیە ببێتە هۆی لەدەستدانی کوالیتی کاتێک بەقەبارە دەگۆڕدرێت.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'زیادکردنی ڕیز',
],
'delete' => [
'label' => 'سڕینەوەی ڕیز',
],
'reorder' => [
'label' => 'ڕیزکردنەوەی ڕیز',
],
],
'fields' => [
'key' => [
'label' => 'کلیل',
],
'value' => [
'label' => 'بەها',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'هاوپێچکردنی پەڕگەکان',
'blockquote' => 'بلۆکی وتەی وەرگیراو',
'bold' => 'تۆخ',
'bullet_list' => 'لیستی خاڵدار',
'code_block' => 'بلۆکی کۆد',
'heading' => 'سەردێڕ',
'italic' => 'لار',
'link' => 'بەستەر',
'ordered_list' => 'لیستی ژمارەکراو',
'redo' => 'دووبارەکردنەوە',
'strike' => 'هێڵ بەسەرداهێنان',
'table' => 'خشتە',
'undo' => 'پاشەکشە',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'هەڵبژاردن',
'actions' => [
'select' => [
'label' => 'هەڵبژاردن',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'بەڵێ',
'false' => 'نەخێر',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'زیادکردن بۆ :label',
],
'add_between' => [
'label' => 'دانان لەنێوان',
],
'delete' => [
'label' => 'سڕینەوە',
],
'clone' => [
'label' => 'لەبەرگرتنەوە',
],
'reorder' => [
'label' => 'جوڵاندن',
],
'move_down' => [
'label' => 'جوڵان بۆ خوارەوە',
],
'move_up' => [
'label' => 'جوڵان بۆ سەرەوە',
],
'collapse' => [
'label' => 'داخستن',
],
'expand' => [
'label' => 'کردنەوە',
],
'collapse_all' => [
'label' => 'داخستنی هەمووی',
],
'expand_all' => [
'label' => 'کردنەوەی هەمووی',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'بارکردنی پەڕگە',
'modal' => [
'heading' => 'بارکردنی پەڕگە',
'form' => [
'file' => [
'label' => [
'new' => 'پەڕگە',
'existing' => 'شوێنگرتنەوەی پەڕگە',
],
],
'alt' => [
'label' => [
'new' => 'دەقی جێگرەوە',
'existing' => 'گۆڕینی دەقی جێگرەوە',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'دانان',
],
'save' => [
'label' => 'پاشەکەوتکردن',
],
],
],
],
'link' => [
'label' => 'دەستکاریکردن',
'modal' => [
'heading' => 'بەستەر',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'کردنەوە لە تابێکی تردا',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'هیچ ئەنجامێکی تاگی تێکەڵکردن نییە.',
'tools' => [
'align_center' => 'لاگرتنی ناوەڕاست',
'align_end' => 'لاگرتنی کۆتایی',
'align_justify' => 'لاگرتنی هاوڕێک',
'align_start' => 'لاگرتنی سەرەتا',
'attach_files' => 'هاوپێچکردنی پەڕگەکان',
'blockquote' => 'بلۆکی وتەی وەرگیراو',
'bold' => 'تۆخ',
'bullet_list' => 'لیستی خاڵدار',
'clear_formatting' => 'پاککردنەوەی شێواز',
'code_block' => 'بلۆکی کۆد',
'custom_blocks' => 'بلۆکەکان',
'details' => 'وەردەکارییەکان',
'h1' => 'ناونشان',
'h2' => 'سەردێڕ',
'h3' => 'ژێرسەردێڕ',
'highlight' => 'بەرچاوکردن',
'horizontal_rule' => 'یاسای ئاسۆیی',
'italic' => 'لار',
'lead' => 'دەقی سەرەکی',
'link' => 'بەستەر',
'merge_tags' => 'تاگەکان تێکەڵ بکە',
'ordered_list' => 'لیستی ژمارەکراو',
'redo' => 'دووبارەکردنەوە',
'small' => 'دەقی بچووک',
'strike' => 'هێڵ بەسەرداهێنان',
'subscript' => 'ژێرنووس',
'superscript' => 'سەرنووس',
'table' => 'خشتە',
'table_delete' => 'سڕینەوەی خشتە',
'table_add_column_before' => 'زیادکردنی ستوون لەپێشەوە',
'table_add_column_after' => 'زیادکردنی ستوون لەدواوە',
'table_delete_column' => 'سڕینەوەی ستوون',
'table_add_row_before' => 'زیادکردنی ڕیز لەسەرەوە',
'table_add_row_after' => 'زیادکردنی ڕیز لەخوارەوە',
'table_delete_row' => 'سڕینەوەی ڕیز',
'table_merge_cells' => 'تێکەڵکردنی خانەکان',
'table_split_cell' => 'جیاکردنەوەی خانە',
'table_toggle_header_row' => 'گۆڕینی سەرەوەی ڕیز',
'underline' => 'هێلبەژێرداهاتوو',
'undo' => 'پاشەکشە',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'زیادکردن',
'modal' => [
'heading' => 'زیادکردن',
'actions' => [
'create' => [
'label' => 'زیادکردن',
],
'create_another' => [
'label' => 'زیادکردن & زیادکردنی دانەیەکی تر',
],
],
],
],
'edit_option' => [
'label' => 'دەستکاریکردن',
'modal' => [
'heading' => 'دەستکاریکردن',
'actions' => [
'save' => [
'label' => 'پاشەکەوتکردن',
],
],
],
],
],
'boolean' => [
'true' => 'بەڵێ',
'false' => 'نەخێر',
],
'loading_message' => 'بارکردن...',
'max_items_message' => 'دەتوانرێت تەنها :count هەڵبژێردرێت.',
'no_search_results_message' => 'هیچ شتێک هاوشێوەی گەڕانەکەت نیە.',
'placeholder' => 'هەڵبژێرە',
'searching_message' => 'گەڕان...',
'search_prompt' => 'دەستبکە بە گەڕان...',
],
'tags_input' => [
'placeholder' => 'تاگی نوێ',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'شاردنەوەی تێپەڕەوشە',
],
'show_password' => [
'label' => 'پیشاندانی تێپەڕەوشە',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'بەڵێ',
'false' => 'نەخێر',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'دەبێت لانیکەم یەک :attribute هەڵبژێردرێت.',
'only_one_must_be_selected' => 'دەبێت تەنها یەک :attribute هەڵبژێردرێت.',
],
];
@@ -0,0 +1,725 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Klonovat',
],
'add' => [
'label' => 'Přidat k :label',
'modal' => [
'heading' => 'Přidat k :label',
'actions' => [
'add' => [
'label' => 'Přidat',
],
],
],
],
'add_between' => [
'label' => 'Vložit',
'modal' => [
'heading' => 'Přidat k :label',
'actions' => [
'add' => [
'label' => 'Přidat',
],
],
],
],
'edit' => [
'label' => 'Upravit',
'modal' => [
'heading' => 'Upravit blok',
'actions' => [
'save' => [
'label' => 'Uložit',
],
],
],
],
'delete' => [
'label' => 'Smazat',
],
'reorder' => [
'label' => 'Přesunout',
],
'move_down' => [
'label' => 'Posunout dolů',
],
'move_up' => [
'label' => 'Posunout nahoru',
],
'collapse' => [
'label' => 'Skrýt',
],
'expand' => [
'label' => 'Zobrazit',
],
'collapse_all' => [
'label' => 'Skrýt vše',
],
'expand_all' => [
'label' => 'Zobrazit vše',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Odznačit vše',
],
'select_all' => [
'label' => 'Vybrat vše',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Zrušit',
],
'drag_crop' => [
'label' => 'Táhněte pro oříznutí',
],
'drag_move' => [
'label' => 'Táhněte pro přesun',
],
'flip_horizontal' => [
'label' => 'Překlopit obrázek horizontálně',
],
'flip_vertical' => [
'label' => 'Překlopit obrázek vertikálně',
],
'move_down' => [
'label' => 'Posunout obrázek dolů',
],
'move_left' => [
'label' => 'Posunout obrázek doleva',
],
'move_right' => [
'label' => 'Posunout obrázek doprava',
],
'move_up' => [
'label' => 'Posunout obrázek nahoru',
],
'reset' => [
'label' => 'Reset',
],
'rotate_left' => [
'label' => 'Otočit obrázek doleva',
],
'rotate_right' => [
'label' => 'Otočit obrázek doprava',
],
'set_aspect_ratio' => [
'label' => 'Nastavit poměr stran na :ratio',
],
'save' => [
'label' => 'Uložit',
],
'zoom_100' => [
'label' => 'Zvětšit obrázek na 100 %',
],
'zoom_in' => [
'label' => 'Přiblížit',
],
'zoom_out' => [
'label' => 'Oddálit',
],
],
'fields' => [
'height' => [
'label' => 'Výška',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotace',
'unit' => 'deg',
],
'width' => [
'label' => 'Šířka',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Poměr stran',
'no_fixed' => [
'label' => 'Vlastní',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Editace SVG souborů není doporučena, protože může dojít ke ztrátě kvality při škálování.\n Opravdu chcete pokračovat?',
'disabled' => 'Úprava souborů SVG je zakázána, protože může vést ke ztrátě kvality při škálování.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Přidat řádek',
],
'delete' => [
'label' => 'Smazat řádek',
],
'reorder' => [
'label' => 'Přesunout řádek',
],
],
'fields' => [
'key' => [
'label' => 'Klíč',
],
'value' => [
'label' => 'Hodnota',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'Nahrané soubory musí být typu: :values.',
'file_attachments_max_size_message' => 'Nahrané soubory nesmí být větší než :max kilobajtů.',
'tools' => [
'attach_files' => 'Přidat soubory',
'blockquote' => 'Bloková citace',
'bold' => 'Tučně',
'bullet_list' => 'Seznam s odrážkami',
'code_block' => 'Blok kódu',
'heading' => 'Nadpis',
'italic' => 'Kurzíva',
'link' => 'Odkaz',
'ordered_list' => 'Číslovaný seznam',
'redo' => 'Vpřed',
'strike' => 'Přeškrtnutí',
'table' => 'Tabulka',
'undo' => 'Zpět',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Vybrat',
'actions' => [
'select' => [
'label' => 'Vybrat',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Ano',
'false' => 'Ne',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Přidat k :label',
],
'add_between' => [
'label' => 'Vložit mezi',
],
'delete' => [
'label' => 'Smazat',
],
'clone' => [
'label' => 'Klonovat',
],
'reorder' => [
'label' => 'Přesunout',
],
'move_down' => [
'label' => 'Posunout dolů',
],
'move_up' => [
'label' => 'Posunout nahoru',
],
'collapse' => [
'label' => 'Skrýt',
],
'expand' => [
'label' => 'Zobrazit',
],
'collapse_all' => [
'label' => 'Skrýt vše',
],
'expand_all' => [
'label' => 'Zobrazit vše',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Nahrát soubor',
'modal' => [
'heading' => 'Nahrát soubor',
'form' => [
'file' => [
'label' => [
'new' => 'Soubor',
'existing' => 'Nahradit soubor',
],
],
'alt' => [
'label' => [
'new' => 'Alternativní text',
'existing' => 'Změnit alternativní text',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Vložit',
],
'save' => [
'label' => 'Uložit',
],
],
],
],
'grid' => [
'label' => 'Mřížka',
'modal' => [
'heading' => 'Mřížka',
'form' => [
'preset' => [
'label' => 'Přednastavení',
'placeholder' => 'Žádné',
'options' => [
'two' => 'Dvě',
'three' => 'Tři',
'four' => 'Čtyři',
'five' => 'Pět',
'two_start_third' => 'Dvě (Začátek třetí)',
'two_end_third' => 'Dvě (Konec třetí)',
'two_start_fourth' => 'Dvě (Začátek čtvrté)',
'two_end_fourth' => 'Dvě (Konec čtvrté)',
],
],
'columns' => [
'label' => 'Sloupce',
],
'from_breakpoint' => [
'label' => 'Od breakpointu',
'options' => [
'default' => 'Vše',
'sm' => 'Malý',
'md' => 'Střední',
'lg' => 'Velký',
'xl' => 'Extra velký',
'2xl' => 'Dvakrát extra velký',
],
],
'is_asymmetric' => [
'label' => 'Dva asymetrické sloupce',
],
'start_span' => [
'label' => 'Začátek rozsahu',
],
'end_span' => [
'label' => 'Konec rozsahu',
],
],
],
],
'link' => [
'label' => 'Upravit',
'modal' => [
'heading' => 'Odkaz',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Otevřít v nové záložce',
],
],
],
],
'text_color' => [
'label' => 'Barva textu',
'modal' => [
'heading' => 'Barva textu',
'form' => [
'color' => [
'label' => 'Barva',
],
'custom_color' => [
'label' => 'Vlastní barva',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'Nahrané soubory musí být typu: :values.',
'file_attachments_max_size_message' => 'Nahrané soubory nesmí být větší než :max kilobajtů.',
'no_merge_tag_search_results_message' => 'Žádné výsledky pro značky slučování.',
'tools' => [
'align_center' => 'Zarovnat na střed',
'align_end' => 'Zarovnat vpravo',
'align_justify' => 'Zarovnat do bloku',
'align_start' => 'Zarovnat vlevo',
'attach_files' => 'Přidat soubory',
'blockquote' => 'Bloková citace',
'bold' => 'Tučně',
'bullet_list' => 'Seznam s odrážkami',
'clear_formatting' => 'Vymazat formátování',
'code' => 'Kód',
'code_block' => 'Blok kódu',
'custom_blocks' => 'Bloky',
'details' => 'Detaily',
'h1' => 'Nadpis 1',
'h2' => 'Nadpis 2',
'h3' => 'Nadpis 3',
'grid' => 'Mřížka',
'grid_delete' => 'Smazat mřížku',
'highlight' => 'Zvýraznit',
'horizontal_rule' => 'Vodorovná čára',
'italic' => 'Kurzíva',
'lead' => 'Úvodní text',
'link' => 'Odkaz',
'merge_tags' => 'Sloučit značky',
'ordered_list' => 'Číslovaný seznam',
'redo' => 'Vpřed',
'small' => 'Malý text',
'strike' => 'Přeškrtnutí',
'subscript' => 'Dolní index',
'superscript' => 'Horní index',
'table' => 'Tabulka',
'table_delete' => 'Smazat tabulku',
'table_add_column_before' => 'Přidat sloupec před',
'table_add_column_after' => 'Přidat sloupec za',
'table_delete_column' => 'Smazat sloupec',
'table_add_row_before' => 'Přidat řádek nad',
'table_add_row_after' => 'Přidat řádek pod',
'table_delete_row' => 'Smazat řádek',
'table_merge_cells' => 'Sloučit buňky',
'table_split_cell' => 'Rozdělit buňku',
'table_toggle_header_row' => 'Přepnout řádek záhlaví',
'text_color' => 'Barva textu',
'underline' => 'Podtržení',
'undo' => 'Zpět',
],
'uploading_file_message' => 'Nahrávání souboru...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Vytvořit',
'modal' => [
'heading' => 'Vytvořit',
'actions' => [
'create' => [
'label' => 'Vytvořit',
],
'create_another' => [
'label' => 'Vytvořit a přidat další',
],
],
],
],
'edit_option' => [
'label' => 'Upravit',
'modal' => [
'heading' => 'Upravit',
'actions' => [
'save' => [
'label' => 'Uložit',
],
],
],
],
],
'boolean' => [
'true' => 'Ano',
'false' => 'Ne',
],
'loading_message' => 'Načítání...',
'max_items_message' => 'Lze vybrat pouze 1 položka.|Lze vybrat pouze :count položky.|Lze vybrat pouze :count položek.',
'no_search_results_message' => 'Vašemu hledání neodpovídají žádné výsledky.',
'placeholder' => 'Zvolte některou z možností',
'searching_message' => 'Hledání...',
'search_prompt' => 'Zadejte hledaný výraz...',
],
'tags_input' => [
'placeholder' => 'Nový štítek',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Kopírovat',
'message' => 'Zkopírováno',
],
'hide_password' => [
'label' => 'Skrýt heslo',
],
'show_password' => [
'label' => 'Zobrazit heslo',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Ano',
'false' => 'Ne',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Musí být vybráno alespoň jedno pole :attribute.',
'only_one_must_be_selected' => 'Musí být vybráno pouze jedno pole :attribute.',
],
];
@@ -0,0 +1,255 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Clôn',
],
'add' => [
'label' => 'Ychwanegu at :label',
],
'add_between' => [
'label' => 'Mewnosod',
],
'delete' => [
'label' => 'Dileu',
],
'reorder' => [
'label' => 'Symud',
],
'move_down' => [
'label' => 'Symud i lawr',
],
'move_up' => [
'label' => 'Symud i fyny',
],
'collapse' => [
'label' => 'Cwympo',
],
'expand' => [
'label' => 'Ymledu',
],
'collapse_all' => [
'label' => 'Cwympo popeth',
],
'expand_all' => [
'label' => 'Ymledu popeth',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Dad ddewis popeth',
],
'select_all' => [
'label' => 'Dewis popeth',
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Ychwanegu rhes',
],
'delete' => [
'label' => 'Dileu rhes',
],
'reorder' => [
'label' => 'Rhes recordiwr',
],
],
'fields' => [
'key' => [
'label' => 'Allwedd',
],
'value' => [
'label' => 'Gwerth',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Atodi ffeiliau',
'bold' => 'Trwm',
'bullet_list' => 'Rhestr bwled',
'code_block' => 'Bloc côd',
'edit' => 'Golygu',
'italic' => 'Italig',
'link' => 'Dolen',
'ordered_list' => 'Rhestr wedi i rhifo',
'preview' => 'Rhagolwg',
'strike' => 'Llinell drwodd',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Ychwanegu at :label',
],
'delete' => [
'label' => 'Dileu',
],
'clone' => [
'label' => 'Clôn',
],
'reorder' => [
'label' => 'Symud',
],
'move_down' => [
'label' => 'Symud i lawr',
],
'move_up' => [
'label' => 'Symud i fyny',
],
'collapse' => [
'label' => 'Cwympo',
],
'expand' => [
'label' => 'Ymledu',
],
'collapse_all' => [
'label' => 'Cwympo popeth',
],
'expand_all' => [
'label' => 'Ymledu popeth',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Dolen',
'unlink' => 'Datgysylltu',
],
'label' => 'URL',
'placeholder' => 'Rhowch URL',
],
],
'tools' => [
'attach_files' => 'Atodi ffeiliau',
'blockquote' => 'Dyfynnod Bloc',
'bold' => 'Trwm',
'bullet_list' => 'Rhestr bwled',
'code_block' => 'Bloc côd',
'h1' => 'Teitl',
'h2' => 'Pennawd',
'h3' => 'Is-bennawd',
'italic' => 'Italig',
'link' => 'Dolen',
'ordered_list' => 'Rhestr wedi`i rhifo',
'redo' => 'Ail-wneud',
'strike' => 'Llinell drwodd',
'undo' => 'Dadwneud',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Creu',
'actions' => [
'create' => [
'label' => 'Creu',
],
],
],
],
],
'boolean' => [
'true' => 'Ie',
'false' => 'Na',
],
'loading_message' => 'Llwytho...',
'max_items_message' => 'Gall dim on :count gael eu dewis.',
'no_search_results_message' => 'Nid oes unrhyw opsiynau yn cyfateb i`ch chwiliad.',
'placeholder' => 'Dewis opsiwn',
'searching_message' => 'Chwilio...',
'search_prompt' => 'Dechrau teipio i chwilio...',
],
'tags_input' => [
'placeholder' => 'Tag newydd',
],
];
@@ -0,0 +1,446 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Klon',
],
'add' => [
'label' => 'Tilføj til :label',
],
'add_between' => [
'label' => 'Indsæt mellem blokke',
],
'delete' => [
'label' => 'Slet',
],
'reorder' => [
'label' => 'Flyt',
],
'move_down' => [
'label' => 'Flyt ned',
],
'move_up' => [
'label' => 'Flyt op',
],
'collapse' => [
'label' => 'Skjul',
],
'expand' => [
'label' => 'Udvid',
],
'collapse_all' => [
'label' => 'Skjul alle',
],
'expand_all' => [
'label' => 'Udvid alle',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Fravælg alle',
],
'select_all' => [
'label' => 'Vælg alle',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Annuller',
],
'drag_crop' => [
'label' => 'Træktilstand "beskæring"',
],
'drag_move' => [
'label' => 'Træk-tilstand "flyt"',
],
'flip_horizontal' => [
'label' => 'Vend billedet horisontalt',
],
'flip_vertical' => [
'label' => 'Vend billedet vertikalt',
],
'move_down' => [
'label' => 'Flyt billedet ned',
],
'move_left' => [
'label' => 'Flyt billedet til venstre',
],
'move_right' => [
'label' => 'Flyt billedet til højre',
],
'move_up' => [
'label' => 'Flyt billedet op',
],
'reset' => [
'label' => 'Nulstil',
],
'rotate_left' => [
'label' => 'Roter billedet til venstre',
],
'rotate_right' => [
'label' => 'Roter billedet til højre',
],
'set_aspect_ratio' => [
'label' => 'Indstil billedformat til :ratio',
],
'save' => [
'label' => 'Gem',
],
'zoom_100' => [
'label' => 'Zoom billedet til 100%',
],
'zoom_in' => [
'label' => 'Zoom ind',
],
'zoom_out' => [
'label' => 'Zoom ud',
],
],
'fields' => [
'height' => [
'label' => 'Højde',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotation',
'unit' => 'grader',
],
'width' => [
'label' => 'Bredde',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Størrelsesforhold',
'no_fixed' => [
'label' => 'Frit',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Redigering af SVG filer anbefales ikke, da det kan resultere i kvalitetstab ved skalering.\n Er du sikker på, at du vil fortsætte?',
'disabled' => 'Redigering af SVG filer er deaktiveret, da det kan resultere i kvalitetstab ved skalering.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Tilføj række',
],
'delete' => [
'label' => 'Slet række',
],
'reorder' => [
'label' => 'Omorganiser række',
],
],
'fields' => [
'key' => [
'label' => 'Nøgle',
],
'value' => [
'label' => 'Værdi',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Vedhæft filer',
'blockquote' => 'Citere',
'bold' => 'Fed',
'bullet_list' => 'Punkter',
'code_block' => 'Kode',
'heading' => 'Overskrift',
'italic' => 'Kursiv',
'link' => 'Link',
'ordered_list' => 'Nummereret liste',
'redo' => 'Gentag',
'strike' => 'Gennemstregning',
'table' => 'tabel',
'undo' => 'Fortryd',
],
],
'radio' => [
'boolean' => [
'true' => 'Ja',
'false' => 'Nej',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Tilføj til :label',
],
'add_between' => [
'label' => 'Indsæt mellem',
],
'delete' => [
'label' => 'Slet',
],
'clone' => [
'label' => 'Klon',
],
'reorder' => [
'label' => 'Flyt',
],
'move_down' => [
'label' => 'Flyt ned',
],
'move_up' => [
'label' => 'Flyt op',
],
'collapse' => [
'label' => 'Skjul',
],
'expand' => [
'label' => 'Udvid',
],
'collapse_all' => [
'label' => 'Skjul alle',
],
'expand_all' => [
'label' => 'Udvid alle',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Link',
'unlink' => 'Fjern link',
],
'label' => 'URL',
'placeholder' => 'Indtast en URL',
],
],
'tools' => [
'attach_files' => 'Vedhæft filer',
'blockquote' => 'Citere',
'bold' => 'Fed',
'bullet_list' => 'Punkter',
'code_block' => 'Kode',
'h1' => 'Titel',
'h2' => 'Overskrift',
'h3' => 'Underoverskrift',
'italic' => 'Kursiv',
'link' => 'Link',
'ordered_list' => 'Tal',
'redo' => 'Gentag',
'strike' => 'Gennemstreget',
'undo' => 'Fortryd',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Opret',
'actions' => [
'create' => [
'label' => 'Opret',
],
'create_another' => [
'label' => 'Opret & opret en mere',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'Rediger',
'actions' => [
'save' => [
'label' => 'Gem',
],
],
],
],
],
'boolean' => [
'true' => 'Ja',
'false' => 'Nej',
],
'loading_message' => 'Indlæser...',
'max_items_message' => 'Kun :count kan vælges.',
'no_search_results_message' => 'Ingen muligheder der matcher din søgning.',
'placeholder' => 'Vælg en indstilling',
'searching_message' => 'Søger...',
'search_prompt' => 'Begynd at skrive for at søge ...',
],
'tags_input' => [
'placeholder' => 'Ny mærkat',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Skjul adgangskode',
],
'show_password' => [
'label' => 'Vis adgangskode',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Ja',
'false' => 'Nej',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Mindst ét :attribute felt skal være valgt.',
'only_one_must_be_selected' => 'Der må kun vælges ét :attribute felt.',
],
];
@@ -0,0 +1,639 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Kopieren',
],
'add' => [
'label' => 'Zu :label hinzufügen',
'modal' => [
'heading' => 'Hinzufügen zu :label',
'actions' => [
'add' => [
'label' => 'Hinzufügen',
],
],
],
],
'add_between' => [
'label' => 'Dazwischen einfügen',
'modal' => [
'heading' => 'Hinzufügen zu :label',
'actions' => [
'add' => [
'label' => 'Hinzufügen',
],
],
],
],
'delete' => [
'label' => 'Löschen',
],
'edit' => [
'label' => 'Bearbeiten',
'modal' => [
'heading' => 'Block bearbeiten',
'actions' => [
'save' => [
'label' => 'Änderungen speichern',
],
],
],
],
'reorder' => [
'label' => 'Verschieben',
],
'move_down' => [
'label' => 'Nach unten verschieben',
],
'move_up' => [
'label' => 'Nach oben verschieben',
],
'collapse' => [
'label' => 'Einklappen',
],
'expand' => [
'label' => 'Ausklappen',
],
'collapse_all' => [
'label' => 'Alle einklappen',
],
'expand_all' => [
'label' => 'Alle ausklappen',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Alle abwählen',
],
'select_all' => [
'label' => 'Alle auswählen',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Abbrechen',
],
'drag_crop' => [
'label' => 'Drag Modus "zuschneiden"',
],
'drag_move' => [
'label' => 'Drag Modus "verschieben"',
],
'flip_horizontal' => [
'label' => 'Bild horizontal spiegeln',
],
'flip_vertical' => [
'label' => 'Bild vertikal spiegeln',
],
'move_down' => [
'label' => 'Bild nach unten',
],
'move_left' => [
'label' => 'Bild nach links',
],
'move_right' => [
'label' => 'Bild nach rechts',
],
'move_up' => [
'label' => 'Bild nach oben',
],
'reset' => [
'label' => 'Zurücksetzen',
],
'rotate_left' => [
'label' => 'Bild nach links drehen',
],
'rotate_right' => [
'label' => 'Bild nach rechts drehen',
],
'set_aspect_ratio' => [
'label' => 'Seitenverhältnis auf :ratio setzen',
],
'save' => [
'label' => 'Speichern',
],
'zoom_100' => [
'label' => 'Bild Zoom 100%',
],
'zoom_in' => [
'label' => 'Hereinzoomen',
],
'zoom_out' => [
'label' => 'Herauszoomen',
],
],
'fields' => [
'height' => [
'label' => 'Höhe',
'unit' => 'px',
],
'rotation' => [
'label' => 'Drehung',
'unit' => 'deg',
],
'width' => [
'label' => 'Breite',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Seitenverhältnisse',
'no_fixed' => [
'label' => 'Frei',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Das Bearbeiten von SVG Dateien ist nicht empfohlen, da es Qualitätsverluste beim Verändern der Größe geben kann.\n Wirklich fortfahren?',
'disabled' => 'Das Bearbeiten von SVG Dateien ist deaktiviert, da es Qualitätsverluste beim Verändern der Größe geben kann.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Zeile hinzufügen',
],
'delete' => [
'label' => 'Zeile löschen',
],
'reorder' => [
'label' => 'Zeile neu ordnen',
],
],
'fields' => [
'key' => [
'label' => 'Schlüssel',
],
'value' => [
'label' => 'Wert',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Dateien beifügen',
'blockquote' => 'Zitat',
'bold' => 'Fett',
'bullet_list' => 'Aufzählungsliste',
'code_block' => 'Code Block',
'heading' => 'Überschrift',
'italic' => 'Kursiv',
'link' => 'Link',
'ordered_list' => 'Nummerierte Liste',
'redo' => 'Wiederherstellen',
'strike' => 'Durchgestrichen',
'table' => 'Tabelle',
'undo' => 'Rückgängig',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Auswählen',
'actions' => [
'select' => [
'label' => 'Auswählen',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Ja',
'false' => 'Nein',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Zu :label hinzufügen',
],
'add_between' => [
'label' => 'Dazwischen einfügen',
],
'delete' => [
'label' => 'Löschen',
],
'clone' => [
'label' => 'Duplizieren',
],
'reorder' => [
'label' => 'Verschieben',
],
'move_down' => [
'label' => 'Runter verschieben',
],
'move_up' => [
'label' => 'Hoch verschieben',
],
'collapse' => [
'label' => 'Einklappen',
],
'expand' => [
'label' => 'Ausklappen',
],
'collapse_all' => [
'label' => 'Alle einklappen',
],
'expand_all' => [
'label' => 'Alle ausklappen',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Datei hochladen',
'modal' => [
'heading' => 'Datei hochladen',
'form' => [
'file' => [
'label' => [
'new' => 'Datei',
'existing' => 'Datei ersetzen',
],
],
'alt' => [
'label' => [
'new' => 'Alt-Text',
'existing' => 'Alt-Text ändern',
],
],
],
'actions' => [
'save' => [
'label' => 'Speichern',
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Einfügen',
],
'save' => [
'label' => 'Speichern',
],
],
],
],
'link' => [
'label' => 'Bearbeiten',
'modal' => [
'heading' => 'Link',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'In neuem Tab öffnen',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'Keine Ergebnisse für Merge-Tags.',
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Verlinken',
'unlink' => 'Verlinkung aufheben',
],
'label' => 'URL',
'placeholder' => 'URL eingeben',
],
],
'tools' => [
'align_center' => 'Zentriert ausrichten',
'align_end' => 'Rechts ausrichten',
'align_justify' => 'Blocksatz',
'align_start' => 'Links ausrichten',
'attach_files' => 'Dateien anhängen',
'blockquote' => 'Zitat',
'bold' => 'Fett',
'bullet_list' => 'Aufzählungsliste',
'clear_formatting' => 'Formatierung löschen',
'code_block' => 'Code Block',
'custom_blocks' => 'Blöcke',
'details' => 'Details',
'h1' => 'Titel',
'h2' => 'Überschrift',
'h3' => 'Unterüberschrift',
'highlight' => 'Hervorheben',
'horizontal_rule' => 'Horizontale Linie',
'italic' => 'Kursiv',
'lead' => 'Einleitungstext',
'link' => 'Link',
'merge_tags' => 'Merge-Tags',
'ordered_list' => 'Nummerierte Aufzählung',
'redo' => 'Wiederherstellen',
'small' => 'Kleiner Text',
'strike' => 'Durchgestrichen',
'subscript' => 'Tiefgestellt',
'superscript' => 'Hochgestellt',
'table' => 'Tabelle',
'table_delete' => 'Tabelle löschen',
'table_add_column_before' => 'Spalte davor einfügen',
'table_add_column_after' => 'Spalte danach einfügen',
'table_delete_column' => 'Spalte löschen',
'table_add_row_before' => 'Zeile davor einfügen',
'table_add_row_after' => 'Zeile danach einfügen',
'table_delete_row' => 'Zeile löschen',
'table_merge_cells' => 'Zellen verbinden',
'table_split_cell' => 'Zelle teilen',
'table_toggle_header_row' => 'Kopfzeile umschalten',
'underline' => 'Unterstreichen',
'undo' => 'Rückgängig',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Erstellen',
'modal' => [
'heading' => 'Erstellen',
'actions' => [
'create' => [
'label' => 'Erstellen',
],
'create_another' => [
'label' => 'Erstellen & weiteres erstellen',
],
],
],
],
'edit_option' => [
'label' => 'Bearbeiten',
'modal' => [
'heading' => 'Bearbeiten',
'actions' => [
'save' => [
'label' => 'Speichern',
],
],
],
],
],
'boolean' => [
'true' => 'Ja',
'false' => 'Nein',
],
'loading_message' => 'Lädt...',
'max_items_message' => 'Es können nur :count ausgewählt werden.',
'no_search_results_message' => 'Die Suche ergab keine Treffer.',
'placeholder' => 'Wählen Sie eine Option',
'searching_message' => 'Sucht...',
'search_prompt' => 'Beginnen Sie mit der Eingabe, um zu suchen...',
],
'tags_input' => [
'placeholder' => 'Neue Kennzeichnung',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Passwort verbergen',
],
'show_password' => [
'label' => 'Passwort anzeigen',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Ja',
'false' => 'Nein',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Wenigstens muss das :attribute ausgewählt sein.',
'only_one_must_be_selected' => 'Nur das :attribute Feld darf ausgewählt sein.',
],
];
@@ -0,0 +1,503 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Κλωνοποίηση',
],
'add' => [
'label' => 'Προσθήκη στο :label',
'modal' => [
'heading' => 'Προσθήκη στο :label',
'actions' => [
'add' => [
'label' => 'Προσθήκη',
],
],
],
],
'add_between' => [
'label' => 'Εισαγωγή ανάμεσα στα μπλοκ',
'modal' => [
'heading' => 'Προσθήκη στο :label',
'actions' => [
'add' => [
'label' => 'Προσθήκη',
],
],
],
],
'delete' => [
'label' => 'Διαγραφή',
],
'edit' => [
'label' => 'Επεξεργασία',
'modal' => [
'heading' => 'Επεξεργασία μπλοκ',
'actions' => [
'save' => [
'label' => 'Αποθήκευση αλλαγών',
],
],
],
],
'reorder' => [
'label' => 'Μετακίνηση',
],
'move_down' => [
'label' => 'Μετακίνηση προς τα κάτω',
],
'move_up' => [
'label' => 'Μετακίνηση προς τα πάνω',
],
'collapse' => [
'label' => 'Σύμπτυξη',
],
'expand' => [
'label' => 'Ανάπτυξη',
],
'collapse_all' => [
'label' => 'Σύμπτυξη όλων',
],
'expand_all' => [
'label' => 'Ανάπτυξη όλων',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Αποεπιλογή όλων',
],
'select_all' => [
'label' => 'Επιλογή όλων',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Ακύρωση',
],
'drag_crop' => [
'label' => 'Λειτουργία συρσίματος "περικοπή"',
],
'drag_move' => [
'label' => 'Λειτουργία συρσίματος "μετακίνηση"',
],
'flip_horizontal' => [
'label' => 'Αντιστροφή εικόνας οριζόντια',
],
'flip_vertical' => [
'label' => 'Αντιστροφή εικόνας κάθετα',
],
'move_down' => [
'label' => 'Μετακίνηση εικόνας προς τα κάτω',
],
'move_left' => [
'label' => 'Μετακίνηση εικόνας προς τα αριστερά',
],
'move_right' => [
'label' => 'Μετακίνηση εικόνας προς τα δεξιά',
],
'move_up' => [
'label' => 'Μετακίνηση εικόνας προς τα πάνω',
],
'reset' => [
'label' => 'Επαναφορά',
],
'rotate_left' => [
'label' => 'Περιστροφή εικόνας προς τα αριστερά',
],
'rotate_right' => [
'label' => 'Περιστροφή εικόνας προς τα δεξιά',
],
'set_aspect_ratio' => [
'label' => 'Ορισμός αναλογίας διαστάσεων σε :ratio',
],
'save' => [
'label' => 'Αποθήκευση',
],
'zoom_100' => [
'label' => 'Μεγέθυνση εικόνας στο 100%',
],
'zoom_in' => [
'label' => 'Μεγέθυνση',
],
'zoom_out' => [
'label' => 'Σμίκρυνση',
],
],
'fields' => [
'height' => [
'label' => 'Ύψος',
'unit' => 'px',
],
'rotation' => [
'label' => 'Περιστροφή',
'unit' => 'deg',
],
'width' => [
'label' => 'Πλάτος',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Αναλογίες διαστάσεων',
'no_fixed' => [
'label' => 'Ελεύθερο',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Η επεξεργασία αρχείων SVG δεν συνιστάται, καθώς μπορεί να οδηγήσει σε απώλεια ποιότητας κατά την κλιμάκωση.\n Είστε σίγουρος/η ότι θέλετε να συνεχίσετε;',
'disabled' => 'Η επεξεργασία αρχείων SVG είναι απενεργοποιημένη, καθώς μπορεί να οδηγήσει σε απώλεια ποιότητας κατά την κλιμάκωση.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Προσθήκη γραμμής',
],
'delete' => [
'label' => 'Διαγραφή γραμμής',
],
'reorder' => [
'label' => 'Αναδιάταξη γραμμής',
],
],
'fields' => [
'key' => [
'label' => 'Κλειδί',
],
'value' => [
'label' => 'Τιμή',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Επισύναψη αρχείων',
'blockquote' => 'Blockquote',
'bold' => 'Έντονα',
'bullet_list' => 'Λίστα με κουκκίδες',
'code_block' => 'Μπλοκ κώδικα',
'heading' => 'Επικεφαλίδα',
'italic' => 'Πλάγια',
'link' => 'Σύνδεσμος',
'ordered_list' => 'Λίστα με αριθμούς',
'redo' => 'Επαναφορά',
'strike' => 'Διακριτή διαγραφή',
'table' => 'Πίνακας',
'undo' => 'Αναίρεση',
],
],
'radio' => [
'boolean' => [
'true' => 'Ναι',
'false' => 'Όχι',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Προσθήκη στο :label',
],
'add_between' => [
'label' => 'Εισαγωγή μεταξύ',
],
'delete' => [
'label' => 'Διαγραφή',
],
'clone' => [
'label' => 'Κλωνοποίηση',
],
'reorder' => [
'label' => 'Μετακίνηση',
],
'move_down' => [
'label' => 'Μετακίνηση προς τα κάτω',
],
'move_up' => [
'label' => 'Μετακίνηση προς τα πάνω',
],
'collapse' => [
'label' => 'Σύμπτυξη',
],
'expand' => [
'label' => 'Ανάπτυξη',
],
'collapse_all' => [
'label' => 'Σύμπτυξη όλων',
],
'expand_all' => [
'label' => 'Ανάπτυξη όλων',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Σύνδεσμος',
'unlink' => 'Αφαίρεση συνδέσμου',
],
'label' => 'URL',
'placeholder' => 'Εισάγετε ένα URL',
],
],
'tools' => [
'attach_files' => 'Επισύναψη αρχείων',
'blockquote' => 'Blockquote',
'bold' => 'Έντονα',
'bullet_list' => 'Λίστα με κουκκίδες',
'code_block' => 'Μπλοκ κώδικα',
'h1' => 'Τίτλος',
'h2' => 'Επικεφαλίδα',
'h3' => 'Υπότιτλος',
'italic' => 'Πλάγια',
'link' => 'Σύνδεσμος',
'ordered_list' => 'Λίστα με αριθμούς',
'redo' => 'Επαναφορά',
'strike' => 'Διακριτή διαγραφή',
'underline' => 'Υπογράμμιση',
'undo' => 'Αναίρεση',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Δημιουργία',
'modal' => [
'heading' => 'Δημιουργία',
'actions' => [
'create' => [
'label' => 'Δημιουργία',
],
'create_another' => [
'label' => 'Δημιουργία & δημιουργία άλλου',
],
],
],
],
'edit_option' => [
'label' => 'Επεξεργασία',
'modal' => [
'heading' => 'Επεξεργασία',
'actions' => [
'save' => [
'label' => 'Αποθήκευση',
],
],
],
],
],
'boolean' => [
'true' => 'Ναι',
'false' => 'Όχι',
],
'loading_message' => 'Φόρτωση...',
'max_items_message' => 'Μόνο :count μπορούν να επιλεχθούν.',
'no_search_results_message' => 'Δεν υπάρχουν επιλογές που να ταιριάζουν με την αναζήτησή σας.',
'placeholder' => 'Επιλέξτε μια επιλογή',
'searching_message' => 'Αναζήτηση...',
'search_prompt' => 'Ξεκινήστε να πληκτρολογείτε για αναζήτηση...',
],
'tags_input' => [
'placeholder' => 'Νέα ετικέτα',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Απόκρυψη κωδικού πρόσβασης',
],
'show_password' => [
'label' => 'Εμφάνιση κωδικού πρόσβασης',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Ναι',
'false' => 'Όχι',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Πρέπει να επιλεγεί τουλάχιστον ένα πεδίο :attribute.',
'only_one_must_be_selected' => 'Μόνο ένα πεδίο :attribute πρέπει να επιλεγεί.',
],
];
@@ -0,0 +1,725 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Clone',
],
'add' => [
'label' => 'Add to :label',
'modal' => [
'heading' => 'Add to :label',
'actions' => [
'add' => [
'label' => 'Add',
],
],
],
],
'add_between' => [
'label' => 'Insert between blocks',
'modal' => [
'heading' => 'Add to :label',
'actions' => [
'add' => [
'label' => 'Add',
],
],
],
],
'delete' => [
'label' => 'Delete',
],
'edit' => [
'label' => 'Edit',
'modal' => [
'heading' => 'Edit block',
'actions' => [
'save' => [
'label' => 'Save changes',
],
],
],
],
'reorder' => [
'label' => 'Move',
],
'move_down' => [
'label' => 'Move down',
],
'move_up' => [
'label' => 'Move up',
],
'collapse' => [
'label' => 'Collapse',
],
'expand' => [
'label' => 'Expand',
],
'collapse_all' => [
'label' => 'Collapse all',
],
'expand_all' => [
'label' => 'Expand all',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Deselect all',
],
'select_all' => [
'label' => 'Select all',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Cancel',
],
'drag_crop' => [
'label' => 'Drag mode "crop"',
],
'drag_move' => [
'label' => 'Drag mode "move"',
],
'flip_horizontal' => [
'label' => 'Flip image horizontally',
],
'flip_vertical' => [
'label' => 'Flip image vertically',
],
'move_down' => [
'label' => 'Move image down',
],
'move_left' => [
'label' => 'Move image to left',
],
'move_right' => [
'label' => 'Move image to right',
],
'move_up' => [
'label' => 'Move image up',
],
'reset' => [
'label' => 'Reset',
],
'rotate_left' => [
'label' => 'Rotate image to left',
],
'rotate_right' => [
'label' => 'Rotate image to right',
],
'set_aspect_ratio' => [
'label' => 'Set aspect ratio to :ratio',
],
'save' => [
'label' => 'Save',
],
'zoom_100' => [
'label' => 'Zoom image to 100%',
],
'zoom_in' => [
'label' => 'Zoom in',
],
'zoom_out' => [
'label' => 'Zoom out',
],
],
'fields' => [
'height' => [
'label' => 'Height',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotation',
'unit' => 'deg',
],
'width' => [
'label' => 'Width',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Aspect ratios',
'no_fixed' => [
'label' => 'Free',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Editing SVG files is not recommended as it can result in quality loss when scaling.\n Are you sure you want to continue?',
'disabled' => 'Editing SVG files is disabled as it can result in quality loss when scaling.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Add row',
],
'delete' => [
'label' => 'Delete row',
],
'reorder' => [
'label' => 'Reorder row',
],
],
'fields' => [
'key' => [
'label' => 'Key',
],
'value' => [
'label' => 'Value',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'Uploaded files must be of type: :values.',
'file_attachments_max_size_message' => 'Uploaded files must not be greater than :max kilobytes.',
'tools' => [
'attach_files' => 'Attach files',
'blockquote' => 'Blockquote',
'bold' => 'Bold',
'bullet_list' => 'Bullet list',
'code_block' => 'Code block',
'heading' => 'Heading',
'italic' => 'Italic',
'link' => 'Link',
'ordered_list' => 'Numbered list',
'redo' => 'Redo',
'strike' => 'Strikethrough',
'table' => 'Table',
'undo' => 'Undo',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Select',
'actions' => [
'select' => [
'label' => 'Select',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Yes',
'false' => 'No',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Add to :label',
],
'add_between' => [
'label' => 'Insert between',
],
'delete' => [
'label' => 'Delete',
],
'clone' => [
'label' => 'Clone',
],
'reorder' => [
'label' => 'Move',
],
'move_down' => [
'label' => 'Move down',
],
'move_up' => [
'label' => 'Move up',
],
'collapse' => [
'label' => 'Collapse',
],
'expand' => [
'label' => 'Expand',
],
'collapse_all' => [
'label' => 'Collapse all',
],
'expand_all' => [
'label' => 'Expand all',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Upload file',
'modal' => [
'heading' => 'Upload file',
'form' => [
'file' => [
'label' => [
'new' => 'File',
'existing' => 'Replace file',
],
],
'alt' => [
'label' => [
'new' => 'Alt text',
'existing' => 'Change alt text',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Insert',
],
'save' => [
'label' => 'Save',
],
],
],
],
'grid' => [
'label' => 'Grid',
'modal' => [
'heading' => 'Grid',
'form' => [
'preset' => [
'label' => 'Preset',
'placeholder' => 'None',
'options' => [
'two' => 'Two',
'three' => 'Three',
'four' => 'Four',
'five' => 'Five',
'two_start_third' => 'Two (Start Third)',
'two_end_third' => 'Two (End Third)',
'two_start_fourth' => 'Two (Start Fourth)',
'two_end_fourth' => 'Two (End Fourth)',
],
],
'columns' => [
'label' => 'Columns',
],
'from_breakpoint' => [
'label' => 'From breakpoint',
'options' => [
'default' => 'All',
'sm' => 'Small',
'md' => 'Medium',
'lg' => 'Large',
'xl' => 'Extra large',
'2xl' => 'Two extra large',
],
],
'is_asymmetric' => [
'label' => 'Two asymmetric columns',
],
'start_span' => [
'label' => 'Start span',
],
'end_span' => [
'label' => 'End span',
],
],
],
],
'link' => [
'label' => 'Link',
'modal' => [
'heading' => 'Link',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Open in new tab',
],
],
],
],
'text_color' => [
'label' => 'Text color',
'modal' => [
'heading' => 'Text color',
'form' => [
'color' => [
'label' => 'Color',
],
'custom_color' => [
'label' => 'Custom color',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'Uploaded files must be of type: :values.',
'file_attachments_max_size_message' => 'Uploaded files must not be greater than :max kilobytes.',
'no_merge_tag_search_results_message' => 'No merge tag results.',
'tools' => [
'align_center' => 'Align center',
'align_end' => 'Align end',
'align_justify' => 'Align justify',
'align_start' => 'Align start',
'attach_files' => 'Attach files',
'blockquote' => 'Blockquote',
'bold' => 'Bold',
'bullet_list' => 'Bullet list',
'clear_formatting' => 'Clear formatting',
'code' => 'Code',
'code_block' => 'Code block',
'custom_blocks' => 'Blocks',
'details' => 'Details',
'h1' => 'Title',
'h2' => 'Heading',
'h3' => 'Subheading',
'grid' => 'Grid',
'grid_delete' => 'Delete grid',
'highlight' => 'Highlight',
'horizontal_rule' => 'Horizontal rule',
'italic' => 'Italic',
'lead' => 'Lead text',
'link' => 'Link',
'merge_tags' => 'Merge tags',
'ordered_list' => 'Numbered list',
'redo' => 'Redo',
'small' => 'Small text',
'strike' => 'Strikethrough',
'subscript' => 'Subscript',
'superscript' => 'Superscript',
'table' => 'Table',
'table_delete' => 'Delete table',
'table_add_column_before' => 'Add column before',
'table_add_column_after' => 'Add column after',
'table_delete_column' => 'Delete column',
'table_add_row_before' => 'Add row above',
'table_add_row_after' => 'Add row below',
'table_delete_row' => 'Delete row',
'table_merge_cells' => 'Merge cells',
'table_split_cell' => 'Split cell',
'table_toggle_header_row' => 'Toggle header row',
'text_color' => 'Text color',
'underline' => 'Underline',
'undo' => 'Undo',
],
'uploading_file_message' => 'Uploading file...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Create',
'modal' => [
'heading' => 'Create',
'actions' => [
'create' => [
'label' => 'Create',
],
'create_another' => [
'label' => 'Create & create another',
],
],
],
],
'edit_option' => [
'label' => 'Edit',
'modal' => [
'heading' => 'Edit',
'actions' => [
'save' => [
'label' => 'Save',
],
],
],
],
],
'boolean' => [
'true' => 'Yes',
'false' => 'No',
],
'loading_message' => 'Loading...',
'max_items_message' => 'Only :count can be selected.',
'no_search_results_message' => 'No options match your search.',
'placeholder' => 'Select an option',
'searching_message' => 'Searching...',
'search_prompt' => 'Start typing to search...',
],
'tags_input' => [
'placeholder' => 'New tag',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Copy',
'message' => 'Copied',
],
'hide_password' => [
'label' => 'Hide password',
],
'show_password' => [
'label' => 'Show password',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Yes',
'false' => 'No',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'At least one :attribute field must be selected.',
'only_one_must_be_selected' => 'Only one :attribute field must be selected.',
],
];
@@ -0,0 +1,725 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Clonar',
],
'add' => [
'label' => 'Añadir a :label',
'modal' => [
'heading' => 'Añadir a :label',
'actions' => [
'add' => [
'label' => 'Añadir',
],
],
],
],
'add_between' => [
'label' => 'Insertar entre bloques',
'modal' => [
'heading' => 'Añadir a :label',
'actions' => [
'add' => [
'label' => 'Añadir',
],
],
],
],
'delete' => [
'label' => 'Borrar',
],
'edit' => [
'label' => 'Editar',
'modal' => [
'heading' => 'Editar bloque',
'actions' => [
'save' => [
'label' => 'Guardar cambios',
],
],
],
],
'reorder' => [
'label' => 'Mover',
],
'move_down' => [
'label' => 'Bajar',
],
'move_up' => [
'label' => 'Subir',
],
'collapse' => [
'label' => 'Contraer',
],
'expand' => [
'label' => 'Expandir',
],
'collapse_all' => [
'label' => 'Contraer todo',
],
'expand_all' => [
'label' => 'Expandir todo',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Deseleccionar todos',
],
'select_all' => [
'label' => 'Seleccionar todos',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Cancelar',
],
'drag_crop' => [
'label' => 'Modo de arrastre "recortar"',
],
'drag_move' => [
'label' => 'Modo de arrastre "mover"',
],
'flip_horizontal' => [
'label' => 'Voltear imagen horizontalmente',
],
'flip_vertical' => [
'label' => 'Voltear imagen verticalmente',
],
'move_down' => [
'label' => 'Mover imagen hacia abajo',
],
'move_left' => [
'label' => 'Mover imagen a la izquierda',
],
'move_right' => [
'label' => 'Mover imagen a la derecha',
],
'move_up' => [
'label' => 'Mover imagen hacia arriba',
],
'reset' => [
'label' => 'Reiniciar',
],
'rotate_left' => [
'label' => 'Girar imagen a la izquierda',
],
'rotate_right' => [
'label' => 'Girar imagen a la derecha',
],
'set_aspect_ratio' => [
'label' => 'Establecer relación de aspecto a :ratio',
],
'save' => [
'label' => 'Guardar',
],
'zoom_100' => [
'label' => 'Ampliar imagen al 100%',
],
'zoom_in' => [
'label' => 'Acercarse',
],
'zoom_out' => [
'label' => 'Alejarse',
],
],
'fields' => [
'height' => [
'label' => 'Altura',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotación',
'unit' => 'grados',
],
'width' => [
'label' => 'Ancho',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Relaciones de aspecto',
'no_fixed' => [
'label' => 'Libre',
],
],
'svg' => [
'messages' => [
'confirmation' => 'No se recomienda editar archivos SVG ya que puede provocar una pérdida de calidad al escalar.\n ¿Está seguro de que desea continuar?',
'disabled' => 'La edición de archivos SVG está deshabilitada ya que puede provocar una pérdida de calidad al escalar.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Añadir fila',
],
'delete' => [
'label' => 'Eliminar fila',
],
'reorder' => [
'label' => 'Reordenar fila',
],
],
'fields' => [
'key' => [
'label' => 'Clave',
],
'value' => [
'label' => 'Valor',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'Los archivos cargados deben ser de tipo: :values.',
'file_attachments_max_size_message' => 'Los archivos cargados no deben tener más de :max kilobytes.',
'tools' => [
'attach_files' => 'Adjuntar archivos',
'blockquote' => 'Cita',
'bold' => 'Negrita',
'bullet_list' => 'Viñetas',
'code_block' => 'Bloque de código',
'heading' => 'Encabezado',
'italic' => 'Cursiva',
'link' => 'Enlace',
'ordered_list' => 'Lista numerada',
'strike' => 'Tachado',
'redo' => 'Rehacer',
'table' => 'Tabla',
'undo' => 'Deshacer',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Seleccionar',
'actions' => [
'select' => [
'label' => 'Seleccionar',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Sí',
'false' => 'No',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Añadir a :label',
],
'add_between' => [
'label' => 'Insertar entre',
],
'delete' => [
'label' => 'Borrar',
],
'reorder' => [
'label' => 'Mover',
],
'clone' => [
'label' => 'Clonar',
],
'move_down' => [
'label' => 'Bajar',
],
'move_up' => [
'label' => 'Subir',
],
'collapse' => [
'label' => 'Contraer',
],
'expand' => [
'label' => 'Expandir',
],
'collapse_all' => [
'label' => 'Contraer todo',
],
'expand_all' => [
'label' => 'Expandir todo',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Subir archivo',
'modal' => [
'heading' => 'Subir archivo',
'form' => [
'file' => [
'label' => [
'new' => 'Archivo',
'existing' => 'Reemplazar archivo',
],
],
'alt' => [
'label' => [
'new' => 'Texto alternativo',
'existing' => 'Cambiar texto alternativo',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Insertar',
],
'save' => [
'label' => 'Guardar',
],
],
],
],
'grid' => [
'label' => 'Cuadrícula',
'modal' => [
'heading' => 'Cuadrícula',
'form' => [
'preset' => [
'label' => 'Preestablecido',
'placeholder' => 'Ninguno',
'options' => [
'two' => 'Dos',
'three' => 'Tres',
'four' => 'Cuatro',
'five' => 'Cinco',
'two_start_third' => 'Dos (Comienzo del tercio)',
'two_end_third' => 'Dos (Final del tercio)',
'two_start_fourth' => 'Dos (Comienzo del cuarto)',
'two_end_fourth' => 'Dos (Final del cuarto)',
],
],
'columns' => [
'label' => 'Columnas',
],
'from_breakpoint' => [
'label' => 'Desde el punto de quiebre',
'options' => [
'default' => 'Todos',
'sm' => 'Pequeño',
'md' => 'Mediano',
'lg' => 'Grande',
'xl' => 'Extra grande',
'2xl' => 'Doble extra grande',
],
],
'is_asymmetric' => [
'label' => 'Dos columnas asimétricas',
],
'start_span' => [
'label' => 'Extensión inicial',
],
'end_span' => [
'label' => 'Extensión final',
],
],
],
],
'link' => [
'label' => 'Editar',
'modal' => [
'heading' => 'Enlace',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Abrir en una nueva pestaña',
],
],
],
],
'text_color' => [
'label' => 'Color de texto',
'modal' => [
'heading' => 'Color de texto',
'form' => [
'color' => [
'label' => 'Color',
],
'custom_color' => [
'label' => 'Color personalizado',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'Los archivos cargados deben ser de tipo: :values.',
'file_attachments_max_size_message' => 'Los archivos cargados no deben tener más de :max kilobytes.',
'no_merge_tag_search_results_message' => 'No se encontraron etiquetas dinámicas.',
'tools' => [
'align_center' => 'Alinear al centro',
'align_end' => 'Alinear al final',
'align_justify' => 'Justificar',
'align_start' => 'Alinear al inicio',
'attach_files' => 'Adjuntar archivos',
'blockquote' => 'Cita',
'bold' => 'Negrita',
'bullet_list' => 'Viñetas',
'clear_formatting' => 'Limpiar formato',
'code' => 'Código',
'code_block' => 'Bloque de código',
'custom_blocks' => 'Bloques',
'details' => 'Detalles',
'h1' => 'Título',
'h2' => 'Encabezado',
'h3' => 'Subencabezado',
'grid' => 'Cuadrícula',
'grid_delete' => 'Eliminar cuadrícula',
'highlight' => 'Resaltar',
'horizontal_rule' => 'Línea horizontal',
'italic' => 'Cursiva',
'lead' => 'Texto guía',
'link' => 'Enlace',
'merge_tags' => 'Etiquetas dinámicas',
'ordered_list' => 'Lista numerada',
'redo' => 'Rehacer',
'small' => 'Texto pequeño',
'strike' => 'Tachar',
'subscript' => 'Subíndice',
'superscript' => 'Superíndice',
'table' => 'Tabla',
'table_delete' => 'Eliminar tabla',
'table_add_column_before' => 'Añadir columna antes',
'table_add_column_after' => 'Añadir columna después',
'table_delete_column' => 'Eliminar columna',
'table_add_row_before' => 'Añadir fila encima',
'table_add_row_after' => 'Añadir fila debajo',
'table_delete_row' => 'Eliminar fila',
'table_merge_cells' => 'Combinar celdas',
'table_split_cell' => 'Dividir celda',
'table_toggle_header_row' => 'Alternar fila de encabezado',
'text_color' => 'Color de texto',
'underline' => 'Subrayar',
'undo' => 'Deshacer',
],
'uploading_file_message' => 'Cargando archivo...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Crear',
'modal' => [
'heading' => 'Nuevo',
'actions' => [
'create' => [
'label' => 'Crear',
],
'create_another' => [
'label' => 'Crear y crear otro',
],
],
],
],
'edit_option' => [
'label' => 'Editar',
'modal' => [
'heading' => 'Editar',
'actions' => [
'save' => [
'label' => 'Guardar',
],
],
],
],
],
'boolean' => [
'true' => 'Sí',
'false' => 'No',
],
'loading_message' => 'Cargando...',
'max_items_message' => 'Solo :count pueden ser seleccionados.',
'no_search_results_message' => 'No se encontraron coincidencias con su búsqueda.',
'placeholder' => 'Seleccione una opción',
'searching_message' => 'Buscando...',
'search_prompt' => 'Teclee para buscar...',
],
'tags_input' => [
'placeholder' => 'Nueva etiqueta',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Copiar',
'message' => 'Copiado',
],
'hide_password' => [
'label' => 'Ocultar contraseña',
],
'show_password' => [
'label' => 'Mostrar contraseña',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Sí',
'false' => 'No',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Se debe seleccionar al menos un campo :attribute.',
'only_one_must_be_selected' => 'Se debe seleccionar solamente un campo :attribute.',
],
];
@@ -0,0 +1,277 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Klonatu',
],
'add' => [
'label' => 'Gehitu :label',
],
'add_between' => [
'label' => 'Txertatu',
],
'delete' => [
'label' => 'Ezabatu',
],
'reorder' => [
'label' => 'Mugitu',
],
'move_down' => [
'label' => 'Jaitsi',
],
'move_up' => [
'label' => 'Igo',
],
'collapse' => [
'label' => 'Kontrairatu',
],
'expand' => [
'label' => 'Zabaldu',
],
'collapse_all' => [
'label' => 'Kontrairatu dena',
],
'expand_all' => [
'label' => 'Zabaldu dena',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Deselektatu guztia',
],
'select_all' => [
'label' => 'Aukeratu guztia',
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Gehitu errenkada',
],
'delete' => [
'label' => 'Ezabatu errenkada',
],
'reorder' => [
'label' => 'Birordenatu errenkada',
],
],
'fields' => [
'key' => [
'label' => 'Giltza',
],
'value' => [
'label' => 'Balioa',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Erantsi agiriak',
'blockquote' => 'Aipuak',
'bold' => 'Lodia',
'bullet_list' => 'Buletinak',
'code_block' => 'Kode-blokea',
'heading' => 'Goiburua',
'edit' => 'Idatzi',
'italic' => 'Etzana',
'link' => 'Esteka',
'ordered_list' => 'Zerrenda zenbakiduna',
'preview' => 'Aurreikuspena',
'strike' => 'Marratua',
'redo' => 'Berregin',
'table' => 'Taula',
'undo' => 'Desegin',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Gehitu :label',
],
'delete' => [
'label' => 'Ezabatu',
],
'reorder' => [
'label' => 'Mugitu',
],
'clone' => [
'label' => 'Klonatu',
],
'move_down' => [
'label' => 'Jaitsi',
],
'move_up' => [
'label' => 'Igo',
],
'collapse' => [
'label' => 'Kontrairatu',
],
'expand' => [
'label' => 'Zabaldu',
],
'collapse_all' => [
'label' => 'Kontrairatu dena',
],
'expand_all' => [
'label' => 'Zabaldu dena',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Esteka',
'unlink' => 'Kendu esteka',
],
'label' => 'URL',
'placeholder' => 'Idatzi URL estekatzeko',
],
],
'tools' => [
'attach_files' => 'Erantsi agiriak',
'blockquote' => 'Aipuak',
'bold' => 'Lodia',
'bullet_list' => 'Buletinak',
'code_block' => 'Kode-blokea',
'h1' => 'Izenburua',
'h2' => 'Goiburua',
'h3' => 'Azpigoiburua',
'italic' => 'Etzana',
'link' => 'Esteka',
'ordered_list' => 'Zerrenda zenbakiduna',
'redo' => 'Berregin',
'strike' => 'Marratua',
'underline' => 'Azpimarratua',
'undo' => 'Desegin',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Berria',
'actions' => [
'create' => [
'label' => 'Sortu',
],
'create_another' => [
'label' => 'Sortu eta beste bat',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'Editatu',
'actions' => [
'save' => [
'label' => 'Gorde',
],
],
],
],
],
'boolean' => [
'true' => 'Bai',
'false' => 'Ez',
],
'loading_message' => 'Kargatzen...',
'max_items_message' => 'Soilik :count hauta daiteke.',
'no_search_results_message' => 'Ez da bat datorren bilaketarekin.',
'placeholder' => 'Aukeratu aukera bat',
'searching_message' => 'Bilatzen...',
'search_prompt' => 'Idatzi bilatzeko...',
],
'tags_input' => [
'placeholder' => 'Etiketa berria',
],
];
@@ -0,0 +1,608 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'همسان‌سازی',
],
'add' => [
'label' => 'افزودن به :label',
'modal' => [
'heading' => 'افزودن به :label',
'actions' => [
'add' => [
'label' => 'افزودن',
],
],
],
],
'add_between' => [
'label' => 'قراردادن',
'modal' => [
'heading' => 'افزودن به :label',
'actions' => [
'add' => [
'label' => 'افزودن',
],
],
],
],
'delete' => [
'label' => 'حذف',
],
'edit' => [
'label' => 'ویرایش',
'modal' => [
'heading' => 'ویرایش',
'actions' => [
'save' => [
'label' => 'ذخیره تغییرات',
],
],
],
],
'reorder' => [
'label' => 'جابه‌جایی',
],
'move_down' => [
'label' => 'پایین آوردن',
],
'move_up' => [
'label' => 'بالا بردن',
],
'collapse' => [
'label' => 'جمع کردن',
],
'expand' => [
'label' => 'باز کردن',
],
'collapse_all' => [
'label' => 'جمع کردن همه',
],
'expand_all' => [
'label' => 'باز کردن همه',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'لغو انتخاب همه',
],
'select_all' => [
'label' => 'انتخاب همه',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'لغو',
],
'drag_crop' => [
'label' => 'حالت کشیدن «برش»',
],
'drag_move' => [
'label' => 'حالت کشیدن «حرکت»',
],
'flip_horizontal' => [
'label' => 'برگردان افقی عکس',
],
'flip_vertical' => [
'label' => 'برگردان عمودی عکس',
],
'move_down' => [
'label' => 'به پایین بردن عکس',
],
'move_left' => [
'label' => 'به چپ بردن عکس',
],
'move_right' => [
'label' => 'به راست بردن عکس',
],
'move_up' => [
'label' => 'به بالا بردن عکس',
],
'reset' => [
'label' => 'بازنشانی',
],
'rotate_left' => [
'label' => 'چرخاندن عکس به چپ',
],
'rotate_right' => [
'label' => 'چرخاندن عکس به راست',
],
'set_aspect_ratio' => [
'label' => 'تنظیم نسبت ابعاد به :ratio',
],
'save' => [
'label' => 'ذخیره',
],
'zoom_100' => [
'label' => 'بزرگنمایی عکس به 100%',
],
'zoom_in' => [
'label' => 'بزرگنمایی',
],
'zoom_out' => [
'label' => 'دورنمایی',
],
],
'fields' => [
'height' => [
'label' => 'ارتفاع',
'unit' => 'px',
],
'rotation' => [
'label' => 'چرخش',
'unit' => 'deg',
],
'width' => [
'label' => 'عرض',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'نسبت ابعاد',
'no_fixed' => [
'label' => 'آزاد',
],
],
'svg' => [
'messages' => [
'confirmation' => 'ویرایش فایل‌های SVG توصیه نمی‌شود، زیرا می‌تواند منجر به کاهش کیفیت در هنگام مقیاس‌بندی شود.\n آیا مطمئن هستید که می‌خواهید ادامه دهید؟',
'disabled' => 'ویرایش فایل‌های SVG غیرفعال است زیرا می‌تواند منجر به کاهش کیفیت در هنگام مقیاس‌بندی شود.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'افزودن ردیف',
],
'delete' => [
'label' => 'حذف ردیف',
],
'reorder' => [
'label' => 'بازچینش ردیف',
],
],
'fields' => [
'key' => [
'label' => 'کلید',
],
'value' => [
'label' => 'مقدار',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'پیوستن فایل ها',
'blockquote' => 'نقل قول',
'bold' => 'پررنگ',
'bullet_list' => 'لیست نامرتب',
'code_block' => 'بلاک کد',
'heading' => 'عنوان',
'italic' => 'مورب',
'link' => 'لینک',
'ordered_list' => 'لیست مرتب',
'redo' => 'اَزنو',
'strike' => 'خط زده',
'table' => 'جدول',
'undo' => 'واگرد',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'انتخاب',
'actions' => [
'select' => [
'label' => 'انتخاب کردن',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'بله',
'false' => 'خیر',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'افزودن به :label',
],
'add_between' => [
'label' => 'درج بین',
],
'delete' => [
'label' => 'حذف',
],
'clone' => [
'label' => 'همسان‌سازی',
],
'reorder' => [
'label' => 'جابه‌جایی',
],
'move_down' => [
'label' => 'پایین آوردن',
],
'move_up' => [
'label' => 'بالا بردن',
],
'collapse' => [
'label' => 'جمع کردن',
],
'expand' => [
'label' => 'باز کردن',
],
'collapse_all' => [
'label' => 'جمع کردن همه',
],
'expand_all' => [
'label' => 'باز کردن همه',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'بارگذاری فایل',
'modal' => [
'heading' => 'بارگذاری فایل',
'form' => [
'file' => [
'label' => [
'new' => 'فایل',
'existing' => 'جایگزینی فایل',
],
],
'alt' => [
'label' => [
'new' => 'متن جایگزین',
'existing' => 'تغییر متن جایگزین',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'درج',
],
'save' => [
'label' => 'ذخیره',
],
],
],
],
'link' => [
'label' => 'ویرایش',
'modal' => [
'heading' => 'لینک',
'form' => [
'url' => [
'label' => 'آدرس اینترنتی',
],
'should_open_in_new_tab' => [
'label' => 'بازکردن در برگه جدید',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'هیچ نتیجه‌ای برای جستجوی برچسب ادغام یافت نشد.',
'tools' => [
'align_center' => 'تراز وسط',
'align_end' => 'تراز انتها',
'align_justify' => 'تراز کامل',
'align_start' => 'تراز ابتدا',
'attach_files' => 'پیوستن فایل ها',
'blockquote' => 'نقل قول',
'bold' => 'پررنگ',
'bullet_list' => 'لیست نامرتب',
'clear_formatting' => 'پاک کردن قالب بندی',
'code' => 'کد',
'code_block' => 'بلوک کد',
'h1' => 'عنوان اصلی',
'h2' => 'عنوان فرعی',
'h3' => 'زیرعنوان',
'highlight' => 'برجسته‌سازی',
'horizontal_rule' => 'خط افقی',
'italic' => 'مورب',
'link' => 'لینک',
'merge_tags' => 'برچسب‌های ادغام',
'ordered_list' => 'لیست مرتب',
'redo' => 'جلو',
'small' => 'متن کوچک',
'strike' => 'خط زده',
'subscript' => 'زیرنویس',
'superscript' => 'بالانویس',
'table' => 'جدول',
'table_delete' => 'حذف جدول',
'table_add_column_before' => 'افزودن ستون قبل',
'table_add_column_after' => 'افزودن ستون بعد',
'table_delete_column' => 'حذف ستون',
'table_add_row_before' => 'افزودن ردیف بالا',
'table_add_row_after' => 'افزودن ردیف پایین',
'table_delete_row' => 'حذف ردیف',
'table_merge_cells' => 'ادغام سلول‌ها',
'table_split_cell' => 'تقسیم سلول',
'table_toggle_header_row' => 'تغییر ردیف سرستون',
'underline' => 'زیرخط',
'undo' => 'عقب',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'ایجاد',
'modal' => [
'heading' => 'ایجاد',
'actions' => [
'create' => [
'label' => 'ایجاد',
],
'create_another' => [
'label' => 'ایجاد و ایجاد یکی دیگر',
],
],
],
],
'edit_option' => [
'modal' => [
'label' => 'ویرایش',
'heading' => 'ویرایش',
'actions' => [
'save' => [
'label' => 'ذخیره',
],
],
],
],
],
'boolean' => [
'true' => 'بله',
'false' => 'خیر',
],
'loading_message' => 'درحال بارگذاری...',
'max_items_message' => 'تنها :count مورد می‌تواند انتخاب شود.',
'no_search_results_message' => 'هیچ گزینه‌ای با جستجوی شما مطابقت ندارد.',
'placeholder' => 'یک گزینه را انتخاب کنید',
'searching_message' => 'درحال جستجو...',
'search_prompt' => 'برای جستجو تایپ کنید...',
],
'tags_input' => [
'placeholder' => 'تگ جدید',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'مخفی کردن رمز',
],
'show_password' => [
'label' => 'نشان دادن رمز',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'بله',
'false' => 'خیر',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'حداقل یک :attribute باید انتخاب شود.',
'only_one_must_be_selected' => 'فقط یک :attribute باید انتخاب شود.',
],
];
@@ -0,0 +1,623 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Kloonaa',
],
'add' => [
'label' => 'Lisää :label',
'modal' => [
'heading' => 'Lisää :label',
'actions' => [
'add' => [
'label' => 'Lisää',
],
],
],
],
'add_between' => [
'label' => 'Lisää lohkon väliin',
'modal' => [
'heading' => 'Lisää :label',
'actions' => [
'add' => [
'label' => 'Lisää',
],
],
],
],
'delete' => [
'label' => 'Poista',
],
'edit' => [
'label' => 'Muokkaa',
'modal' => [
'heading' => 'Muokkaa lohkoa',
'actions' => [
'save' => [
'label' => 'Tallenna muutokset',
],
],
],
],
'reorder' => [
'label' => 'Siirrä',
],
'move_down' => [
'label' => 'Siirrä alas',
],
'move_up' => [
'label' => 'Siirrä ylös',
],
'collapse' => [
'label' => 'Sulje',
],
'expand' => [
'label' => 'Avaa',
],
'collapse_all' => [
'label' => 'Sulje kaikki',
],
'expand_all' => [
'label' => 'Avaa kaikki',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Poista valinnat',
],
'select_all' => [
'label' => 'Valitse kaikki',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Peruuta',
],
'drag_crop' => [
'label' => 'Siirtotila "rajaus"',
],
'drag_move' => [
'label' => 'Siirtotila "siirrä"',
],
'flip_horizontal' => [
'label' => 'Käännä kuva vaakasuunnassa',
],
'flip_vertical' => [
'label' => 'Käännä kuva pystysuunnassa',
],
'move_down' => [
'label' => 'Siirrä kuvaa alas',
],
'move_left' => [
'label' => 'Siirrä kuvaa vasemmalle ',
],
'move_right' => [
'label' => 'Siirrä kuvaa oikealle',
],
'move_up' => [
'label' => 'Siirrä kuvaa ylös',
],
'reset' => [
'label' => 'Palauta',
],
'rotate_left' => [
'label' => 'Käännä kuvaa vasemmalle',
],
'rotate_right' => [
'label' => 'Käännä kuvaa oikealle',
],
'set_aspect_ratio' => [
'label' => 'Aseta kuvasuhteeksi :ratio',
],
'save' => [
'label' => 'Tallenna',
],
'zoom_100' => [
'label' => 'Oikea koko',
],
'zoom_in' => [
'label' => 'Lähennä',
],
'zoom_out' => [
'label' => 'Loitonna',
],
],
'fields' => [
'height' => [
'label' => 'Korkeus',
'unit' => 'px',
],
'rotation' => [
'label' => 'Kierre',
'unit' => 'deg',
],
'width' => [
'label' => 'Leveys',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Kuvasuhde',
'no_fixed' => [
'label' => 'Vapaa',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVG-tiedostojen muokkausta ei suositella, koska laatu voi heikentyä kokoa muuttaessa.\n Oletko varma että haluat jatkaa?',
'disabled' => 'SVG-tiedostojen muokkaus on poissa käytöstä koska se voi johtaa laadun heikkenemiseen.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Lisää rivi',
],
'delete' => [
'label' => 'Poista rivi',
],
'reorder' => [
'label' => 'Järjestele rivi',
],
],
'fields' => [
'key' => [
'label' => 'Avain',
],
'value' => [
'label' => 'Arvo',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Liitä tiedostoja',
'blockquote' => 'Lainaus',
'bold' => 'Lihavointi',
'bullet_list' => 'Lista',
'code_block' => 'Koodialue',
'heading' => 'Otsikko',
'italic' => 'Kursivoitu',
'link' => 'Linkki',
'ordered_list' => 'Luettelo',
'redo' => 'Toista',
'strike' => 'Yliviivaus',
'table' => 'Taulukko',
'undo' => 'Peruuta',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Valitse',
'actions' => [
'select' => [
'label' => 'Valitse',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Kyllä',
'false' => 'Ei',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Lisää :label',
],
'add_between' => [
'label' => 'Lisää väliin',
],
'delete' => [
'label' => 'Poista',
],
'clone' => [
'label' => 'Kloonaa',
],
'reorder' => [
'label' => 'Siirrä',
],
'move_down' => [
'label' => 'Siirrä alas',
],
'move_up' => [
'label' => 'Siirrä ylös',
],
'collapse' => [
'label' => 'Sulje',
],
'expand' => [
'label' => 'Avaa',
],
'collapse_all' => [
'label' => 'Sulje kaikki',
],
'expand_all' => [
'label' => 'Avaa kaikki',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Lisää tiedosto',
'modal' => [
'heading' => 'Siirrä tiedosto',
'form' => [
'file' => [
'label' => [
'new' => 'Tiedosto',
'existing' => 'Korvaa tiedosto',
],
],
'alt' => [
'label' => [
'new' => 'Vaihtoehtoinen teksti',
'existing' => 'Korvaa vaihtoehtoinen teksti',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Sijoita',
],
'save' => [
'label' => 'Tallenna',
],
],
],
],
'link' => [
'label' => 'Muokkaa',
'modal' => [
'heading' => 'Linkki',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Avaa uudessa välilehdessä',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'Tunnisteita ei löytynyt.',
'tools' => [
'align_center' => 'Keskitä',
'align_end' => 'Tasaa oikealle',
'align_justify' => 'Tasaa keskelle',
'align_start' => 'Tasaa vasemmalle',
'attach_files' => 'Liitä tiedostoja',
'blockquote' => 'Lainaus',
'bold' => 'Lihavointi',
'bullet_list' => 'Lista',
'clear_formatting' => 'Tyhjennä muotoilu',
'code' => 'Koodi',
'code_block' => 'Koodialue',
'custom_blocks' => 'Lohkot',
'details' => 'Lisätiedot',
'h1' => 'Pääotsikko',
'h2' => 'Otsikko',
'h3' => 'Aliotsikko',
'highlight' => 'Korostus',
'horizontal_rule' => 'Erotin',
'italic' => 'Kursivoitu',
'lead' => 'Johdatus',
'link' => 'Linkki',
'merge_tags' => 'Yhdistä tunniste',
'ordered_list' => 'Luettelo',
'redo' => 'Toista',
'small' => 'Pieni teksti',
'strike' => 'Yliviivaus',
'subscript' => 'Alaindeksi',
'superscript' => 'Yläindeksi',
'table' => 'Taulukko',
'table_delete' => 'Poista taulukko',
'table_add_column_before' => 'Lisää sarake ennen',
'table_add_column_after' => 'Lisää sarake jälkeen',
'table_delete_column' => 'Poista sarake',
'table_add_row_before' => 'Lisää rivi ennen',
'table_add_row_after' => 'Lisää rivi jälkeen',
'table_delete_row' => 'Poista rivi',
'table_merge_cells' => 'Yhdistä solut',
'table_split_cell' => 'Pilko solu',
'table_toggle_header_row' => 'Vaihda otsikkorivi',
'underline' => 'Alleviivaus',
'undo' => 'Peruuta',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Uusi',
'modal' => [
'heading' => 'Uusi',
'actions' => [
'create' => [
'label' => 'Uusi',
],
'create_another' => [
'label' => 'Luo & luo toinen',
],
],
],
],
'edit_option' => [
'label' => 'Muokkaa',
'modal' => [
'heading' => 'Muokkaa',
'actions' => [
'save' => [
'label' => 'Tallenna',
],
],
],
],
],
'boolean' => [
'true' => 'Kyllä',
'false' => 'Ei',
],
'loading_message' => 'Ladataan...',
'max_items_message' => 'Voit valita enintään :count.',
'no_search_results_message' => 'Haku ei löytänyt tuloksia.',
'placeholder' => 'Valitse vaihtoehto',
'searching_message' => 'Haetaan...',
'search_prompt' => 'Kirjoita hakeaksesi...',
],
'tags_input' => [
'placeholder' => 'Uusi tunniste',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Kopioi',
'message' => 'Kopioitu',
],
'hide_password' => [
'label' => 'Piilota salasana',
],
'show_password' => [
'label' => 'Näytä salasana',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Kyllä',
'false' => 'Ei',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Vähintään yksi :attribute kenttä tulee olla valittuna.',
'only_one_must_be_selected' => 'Vain yksi :attribute kenttä tulee olla valittuna.',
],
];
@@ -0,0 +1,617 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Cloner',
],
'add' => [
'label' => 'Ajouter à :label',
'modal' => [
'heading' => 'Ajouter à :label',
'actions' => [
'add' => [
'label' => 'Ajouter',
],
],
],
],
'add_between' => [
'label' => 'Insérer entre les blocs',
'modal' => [
'heading' => 'Ajouter à :label',
'actions' => [
'add' => [
'label' => 'Ajouter',
],
],
],
],
'delete' => [
'label' => 'Supprimer',
],
'edit' => [
'label' => 'Modifier',
'modal' => [
'heading' => 'Modifier le bloc',
'actions' => [
'save' => [
'label' => 'Sauvegarder les modifications',
],
],
],
],
'reorder' => [
'label' => 'Déplacer',
],
'move_down' => [
'label' => 'Déplacer vers le bas',
],
'move_up' => [
'label' => 'Déplacer vers le haut',
],
'collapse' => [
'label' => 'Plier',
],
'expand' => [
'label' => 'Déplier',
],
'collapse_all' => [
'label' => 'Tout plier',
],
'expand_all' => [
'label' => 'Tout déplier',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Désélectionner tout',
],
'select_all' => [
'label' => 'Sélectionner tout',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Annuler',
],
'drag_crop' => [
'label' => 'Mode glisser "recadrer"',
],
'drag_move' => [
'label' => 'Mode glisser "déplacer"',
],
'flip_horizontal' => [
'label' => "Retourner l'image horizontalement",
],
'flip_vertical' => [
'label' => "Retourner l'image verticalement",
],
'move_down' => [
'label' => "Déplacer l'image vers le bas",
],
'move_left' => [
'label' => "Déplacer l'image vers la gauche",
],
'move_right' => [
'label' => "Déplacer l'image vers la droite",
],
'move_up' => [
'label' => "Déplacer l'image vers le haut",
],
'reset' => [
'label' => 'Réinitialiser',
],
'rotate_left' => [
'label' => "Faire pivoter l'image vers la gauche",
],
'rotate_right' => [
'label' => "Faire pivoter l'image vers la droite",
],
'set_aspect_ratio' => [
'label' => 'Régler les proportions sur :ratio',
],
'save' => [
'label' => 'Sauvegarder',
],
'zoom_100' => [
'label' => "Agrandir l'image à 100%",
],
'zoom_in' => [
'label' => 'Zoomer',
],
'zoom_out' => [
'label' => 'Dézoomer',
],
],
'fields' => [
'height' => [
'label' => 'Hauteur',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotation',
'unit' => 'deg',
],
'width' => [
'label' => 'Largeur',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Proportions',
'no_fixed' => [
'label' => 'Libre',
],
],
'svg' => [
'messages' => [
'confirmation' => 'La modification des fichiers SVG n\'est pas recommandée car elle peut entraîner une perte de qualité lors de la mise à l\'échelle.\n Êtes-vous sûr de vouloir continuer ?',
'disabled' => 'La modification des fichiers SVG est désactivée car elle peut entraîner une perte de qualité lors de la mise à l\'échelle.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Ajouter une ligne',
],
'delete' => [
'label' => 'Supprimer une ligne',
],
'reorder' => [
'label' => 'Réorganiser une ligne',
],
],
'fields' => [
'key' => [
'label' => 'Clé',
],
'value' => [
'label' => 'Valeur',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Joindre des fichiers',
'blockquote' => 'Citation',
'bold' => 'Gras',
'bullet_list' => 'Liste à puces',
'code_block' => 'Bloc de code',
'heading' => 'Titre',
'italic' => 'Italique',
'link' => 'Lien',
'ordered_list' => 'Liste numérotée',
'redo' => 'Refaire',
'strike' => 'Barré',
'table' => 'Table',
'undo' => 'Annuler',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Sélectionner',
'actions' => [
'select' => [
'label' => 'Sélectionner',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Oui',
'false' => 'Non',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Ajouter à :label',
],
'add_between' => [
'label' => 'Insérer entre',
],
'delete' => [
'label' => 'Supprimer',
],
'clone' => [
'label' => 'Cloner',
],
'reorder' => [
'label' => 'Déplacer',
],
'move_down' => [
'label' => 'Déplacer vers le bas',
],
'move_up' => [
'label' => 'Déplacer vers le haut',
],
'collapse' => [
'label' => 'Plier',
],
'expand' => [
'label' => 'Déplier',
],
'collapse_all' => [
'label' => 'Tout plier',
],
'expand_all' => [
'label' => 'Tout déplier',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Téléverser un fichier',
'modal' => [
'heading' => 'Téléverser un fichier',
'form' => [
'file' => [
'label' => [
'new' => 'Fichier',
'existing' => 'Remplacer le fichier',
],
],
'alt' => [
'label' => [
'new' => 'Texte alternatif',
'existing' => 'Modifier le texte alternatif',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Insérer',
],
'save' => [
'label' => 'Sauvegarder',
],
],
],
],
'link' => [
'label' => 'Modifier',
'modal' => [
'heading' => 'Lien',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Ouvrir dans un nouvel onglet',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'Aucun résultat de balise de fusion.',
'tools' => [
'align_center' => 'Centrer',
'align_end' => 'Aligner à la fin',
'align_justify' => 'Justifier',
'align_start' => 'Aligner au début',
'attach_files' => 'Joindre des fichiers',
'blockquote' => 'Citation',
'bold' => 'Gras',
'bullet_list' => 'Liste à puces',
'clear_formatting' => 'Effacer la mise en forme',
'code_block' => 'Bloc de code',
'custom_blocks' => 'Blocs',
'details' => 'Détails',
'h1' => 'Titre',
'h2' => 'Titre',
'h3' => 'Sous-titre',
'highlight' => 'Surligner',
'horizontal_rule' => 'Ligne horizontale',
'italic' => 'Italique',
'lead' => 'Texte principal',
'link' => 'Lien',
'merge_tags' => 'Balises de fusion',
'ordered_list' => 'Liste numérotée',
'redo' => 'Refaire',
'small' => 'Petit texte',
'strike' => 'Barré',
'subscript' => 'Indice',
'superscript' => 'Exposant',
'table' => 'Tableau',
'table_delete' => 'Supprimer le tableau',
'table_add_column_before' => 'Ajouter une colonne avant',
'table_add_column_after' => 'Ajouter une colonne après',
'table_delete_column' => 'Supprimer la colonne',
'table_add_row_before' => 'Ajouter une ligne au-dessus',
'table_add_row_after' => 'Ajouter une ligne en dessous',
'table_delete_row' => 'Supprimer la ligne',
'table_merge_cells' => 'Fusionner les cellules',
'table_split_cell' => 'Diviser la cellule',
'table_toggle_header_row' => 'Basculer la ligne d\'en-tête',
'underline' => 'Souligné',
'undo' => 'Annuler',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Créer',
'modal' => [
'heading' => 'Créer',
'actions' => [
'create' => [
'label' => 'Créer',
],
'create_another' => [
'label' => 'Créer & créer un autre',
],
],
],
],
'edit_option' => [
'label' => 'Modifier',
'modal' => [
'heading' => 'Modifier',
'actions' => [
'save' => [
'label' => 'Sauvegarder',
],
],
],
],
],
'boolean' => [
'true' => 'Oui',
'false' => 'Non',
],
'loading_message' => 'En chargement...',
'max_items_message' => 'Uniquement :count peuvent être sélectionnés.',
'no_search_results_message' => 'Aucune option ne correspond à votre recherche.',
'placeholder' => 'Sélectionnez une option',
'searching_message' => 'En recherche...',
'search_prompt' => 'Commencez à taper pour rechercher...',
],
'tags_input' => [
'placeholder' => 'Nouveau tag',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Masquer le mot de passe',
],
'show_password' => [
'label' => 'Montrer le mot de passe',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Oui',
'false' => 'Non',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Au moins un champ :attribute doit être sélectionné.',
'only_one_must_be_selected' => 'Seulement un champ :attribute doit être sélectionné.',
],
];
@@ -0,0 +1,516 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'שכפל',
],
'add' => [
'label' => 'הוסף :label',
'modal' => [
'label' => 'הוספת :label',
'actions' => [
'add' => [
'label' => 'הוסף',
],
],
],
],
'add_between' => [
'label' => 'הכנס בין הבלוקים',
],
'delete' => [
'label' => 'מחק',
],
'reorder' => [
'label' => 'העבר',
],
'move_down' => [
'label' => 'הזז מטה',
],
'move_up' => [
'label' => 'הזז מעלה',
],
'collapse' => [
'label' => 'צמצם',
],
'expand' => [
'label' => 'הרחב',
],
'collapse_all' => [
'label' => 'צמצם הכל',
],
'expand_all' => [
'label' => 'הרחב הכל',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'בטל בחירה בהכל',
],
'select_all' => [
'label' => 'בחר הכל',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'ביטול',
],
'drag_crop' => [
'label' => 'מצב גרירה "חיתוך"',
],
'drag_move' => [
'label' => 'מצב גרירה "הזזה"',
],
'flip_horizontal' => [
'label' => 'היפוך אופקי של התמונה',
],
'flip_vertical' => [
'label' => 'היפוך אנכי של התמונה',
],
'move_down' => [
'label' => 'הזזת התמונה למטה',
],
'move_left' => [
'label' => 'הזזת התמונה לשמאל',
],
'move_right' => [
'label' => 'הזזת התמונה לימין',
],
'move_up' => [
'label' => 'הזזת התמונה למעלה',
],
'reset' => [
'label' => 'איפוס',
],
'rotate_left' => [
'label' => 'סיבוב התמונה שמאלה',
],
'rotate_right' => [
'label' => 'סיבוב התמונה ימינה',
],
'set_aspect_ratio' => [
'label' => 'הגדר יחס צדדי לתמונה :ratio',
],
'save' => [
'label' => 'שמירה',
],
'zoom_100' => [
'label' => 'התמונה עם זום 100%',
],
'zoom_in' => [
'label' => 'התקרב',
],
'zoom_out' => [
'label' => 'התרחק',
],
],
'fields' => [
'height' => [
'label' => 'גובה',
'unit' => 'פיקסלים',
],
'rotation' => [
'label' => 'סיבוב',
'unit' => 'מעלות',
],
'width' => [
'label' => 'רוחב',
'unit' => 'פיקסלים',
],
'x_position' => [
'label' => 'X',
'unit' => 'פיקסלים',
],
'y_position' => [
'label' => 'Y',
'unit' => 'פיקסלים',
],
],
'aspect_ratios' => [
'label' => 'יחסי ציר',
'no_fixed' => [
'label' => 'חופשי',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'הוסף שורה',
],
'delete' => [
'label' => 'מחק שורה',
],
'reorder' => [
'label' => 'סדר רשומה מחדש',
],
],
'fields' => [
'key' => [
'label' => 'שדה',
],
'value' => [
'label' => 'ערך',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'הוסף קבצים',
'blockquote' => 'בלוק ציטוט',
'bold' => 'מודגש',
'bullet_list' => 'רשימת נקודות',
'code_block' => 'בלוק קוד',
'heading' => 'כותרת',
'italic' => 'נטוי',
'link' => 'קישור',
'ordered_list' => 'רשימה ממוספרת',
'strike' => 'כתיב מחדל',
'redo' => 'שחזור',
'table' => 'טבלה',
'undo' => 'ביטול שחזור',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'הוסף :label',
],
'delete' => [
'label' => 'מחק',
],
'clone' => [
'label' => 'שכפל',
],
'reorder' => [
'label' => 'העבר',
],
'move_down' => [
'label' => 'הזז מטה',
],
'move_up' => [
'label' => 'הזז מעלה',
],
'collapse' => [
'label' => 'צמצם',
],
'expand' => [
'label' => 'הרחב',
],
'collapse_all' => [
'label' => 'צמצם הכל',
],
'expand_all' => [
'label' => 'הרחב הכל',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'העלאת קובץ',
'modal' => [
'heading' => 'העלאת קובץ',
'form' => [
'file' => [
'label' => [
'new' => 'קובץ',
'existing' => 'החלף קובץ',
],
],
'alt' => [
'label' => [
'new' => 'טקסט חלופי',
'existing' => 'שנה טקסט חלופי',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'הכנס',
],
'save' => [
'label' => 'שמירה',
],
],
],
],
'link' => [
'label' => 'עריכה',
'modal' => [
'heading' => 'קישור',
'form' => [
'url' => [
'label' => 'כתובת URL',
],
'should_open_in_new_tab' => [
'label' => 'פתח קישור בכרטיסיה חדשה',
],
],
],
],
],
'tools' => [
'align_center' => 'יישר למרכז',
'align_end' => 'יישר לשמאל',
'align_justify' => 'יישר לשני הצדדים',
'align_start' => 'יישר לימין',
'attach_files' => 'הוסף קבצים',
'blockquote' => 'בלוק ציטוט',
'bold' => 'מודגש',
'bullet_list' => 'רשימת נקודות',
'clear_formatting' => 'ניקוי עיצוב',
'code' => 'קוד',
'code_block' => 'בלוק קוד',
'custom_blocks' => 'בלוקים מותאמים אישית',
'details' => 'פרטים',
'h1' => 'כותרת 1',
'h2' => 'כותרת 2',
'h3' => 'כותרת 3',
'highlight' => 'הדגשה',
'horizontal_rule' => 'קו אופקי',
'italic' => 'נטוי',
'lead' => 'טקסט גדול',
'link' => 'קישור',
'merge_tags' => 'מזג תוויות',
'ordered_list' => 'רשימה ממוספרת',
'redo' => 'בצע שוב',
'small' => 'טקסט קטן',
'strike' => 'קו חוצה',
'subscript' => 'כתב תחתי',
'superscript' => 'כתב עילי',
'table' => 'טבלה',
'table_delete' => 'מחק טבלה',
'table_add_column_before' => 'הוסף עמודה לפני',
'table_add_column_after' => 'הוסף עמודה אחרי',
'table_delete_column' => 'מחק עמודה',
'table_add_row_before' => 'הוסף שורה לפני',
'table_add_row_after' => 'הוסף שורה אחרי',
'table_delete_row' => 'מחק שורה',
'table_merge_cells' => 'מזג תאים',
'table_split_cell' => 'פצל תאים',
'table_toggle_header_row' => 'הפעל/הסתר שורת כותרת',
'underline' => 'קו תחתון',
'undo' => 'בטל',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'יצירה',
'modal' => [
'heading' => 'יצירה',
'actions' => [
'create' => [
'label' => 'יצירה',
],
'create_another' => [
'label' => 'צור וצור עוד אחד',
],
],
],
],
'edit_option' => [
'label' => 'עריכה',
'modal' => [
'heading' => 'עריכה',
'actions' => [
'save' => [
'label' => 'שמירה',
],
],
],
],
],
'boolean' => [
'true' => 'כן',
'false' => 'לא',
],
'loading_message' => 'טוען...',
'max_items_message' => 'ניתן לבחור רק :count',
'no_search_results_message' => 'לא נמצאו תוצאות.',
'placeholder' => 'בחר',
'searching_message' => 'מחפש...',
'search_prompt' => 'התחל להקליד על מנת לחפש...',
],
'tags_input' => [
'placeholder' => 'תגית חדשה',
],
'toggle_buttons' => [
'boolean' => [
'true' => 'כן',
'false' => 'לא',
],
],
];
@@ -0,0 +1,150 @@
<?php
return [
'builder' => [
'actions' => [
'add' => [
'label' => ':label में जोड़ें',
],
'add_between' => [
'label' => 'के बीच जोड़ें',
],
'delete' => [
'label' => 'हटाएँ',
],
'move_down' => [
'label' => 'नीचे करे',
],
'move_up' => [
'label' => 'ऊपर करे',
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'पंक्ति जोड़ें',
],
'delete' => [
'label' => 'पंक्ति हटाएँ',
],
],
'fields' => [
'key' => [
'label' => 'कुंजी',
],
'value' => [
'label' => 'मान',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'फ़ाइलें जोड़ें',
'bold' => 'स्पष्ट',
'bullet_list' => 'बुलॅट सूची',
'code_block' => 'कोड ब्लॉक',
'edit' => 'संपादन करे',
'italic' => 'तिरछा',
'link' => 'लिंक',
'ordered_list' => 'अंकीय सूची',
'preview' => 'पूर्वावलोकन',
'strike' => 'शद्ब कांटे',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => ':label में जोड़ें',
],
'delete' => [
'label' => 'हटाएँ',
],
'move_down' => [
'label' => 'नीचे करे',
],
'move_up' => [
'label' => 'ऊपर करे',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'लिंक',
'unlink' => 'अनलिंक',
],
'label' => 'यूआरएल',
'placeholder' => 'यूआरएल(URL) डाले',
],
],
'tools' => [
'attach_files' => 'फ़ाइलें जोड़ें',
'blockquote' => 'ब्लॉककोट',
'bold' => 'स्पष्ट',
'bullet_list' => 'बुलॅट सूची',
'code_block' => 'कोड ब्लॉक',
'h1' => 'शीर्षक',
'h2' => 'शीर्षक',
'h3' => 'उपशीर्षक',
'italic' => 'तिरछा',
'link' => 'लिंक',
'ordered_list' => 'अंकीय सूची',
'redo' => 'दोहराएँ',
'strike' => 'शद्ब कांटे',
'undo' => 'पूर्ववत्',
],
],
'select' => [
'no_search_results_message' => 'आपकी खोज से मेल खाने वाला कोई विकल्प नहीं मिला',
'placeholder' => 'किसी विकल्प का चयन करें',
'search_prompt' => 'खोज करने के लिए लिखना प्रारंभ करें...',
],
'tags_input' => [
'placeholder' => 'नया टैग',
],
];
@@ -0,0 +1,495 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Kloniraj',
],
'add' => [
'label' => 'Dodaj na :label',
'modal' => [
'heading' => 'Dodaj na :label',
'actions' => [
'add' => [
'label' => 'Dodaj',
],
],
],
],
'add_between' => [
'label' => 'Umetni između blokova',
'modal' => [
'heading' => 'Dodaj na :label',
'actions' => [
'add' => [
'label' => 'Dodaj',
],
],
],
],
'delete' => [
'label' => 'Obriši',
],
'edit' => [
'label' => 'Uredi',
'modal' => [
'heading' => 'Uredi blok',
'actions' => [
'save' => [
'label' => 'Spremi promjene',
],
],
],
],
'reorder' => [
'label' => 'Pomakni',
],
'move_down' => [
'label' => 'Pomakni dolje',
],
'move_up' => [
'label' => 'Pomakni gore',
],
'collapse' => [
'label' => 'Skupi',
],
'expand' => [
'label' => 'Proširi',
],
'collapse_all' => [
'label' => 'Skupi sve',
],
'expand_all' => [
'label' => 'Proširi sve',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Odznači sve',
],
'select_all' => [
'label' => 'Označi sve',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Odustani',
],
'drag_crop' => [
'label' => 'Povlačenje za obrezivanje',
],
'drag_move' => [
'label' => 'Povlačenje za pomicanje',
],
'flip_horizontal' => [
'label' => 'Obrni sliku horizontalno',
],
'flip_vertical' => [
'label' => 'Obrni sliku vertikalno',
],
'move_down' => [
'label' => 'Pomakni sliku dolje',
],
'move_left' => [
'label' => 'Pomakni sliku lijevo',
],
'move_right' => [
'label' => 'Pomakni sliku desno',
],
'move_up' => [
'label' => 'Pomakni sliku gore',
],
'reset' => [
'label' => 'Poništi',
],
'rotate_left' => [
'label' => 'Zaokreni sliku ulijevo',
],
'rotate_right' => [
'label' => 'Zaokreni sliku udesno',
],
'set_aspect_ratio' => [
'label' => 'Postavi omjer širine i visine na :ratio',
],
'save' => [
'label' => 'Spremi',
],
'zoom_100' => [
'label' => 'Uvećaj sliku na 100%',
],
'zoom_in' => [
'label' => 'Povećaj',
],
'zoom_out' => [
'label' => 'Smanji',
],
],
'fields' => [
'height' => [
'label' => 'Visina',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotacija',
'unit' => 'deg',
],
'width' => [
'label' => 'Širina',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Omjeri širine i visine',
'no_fixed' => [
'label' => 'Slobodno',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Obrađivanje SVG datoteka nije preporučljivo i može dovesti do gubitka kvalitete kada se skalira.\n Jesi li siguran da želiš nastaviti?',
'disabled' => 'Onemogućena je obrada SVG datoteka jer može dovesti do gubitka kvalitete kada se skalira.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Dodaj red',
],
'delete' => [
'label' => 'Obriši red',
],
'reorder' => [
'label' => 'Promijeni redoslijed reda',
],
],
'fields' => [
'key' => [
'label' => 'Ključ',
],
'value' => [
'label' => 'Vrijednost',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Dodaj datoteke',
'blockquote' => 'Blok citat',
'bold' => 'Podebljano',
'bullet_list' => 'Lista',
'code_block' => 'Blok kôda',
'heading' => 'Zaglavlje',
'italic' => 'Kurziv',
'link' => 'Poveznica',
'ordered_list' => 'Numerirana lista',
'redo' => 'Ponovi',
'strike' => 'Precrtano',
'table' => 'Tablica',
'undo' => 'Poništi',
],
],
'radio' => [
'boolean' => [
'true' => 'Da',
'false' => 'Ne',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Dodaj na :label',
],
'add_between' => [
'label' => 'Umetni između',
],
'delete' => [
'label' => 'Obriši',
],
'clone' => [
'label' => 'Kloniraj',
],
'reorder' => [
'label' => 'Pomakni',
],
'move_down' => [
'label' => 'Pomakni dolje',
],
'move_up' => [
'label' => 'Pomakni gore',
],
'collapse' => [
'label' => 'Skupi',
],
'expand' => [
'label' => 'Proširi',
],
'collapse_all' => [
'label' => 'Skupi sve',
],
'expand_all' => [
'label' => 'Proširi sve',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'Poveznica',
'unlink' => 'Ukloni poveznicu',
],
'label' => 'URL',
'placeholder' => 'Unesi URL',
],
],
'tools' => [
'attach_files' => 'Dodaj datoteke',
'blockquote' => 'Blok citat',
'bold' => 'Podebljano',
'bullet_list' => 'Lista',
'code_block' => 'Blok kôda',
'h1' => 'Naslov',
'h2' => 'Zaglavlje',
'h3' => 'Podnaslov',
'italic' => 'Kurziv',
'link' => 'Poveznica',
'ordered_list' => 'Numerirana lista',
'redo' => 'Ponovi',
'strike' => 'Precrtano',
'underline' => 'Podcrtano',
'undo' => 'Poništi',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'Napravi',
'actions' => [
'create' => [
'label' => 'Napravi',
],
'create_another' => [
'label' => 'Napravi i dodaj još jedan',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'Uredi',
'actions' => [
'save' => [
'label' => 'Spremi',
],
],
],
],
],
'boolean' => [
'true' => 'Da',
'false' => 'Ne',
],
'loading_message' => 'Učitavanje...',
'max_items_message' => 'Samo :count može biti odabrano.',
'no_search_results_message' => 'Nema opcija koje odgovaraju tvojem pretraživanju.',
'placeholder' => 'Odaberi opciju',
'searching_message' => 'Pretraživanje...',
'search_prompt' => 'Počni tipkati za pretragu...',
],
'tags_input' => [
'placeholder' => 'Nova oznaka',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Sakrij lozinku',
],
'show_password' => [
'label' => 'Prikaži lozinku',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Da',
'false' => 'Ne',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Najmanje jedan :attribute mora biti odabran.',
'only_one_must_be_selected' => 'Samo jedan :attribute može biti odabrab.',
],
];
@@ -0,0 +1,572 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Duplikálás',
],
'add' => [
'label' => 'Új :label',
'modal' => [
'heading' => 'Új :label',
'actions' => [
'add' => [
'label' => 'Új',
],
],
],
],
'add_between' => [
'label' => 'Beillesztés blokkok közé',
'modal' => [
'heading' => 'Új :label',
'actions' => [
'add' => [
'label' => 'Új',
],
],
],
],
'delete' => [
'label' => 'Törlés',
],
'edit' => [
'label' => 'Szerkesztés',
'modal' => [
'heading' => 'Blokk szerkesztése',
'actions' => [
'save' => [
'label' => 'Változtatások mentése',
],
],
],
],
'reorder' => [
'label' => 'Mozgatás',
],
'move_down' => [
'label' => 'Mozgatás lefelé',
],
'move_up' => [
'label' => 'Mozgatás felfelé',
],
'collapse' => [
'label' => 'Becsukás',
],
'expand' => [
'label' => 'Kibontás',
],
'collapse_all' => [
'label' => 'Összes becsukása',
],
'expand_all' => [
'label' => 'Összes kibontása',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Kijelölés megszüntetése',
],
'select_all' => [
'label' => 'Összes kijelölése',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Mégsem',
],
'drag_crop' => [
'label' => 'Méretrevágási mód',
],
'drag_move' => [
'label' => 'Mozgatási mód',
],
'flip_horizontal' => [
'label' => 'Kép vízszintes tükrözése',
],
'flip_vertical' => [
'label' => 'Kép függőleges tükrözése',
],
'move_down' => [
'label' => 'Lefele mozgatás',
],
'move_left' => [
'label' => 'Balra mozgatás',
],
'move_right' => [
'label' => 'Jobbra mozgatás',
],
'move_up' => [
'label' => 'Felfele mozgatás',
],
'reset' => [
'label' => 'Visszaállítás',
],
'rotate_left' => [
'label' => 'Kép elforgatása balra',
],
'rotate_right' => [
'label' => 'Kép elforgatása jobbra',
],
'set_aspect_ratio' => [
'label' => 'Képarány beállítása :ratio értékre',
],
'save' => [
'label' => 'Mentés',
],
'zoom_100' => [
'label' => 'Kép nagyítása 100%-ra',
],
'zoom_in' => [
'label' => 'Nagyítás',
],
'zoom_out' => [
'label' => 'Kicsinyítés',
],
],
'fields' => [
'height' => [
'label' => 'Magasság',
'unit' => 'px',
],
'rotation' => [
'label' => 'Elforgatás',
'unit' => 'fok',
],
'width' => [
'label' => 'Szélesség',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Képarányok',
'no_fixed' => [
'label' => 'Egyéni',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Az SVG fájlok szerkesztése nem ajánlott, mivel minőségromláshoz vezethet az átméretezés során.\n Biztosan szeretnéd folytatni?',
'disabled' => 'Az SVG fájlok szerkesztése nem engedélyezett, mivel minőségromláshoz vezethet az átméretezés során.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Sor hozzáadása',
],
'delete' => [
'label' => 'Sor törlése',
],
'reorder' => [
'label' => 'Sor mozgatása',
],
],
'fields' => [
'key' => [
'label' => 'Kulcs',
],
'value' => [
'label' => 'Érték',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'Fájlok csatolása',
'blockquote' => 'Idézet',
'bold' => 'Félkövér',
'bullet_list' => 'Felsorolás',
'code_block' => 'Kódblokk',
'heading' => 'Címsor',
'italic' => 'Dőlt',
'link' => 'Hivatkozás',
'ordered_list' => 'Számozott lista',
'redo' => 'Visszaállítás',
'strike' => 'Áthúzott',
'table' => 'Táblázat',
'undo' => 'Visszavonás',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Kiválasztás',
'actions' => [
'select' => [
'label' => 'Kiválasztás',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Igen',
'false' => 'Nem',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Új :label',
],
'add_between' => [
'label' => 'Beillesztés blokkok közé',
],
'delete' => [
'label' => 'Törlés',
],
'clone' => [
'label' => 'Duplikálás',
],
'reorder' => [
'label' => 'Mozgatás',
],
'move_down' => [
'label' => 'Mozgatás lefelé',
],
'move_up' => [
'label' => 'Mozgatás felfelé',
],
'collapse' => [
'label' => 'Becsukás',
],
'expand' => [
'label' => 'Kibontás',
],
'collapse_all' => [
'label' => 'Összes becsukása',
],
'expand_all' => [
'label' => 'Összes kibontása',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Fájl feltöltése',
'modal' => [
'heading' => 'Fájl feltöltése',
'form' => [
'file' => [
'label' => [
'new' => 'Fájl',
'existing' => 'Fájl cseréje',
],
],
'alt' => [
'label' => [
'new' => 'Alt szöveg',
'existing' => 'Alt szöveg módosítása',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Beszúrás',
],
'save' => [
'label' => 'Mentés',
],
],
],
],
'link' => [
'label' => 'Szerkesztés',
'modal' => [
'heading' => 'Hivatkozás',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Megnyitás új lapon',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'Nincs találat az egyesítési címkék között.',
'tools' => [
'attach_files' => 'Fájlok csatolása',
'blockquote' => 'Idézet',
'bold' => 'Félkövér',
'bullet_list' => 'Felsorolás',
'code_block' => 'Kódblokk',
'custom_blocks' => 'Blokkok',
'h1' => 'Cím',
'h2' => 'Címsor',
'h3' => 'Alcím',
'italic' => 'Dőlt',
'link' => 'Hivatkozás',
'merge_tags' => 'Egyesítési címkék',
'ordered_list' => 'Számozott lista',
'redo' => 'Visszaállítás',
'strike' => 'Áthúzott',
'subscript' => 'Alsó index',
'superscript' => 'Felső index',
'underline' => 'Aláhúzott',
'undo' => 'Visszavonás',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Létrehozás',
'modal' => [
'heading' => 'Új elem hozzáadása',
'actions' => [
'create' => [
'label' => 'Hozzáadás',
],
'create_another' => [
'label' => 'Mentés és új hozzáadása',
],
],
],
],
'edit_option' => [
'label' => 'Szerkesztés',
'modal' => [
'heading' => 'Szerkesztés',
'actions' => [
'save' => [
'label' => 'Mentés',
],
],
],
],
],
'boolean' => [
'true' => 'Igen',
'false' => 'Nem',
],
'loading_message' => 'Kérlek várj...',
'max_items_message' => 'Csak :count elem választható ki.',
'no_search_results_message' => 'Nincs találat.',
'placeholder' => 'Válassz ki egy elemet',
'searching_message' => 'Keresés...',
'search_prompt' => 'Kezdj el írni a kereséshez...',
],
'tags_input' => [
'placeholder' => 'Címke hozzáadása',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'Jelszó elrejtése',
],
'show_password' => [
'label' => 'Jelszó megjelenítése',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Igen',
'false' => 'Nem',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Legalább egy :attribute mezőt ki kell választani.',
'only_one_must_be_selected' => 'Csak egy :attribute mezőt választhatsz ki.',
],
];
@@ -0,0 +1,724 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Կրկնօրինակել',
],
'add' => [
'label' => 'Ավելացնել:label',
'modal' => [
'heading' => 'Ավելացնել :label',
'actions' => [
'add' => [
'label' => 'Ավելացնել',
],
],
],
],
'add_between' => [
'label' => 'Տեղադրել բլոկների միջև',
'modal' => [
'heading' => 'Ավելացնել :label',
'actions' => [
'add' => [
'label' => 'Ավելացնել',
],
],
],
],
'delete' => [
'label' => 'Ջնջել',
],
'edit' => [
'label' => 'Խմբագրել',
'modal' => [
'heading' => 'Խմբագրել բլոկը',
'actions' => [
'save' => [
'label' => 'Պահպանել փոփոխությունները',
],
],
],
],
'reorder' => [
'label' => 'Վերադասավորել',
],
'move_down' => [
'label' => 'Իջացնել',
],
'move_up' => [
'label' => 'Բարձրացնել',
],
'collapse' => [
'label' => 'Ծալել',
],
'expand' => [
'label' => 'Ընդարձակել',
],
'collapse_all' => [
'label' => 'Ծալել բոլորը',
],
'expand_all' => [
'label' => 'Ընդարձակել բոլորը',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Ապանշել բոլորը',
],
'select_all' => [
'label' => 'Ընտրել բոլորը',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Չեղարկել',
],
'drag_crop' => [
'label' => 'Քաշեք և թողեք «կտրել» ռեժիմը',
],
'drag_move' => [
'label' => 'Քաշեք և թողեք «տեղափոխել» ռեժիմը',
],
'flip_horizontal' => [
'label' => 'Հորիզոնական շրջել',
],
'flip_vertical' => [
'label' => 'Ուղղահայաց շրջել',
],
'move_down' => [
'label' => 'Տեղափոխել ներքև',
],
'move_left' => [
'label' => 'Տեղափոխել ձախ',
],
'move_right' => [
'label' => 'Տեղափոխել աջ',
],
'move_up' => [
'label' => 'Տեղափոխել վերև',
],
'reset' => [
'label' => 'Վերականգնել',
],
'rotate_left' => [
'label' => 'Պտտել ձախ',
],
'rotate_right' => [
'label' => 'Պտտել աջ',
],
'set_aspect_ratio' => [
'label' => 'Սահմանել կողմերի հարաբերակցությունը այնպես, որ',
],
'save' => [
'label' => 'Պահպանել',
],
'zoom_100' => [
'label' => 'Պատկերը դարձնել 100%',
],
'zoom_in' => [
'label' => 'Մեծացնել',
],
'zoom_out' => [
'label' => 'Փոքրացնել',
],
],
'fields' => [
'height' => [
'label' => 'Բարձր.',
'unit' => 'փքս',
],
'rotation' => [
'label' => 'Պտույտ',
'unit' => 'աստ.',
],
'width' => [
'label' => 'Լայն.',
'unit' => 'փքս',
],
'x_position' => [
'label' => 'X',
'unit' => 'փքս',
],
'y_position' => [
'label' => 'Y',
'unit' => 'փքս',
],
],
'aspect_ratios' => [
'label' => 'Կողմերի հարաբերակցություններ',
'no_fixed' => [
'label' => 'Ազատ',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVG ֆայլերը խմբագրելը խորհուրդ չի տրվում, քանի որ դա կարող է հանգեցնել որակի կորստի, երբ այն մասշտաբավորվում է:',
'disabled' => 'SVG ֆայլերի խմբագրումն անջատված է, քանի որ դա կարող է հանգեցնել որակի կորստի, երբ մասշտաբավորվում է:',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Ավելացնել տող',
],
'delete' => [
'label' => 'Ջնջել տողը',
],
'reorder' => [
'label' => 'Վերադասավորել տողերը',
],
],
'fields' => [
'key' => [
'label' => 'Բանալի',
],
'value' => [
'label' => 'Արժեք',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'Վերբեռնված ֆայլերը պետք է լինեն հետևյալ տեսակներից՝ :values։',
'file_attachments_max_size_message' => 'Վերբեռնված ֆայլերը չպետք է գերազանցեն :max կիլոբայթ։',
'tools' => [
'attach_files' => 'Կցել ֆայլեր',
'blockquote' => 'Մեջբերում',
'bold' => 'Թավ',
'bullet_list' => 'Կետային ցուցակ',
'code_block' => 'Կոդի բլոկ',
'heading' => 'Վերնագիր',
'italic' => 'Շեղ',
'link' => 'Հղում',
'ordered_list' => 'Համարակալված ցուցակ',
'redo' => 'Կրկնել',
'strike' => 'Գծանցում',
'table' => 'Աղյուսակ',
'undo' => 'Հետ բերել',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Ընտրել',
'actions' => [
'select' => [
'label' => 'Ընտրել',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Այո',
'false' => 'Ոչ',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Ավելացնել:label',
],
'add_between' => [
'label' => 'Տեղադրել միջև',
],
'delete' => [
'label' => 'Ջնջել',
],
'clone' => [
'label' => 'Կրկնօրինակել',
],
'reorder' => [
'label' => 'Վերադասավորել',
],
'move_down' => [
'label' => 'Իջացնել',
],
'move_up' => [
'label' => 'Բարձրացնել',
],
'collapse' => [
'label' => 'Ծալել',
],
'expand' => [
'label' => 'Ընդլայնել',
],
'collapse_all' => [
'label' => 'Ծալել բոլորը',
],
'expand_all' => [
'label' => 'Ընդլայնել բոլորը',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Վերբեռնել ֆայլ',
'modal' => [
'heading' => 'Վերբեռնել ֆայլ',
'form' => [
'file' => [
'label' => [
'new' => 'Ֆայլ',
'existing' => 'Փոխարինել ֆայլը',
],
],
'alt' => [
'label' => [
'new' => 'Այլընտրանքային տեքստ',
'existing' => 'Փոխել այլընտրանքային տեքստը',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Տեղադրել',
],
'save' => [
'label' => 'Պահպանել',
],
],
],
],
'grid' => [
'label' => 'Ցանց',
'modal' => [
'heading' => 'Ցանց',
'form' => [
'preset' => [
'label' => 'Կանխադրված',
'placeholder' => 'Չկա',
'options' => [
'two' => 'Երկու',
'three' => 'Երեք',
'four' => 'Չորս',
'five' => 'Հինգ',
'two_start_third' => 'Երկու (սկսել երրորդից)',
'two_end_third' => 'Երկու (ավարտ երրորդում)',
'two_start_fourth' => 'Երկու (սկսել չորրորդից)',
'two_end_fourth' => 'Երկու (ավարտ չորրորդում)',
],
],
'columns' => [
'label' => 'Սյուներ',
],
'from_breakpoint' => [
'label' => 'Սկսած չափից',
'options' => [
'default' => 'Բոլորը',
'sm' => 'Փոքր',
'md' => 'Միջին',
'lg' => 'Մեծ',
'xl' => 'Շատ մեծ',
'2xl' => 'Երկու անգամ մեծ',
],
],
'is_asymmetric' => [
'label' => 'Երկու ասիմետրիկ սյուն',
],
'start_span' => [
'label' => 'Սկսման լայնություն',
],
'end_span' => [
'label' => 'Ավարտի լայնություն',
],
],
],
],
'link' => [
'label' => 'Հղում',
'modal' => [
'heading' => 'Հղում',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Բացել նոր թաբում',
],
],
],
],
'text_color' => [
'label' => 'Տեքստի գույն',
'modal' => [
'heading' => 'Տեքստի գույն',
'form' => [
'color' => [
'label' => 'Գույն',
],
'custom_color' => [
'label' => 'Այլ գույն',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'Վերբեռնված ֆայլերը պետք է լինեն հետևյալ տեսակներից՝ :values։',
'file_attachments_max_size_message' => 'Վերբեռնված ֆայլերը չպետք է գերազանցեն :max կիլոբայթ։',
'no_merge_tag_search_results_message' => 'Միաձուլման պիտակների արդյունքներ չկան։',
'tools' => [
'align_center' => 'Հավասարեցնել կենտրոնում',
'align_end' => 'Հավասարեցնել վերջում',
'align_justify' => 'Հավասարեցնել ըստ լայնության',
'align_start' => 'Հավասարեցնել սկզբում',
'attach_files' => 'Կցել ֆայլեր',
'blockquote' => 'Մեջբերում',
'bold' => 'Թավ',
'bullet_list' => 'Կետային ցուցակ',
'clear_formatting' => 'Մաքրել ձևաչափումը',
'code' => 'Կոդ',
'code_block' => 'Կոդի բլոկ',
'custom_blocks' => 'Բլոկներ',
'details' => 'Մանրամասներ',
'h1' => 'Վերնագիր',
'h2' => 'Ենթավերնագիր',
'h3' => 'Ենթավերնագիր 2',
'grid' => 'Ցանց',
'grid_delete' => 'Ջնջել ցանցը',
'highlight' => 'Նշել գույնով',
'horizontal_rule' => 'Հորիզոնական գիծ',
'italic' => 'Շեղ',
'lead' => 'Առաջատար տեքստ',
'link' => 'Հղում',
'merge_tags' => 'Միաձուլման պիտակներ',
'ordered_list' => 'Համարակալված ցուցակ',
'redo' => 'Կրկնել',
'small' => 'Փոքր տեքստ',
'strike' => 'Գծանցում',
'subscript' => 'Ենթագրություն',
'superscript' => 'Վերգրություն',
'table' => 'Աղյուսակ',
'table_delete' => 'Ջնջել աղյուսակը',
'table_add_column_before' => 'Ավելացնել սյուն առաջ',
'table_add_column_after' => 'Ավելացնել սյուն հետո',
'table_delete_column' => 'Ջնջել սյունը',
'table_add_row_before' => 'Ավելացնել տող վերև',
'table_add_row_after' => 'Ավելացնել տող ներքև',
'table_delete_row' => 'Ջնջել տողը',
'table_merge_cells' => 'Միացնել բջիջները',
'table_split_cell' => 'Բաժանել բջիջը',
'table_toggle_header_row' => 'Վերնագրային տող',
'text_color' => 'Տեքստի գույն',
'underline' => 'Ընդգծել',
'undo' => 'Հետ բերել',
],
'uploading_file_message' => 'Ֆայլի վերբեռնում...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Ստեղծել',
'modal' => [
'heading' => 'Ստեղծել',
'actions' => [
'create' => [
'label' => 'Ստեղծել',
],
'create_another' => [
'label' => 'Ստեղծել և ստեղծել մեկ այլ',
],
],
],
],
'edit_option' => [
'label' => 'Խմբագրել',
'modal' => [
'heading' => 'Խմբագրել',
'actions' => [
'save' => [
'label' => 'Պահպանել',
],
],
],
],
],
'boolean' => [
'true' => 'Այո',
'false' => 'Ոչ',
],
'loading_message' => 'Բեռնում...',
'max_items_message' => 'Կարող եք :count ընտրել միայն մեկը:',
'no_search_results_message' => 'Ոչ մի տվյալ չի համապատասխանում ձեր հարցմանը:',
'placeholder' => 'Ընտրել տարբերակ',
'searching_message' => 'Որոնում...',
'search_prompt' => 'Սկսեք մուտքագրել որոնման համար...',
],
'tags_input' => [
'placeholder' => 'Նոր պիտակ',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Պատճենել',
'message' => 'Պատճենվեց',
],
'hide_password' => [
'label' => 'Թաքցնել գաղտնաբառը',
],
'show_password' => [
'label' => 'Ցուցադրել գաղտնաբառը',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Այո',
'false' => 'Ոչ',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Առնվազն մեկ :attribute դաշտ պետք է ընտրվի։',
'only_one_must_be_selected' => 'Պետք է ընտրվի միայն մեկ :attribute դաշտ։',
],
];
@@ -0,0 +1,725 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Duplikat',
],
'add' => [
'label' => 'Tambahkan ke :label',
'modal' => [
'heading' => 'Tambahkan ke :label',
'actions' => [
'add' => [
'label' => 'Tambah',
],
],
],
],
'add_between' => [
'label' => 'Sisipkan di antara blok',
'modal' => [
'heading' => 'Tambahkan ke :label',
'actions' => [
'add' => [
'label' => 'Tambah',
],
],
],
],
'delete' => [
'label' => 'Hapus',
],
'edit' => [
'label' => 'Ubah',
'modal' => [
'heading' => 'Ubah blok',
'actions' => [
'save' => [
'label' => 'Simpan perubahan',
],
],
],
],
'reorder' => [
'label' => 'Pindahkan',
],
'move_down' => [
'label' => 'Turunkan',
],
'move_up' => [
'label' => 'Naikkan',
],
'collapse' => [
'label' => 'Sembunyikan',
],
'expand' => [
'label' => 'Tampilkan',
],
'collapse_all' => [
'label' => 'Sembunyikan semua',
],
'expand_all' => [
'label' => 'Tampilkan semua',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Batalkan semua pilihan',
],
'select_all' => [
'label' => 'Pilih semua',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Batal',
],
'drag_crop' => [
'label' => 'Mode "potong"',
],
'drag_move' => [
'label' => 'Mode "geser"',
],
'flip_horizontal' => [
'label' => 'Balik gambar secara horizontal',
],
'flip_vertical' => [
'label' => 'Balik gambar secara vertikal',
],
'move_down' => [
'label' => 'Geser gambar ke bawah',
],
'move_left' => [
'label' => 'Geser gambar ke kiri',
],
'move_right' => [
'label' => 'Geser gambar ke kanan',
],
'move_up' => [
'label' => 'Geser gambar ke atas',
],
'reset' => [
'label' => 'Kembalikan',
],
'rotate_left' => [
'label' => 'Putar gambar ke kiri',
],
'rotate_right' => [
'label' => 'Putar gambar ke kanan',
],
'set_aspect_ratio' => [
'label' => 'Tentukan aspek rasio ke :ratio',
],
'save' => [
'label' => 'Simpan',
],
'zoom_100' => [
'label' => 'Perbesar ke 100%',
],
'zoom_in' => [
'label' => 'Perbesar',
],
'zoom_out' => [
'label' => 'Perkecil',
],
],
'fields' => [
'height' => [
'label' => 'Tinggi',
'unit' => 'px',
],
'rotation' => [
'label' => 'Putar',
'unit' => 'derajat',
],
'width' => [
'label' => 'Lebar',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Aspek rasio',
'no_fixed' => [
'label' => 'Bebas',
],
],
'svg' => [
'messages' => [
'confirmation' => 'Mengedit file SVG tidak disarankan karena dapat mengakibatkan penurunan kualitas saat melakukan penskalaan.\n Apakah Anda yakin ingin melanjutkan?',
'disabled' => 'Pengeditan file SVG dinonaktifkan karena dapat mengakibatkan penurunan kualitas saat melakukan penskalaan.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Tambahkan baris',
],
'delete' => [
'label' => 'Hapus baris',
],
'reorder' => [
'label' => 'Ubah urutan baris',
],
],
'fields' => [
'key' => [
'label' => 'Kunci',
],
'value' => [
'label' => 'Nilai',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'Berkas yang diunggah harus bertipe: :values.',
'file_attachments_max_size_message' => 'Berkas yang diunggah tidak boleh lebih besar dari :max kilobyte.',
'tools' => [
'attach_files' => 'Lampirkan berkas',
'blockquote' => 'Kutipan',
'bold' => 'Tebal',
'bullet_list' => 'Daftar',
'code_block' => 'Blok kode',
'heading' => 'Judul',
'italic' => 'Miring',
'link' => 'Tautan',
'ordered_list' => 'Daftar berurut',
'redo' => 'Kembalikan',
'strike' => 'Coret',
'table' => 'Tabel',
'undo' => 'Batalkan',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Pilih',
'actions' => [
'select' => [
'label' => 'Pilih',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Ya',
'false' => 'Tidak',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Tambahkan ke :label',
],
'add_between' => [
'label' => 'Sisipkan di antara',
],
'delete' => [
'label' => 'Hapus',
],
'clone' => [
'label' => 'Duplikat',
],
'reorder' => [
'label' => 'Pindahkan',
],
'move_down' => [
'label' => 'Turunkan',
],
'move_up' => [
'label' => 'Naikkan',
],
'collapse' => [
'label' => 'Sembunyikan',
],
'expand' => [
'label' => 'Tampilkan',
],
'collapse_all' => [
'label' => 'Sembunyikan semua',
],
'expand_all' => [
'label' => 'Tampilkan semua',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Unggah berkas',
'modal' => [
'heading' => 'Unggah berkas',
'form' => [
'file' => [
'label' => [
'new' => 'Berkas',
'existing' => 'Timpa berkas',
],
],
'alt' => [
'label' => [
'new' => 'Teks alternatif',
'existing' => 'Ganti teks alternatif',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Masukkan',
],
'save' => [
'label' => 'Simpan',
],
],
],
],
'grid' => [
'label' => 'Grid',
'modal' => [
'heading' => 'Grid',
'form' => [
'preset' => [
'label' => 'Preset',
'placeholder' => 'Tidak ada',
'options' => [
'two' => 'Dua',
'three' => 'Tiga',
'four' => 'Empat',
'five' => 'Lima',
'two_start_third' => 'Dua (Mulai Ketiga)',
'two_end_third' => 'Dua (Akhiri Ketiga)',
'two_start_fourth' => 'Dua (Mulai Keempat)',
'two_end_fourth' => 'Dua (Akhiri Keempat)',
],
],
'columns' => [
'label' => 'Kolom',
],
'from_breakpoint' => [
'label' => 'Dari breakpoint',
'options' => [
'default' => 'Semua',
'sm' => 'Kecil',
'md' => 'Sedang',
'lg' => 'Besar',
'xl' => 'Ekstra besar',
'2xl' => 'Dua ekstra besar',
],
],
'is_asymmetric' => [
'label' => 'Dua kolom asimetris',
],
'start_span' => [
'label' => 'Rentang awal',
],
'end_span' => [
'label' => 'Rentang akhir',
],
],
],
],
'link' => [
'label' => 'Ubah',
'modal' => [
'heading' => 'Tautan',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Buka pada tab baru',
],
],
],
],
'text_color' => [
'label' => 'Warna teks',
'modal' => [
'heading' => 'Warna teks',
'form' => [
'color' => [
'label' => 'Warna',
],
'custom_color' => [
'label' => 'Warna khusus',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'Berkas yang diunggah harus bertipe: :values.',
'file_attachments_max_size_message' => 'Berkas yang diunggah tidak boleh lebih besar dari :max kilobyte.',
'no_merge_tag_search_results_message' => 'Tidak ada tag gabungan yang ditemukan.',
'tools' => [
'align_center' => 'Rata tengah',
'align_end' => 'Rata akhir',
'align_justify' => 'Rata penuh',
'align_start' => 'Rata awal',
'attach_files' => 'Lampirkan berkas',
'blockquote' => 'Kutipan',
'bold' => 'Tebal',
'bullet_list' => 'Daftar',
'clear_formatting' => 'Hapus format',
'code' => 'Kode',
'code_block' => 'Blok kode',
'custom_blocks' => 'Blok',
'details' => 'Detail',
'h1' => 'Judul',
'h2' => 'Sub judul',
'h3' => 'Anak judul',
'grid' => 'Grid',
'grid_delete' => 'Hapus grid',
'highlight' => 'Sorot',
'horizontal_rule' => 'Garis horizontal',
'italic' => 'Miring',
'lead' => 'Teks utama',
'link' => 'Tautan',
'merge_tags' => 'Tag gabungan',
'ordered_list' => 'Daftar berurut',
'redo' => 'Kembalikan',
'small' => 'Teks kecil',
'strike' => 'Coret',
'subscript' => 'Aksara bawah',
'superscript' => 'Aksara atas',
'table' => 'Tabel',
'table_delete' => 'Hapus tabel',
'table_add_column_before' => 'Tambahkan kolom sebelum',
'table_add_column_after' => 'Tambahkan kolom sesudah',
'table_delete_column' => 'Hapus kolom',
'table_add_row_before' => 'Tambahkan baris diatas',
'table_add_row_after' => 'Tambahkan baris dibawah',
'table_delete_row' => 'Hapus baris',
'table_merge_cells' => 'Gabungkan sel',
'table_split_cell' => 'Pisahkan sel',
'table_toggle_header_row' => 'Alihkan Baris Judul',
'text_color' => 'Warna teks',
'underline' => 'Garis bawah',
'undo' => 'Batalkan',
],
'uploading_file_message' => 'Mengunggah berkas...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Buat',
'modal' => [
'heading' => 'Buat',
'actions' => [
'create' => [
'label' => 'Buat',
],
'create_another' => [
'label' => 'Buat & buat lainnya',
],
],
],
],
'edit_option' => [
'label' => 'Ubah',
'modal' => [
'heading' => 'Ubah',
'actions' => [
'save' => [
'label' => 'Simpan',
],
],
],
],
],
'boolean' => [
'true' => 'Ya',
'false' => 'Tidak',
],
'loading_message' => 'Memuat...',
'max_items_message' => 'Hanya :count yang dapat dipilih.',
'no_search_results_message' => 'Tidak ada hasil yang sesuai dengan pencarian Anda.',
'placeholder' => 'Pilih salah satu opsi',
'searching_message' => 'Sedang mencari...',
'search_prompt' => 'Ketik untuk mencari...',
],
'tags_input' => [
'placeholder' => 'Tag baru',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Salin',
'message' => 'Berhasil disalin',
],
'hide_password' => [
'label' => 'Sembunyikan kata sandi',
],
'show_password' => [
'label' => 'Tampilkan kata sandi',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Ya',
'false' => 'Tidak',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'Pilih setidaknya 1 field :attribute.',
'only_one_must_be_selected' => 'Hanya satu field :attribute yang perlu dipilih.',
],
];
@@ -0,0 +1,724 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'Clona',
],
'add' => [
'label' => 'Aggiungi a :label',
'modal' => [
'heading' => 'Aggiungi a :label',
'actions' => [
'add' => [
'label' => 'Aggiungi',
],
],
],
],
'add_between' => [
'label' => 'Inserisci tra i blocchi',
'modal' => [
'heading' => 'Aggiungi a :label',
'actions' => [
'add' => [
'label' => 'Aggiungi',
],
],
],
],
'delete' => [
'label' => 'Elimina',
],
'edit' => [
'label' => 'Modifica',
'modal' => [
'heading' => 'Modifica blocco',
'actions' => [
'save' => [
'label' => 'Salva modifiche',
],
],
],
],
'reorder' => [
'label' => 'Sposta',
],
'move_down' => [
'label' => 'Sposta in basso',
],
'move_up' => [
'label' => 'Sposta in alto',
],
'collapse' => [
'label' => 'Comprimi',
],
'expand' => [
'label' => 'Espandi',
],
'collapse_all' => [
'label' => 'Comprimi tutto',
],
'expand_all' => [
'label' => 'Espandi tutto',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'Deseleziona tutto',
],
'select_all' => [
'label' => 'Seleziona tutto',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'Annulla',
],
'drag_crop' => [
'label' => 'Modalità trascinamento "ritaglio"',
],
'drag_move' => [
'label' => 'Modalità trascinamento "sposta"',
],
'flip_horizontal' => [
'label' => 'Capovolgi immagine orizzontalmente',
],
'flip_vertical' => [
'label' => 'Capovolgi immagine verticalmente',
],
'move_down' => [
'label' => 'Sposta immagine in basso',
],
'move_left' => [
'label' => 'Sposta immagine a sinistra',
],
'move_right' => [
'label' => 'Sposta immagine a destra',
],
'move_up' => [
'label' => 'Sposta immagine in alto',
],
'reset' => [
'label' => 'Reimposta',
],
'rotate_left' => [
'label' => 'Ruota immagine a sinistra',
],
'rotate_right' => [
'label' => 'Ruota immagine a destra',
],
'set_aspect_ratio' => [
'label' => 'Imposta proporzioni a :ratio',
],
'save' => [
'label' => 'Salva',
],
'zoom_100' => [
'label' => 'Zoom immagine al 100%',
],
'zoom_in' => [
'label' => 'Ingrandisci',
],
'zoom_out' => [
'label' => 'Riduci',
],
],
'fields' => [
'height' => [
'label' => 'Altezza',
'unit' => 'px',
],
'rotation' => [
'label' => 'Rotazione',
'unit' => 'gradi',
],
'width' => [
'label' => 'Larghezza',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'Proporzioni',
'no_fixed' => [
'label' => 'Libero',
],
],
'svg' => [
'messages' => [
'confirmation' => 'La modifica dei file SVG non è consigliata in quanto può comportare una perdita di qualità durante il ridimensionamento.\n Sei sicuro di voler continuare?',
'disabled' => 'La modifica dei file SVG è disabilitata in quanto può comportare una perdita di qualità durante il ridimensionamento.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'Aggiungi riga',
],
'delete' => [
'label' => 'Elimina riga',
],
'reorder' => [
'label' => 'Riordina riga',
],
],
'fields' => [
'key' => [
'label' => 'Chiave',
],
'value' => [
'label' => 'Valore',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'I file caricati devono essere di tipo: :values.',
'file_attachments_max_size_message' => 'I file caricati non devono superare i :max kilobyte.',
'tools' => [
'attach_files' => 'Allega file',
'blockquote' => 'Citazione',
'bold' => 'Grassetto',
'bullet_list' => 'Elenco puntato',
'code_block' => 'Blocco di codice',
'heading' => 'Intestazione',
'italic' => 'Corsivo',
'link' => 'Link',
'ordered_list' => 'Elenco numerato',
'redo' => 'Ripristina',
'strike' => 'Barrato',
'table' => 'Tabella',
'undo' => 'Annulla',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => 'Seleziona',
'actions' => [
'select' => [
'label' => 'Seleziona',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'Si',
'false' => 'No',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'Aggiungi a :label',
],
'add_between' => [
'label' => 'Inserisci tra',
],
'delete' => [
'label' => 'Elimina',
],
'clone' => [
'label' => 'Clona',
],
'reorder' => [
'label' => 'Sposta',
],
'move_down' => [
'label' => 'Sposta in basso',
],
'move_up' => [
'label' => 'Sposta in alto',
],
'collapse' => [
'label' => 'Comprimi',
],
'expand' => [
'label' => 'Espandi',
],
'collapse_all' => [
'label' => 'Comprimi tutti',
],
'expand_all' => [
'label' => 'Espandi tutti',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'Carica file',
'modal' => [
'heading' => 'Carica file',
'form' => [
'file' => [
'label' => [
'new' => 'File',
'existing' => 'Sostituisci file',
],
],
'alt' => [
'label' => [
'new' => 'Testo alternativo',
'existing' => 'Modifica testo alternativo',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => 'Inserisci',
],
'save' => [
'label' => 'Salva',
],
],
],
],
'grid' => [
'label' => 'Griglia',
'modal' => [
'heading' => 'Griglia',
'form' => [
'preset' => [
'label' => 'Predefinito',
'placeholder' => 'Nessuno',
'options' => [
'two' => 'Due',
'three' => 'Tre',
'four' => 'Quattro',
'five' => 'Cinque',
'two_start_third' => 'Due (Inizio dal terzo)',
'two_end_third' => 'Due (Fine dal terzo)',
'two_start_fourth' => 'Due (Inizio dalla quarto)',
'two_end_fourth' => 'Due (Fine dal quarto)',
],
],
'columns' => [
'label' => 'Colonne',
],
'from_breakpoint' => [
'label' => 'Da breakpoint',
'options' => [
'default' => 'Tutti',
'sm' => 'Piccolo',
'md' => 'Medio',
'lg' => 'Grande',
'xl' => 'Extra grande',
'2xl' => 'Enorme',
],
],
'is_asymmetric' => [
'label' => 'Due colonne asimmetriche',
],
'start_span' => [
'label' => 'Span iniziale',
],
'end_span' => [
'label' => 'Span finale',
],
],
],
],
'link' => [
'label' => 'Link',
'modal' => [
'heading' => 'Link',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => 'Apri in una nuova scheda',
],
],
],
],
'text_color' => [
'label' => 'Colore testo',
'modal' => [
'heading' => 'Colore testo',
'form' => [
'color' => [
'label' => 'Colore',
],
'custom_color' => [
'label' => 'Colore personalizzato',
],
],
],
],
],
'no_merge_tag_search_results_message' => 'Nessun risultato per i tag mergiati.',
'file_attachments_accepted_file_types_message' => 'I file caricati devono essere di tipo: :values.',
'file_attachments_max_size_message' => 'I file caricati non devono superare i :max kilobyte.',
'tools' => [
'align_center' => 'Allinea al centro',
'align_end' => 'Allinea alla fine',
'align_justify' => 'Giustifica',
'align_start' => 'Allinea all\'inizio',
'attach_files' => 'Allega file',
'blockquote' => 'Citazione',
'bold' => 'Grassetto',
'bullet_list' => 'Elenco puntato',
'clear_formatting' => 'Cancella formattazione',
'code' => 'Codice',
'code_block' => 'Blocco di codice',
'custom_blocks' => 'Blocchi',
'details' => 'Dettagli',
'h1' => 'Titolo',
'h2' => 'Intestazione',
'h3' => 'Sottotitolo',
'grid' => 'Griglia',
'grid_delete' => 'Elimina griglia',
'highlight' => 'Evidenzia',
'horizontal_rule' => 'Linea orizzontale',
'italic' => 'Corsivo',
'lead' => 'Testo introduttivo',
'link' => 'Link',
'merge_tags' => 'Merge tag',
'ordered_list' => 'Elenco numerato',
'redo' => 'Ripristina',
'small' => 'Testo piccolo',
'strike' => 'Barrato',
'subscript' => 'Pedice',
'superscript' => 'Apice',
'table' => 'Tabella',
'table_delete' => 'Elimina tabella',
'table_add_column_before' => 'Aggiungi colonna prima',
'table_add_column_after' => 'Aggiungi colonna dopo',
'table_delete_column' => 'Elimina colonna',
'table_add_row_before' => 'Aggiungi riga sopra',
'table_add_row_after' => 'Aggiungi riga sotto',
'table_delete_row' => 'Elimina riga',
'table_merge_cells' => 'Unisci celle',
'table_split_cell' => 'Dividi cella',
'table_toggle_header_row' => 'Attiva/disattiva riga intestazione',
'text_color' => 'Colore testo',
'underline' => 'Sottolineato',
'undo' => 'Annulla',
],
'uploading_file_message' => 'Caricamento file in corso...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'Crea',
'modal' => [
'heading' => 'Crea',
'actions' => [
'create' => [
'label' => 'Crea',
],
'create_another' => [
'label' => 'Crea & creane un altro',
],
],
],
],
'edit_option' => [
'label' => 'Modifica',
'modal' => [
'heading' => 'Modifica',
'actions' => [
'save' => [
'label' => 'Salva',
],
],
],
],
],
'boolean' => [
'true' => 'Si',
'false' => 'No',
],
'loading_message' => 'Caricamento...',
'max_items_message' => 'È possibile selezionare solo :count.',
'no_search_results_message' => 'Nessuna opzione corrisponde alla tua ricerca.',
'placeholder' => "Seleziona un'opzione",
'searching_message' => 'Ricerca in corso...',
'search_prompt' => 'Digita per cercare...',
],
'tags_input' => [
'placeholder' => 'Nuovo tag',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'Copia',
'message' => 'Copiato',
],
'hide_password' => [
'label' => 'Nascondi password',
],
'show_password' => [
'label' => 'Mostra password',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'Si',
'false' => 'No',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'È necessario selezionare almeno un campo :attribute.',
'only_one_must_be_selected' => 'È necessario selezionare un solo campo :attribute.',
],
];
@@ -0,0 +1,725 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => '複製',
],
'add' => [
'label' => ':labelを追加',
'modal' => [
'heading' => ':labelを追加',
'actions' => [
'add' => [
'label' => '追加',
],
],
],
],
'add_between' => [
'label' => 'ブロックの間に追加',
'modal' => [
'heading' => ':labelを追加',
'actions' => [
'add' => [
'label' => '追加',
],
],
],
],
'delete' => [
'label' => '削除',
],
'edit' => [
'label' => '編集',
'modal' => [
'heading' => 'ブロックを編集',
'actions' => [
'save' => [
'label' => '変更を保存',
],
],
],
],
'reorder' => [
'label' => '移動',
],
'move_down' => [
'label' => '下に移動',
],
'move_up' => [
'label' => '上に移動',
],
'collapse' => [
'label' => '折り畳む',
],
'expand' => [
'label' => '展開',
],
'collapse_all' => [
'label' => 'すべて折り畳む',
],
'expand_all' => [
'label' => 'すべて展開',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'すべて解除',
],
'select_all' => [
'label' => 'すべて選択',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'キャンセル',
],
'drag_crop' => [
'label' => 'ドラッグモード "クロップ"',
],
'drag_move' => [
'label' => 'ドラッグモード "移動"',
],
'flip_horizontal' => [
'label' => '水平フリップ',
],
'flip_vertical' => [
'label' => '垂直フリップ',
],
'move_down' => [
'label' => '下に移動',
],
'move_left' => [
'label' => '左に移動',
],
'move_right' => [
'label' => '右に移動',
],
'move_up' => [
'label' => '上に移動',
],
'reset' => [
'label' => 'リセット',
],
'rotate_left' => [
'label' => '左回転',
],
'rotate_right' => [
'label' => '右回転',
],
'set_aspect_ratio' => [
'label' => 'アスペクト比を:ratioにセット',
],
'save' => [
'label' => '保存',
],
'zoom_100' => [
'label' => '100%にズーム',
],
'zoom_in' => [
'label' => 'ズームイン',
],
'zoom_out' => [
'label' => 'ズームアウト',
],
],
'fields' => [
'height' => [
'label' => '高さ',
'unit' => 'px',
],
'rotation' => [
'label' => '回転',
'unit' => '度',
],
'width' => [
'label' => '幅',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'アスペクト比',
'no_fixed' => [
'label' => 'フリー',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVGファイルの編集は拡大縮小する際に品質の低下を引き起こす可能性があるため、お勧めしません。\n 続行しますか?',
'disabled' => '拡大縮小する際に品質が低下する可能性があるためSVGファイルの編集は無効になっています',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => '行を追加',
],
'delete' => [
'label' => '行を削除',
],
'reorder' => [
'label' => '行の並べ替え',
],
],
'fields' => [
'key' => [
'label' => 'キー',
],
'value' => [
'label' => '値',
],
],
],
'markdown_editor' => [
'file_attachments_accepted_file_types_message' => 'アップロードできるファイルの種類は :values です。',
'file_attachments_max_size_message' => 'アップロードできるファイルの最大サイズは :max キロバイトです。',
'tools' => [
'attach_files' => 'ファイルを添付',
'blockquote' => 'ブロック引用',
'bold' => '太字',
'bullet_list' => '箇条書き',
'code_block' => 'コードブロック',
'heading' => '見出し',
'italic' => 'イタリック',
'link' => 'リンク',
'ordered_list' => '番号付きリスト',
'redo' => 'やり直し',
'strike' => '打ち消し線',
'table' => '表',
'undo' => '元に戻す',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => '選択',
'actions' => [
'select' => [
'label' => '選択',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => 'はい',
'false' => 'いいえ',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => ':labelへ追加',
],
'add_between' => [
'label' => '間に挿入',
],
'delete' => [
'label' => '削除',
],
'clone' => [
'label' => '複製',
],
'reorder' => [
'label' => '移動',
],
'move_down' => [
'label' => '下に移動',
],
'move_up' => [
'label' => '上に移動',
],
'collapse' => [
'label' => '折り畳む',
],
'expand' => [
'label' => '展開',
],
'collapse_all' => [
'label' => 'すべて折り畳む',
],
'expand_all' => [
'label' => 'すべて展開',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => 'ファイルをアップロード',
'modal' => [
'heading' => 'ファイルをアップロード',
'form' => [
'file' => [
'label' => [
'new' => 'ファイル',
'existing' => 'ファイルを置き換える',
],
],
'alt' => [
'label' => [
'new' => '代替テキスト',
'existing' => '代替テキストを変更',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => '挿入',
],
'save' => [
'label' => '保存',
],
],
],
],
'grid' => [
'label' => 'グリッド',
'modal' => [
'heading' => 'グリッド設定',
'form' => [
'preset' => [
'label' => 'プリセット',
'placeholder' => 'なし',
'options' => [
'two' => '2列',
'three' => '3列',
'four' => '4列',
'five' => '5列',
'two_start_third' => '2列(開始位置:3分の1',
'two_end_third' => '2列(終了位置:3分の1',
'two_start_fourth' => '2列(開始位置:4分の1',
'two_end_fourth' => '2列(終了位置:4分の1',
],
],
'columns' => [
'label' => '列数',
],
'from_breakpoint' => [
'label' => 'ブレークポイント',
'options' => [
'default' => 'すべて',
'sm' => '小',
'md' => '中',
'lg' => '大',
'xl' => '特大',
'2xl' => '超特大',
],
],
'is_asymmetric' => [
'label' => '非対称の2列',
],
'start_span' => [
'label' => '開始スパン',
],
'end_span' => [
'label' => '終了スパン',
],
],
],
],
'link' => [
'label' => 'リンク',
'modal' => [
'heading' => 'リンク設定',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => '新しいタブで開く',
],
],
],
],
'text_color' => [
'label' => '文字色',
'modal' => [
'heading' => '文字色',
'form' => [
'color' => [
'label' => '色',
],
'custom_color' => [
'label' => 'カスタムカラー',
],
],
],
],
],
'file_attachments_accepted_file_types_message' => 'アップロードできるファイルの種類は :values です。',
'file_attachments_max_size_message' => 'アップロードできるファイルの最大サイズは :max キロバイトです。',
'no_merge_tag_search_results_message' => '一致するマージタグがありません。',
'tools' => [
'align_center' => '中央揃え',
'align_end' => '右揃え',
'align_justify' => '両端揃え',
'align_start' => '左揃え',
'attach_files' => 'ファイルを添付',
'blockquote' => '引用',
'bold' => '太字',
'bullet_list' => '箇条書きリスト',
'clear_formatting' => '書式をクリア',
'code' => 'コード',
'code_block' => 'コードブロック',
'custom_blocks' => 'ブロック',
'details' => '詳細',
'h1' => 'タイトル',
'h2' => '見出し',
'h3' => '小見出し',
'grid' => 'グリッド',
'grid_delete' => 'グリッドを削除',
'highlight' => 'ハイライト',
'horizontal_rule' => '区切り線',
'italic' => '斜体',
'lead' => 'リード文',
'link' => 'リンク',
'merge_tags' => 'マージタグ',
'ordered_list' => '番号付きリスト',
'redo' => 'やり直し',
'small' => '小文字',
'strike' => '取り消し線',
'subscript' => '下付き文字',
'superscript' => '上付き文字',
'table' => '表',
'table_delete' => '表を削除',
'table_add_column_before' => '左に列を追加',
'table_add_column_after' => '右に列を追加',
'table_delete_column' => '列を削除',
'table_add_row_before' => '上に行を追加',
'table_add_row_after' => '下に行を追加',
'table_delete_row' => '行を削除',
'table_merge_cells' => 'セルを結合',
'table_split_cell' => 'セルを分割',
'table_toggle_header_row' => 'ヘッダー行を切り替え',
'text_color' => '文字色',
'underline' => '下線',
'undo' => '元に戻す',
],
'uploading_file_message' => 'ファイルをアップロードしています...',
],
'select' => [
'actions' => [
'create_option' => [
'label' => '作成',
'modal' => [
'heading' => '作成',
'actions' => [
'create' => [
'label' => '作成',
],
'create_another' => [
'label' => '保存して、続けて作成',
],
],
],
],
'edit_option' => [
'label' => '編集',
'modal' => [
'heading' => '編集',
'actions' => [
'save' => [
'label' => '保存',
],
],
],
],
],
'boolean' => [
'true' => 'はい',
'false' => 'いいえ',
],
'loading_message' => '読み込み中...',
'max_items_message' => ':count個のみ選択されてます',
'no_search_results_message' => '検索結果はありませんでした',
'placeholder' => 'オプションを選択',
'searching_message' => '検索中...',
'search_prompt' => '検索キーワードを入力...',
],
'tags_input' => [
'placeholder' => '新規タグ',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => 'コピー',
'message' => 'コピーしました',
],
'hide_password' => [
'label' => 'パスワードを非表示',
],
'show_password' => [
'label' => 'パスワードを表示',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'はい',
'false' => 'いいえ',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => '少なくとも1つ以上:attributeを選択してください',
'only_one_must_be_selected' => '1つだけ:attributeを選択してください',
],
];
@@ -0,0 +1,500 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'კლონირება',
],
'add' => [
'label' => 'დამატება :label-ში',
'modal' => [
'heading' => 'დამატება :label-ში',
'actions' => [
'add' => [
'label' => 'დამატება',
],
],
],
],
'add_between' => [
'label' => 'ბლოკებს შორის ჩასმა',
'modal' => [
'heading' => 'დამატება :label-ში',
'actions' => [
'add' => [
'label' => 'დამატება',
],
],
],
],
'delete' => [
'label' => 'წაშლა',
],
'edit' => [
'label' => 'რედაქტირება',
'modal' => [
'heading' => 'ბლოკის რედაქტირება',
'actions' => [
'save' => [
'label' => 'ცვლილებების შენახვა',
],
],
],
],
'reorder' => [
'label' => 'გადაადგილება',
],
'move_down' => [
'label' => 'გადაადგილება ქვემოთ',
],
'move_up' => [
'label' => 'გადაადგილება ზემოთ',
],
'collapse' => [
'label' => 'შეკუმშვა',
],
'expand' => [
'label' => 'გაფართოება',
],
'collapse_all' => [
'label' => 'ყველას შეკუმშვა',
],
'expand_all' => [
'label' => 'ყველას გაფართოება',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'ყველას არჩევის გაუქმება',
],
'select_all' => [
'label' => 'ყველას არჩევა',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'გაუქმება',
],
'drag_crop' => [
'label' => 'რეჟიმი "მოჭრა"',
],
'drag_move' => [
'label' => 'რეჟიმი "გადაადგილება"',
],
'flip_horizontal' => [
'label' => 'სურათის ჰორიზონტალური გადატრიალება',
],
'flip_vertical' => [
'label' => 'სურათის ვერტიკალური გადატრიალება',
],
'move_down' => [
'label' => 'სურათის გადაადგილება ქვემოთ',
],
'move_left' => [
'label' => 'სურათის გადაადგილება მარცხნივ',
],
'move_right' => [
'label' => 'სურათის გადაადგილება მარჯვნივ',
],
'move_up' => [
'label' => 'სურათის გადაადგილება ზემოთ',
],
'reset' => [
'label' => 'გადატვირთვა',
],
'rotate_left' => [
'label' => 'სურათის მარცხნივ გადატრიალება',
],
'rotate_right' => [
'label' => 'სურათის მარჯვნივ გადატრიალება',
],
'set_aspect_ratio' => [
'label' => 'პროპორციის დაყენება :ratio',
],
'save' => [
'label' => 'შენახვა',
],
'zoom_100' => [
'label' => 'ზუმი 100%',
],
'zoom_in' => [
'label' => 'ზუმირება',
],
'zoom_out' => [
'label' => 'გამოზუმვა',
],
],
'fields' => [
'height' => [
'label' => 'სიმაღლე',
'unit' => 'px',
],
'rotation' => [
'label' => 'ბრუნვა',
'unit' => 'გრად',
],
'width' => [
'label' => 'სიგანე',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'პროპორციები',
'no_fixed' => [
'label' => 'თავისუფალი',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVG ფაილების რედაქტირება არ არის რეკომენდებული, რადგან მასშტაბირებისას შეიძლება ხარისხის დაკარგვა.
დარწმუნებული ხართ, რომ გსურთ გაგრძელება?',
'disabled' => 'SVG ფაილების რედაქტირება გამორთულია, რადგან მასშტაბირებისას შეიძლება ხარისხის დაკარგვა.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'ჩანაწერის დამატება',
],
'delete' => [
'label' => 'ჩანაწერის წაშლა',
],
'reorder' => [
'label' => 'ჩანაწერის გადალაგება',
],
],
'fields' => [
'key' => [
'label' => 'იდენტიფიკატორი',
],
'value' => [
'label' => 'მნიშვნელობა',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'ფაილების მიმაგრება',
'blockquote' => 'ციტატა',
'bold' => 'მსხვილი',
'bullet_list' => 'მარკირებული სია',
'code_block' => 'კოდის ბლოკი',
'heading' => 'სათაური',
'italic' => 'ტალღოვანი',
'link' => 'ბმული',
'ordered_list' => 'ნუმერირებული სია',
'redo' => 'გადამეორება',
'strike' => 'გადახაზული',
'table' => 'ცხრილი',
'undo' => 'გაუქმება',
],
],
'radio' => [
'boolean' => [
'true' => 'კი',
'false' => 'არა',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'დამატება :label-ში',
],
'add_between' => [
'label' => 'ჩასმა შორის',
],
'delete' => [
'label' => 'წაშლა',
],
'clone' => [
'label' => 'კლონირება',
],
'reorder' => [
'label' => 'გადაადგილება',
],
'move_down' => [
'label' => 'გადაადგილება ქვემოთ',
],
'move_up' => [
'label' => 'გადაადგილება ზემოთ',
],
'collapse' => [
'label' => 'შეკუმშვა',
],
'expand' => [
'label' => 'გაფართოება',
],
'collapse_all' => [
'label' => 'ყველას შეკუმშვა',
],
'expand_all' => [
'label' => 'ყველას გაფართოება',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'ბმული',
'unlink' => 'ბმულის მოხსნა',
],
'label' => 'URL',
'placeholder' => 'შეიყვანეთ URL',
],
],
'tools' => [
'attach_files' => 'ფაილების მიმაგრება',
'blockquote' => 'ციტატა',
'bold' => 'მსხვილი',
'bullet_list' => 'მარკირებული სია',
'code_block' => 'კოდის ბლოკი',
'h1' => 'სათაური',
'h2' => 'სათაური 2',
'h3' => 'ქვესათაური',
'italic' => 'ტალღოვანი',
'link' => 'ბმული',
'ordered_list' => 'ნუმერირებული სია',
'redo' => 'გადამეორება',
'strike' => 'გადახაზული',
'underline' => 'დახაზული',
'undo' => 'გაუქმება',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'შექმნა',
'actions' => [
'create' => [
'label' => 'შექმნა',
],
'create_another' => [
'label' => 'შექმნა & ახალი შექმნა',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'რედაქტირება',
'actions' => [
'save' => [
'label' => 'შენახვა',
],
],
],
],
],
'boolean' => [
'true' => 'კი',
'false' => 'არა',
],
'loading_message' => 'იტვირთება...',
'max_items_message' => 'შეიძლება მხოლოდ :count აირჩიოთ.',
'no_search_results_message' => 'არჩევანი ვერ მოიძებნა.',
'placeholder' => 'აირჩიეთ ვარიანტი',
'searching_message' => 'ძიება...',
'search_prompt' => 'მოძიების დასაწყებად აკრიფეთ...',
],
'tags_input' => [
'placeholder' => 'ახალი თაგი',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'პაროლის დამალვა',
],
'show_password' => [
'label' => 'პაროლის ჩვენება',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'კი',
'false' => 'არა',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'უნდა აირჩეს მინიმუმ ერთი :attribute ველი.',
'only_one_must_be_selected' => 'უნდა აირჩეს მხოლოდ ერთი :attribute ველი.',
],
];
@@ -0,0 +1,499 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'ក្លូន',
],
'add' => [
'label' => 'បន្ថែម​លើ :label',
'modal' => [
'heading' => 'បន្ថែម​លើ :label',
'actions' => [
'add' => [
'label' => 'បន្ថែម',
],
],
],
],
'add_between' => [
'label' => 'បញ្ចូលរវាងប្លុក',
'modal' => [
'heading' => 'បន្ថែម​លើ :label',
'actions' => [
'add' => [
'label' => 'បន្ថែម',
],
],
],
],
'delete' => [
'label' => 'លុប',
],
'edit' => [
'label' => 'កែសម្រួល',
'modal' => [
'heading' => 'កែសម្រួលប្លុក',
'actions' => [
'save' => [
'label' => 'រក្សាទុកការផ្លាស់ប្តូរ',
],
],
],
],
'reorder' => [
'label' => 'ផ្លាស់ទី',
],
'move_down' => [
'label' => 'ទៅ​ក្រោម',
],
'move_up' => [
'label' => 'ផ្លាស់ទីឡើងលើ',
],
'collapse' => [
'label' => 'ដួលរលំ',
],
'expand' => [
'label' => 'ពង្រីក',
],
'collapse_all' => [
'label' => 'ដួលរលំទាំងអស់',
],
'expand_all' => [
'label' => 'ពង្រីកទាំងអស់',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'ដកការជ្រើសរើសទាំងអស់',
],
'select_all' => [
'label' => 'ជ្រើសរើសទាំងអស់',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'លុបចោល',
],
'drag_crop' => [
'label' => 'របៀបអូសដោយ "ច្រឹប"',
],
'drag_move' => [
'label' => 'របៀបអូសដោយ "ផ្លាស់ទី"',
],
'flip_horizontal' => [
'label' => 'ត្រឡប់​រូបភាពតាមជួរដេក',
],
'flip_vertical' => [
'label' => 'ត្រឡប់​រូបភាពតាមជួរឈរ',
],
'move_down' => [
'label' => 'រំកិលរូបភាពចុះក្រោម',
],
'move_left' => [
'label' => 'រំកិលរូបភាពទៅឆ្វេង',
],
'move_right' => [
'label' => 'រំកិលរូបភាពទៅស្តាំ',
],
'move_up' => [
'label' => 'រំកិលរូបភាពទៅលើ',
],
'reset' => [
'label' => 'កំណត់ឡើងវិញ',
],
'rotate_left' => [
'label' => 'បង្វិលរូបភាពទៅឆ្វេង',
],
'rotate_right' => [
'label' => 'បង្វិលរូបភាពទៅស្តាំ',
],
'set_aspect_ratio' => [
'label' => 'កំណត់សមាមាត្រទំហំទៅ :ratio',
],
'save' => [
'label' => 'រក្សាទុក',
],
'zoom_100' => [
'label' => 'ប្តូរទំហំរូបភាពទៅ១០០%',
],
'zoom_in' => [
'label' => 'ពង្រីក',
],
'zoom_out' => [
'label' => 'បង្រួម',
],
],
'fields' => [
'height' => [
'label' => 'កំពស់',
'unit' => 'px',
],
'rotation' => [
'label' => 'ការបង្វិល',
'unit' => 'deg',
],
'width' => [
'label' => 'ទទឹង',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'សមាមាត្រទំហំ',
'no_fixed' => [
'label' => 'មិនកំណត់',
],
],
'svg' => [
'messages' => [
'confirmation' => 'ការកែសម្រួលឯកសារ SVG មិនត្រូវបានណែនាំទេ ព្រោះវាអាចបណ្តាលឱ្យបាត់បង់គុណភាពនៅពេលធ្វើមាត្រដ្ឋាន។\n តើអ្នកប្រាកដថាចង់បន្តទេ?',
'disabled' => 'ការកែសម្រួលឯកសារ SVG ត្រូវបានបិទព្រោះវាអាចបណ្តាលឱ្យបាត់បង់គុណភាពនៅពេលធ្វើមាត្រដ្ឋាន។',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'បន្ថែមជួរ',
],
'delete' => [
'label' => 'លុបជួរ',
],
'reorder' => [
'label' => 'តម្រៀបជួរម្តងទៀត',
],
],
'fields' => [
'key' => [
'label' => 'គន្លឺះ',
],
'value' => [
'label' => 'តម្លៃ',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'ភ្ជាប់ឯកសារ',
'blockquote' => 'ប្លុកសម្រង់',
'bold' => 'ដិត',
'bullet_list' => 'បញ្ជីគ្រាប់',
'code_block' => 'ប្លុកកូដ',
'heading' => 'Heading',
'italic' => 'ទ្រេត',
'link' => 'តំណភ្ជាប់',
'ordered_list' => 'បញ្ជីលេខ',
'redo' => 'ធ្វើឡើងវិញ',
'strike' => 'ការវាយឆ្មក់',
'table' => 'តុ',
'undo' => 'មិនធ្វើវិញ',
],
],
'radio' => [
'boolean' => [
'true' => 'បាទ',
'false' => 'ទេ',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'បន្ថែម​លើ :label',
],
'add_between' => [
'label' => 'បញ្ចូលរវាង',
],
'delete' => [
'label' => 'លុប',
],
'clone' => [
'label' => 'ក្លូន',
],
'reorder' => [
'label' => 'ផ្លាស់ទី',
],
'move_down' => [
'label' => 'ទៅ​ក្រោម',
],
'move_up' => [
'label' => 'ផ្លាស់ទីឡើងលើ',
],
'collapse' => [
'label' => 'ដួលរលំ',
],
'expand' => [
'label' => 'ពង្រីក',
],
'collapse_all' => [
'label' => 'ដួលរលំទាំងអស់',
],
'expand_all' => [
'label' => 'ពង្រីកទាំងអស់',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'តំណភ្ជាប់',
'unlink' => 'ផ្ដាច់',
],
'label' => 'URL',
'placeholder' => 'បញ្ចូល URL',
],
],
'tools' => [
'attach_files' => 'ភ្ជាប់ឯកសារ',
'blockquote' => 'ប្លុកសម្រង់',
'bold' => 'ដិត',
'bullet_list' => 'បញ្ជីគ្រាប់',
'code_block' => 'ប្លុកកូដ',
'h1' => 'ចំណងជើង',
'h2' => 'ក្បាល',
'h3' => 'ចំណងជើងរង',
'italic' => 'ទ្រេត',
'link' => 'តំណភ្ជាប់',
'ordered_list' => 'បញ្ជីលេខ',
'redo' => 'ធ្វើឡើងវិញ',
'strike' => 'ការវាយឆ្មក់',
'underline' => 'គូសបន្ទាត់ពីក្រោម',
'undo' => 'មិនធ្វើវិញ',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => 'បង្កើត',
'modal' => [
'heading' => 'បង្កើត',
'actions' => [
'create' => [
'label' => 'បង្កើត',
],
'create_another' => [
'label' => 'បង្កើត & បង្កើតឡើងវិញ',
],
],
],
],
'edit_option' => [
'label' => 'កែសម្រួល',
'modal' => [
'heading' => 'កែសម្រួល',
'actions' => [
'save' => [
'label' => 'រក្សាទុក',
],
],
],
],
],
'boolean' => [
'true' => 'បាទ',
'false' => 'ទេ',
],
'loading_message' => 'កំពុងផ្ទុក...',
'max_items_message' => 'តែប៉ុណ្ណោះ :count អាចត្រូវបានជ្រើសរើស.',
'no_search_results_message' => 'មិនមានជម្រើសត្រូវជាមួយការស្វែងរក.',
'placeholder' => 'ជ្រើសរើសជម្រើស',
'searching_message' => 'ស្វែងរក...',
'search_prompt' => 'ចាប់ផ្តើមសសេរដើម្បីស្វែងរក...',
],
'tags_input' => [
'placeholder' => 'ស្លាកថ្មី',
],
'text_input' => [
'actions' => [
'hide_password' => [
'label' => 'លាក់ពាក្យសម្ងាត់',
],
'show_password' => [
'label' => 'បង្ហាញពាក្យសម្ងាត់',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => 'បាទ',
'false' => 'ទេ',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => 'យ៉ាងហោចណាស់​មួយ :attribute ត្រូវតែត្រូវបានជ្រើសរើស។',
'only_one_must_be_selected' => 'តែមួយគត់ :attribute ត្រូវតែត្រូវបានជ្រើសរើស។',
],
];
@@ -0,0 +1,617 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => '복제',
],
'add' => [
'label' => ':label 추가',
'modal' => [
'heading' => ':label 추가',
'actions' => [
'add' => [
'label' => '추가',
],
],
],
],
'add_between' => [
'label' => '블록 사이에 삽입',
'modal' => [
'heading' => ':label 추가',
'actions' => [
'add' => [
'label' => '추가',
],
],
],
],
'delete' => [
'label' => '삭제',
],
'edit' => [
'label' => '수정',
'modal' => [
'heading' => '블록 수정',
'actions' => [
'save' => [
'label' => '변경사항 저장',
],
],
],
],
'reorder' => [
'label' => '이동',
],
'move_down' => [
'label' => '아래로 이동',
],
'move_up' => [
'label' => '위로 이동',
],
'collapse' => [
'label' => '접기',
],
'expand' => [
'label' => '펼치기',
],
'collapse_all' => [
'label' => '모두 접기',
],
'expand_all' => [
'label' => '모두 펼치기',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => '모두 선택 해제',
],
'select_all' => [
'label' => '모두 선택',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => '취소',
],
'drag_crop' => [
'label' => '자르기 모드',
],
'drag_move' => [
'label' => '이동 모드',
],
'flip_horizontal' => [
'label' => '가로로 뒤집기',
],
'flip_vertical' => [
'label' => '세로로 뒤집기',
],
'move_down' => [
'label' => '이미지를 아래로 이동',
],
'move_left' => [
'label' => '이미지를 왼쪽으로 이동',
],
'move_right' => [
'label' => '이미지를 오른쪽으로 이동',
],
'move_up' => [
'label' => '이미지를 위로 이동',
],
'reset' => [
'label' => '초기화',
],
'rotate_left' => [
'label' => '왼쪽으로 회전',
],
'rotate_right' => [
'label' => '오른쪽으로 회전',
],
'set_aspect_ratio' => [
'label' => '화면비를 :ratio 로 설정',
],
'save' => [
'label' => '저장',
],
'zoom_100' => [
'label' => '이미지 100%로 확대',
],
'zoom_in' => [
'label' => '확대',
],
'zoom_out' => [
'label' => '축소',
],
],
'fields' => [
'height' => [
'label' => '세로',
'unit' => 'px',
],
'rotation' => [
'label' => '회전',
'unit' => 'deg',
],
'width' => [
'label' => '가로',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => '화면비',
'no_fixed' => [
'label' => '자유',
],
],
'svg' => [
'messages' => [
'confirmation' => 'SVG 파일을 편집하는 것은 크기 조정 시 품질 손실이 발생할 수 있으므로 권장되지 않습니다.\n 계속하시겠습니까?',
'disabled' => 'SVG 파일 편집은 크기 조정 시 품질 손실이 발생할 수 있으므로 비활성화되었습니다.',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => '행 추가',
],
'delete' => [
'label' => '행 삭제',
],
'reorder' => [
'label' => '행 재정렬',
],
],
'fields' => [
'key' => [
'label' => '키',
],
'value' => [
'label' => '값',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => '파일 첨부',
'blockquote' => '인용구',
'bold' => '굵게',
'bullet_list' => '순서가 없는 목록',
'code_block' => '코드 블록',
'heading' => '제목',
'italic' => '기울임체',
'link' => '링크',
'ordered_list' => '번호 목록',
'redo' => '다시 실행',
'strike' => '취소선',
'table' => '테이블',
'undo' => '실행 취소',
],
],
'modal_table_select' => [
'actions' => [
'select' => [
'label' => '선택',
'actions' => [
'select' => [
'label' => '선택',
],
],
],
],
],
'radio' => [
'boolean' => [
'true' => '예',
'false' => '아니오',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => ':label 추가',
],
'add_between' => [
'label' => '사이에 삽입',
],
'delete' => [
'label' => '삭제',
],
'clone' => [
'label' => '복제',
],
'reorder' => [
'label' => '이동',
],
'move_down' => [
'label' => '아래로 이동',
],
'move_up' => [
'label' => '위로 이동',
],
'collapse' => [
'label' => '접기',
],
'expand' => [
'label' => '펼치기',
],
'collapse_all' => [
'label' => '모두 접기',
],
'expand_all' => [
'label' => '모두 펼치기',
],
],
],
'rich_editor' => [
'actions' => [
'attach_files' => [
'label' => '파일 업로드',
'modal' => [
'heading' => '파일 업로드',
'form' => [
'file' => [
'label' => [
'new' => '파일',
'existing' => '파일 교체',
],
],
'alt' => [
'label' => [
'new' => '대체 텍스트',
'existing' => '대체 텍스트 변경',
],
],
],
],
],
'custom_block' => [
'modal' => [
'actions' => [
'insert' => [
'label' => '삽입',
],
'save' => [
'label' => '저장',
],
],
],
],
'link' => [
'label' => '수정',
'modal' => [
'heading' => '링크',
'form' => [
'url' => [
'label' => 'URL',
],
'should_open_in_new_tab' => [
'label' => '새 탭에서 열기',
],
],
],
],
],
'no_merge_tag_search_results_message' => '병합 태그 결과가 없습니다.',
'tools' => [
'align_center' => '가운데 정렬',
'align_end' => '끝 정렬',
'align_justify' => '양쪽 정렬',
'align_start' => '시작 정렬',
'attach_files' => '파일 첨부',
'blockquote' => '인용구',
'bold' => '굵게',
'bullet_list' => '순서가 없는 목록',
'clear_formatting' => '서식 지우기',
'code' => '코드',
'code_block' => '코드 블록',
'custom_blocks' => '블록',
'details' => '세부사항',
'h1' => '큰 제목',
'h2' => '중간 제목',
'h3' => '작은 제목',
'highlight' => '강조',
'horizontal_rule' => '수평선',
'italic' => '기울임체',
'lead' => '강조 텍스트',
'link' => '링크',
'merge_tags' => '병합 태그',
'ordered_list' => '번호 목록',
'redo' => '다시 실행',
'small' => '작은 텍스트',
'strike' => '취소선',
'subscript' => '아래 첨자',
'superscript' => '위 첨자',
'table' => '테이블',
'table_delete' => '테이블 삭제',
'table_add_column_before' => '이전에 열 추가',
'table_add_column_after' => '이후에 열 추가',
'table_delete_column' => '열 삭제',
'table_add_row_before' => '위에 행 추가',
'table_add_row_after' => '아래에 행 추가',
'table_delete_row' => '행 삭제',
'table_merge_cells' => '셀 병합',
'table_split_cell' => '셀 분할',
'table_toggle_header_row' => '헤더 행 토글',
'underline' => '밑줄',
'undo' => '실행 취소',
],
],
'select' => [
'actions' => [
'create_option' => [
'label' => '만들기',
'modal' => [
'heading' => '새로 만들기',
'actions' => [
'create' => [
'label' => '만들기',
],
'create_another' => [
'label' => '만들고 다른 것 만들기',
],
],
],
],
'edit_option' => [
'label' => '수정',
'modal' => [
'heading' => '수정',
'actions' => [
'save' => [
'label' => '저장',
],
],
],
],
],
'boolean' => [
'true' => '예',
'false' => '아니오',
],
'loading_message' => '로드 중...',
'max_items_message' => ':count개까지만 선택할 수 있습니다.',
'no_search_results_message' => '검색 결과가 없습니다.',
'placeholder' => '옵션을 선택하세요',
'searching_message' => '검색 중...',
'search_prompt' => '검색어를 입력하세요...',
],
'tags_input' => [
'placeholder' => '새 태그',
],
'text_input' => [
'actions' => [
'copy' => [
'label' => '복사',
'message' => '복사됨',
],
'hide_password' => [
'label' => '비밀번호 숨기기',
],
'show_password' => [
'label' => '비밀번호 표시',
],
],
],
'toggle_buttons' => [
'boolean' => [
'true' => '예',
'false' => '아니오',
],
],
];
@@ -0,0 +1,10 @@
<?php
return [
'distinct' => [
'must_be_selected' => ':attribute 필드 중 하나 이상을 선택해야 합니다.',
'only_one_must_be_selected' => ':attribute 필드 중 하나만 선택해야 합니다.',
],
];
@@ -0,0 +1,400 @@
<?php
return [
'builder' => [
'actions' => [
'clone' => [
'label' => 'پۆشتەکردن',
],
'add' => [
'label' => 'زیادکردن بۆ :label',
],
'add_between' => [
'label' => 'داخڵکردن لە نێوان هێڵ',
],
'delete' => [
'label' => 'سڕینەوە',
],
'reorder' => [
'label' => 'جوڵاندن',
],
'move_down' => [
'label' => 'جوڵاندن بۆ خوارەوە',
],
'move_up' => [
'label' => 'جوڵاندن بۆ سەرەوە',
],
'collapse' => [
'label' => 'بچووکردنەوە',
],
'expand' => [
'label' => 'فراوانکردن',
],
'collapse_all' => [
'label' => 'بچووکردنەوەی هەموو',
],
'expand_all' => [
'label' => 'فراوانکردنی هەموو',
],
],
],
'checkbox_list' => [
'actions' => [
'deselect_all' => [
'label' => 'لابردنی هەموو دیاریکراوەکان',
],
'select_all' => [
'label' => 'دیاریکردنی هەموو',
],
],
],
'file_upload' => [
'editor' => [
'actions' => [
'cancel' => [
'label' => 'پاشگەزبوونەوە',
],
'drag_crop' => [
'label' => 'جۆری ڕاکێشان "بڕین"',
],
'drag_move' => [
'label' => 'جۆری ڕاکێشان "جوڵاندن"',
],
'flip_horizontal' => [
'label' => 'وەرگێڕانی وێنە بە ئاسۆی',
],
'flip_vertical' => [
'label' => 'وەرگێڕانی وێنە بە ستونی',
],
'move_down' => [
'label' => 'جوڵاندنی وێنە بۆ خوارەوە',
],
'move_left' => [
'label' => 'جوڵاندنی وێنە بۆ چەپ',
],
'move_right' => [
'label' => 'جوڵاندنی وێنە بۆ ڕاست',
],
'move_up' => [
'label' => 'جوڵاندنی وێنە بۆ سەرەوە',
],
'reset' => [
'label' => 'دۆخی سەرەتا',
],
'rotate_left' => [
'label' => 'سوڕانەوەی وێنە بۆ چەپ',
],
'rotate_right' => [
'label' => 'سوڕانەوەی وێنە بۆ ڕاست',
],
'set_aspect_ratio' => [
'label' => 'دانانی تێکڕای لاکان بۆ :ratio',
],
'save' => [
'label' => 'نوێکردنەوە',
],
'zoom_100' => [
'label' => 'نزیکردنەوەی وێنە بۆ ١٠٠%',
],
'zoom_in' => [
'label' => 'نزیککردنەوە',
],
'zoom_out' => [
'label' => 'دوورخستنەوە',
],
],
'fields' => [
'height' => [
'label' => 'بەرزی',
'unit' => 'px',
],
'rotation' => [
'label' => 'سوڕانەوە',
'unit' => 'پلە',
],
'width' => [
'label' => 'پانی',
'unit' => 'px',
],
'x_position' => [
'label' => 'X',
'unit' => 'px',
],
'y_position' => [
'label' => 'Y',
'unit' => 'px',
],
],
'aspect_ratios' => [
'label' => 'تێکڕای لاکان',
'no_fixed' => [
'label' => 'سەربەخۆ',
],
],
],
],
'key_value' => [
'actions' => [
'add' => [
'label' => 'زیادکردنی ڕیز',
],
'delete' => [
'label' => 'سڕینەوەی ڕیز',
],
'reorder' => [
'label' => 'ڕێکخستنی ڕیز',
],
],
'fields' => [
'key' => [
'label' => 'کلیل',
],
'value' => [
'label' => 'نرخ',
],
],
],
'markdown_editor' => [
'tools' => [
'attach_files' => 'لکاندنی فایل',
'blockquote' => 'هێڵی وتە',
'bold' => 'تۆخ کردن',
'bullet_list' => 'لیستی خاڵ',
'code_block' => 'هێڵی کۆد',
'heading' => 'ناونیشان',
'italic' => 'لارکردن',
'link' => 'بەستەر',
'ordered_list' => 'لیستی ژمارە',
'redo' => 'دووبارەکردن',
'strike' => 'هێڵ بەسەرهێنان',
'table' => 'خشتە',
'undo' => 'گەڕانەوە',
],
],
'repeater' => [
'actions' => [
'add' => [
'label' => 'زیادکردن بۆ :label',
],
'delete' => [
'label' => 'سڕینەوە',
],
'clone' => [
'label' => 'پۆشتەکردن',
],
'reorder' => [
'label' => 'جوڵاندن',
],
'move_down' => [
'label' => 'جوڵاندن بۆ خوارەوە',
],
'move_up' => [
'label' => 'جوڵاندن بۆ سەرەوە',
],
'collapse' => [
'label' => 'بچووکردنەوە',
],
'expand' => [
'label' => 'فراوانکردن',
],
'collapse_all' => [
'label' => 'بچووکردنەوەی هەموو',
],
'expand_all' => [
'label' => 'فراوانکردنی هەموو',
],
],
],
'rich_editor' => [
'dialogs' => [
'link' => [
'actions' => [
'link' => 'بەستەر',
'unlink' => 'لابردنی بەستەر',
],
'label' => 'بەستەر',
'placeholder' => 'بەستەر داخڵ بکە',
],
],
'tools' => [
'attach_files' => 'لکاندنی فایل',
'blockquote' => 'هێڵی وتە',
'bold' => 'تۆخ کردن',
'bullet_list' => 'لیستی خاڵ',
'code_block' => 'هێڵی کۆد',
'h1' => 'ناونیشان',
'h2' => 'ناونیشانی دووەم',
'h3' => 'ناونیشانی سێیەم',
'italic' => 'لارکردن',
'link' => 'بەستەر',
'ordered_list' => 'لیستی ژمارە',
'redo' => 'دووبارەکردن',
'strike' => 'هێڵ بەسەرهێنان',
'underline' => 'هێڵ بەژێرهێنان',
'undo' => 'گەڕانەوە',
],
],
'select' => [
'actions' => [
'create_option' => [
'modal' => [
'heading' => 'دروستکردن',
'actions' => [
'create' => [
'label' => 'دروستکردن',
],
'create_another' => [
'label' => 'دروستکردن و تۆمارێکی تر',
],
],
],
],
'edit_option' => [
'modal' => [
'heading' => 'دەسکاریکردن',
'actions' => [
'save' => [
'label' => 'نوێکردنەوە',
],
],
],
],
],
'boolean' => [
'true' => 'بەڵێ',
'false' => 'نەخێر',
],
'loading_message' => 'چاوەروان بە...',
'max_items_message' => 'تەنها :count دەتواندرێت دیاری بکرێت.',
'no_search_results_message' => 'هیچ هەڵبژاردەیەک بۆ گەڕانەکەت نەدۆزرایەوە.',
'placeholder' => 'هەڵبژاردەیەک دیاری بکە',
'searching_message' => 'گەڕان...',
'search_prompt' => 'دەستبکە بە نوسین بۆ گەڕان...',
],
'tags_input' => [
'placeholder' => 'تاگی نوێ',
],
];

Some files were not shown because too many files have changed in this diff Show More