DeenruvDeenruv
Rozszerzanie panelu administracyjnego

Komponenty

Kompletny katalog komponentów w @deenruv/react-ui-devkit — szablony, uniwersalne, molekuły i atomy

@deenruv/react-ui-devkit udostępnia ponad 70 komponentów zorganizowanych według złożoności i przeznaczenia. Wszystkie komponenty są stylizowane motywem Deenruv i obsługują tryb ciemny.

Kategorie komponentów

KategoriaIlośćPrzeznaczenie
Template2Pełne layouty stron (strony listy i szczegółów)
Core4Znaczniki i renderery wstrzykiwania pluginów
Universal15Komponenty z logiką biznesową do typowych wzorców panelu admina
Molecule13Złożone komponenty zbudowane z atomów
Atom42Prymitywy oparte na shadcn/ui

Komponenty Template

To najważniejsze komponenty do budowania stron panelu administracyjnego. Zapewniają kompletne layouty stron z wbudowanymi punktami wstrzykiwania pluginów.

KomponentOpis
DetailListW pełni funkcjonalna strona listy z tabelą, paginacją, filtrowaniem, sortowaniem i akcjami zbiorczymi
DetailViewLayout strony szczegółów/edycji z zakładkami, paskiem bocznym, akcjami i punktami wstrzykiwania pluginów

Szczegółowy opis DetailList i DetailView znajdziesz w przewodniku Szablony.

import { DetailList, DetailView } from '@deenruv/react-ui-devkit';

Komponenty Core

Komponenty używane przez system pluginów panelu administracyjnego:

KomponentOpis
DetailViewMarkerZnacznik wstrzykiwania pluginów dla widoków szczegółów (przełączanie za pomocą Ctrl+Q)
ListViewMarkerZnacznik wstrzykiwania pluginów dla widoków list (przełączanie za pomocą Ctrl+Q)
RendererDynamiczny renderer komponentów dla treści wstrzykiwanych przez pluginy
EntityCustomFieldsRenderuje inputy pól niestandardowych dla dowolnego typu encji

EntityCustomFields

Automatycznie renderuje inputy formularza dla wszystkich pól niestandardowych zdefiniowanych na encji:

import { EntityCustomFields } from '@deenruv/react-ui-devkit';

function ProductDetail({ product }) {
  return (
    <div>
      {/* Standardowe pola produktu */}
      <Input value={product.name} />

      {/* Renderowanie wszystkich pól niestandardowych dla tej encji */}
      <EntityCustomFields
        entityType="Product"
        entity={product}
        onFieldChange={(fieldName, value) => {
          // Obsługa aktualizacji pól niestandardowych
        }}
      />
    </div>
  );
}

Komponenty Universal (15)

Wielokrotnego użytku komponenty z logiką biznesową do typowych wzorców panelu admina:

KomponentOpis
DialogProductPickerDialog wyboru produktu z wyszukiwaniem i filtrowaniem
RichTextEditorEdytor tekstu sformatowanego oparty na Tiptap z paskiem formatowania
AssetsModalInputSelektor zasobów z modalną przeglądarką do wyboru obrazów/plików
ConfirmationDialogDialog potwierdzenia z konfigurowalnym tytułem, wiadomością i akcjami
PageBlockWrapper sekcji strony z tytułem i opisem
CustomCardStylizowany komponent karty z spójnym motywem admina
CustomCardHeaderNagłówek karty z tytułem, opisem i slotami na akcje
EmptyStatePlaceholder pustego stanu z ikoną i wiadomością
FacetIdsSelectorMultiselektor wartości facetów
DraggableSelectKomponent select z możliwością zmiany kolejności przez przeciąganie
SimpleTimePickerInput wyboru samego czasu
DateTimePickerPołączony selektor daty i czasu
DateTimeInputPole input daty/czasu
EntityChannelManagerMenedżer przypisywania kanałów dla encji
CustomerSearchWyszukiwanie klientów z autouzupełnianiem

Przykłady użycia

PageBlock

Opakowuje sekcję strony tytułem i opisem:

import { PageBlock } from '@deenruv/react-ui-devkit';

<PageBlock title="Product Details" description="Basic product information">
  <Input label="Name" value={name} onChange={setName} />
  <Input label="Slug" value={slug} onChange={setSlug} />
</PageBlock>

ConfirmationDialog

import { ConfirmationDialog } from '@deenruv/react-ui-devkit';

<ConfirmationDialog
  title="Delete Product"
  description="Are you sure? This action cannot be undone."
  onConfirm={handleDelete}
  onCancel={() => setOpen(false)}
/>

RichTextEditor

import { RichTextEditor } from '@deenruv/react-ui-devkit';

<RichTextEditor
  value={description}
  onChange={setDescription}
/>

AssetsModalInput

import { AssetsModalInput } from '@deenruv/react-ui-devkit';

<AssetsModalInput
  value={selectedAssets}
  onChange={setSelectedAssets}
/>

Akcje tabel Universal (5)

Gotowe akcje tabel do typowych operacji na encjach:

KomponentOpis
ManageEntityToChannelsDialogDialog przypisywania encji do kanałów
DeleteEntityFromChannelsDialogDialog usuwania encji z kanałów
EntityChannelManagementRowActionAkcja zarządzania kanałami na poziomie wiersza
EntityChannelManagementBulkActionZbiorcza akcja zarządzania kanałami
EntityFacetManagementBulkActionZbiorcza akcja przypisywania facetów

Narzędzia Universal

FunkcjaOpis
createDialogFunctionTworzy funkcję wyzwalającą dialog z komponentu dialogowego
createDialogFromComponentFunctionTworzy dialog z istniejącego komponentu
import { createDialogFunction, ConfirmationDialog } from '@deenruv/react-ui-devkit';

const showConfirmation = createDialogFunction(ConfirmationDialog);

// Użycie
const confirmed = await showConfirmation({
  title: 'Confirm',
  description: 'Are you sure?',
});

Komponenty Molecule (13)

Złożone komponenty łączące wiele atomów:

KomponentOpis
PaymentMethodImageWyświetlanie ikony/obrazu metody płatności
OrderStateBadgeKolorowy badge statusu zamówienia
SimpleSelectUproszczony dropdown select
SimpleTooltipUproszczony wrapper tooltip
SortButtonPrzycisk przełączania sortowania kolumn
TranslationSelectSelektor języka/tłumaczeń
ListTableTabela danych dla widoków list
SearchInputInput wyszukiwania z wbudowanym debounce
CustomFieldsModalModal do edycji pól niestandardowych
ImageWithPreviewMiniatura obrazu z podglądem lightbox
ErrorMessageStylizowany komunikat błędu
ListBadgeBadge statusu elementu listy
ContextMenuMenu kontekstowe (prawy przycisk myszy)

Przykłady użycia

SearchInput

import { SearchInput } from '@deenruv/react-ui-devkit';

<SearchInput
  value={searchTerm}
  onChange={setSearchTerm}
  placeholder="Search products..."
/>

SimpleSelect

import { SimpleSelect } from '@deenruv/react-ui-devkit';

<SimpleSelect
  value={status}
  onChange={setStatus}
  options={[
    { label: 'Active', value: 'active' },
    { label: 'Draft', value: 'draft' },
    { label: 'Archived', value: 'archived' },
  ]}
/>

OrderStateBadge

import { OrderStateBadge } from '@deenruv/react-ui-devkit';

<OrderStateBadge state={order.state} />

Komponenty Atom (42)

Prymitywne komponenty oparte na shadcn/ui, stylizowane motywem Deenruv. Wszystkie atomy obsługują tryb ciemny i są zgodne z systemem designu panelu administracyjnego.

KomponentOpis
AccordionZwijane sekcje treści
AlertDialogModalny alert z akcjami
AssetUploadButtonPrzycisk do przesyłania zasobów
AspectRatioKontener o stałym stosunku proporcji
BadgeBadge statusu/etykiety
BreadcrumbNawigacja breadcrumb
ButtonGłówny przycisk akcji
CalendarKalendarz wyboru daty
CardKontener karty z treścią
ChartWykres wizualizacji danych
CheckboxInput checkbox
CommandKomponent palety poleceń
DialogDialog modalny
DrawerWysuwany panel boczny
DropdownMenuMenu rozwijane z elementami
FacetedFilterKomponent filtrowania wielofacetowego
FormWrapper formularza z walidacją
HoverCardKarta treści wyzwalana najechaniem
ImagePlaceholderPlaceholder dla brakujących obrazów
InputPole tekstowe input
LabelEtykieta pola formularza
LanguagePickerDropdown wyboru języka
MultipleSelectorSelektor wielowartościowy
PaginationKomponent nawigacji stron
PopoverPanel treści popover
ProgressWskaźnik paska postępu
RadioGroupGrupa przycisków radio
ScrollAreaKontener z niestandardowym scrollbarem
SelectDropdown select jednowartościowy
SeparatorWizualna linia separatora
SheetBoczny panel sheet
SkeletonPlaceholder ładowania
SonnerSystem powiadomień toast
SpinnerWskaźnik ładowania
SwitchPrzełącznik toggle
TableTabela danych
TabsNawigacja zakładkowa
TextareaWieloliniowe pole tekstowe
TimelineKomponent wyświetlania osi czasu
TogglePrzycisk toggle
ToggleGroupGrupa przycisków toggle
TooltipTooltip wyświetlany po najechaniu

Przykłady importu

import {
  Button,
  Input,
  Card,
  Dialog,
  Table,
  Badge,
  Tabs,
  Select,
  Switch,
  Spinner,
} from '@deenruv/react-ui-devkit';

Wszystkie komponenty atom są zgodne ze wzorcami API shadcn/ui. Szczegółowe propsy i sposób użycia każdego atomu znajdziesz w dokumentacji shadcn/ui.

Na tej stronie