انتخاب بصری در فیلتر (FilterSectionChoices)
کنترلهای بصری بخش فیلتر، متناسب با نوع داده — تراشه، کارت، نمونهٔ رنگ، سهبخشی و کارت سطح — با رنگ توکن DS، آیکون و شمار؛ بههمراه FilterSectionPeriod برای بازهٔ زمانی.
معرفی
ستون فیلتری که همهٔ بخشهایش فهرست چکباکس است، خواندن را کند میکند: هیجان بیرنگ، سطح بیشمار، زبان بینشانه.
FilterSectionChoices شکل کنترل را از نوع داده میگیرد و رنگ و آیکون هر مقدار را از همان توکنهای DS که نشان و
نمودار آن مقدار میکشند؛ پس فیلتر، کارت و نمودار یک زبان بصری دارند.
variant | برای چه دادهای | نمونه |
|---|---|---|
chips | دستهٔ کوتاه با معنای خودش | هیجان (tone="emotion:anger")، تازگی، دامنه |
swatches | رنگ معنایی با برچسب بلند، همراه سهم | دیدگاه مخاطب (tone="flow:grey"، share) |
cards | چند مقدار با نشانهٔ قوی | منبع با لوگو، زبان با LanguageGlyph |
segmented | 2 تا 4 مقدار انحصاری یا ترتیبی | «همه / فقط مرتبط / غیرمرتبط» |
levelCards | سطحهایی که شمارشان مهم است | سطح (tone="status:critical")، شمار بزرگ |
فهرست بلند اسمی (مثل دستهها) همان FilterSectionOptions با جستوجو و شمار میماند؛
عدد ترتیبی FilterSectionRange است (با slider و هیستوگرام)، و بلی/خیر یک Switch.
- رنگ هرگز تنها: هر گزینه کلمه و شمار دارد؛ انتخاب = زمینهٔ کمرنگ توکن + مرز در لایهٔ متنی AA + علامت ✓.
- رنگ فقط از توکن:
toneیکی ازemotion:*،flow:*،status:*،severity:*یاbrandاست؛ هیجان و دیدگاه آیکون نشان خودشان را هم میآورند (EMOTION_META،FLOW_META). - صفر: کمرنگ و قابلانتخاب؛ در بارگذاری
countرا ندهید. - نشانهٔ فعال: بخش دارای مقدار قرص پر برند میگیرد؛ بخشی که فقط پیشفرض سامانه دارد، نشان «پیشفرض»
(
FilterSection defaultActive)؛ سرِ ستون «فیلترها [N] · M پیشفرض» (FilterPanelTitle defaultCount).
چه زمانی استفاده کنیم:
- دستهای کوتاه که رنگ یا آیکون معنایی دارد (هیجان، دیدگاه، سطح)
- چند مقدار با نشانهٔ قوی (منبع، زبان) یا 2 تا 4 مقدار انحصاری
- وقتی شمار هر سطح خودش خبر است (کارت سطح)
چه زمانی استفاده نکنیم:
- فهرست بلند اسمی با جستوجو — از
FilterSectionOptionsاستفاده کنید - عدد ترتیبی (امتیاز، تعداد) — از
FilterSectionRangeاستفاده کنید - بیرون از ستون فیلتر، برای انتخاب در فرم — از
RadioCardsیاToggleGroupاستفاده کنید
فیلترهافیلترهای فعال21 پیشفرض
در برابر 7 روز پیش از آن
استفاده
import { FilterSection, FilterSectionChoices, LanguageGlyph } from '@partodata/ui'
<FilterSection title="هیجان غالب" activeCount={emotions.length} onClear={() => setEmotions([])} defaultOpen={false}>
<FilterSectionChoices
variant="chips"
options={[
{ value: 'anger', label: 'خشم', tone: 'emotion:anger', count: 9 },
{ value: 'fear', label: 'ترس', tone: 'emotion:fear', count: 4 },
]}
value={emotions}
onValueChange={setEmotions}
/>
</FilterSection>
<FilterSection title="زبان محتوا" activeCount={langs.length} defaultOpen={false}>
<FilterSectionChoices
variant="cards"
options={[
{ value: 'fa', label: 'فارسی', icon: <LanguageGlyph lang="fa" />, count: 20 },
{ value: 'en', label: 'انگلیسی', icon: <LanguageGlyph lang="en" />, count: 2 },
]}
value={langs}
onValueChange={setLangs}
/>
</FilterSection>بازهٔ زمانی در ستون فیلتر:
<FilterSectionPeriod
title="بازهٔ زمانی"
presets={[
{ value: '24h', label: '24 ساعت' },
{ value: '7d', label: '7 روز' },
{ value: '30d', label: '30 روز' },
]}
defaultValue="7d"
value={preset}
onValueChange={setPreset}
picker={<DateRangePicker value={range} onValueChange={setRange} presets={GA_PRESETS} />}
comparison="در برابر 4 تا 10 مهر"
/>راهنمای استفاده
بکنید
شکل کنترل را از نوع داده بگیرید؛ برای هیجان و دیدگاه tone بدهید تا رنگ و آیکون همان نشان و نمودار باشد؛ کلمه و شمار
را همیشه نگه دارید؛ پیشفرض سامانه را با defaultActive روی بخش نشان دهید.
نکنید
همهٔ بخشها را فهرست چکباکس نکنید؛ رنگ خام از محصول ندهید؛ برای زبان پرچم نگذارید؛ رنگ را تنها حامل معنا نکنید.
Props
FilterSectionChoices
FilterSectionPeriod
دسترسیپذیری
- چندتایی: گروه
role="group"با گزینههایrole="checkbox"وaria-checked؛ تکی:role="radiogroup"وrole="radio". - یک توقف Tab برای کل گروه؛ فلشها (در RTL فلش چپ = بعدی)،
HomeوEndحرکت میدهند؛ در گروه تکی حرکت انتخاب هم میکند. - نام دسترسی هر گزینه کلمه و شمار آن است؛ آیکون، نمونهٔ رنگ و میلهٔ سهم
aria-hiddenهستند. - مرز و علامت انتخاب از لایهٔ
-textتوکن (AA در هر دو تم) میآیند؛ ارتفاع هدف ≥ 28px و درchipsوcards≥ 32px.
کامپوننتهای مرتبط
- فهرست بلند با جستوجو →
FilterSectionOptionsدرFilterPanel - عدد ترتیبی →
FilterSectionRange - نشانهٔ زبان →
LanguageGlyph
فیلتر بازهٔ عددی (FilterSectionRange)
بخش فیلتر برای عددی که ترتیب دارد (امتیاز اعتماد، سن اکانت، روز از آخرین ورود) — دو فیلد «از» و «تا» با اعتبارسنجی لحظهای، میانبرهای شمارشدار و خلاصهٔ مقدار فعال در بخش بسته.
نوار فیلتر (FilterBar)
جزء سطح پایین ردیف فیلتر (ردیف فیلترها، عملیات و فیلترهای فعال) برای پنل و کارت؛ نوار فیلتر صفحهٔ فهرست را قالب ListPage میسازد.