@akhatmirzo/ui

ContextMenu

O'ng tugma (yoki uzoq bosish) bilan ochiladigan amallar menyusi — DropdownMenu bilan bir xil API va ko'rinish.

Hisobot-2026.pdfO'ng tugma bilan bosing

Import

import { ContextMenu } from '@akhatmirzo/ui';

Qachon ishlatish

  • Fayl, karta, jadval qatori ustidagi tezkor amallar — kompyuterda ishlaydigan foydalanuvchilar o'ng tugmani kutadi.
  • Faqat qo'shimcha yo'l sifatida. O'ng tugma menyusini hamma ham topmaydi, telefonda esa u uzoq bosish bilan ochiladi. Muhim amallar boshqa joyda ham — tugma yoki DropdownMenu orqali — mavjud bo'lsin.
  • Tugma bosilganda ochiladigan menyu kerak bo'lsa — DropdownMenu. Ikkalasining qismlari bir xil, amallarni bir marta yozib, ikkala joyda ishlatish mumkin.

Tuzilishi

Qismlar, prop'lar va stillar DropdownMenu bilan bir xil (stillar umumiy moduldan olinadi). Farqi — Trigger tugma emas, o'ng tugma bosiladigan hudud, panel esa kursor turgan joyda ochiladi.

QismVazifasi
ContextMenuHolat: onOpenChange, modal, dir
ContextMenu.TriggerHudud (stilsiz <span>; odatda asChild bilan)
ContextMenu.ContentPanel: portal, kursor yonida ochiladi, aylanma navigatsiya
ContextMenu.ItemAmal: icon, shortcut, variant, onSelect
ContextMenu.CheckboxItemYoqib-o'chiriladigan element (✓)
ContextMenu.RadioGroup / RadioItemBir nechtadan bittasini tanlash (●)
ContextMenu.Label / Group / SeparatorSarlavha, guruh va ajratuvchi chiziq
ContextMenu.Sub / SubTrigger / SubContentIchki menyu
<ContextMenu>
  <ContextMenu.Trigger asChild>
    <Card>…fayl…</Card>
  </ContextMenu.Trigger>
  <ContextMenu.Content>
    <ContextMenu.Item icon={<Pencil />} shortcut={['mod', 'E']}>
      Tahrirlash
    </ContextMenu.Item>
    <ContextMenu.Separator />
    <ContextMenu.Item variant="danger">O'chirish</ContextMenu.Item>
  </ContextMenu.Content>
</ContextMenu>

Belgilanadigan elementlar

CheckboxItem (checked / onCheckedChange) va RadioGroup (value / onValueChange yoki defaultValue) — ko'rinish sozlamalari uchun qulay.

Kanvas · 100% — o'ng tugma bilan bosing

Jadval qatori: ikki yo'l bilan

Qator ustida o'ng tugma — ContextMenu, "⋯" tugmasi — xuddi shu amallar bilan DropdownMenu. Qismlar nomi bir xil bo'lgani uchun amallar bitta komponentda yoziladi. Ichki menyu → yoki kursor bilan ochiladi.

  • #1042Dilnoza Karimova1 250 000 so'm
  • #1043Javohir Toshmatov480 000 so'm

Telefonda

Sensorli ekranda menyu uzoq bosish (long press) bilan ochiladi. Bu yashirin imo-ishora — shuning uchun amallarni ko'rinadigan tugma orqali ham bering.

Props

ContextMenu

Radix ContextMenu Root prop'lari: onOpenChange, modal (standart true) va dir. Menyu faqat foydalanuvchi harakati bilan ochiladi.

ContextMenu.Trigger

PropTipStandartTavsif
asChildbooleanfalseBolani (karta, qator) hudud sifatida ishlatadi
disabledboolean—true — o'ng tugma menyusi ochilmaydi

ContextMenu.Content

Radix ContextMenu.Content ning qolgan prop'lari (alignOffset, onCloseAutoFocus, onEscapeKeyDown ...), <div> atributlari va ref ham qabul qilinadi.

PropTipStandartTavsif
collisionPaddingnumber8Ekran chetidan minimal masofa, px
loopbooleantrue↑ ↓ oxiridan boshiga o'tadi
containerHTMLElement | null—Portal konteyneri (standart — document.body)

ContextMenu.Item

PropTipStandartTavsif
iconReactNode—Chapdagi ikonka (16px)
shortcutstring[]—O'ngdagi Kbd yorlig'i, masalan ['mod', 'E']
variant'default' | 'danger''default'danger — qizil matn va ajratish
onSelect(event: Event) => void—Tanlanganda. preventDefault() — menyu ochiq qoladi
disabledboolean—Elementni o'chiradi
asChildbooleanfalseBolani (masalan, <a>) element sifatida chizadi

CheckboxItem, RadioGroup, RadioItem, Sub, SubTrigger va SubContent prop'lari DropdownMenu dagi bilan bir xil.

Data atributlari

AtributQayerdaQiymat
data-statetrigger, panelopen · closed
data-variantelementdefault · danger
data-highlightedelementklaviatura yoki sichqoncha ustida
data-disabledelement, triggero'chirilganda mavjud
data-stateCheckbox/RadioItemchecked · unchecked

Klaviatura

TugmaHarakat
Shift + F10Fokusdagi hududda menyuni ochadi (brauzer)
↓ / ↑Elementlar bo'ylab yurish (aylanma)
Home / EndBirinchi / oxirgi element
HarfShu harf bilan boshlanadigan elementga sakrash
→ / ←Ichki menyuni ochish / yopish
Enter / SpaceTanlash va yopish
EscYopish

Accessibility

  • Rollar. Panel — role="menu", elementlar — menuitem, menuitemcheckbox, menuitemradio. Asosida Radix ContextMenu.
  • Topilishi qiyin. O'ng tugma menyusi ekran o'quvchi va klaviatura foydalanuvchilari uchun ko'rinmaydi — muhim amallarni albatta boshqa yo'l bilan ham bering.
  • Qisqa yo'llar. shortcut berilsa, aria-keyshortcuts qo'yiladi; ko'rinadigan Kbd ekran o'quvchidan yashirin. Yorliq tugmani o'zi tinglamaydi — useHotkeys bilan ulang.
  • Ikonkalar aria-hidden.

Sahifada