Pantrix UI

Date Filled Text Field

Bir gün için dolu bir metin alanı: gün rakamlarla yazılır ya da kutunun sonundaki bir düğmenin açtığı takvimden seçilir. Dolu bir kutudaki PantrixDateTextField'tır.

import com.pantrixui.components.date.datefilledtextfield.PantrixDateFilledTextField

Örnekler

Doğum günü

Bir doğum günü, dolu kutuda: bugünden sonrası alınmaz. Etiket odaklanınca yukarı çıkar, düzen görünür.

var birthday by remember { mutableStateOf<PantrixDate?>(null) }
PantrixDateFilledTextField(
    value = birthday,
    onValueChange = { birthday = it },
    label = "Doğum günü",
    maxDate = rememberToday(),
    showClearButton = true,
    tagKey = "birthday"
)

Takvim bir dialog'da

Hafta içi bir teslim günü; takvim pencerenin ortasında bir dialog'da açılır.

var delivery by remember { mutableStateOf<PantrixDate?>(null) }
val today = rememberToday()
PantrixDateFilledTextField(
    value = delivery,
    onValueChange = { delivery = it },
    label = "Teslim günü",
    minDate = today.plusDays(1),
    maxDate = today.plusMonths(1),
    isDateEnabled = { it.dayOfWeek <= FRIDAY },
    presentation = DatePickerPresentation.Dialog,
    tagKey = "delivery"
)

private const val FRIDAY = 5

Uygulamanın hatası ve devre dışı

Uygulamanın hatası ve devre dışı bir alan, dolu kutuda.

var meeting by remember { mutableStateOf<PantrixDate?>(PantrixDate(2026, 11, 2)) }
val taken = meeting == PantrixDate(2026, 11, 2)
PantrixDateFilledTextField(
    value = meeting,
    onValueChange = { meeting = it },
    label = "Toplantı günü",
    supportingText = if (taken) "Bu gün dolu, başka bir gün seçin" else "Ofisin açık olduğu bir gün",
    error = taken,
    tagKey = "meeting"
)
PantrixDateFilledTextField(
    value = PantrixDate(2026, 10, 1),
    onValueChange = {},
    enabled = false,
    label = "Sözleşme başlangıcı",
    tagKey = "contract"
)

Forma bağlı

Bir formun alanına bağlı, dolu kutuda: gün boşken "Kaydet" hatayı gösterir.

val form = rememberFormState()
val scope = rememberCoroutineScope()
val report = LocalExampleEvents.current
val start = form.field<PantrixDate?>("start", initial = null, Rules.required("İşe başlama gününü yazın"))
PantrixDateFilledTextField(
    field = start,
    modifier = Modifier.fillMaxWidth(),
    form = form,
    label = "İşe başlama günü",
    minDate = rememberToday()
)
PantrixButton(
    text = "Kaydet",
    onClick = { scope.launch { form.submit { report("Kaydedildi") } } },
    form = form,
    tagKey = "save_start"
)

Bir durumla

Bir durumla: state.date alanın günü, state.text yazılan rakamlar. İkisi birlikte boş alanı yarım yazılmış alandan ayırır. Düğme durumun gününü değiştirir; alan onu kendisi yazar.

val state = rememberDateTextFieldState()
val today = rememberToday()
Column(verticalArrangement = Arrangement.spacedBy(PantrixTheme.spacing.sm)) {
    PantrixDateFilledTextField(
        state = state,
        label = "Rapor günü",
        tagKey = "report_day"
    )
    PantrixText(
        text = when {
            state.date != null -> "Gün: ${state.date}"
            state.text.isEmpty() -> "Alan boş"
            else -> "Yarım: ${state.text}"
        },
        style = PantrixTheme.typography.body
    )
    PantrixButton(
        text = "Bugünü yaz",
        onClick = { state.date = today },
        variant = ButtonVariant.Outline,
        tagKey = "write_today"
    )
}

API

value

Bir gün için dolu bir metin alanı: gün rakamlarla yazılır ya da kutunun sonundaki bir düğmenin açtığı takvimden seçilir. Dolu bir kutudaki PantrixDateTextField'tır.

ParametreTürVarsayılanNe olduğu
valuePantrixDate?alanın gösterdiği gün, ya da null.
onValueChange(PantrixDate?) -> Unitkullanıcı her değiştirdiğinde alanın günü söylenir: bir gün, ya da yoksa null.
modifierModifierModifierbütün alanın modifier'ı: etiketi, kutusu ve altındakiler.
enabledBooleantruealanın kullanılıp kullanılamayacağı. Kullanılamayan alan odak almaz ve takvim açmaz.
readOnlyBooleanfalsegünün yalnız takvimden seçilip yazılamayacağı.
labelString?nullalanın ne için olduğu, kutunun içinde: alanın ve takviminin ekran okuyucudaki adı.
placeholderString?nullkutu boşken, alanın kendisinin gösterdiği düzenin yerinde gösterilir.
supportingTextString?nullkutunun altındaki yardım. error ile neyin düzeltileceğini söyleyen mesajdır; onsuz, alanın kendi hatası varken onun yerini alır.
errorBooleanfalseçağıranın günü yanlış bulup bulmadığı, dolu bir gün gibi: alan hatalı çizilir ve mesaj supportingText'tir.
leadingIcon(@Composable () -> Unit)?nullmetnin önünde duran. Bir yuva içine konanı boyutlandırmaz.
showClearButtonBooleanfalsealan yazılabilirken ve boş değilken onu boşaltan bir düğme gösterir.
minDatePantrixDate?nullalanın aldığı ilk gün, ya da ilki yoksa null. maxDate'ten sonra değil.
maxDatePantrixDate?nullalanın aldığı son gün, ya da sonu yoksa null.
isDateEnabled((PantrixDate) -> Boolean)?nullalanın ikisi arasındaki bir günü alıp almadığı, ya da her gün için null: hafta içi bir gün, henüz dolmamış bir gün.
firstDayOfWeekInt?nulltakvimin haftalarının başladığı gün, ISO 8601'in numaraladığı gibi Pazartesi 1'den Pazar 7'ye, ya da dilinki için null.
todayPantrixDaterememberToday()takvimin bugün diye işaretlediği gün: varsayılan, ekranın saatinin gösterdiği gün (rememberToday), gece yarısı döner.
formatDateFieldFormatDateFieldFormat.of(PantrixTheme.locale)parçaların yazıldığı sıra ve aralarındaki ayraç: varsayılan temanın dilininki ve bölgesininki. of: Bu tonun çizildiği temanın rolü.
presentationDatePickerPresentationDatePickerPresentation.Adaptivetakvimin neyde açıldığı: varsayılan dar bir pencerede bir sheet, daha geniş pencerede kutunun altında bir popover, açılırken seçilir; ya da her zaman bir popover, bir sheet ya da bir dialog.
styleFilledTextFieldStyle?nullbu çağrının alanın kendi stili: çevreleyen her birinin üstünde ve yoğunluğun altında.
colorsFilledTextFieldColors?nullbu çağrının alanın kendi renkleri, temanın rollerinin yerine.
pickerStyleDatePickerStyle?nullbu çağrının takvimin kendi stili.
pickerColorsDatePickerColors?nullbu çağrının takvimin kendi renkleri.
contentDescriptionString?nulllabel'ı olmayan alan için ekran okuyucunun söylediği.
tagKeyString?nullalanın otomasyon anahtarı: alan DateFilledTextField_<tagKey>, düğmesi DateFilledTextFieldCalendar_<tagKey>, temizleme düğmesi DateFilledTextFieldClear_<tagKey> ve takvimi DatePicker_<tagKey>'tir. Alan takvimin açıldığını ve içinde bir gün seçildiğini bildirir, günü asla.
interactionSourceMutableInteractionSource?nullalanın etkileşimleri, dışarı taşınmış: odağı, üstündeki işaretçi ve basışları.

state

Çağıranın tuttuğu bir state üstünde bir tarih alanı, başka her yönden bir değerin PantrixDateFilledTextField'ı gibi: durumun date'i alanın günüdür, ona yazmak günü alana koyar, text'i yarım yazılmış alanı boş alandan ayırır.

ParametreTürVarsayılanNe olduğu
stateDateTextFieldStateyazılan rakamlar ve yaptıkları gün. rememberDateTextFieldState() ile kurulur.
modifierModifierModifierbütün alanın modifier'ı: etiketi, kutusu ve altındakiler.
enabledBooleantruealanın kullanılıp kullanılamayacağı. Kullanılamayan alan odak almaz ve takvim açmaz.
readOnlyBooleanfalsegünün yalnız takvimden seçilip yazılamayacağı.
labelString?nullalanın ne için olduğu, kutunun içinde: alanın ve takviminin ekran okuyucudaki adı.
placeholderString?nullkutu boşken, alanın kendisinin gösterdiği düzenin yerinde gösterilir.
supportingTextString?nullkutunun altındaki yardım. error ile mesajdır; onsuz, alanın kendi hatası varken onun yerini alır.
errorBooleanfalseçağıranın günü yanlış bulup bulmadığı: alan hatalı çizilir ve mesaj supportingText'tir.
leadingIcon(@Composable () -> Unit)?nullmetnin önünde duran.
showClearButtonBooleanfalsealan yazılabilirken ve boş değilken onu boşaltan bir düğme gösterir.
minDatePantrixDate?nullalanın aldığı ilk gün, ya da ilki yoksa null. maxDate'ten sonra değil.
maxDatePantrixDate?nullalanın aldığı son gün, ya da sonu yoksa null.
isDateEnabled((PantrixDate) -> Boolean)?nullalanın ikisi arasındaki bir günü alıp almadığı, ya da her gün için null.
firstDayOfWeekInt?nulltakvimin haftalarının başladığı gün, Pazartesi 1'den Pazar 7'ye, ya da dilinki için null.
todayPantrixDaterememberToday()takvimin bugün diye işaretlediği gün: varsayılan, ekranın saatinin gösterdiği gün (rememberToday).
formatDateFieldFormatDateFieldFormat.of(PantrixTheme.locale)parçaların yazıldığı sıra ve aralarındaki ayraç: varsayılan temanın yerelininki. of: Bu tonun çizildiği temanın rolü.
presentationDatePickerPresentationDatePickerPresentation.Adaptivetakvimin neyde açıldığı: varsayılan dar bir pencerede bir sheet, daha geniş pencerede kutunun altında bir popover, açılırken seçilir; ya da her zaman bir popover, bir sheet ya da bir dialog.
styleFilledTextFieldStyle?nullbu çağrının alanın kendi stili.
colorsFilledTextFieldColors?nullbu çağrının alanın kendi renkleri.
pickerStyleDatePickerStyle?nullbu çağrının takvimin kendi stili.
pickerColorsDatePickerColors?nullbu çağrının takvimin kendi renkleri.
contentDescriptionString?nulllabel'ı olmayan alan için ekran okuyucunun söylediği.
tagKeyString?nullalanın otomasyon anahtarı, bir değerin PantrixDateFilledTextField'ının aldığı gibi.
interactionSourceMutableInteractionSource?nullalanın etkileşimleri, dışarı taşınmış.

field

Bir formun alanına bağlı bir tarih alanı: günü, hatası ve adı field'dan gelir.

ParametreTürVarsayılanNe olduğu
fieldFormField<PantrixDate?>tarih alanının gösterdiği ve değiştirdiği, formun alanı.
modifierModifierModifierbütün alanın modifier'ı.
formFormState?nullverilirse klavyenin eylem tuşu formu ona kayıtlı düğme üzerinden gönderir.
enabledBooleantruealanın kullanılıp kullanılamayacağı.
readOnlyBooleanfalsegünün yalnız takvimden seçilip seçilemeyeceği.
labelString?nullalanın ne için olduğu, kutunun içinde.
placeholderString?nullkutu boşken, düzenin yerinde gösterilir.
supportingTextString?nullkutunun altındaki yardım, alanın orada gösterecek bir hatası yokken.
leadingIcon(@Composable () -> Unit)?nullmetnin önünde duran.
showClearButtonBooleanfalsealan yazılabilirken ve boş değilken onu boşaltan bir düğme gösterir.
minDatePantrixDate?nullalanın aldığı ilk gün, ya da ilki yoksa null. maxDate'ten sonra değil.
maxDatePantrixDate?nullalanın aldığı son gün, ya da sonu yoksa null.
isDateEnabled((PantrixDate) -> Boolean)?nullalanın ikisi arasındaki bir günü alıp almadığı, ya da her gün için null.
firstDayOfWeekInt?nulltakvimin haftalarının başladığı gün, Pazartesi 1'den Pazar 7'ye, ya da dilinki için null.
todayPantrixDaterememberToday()takvimin bugün diye işaretlediği gün: varsayılan, ekranın saatinin gösterdiği gün (rememberToday).
formatDateFieldFormatDateFieldFormat.of(PantrixTheme.locale)parçaların yazıldığı sıra ve aralarındaki ayraç: varsayılan temanın yerelininki. of: Bu tonun çizildiği temanın rolü.
presentationDatePickerPresentationDatePickerPresentation.Adaptivetakvimin neyde açıldığı: varsayılan dar bir pencerede bir sheet, daha geniş pencerede kutunun altında bir popover, açılırken seçilir; ya da her zaman bir popover, bir sheet ya da bir dialog.
styleFilledTextFieldStyle?nullbu çağrının alanın kendi stili.
colorsFilledTextFieldColors?nullbu çağrının alanın kendi renkleri.
pickerStyleDatePickerStyle?nullbu çağrının takvimin kendi stili.
pickerColorsDatePickerColors?nullbu çağrının takvimin kendi renkleri.
contentDescriptionString?nulllabel'ı olmayan alan için ekran okuyucunun söylediği.
interactionSourceMutableInteractionSource?nullalanın etkileşimleri, dışarı taşınmış.

FilledTextFieldStyle

PantrixFilledTextField'ın kutusu: şekli, en az yüksekliği ve genişliği, içindekilerin çevresindeki boşluk, ikonları ve çerçevesi.

ParametreTürVarsayılanNe olduğu
shapeShapeSpecShapeSpec.UnspecifiedKutunun şekli. Tam yuvarlak bir şekil, ShapeRole.Full, yalnızca alan tek satır tutarken bir haptır: birkaç satırlı bir alan onun yerine ShapeRole.Large alır, çünkü bir kapsülün eğrisi metninin ilk satırına girer.
heightDpDp.UnspecifiedKutunun en az yüksekliği.
minWidthDpDp.UnspecifiedKutunun en az genişliği: boş bir alanın, kullanıcı içine yazdıkça genişlemesini önler.
horizontalPaddingDpDp.Unspecifiedİkon olmayan yerde, kutunun kenarı ile etiketi ve metni arasındaki boşluk.
verticalPaddingDpDp.UnspecifiedEtiketin satırının üstündeki ve metnin son satırının altındaki boşluk.
iconPaddingDpDp.UnspecifiedYuvasındaki bir ikonun çevresindeki boşluk.
iconSizeDpDp.UnspecifiedYuvadaki bir ikonun alması gereken boyut. Yuva, içine konanı boyutlandırmaz.
borderWidthDpDp.UnspecifiedKutunun odakta, hatada ve fare üstündeyken aldığı çerçevenin kalınlığı. Dinlenirken çerçevesi yoktur.
textRoleTypeRole?nullMetnin yazıldığı, etiketin dinlendiği ve yer tutucunun yazıldığı yazı ölçeği rolü: Android'de ve iOS'ta body, 16sp, Material 3'ün bir alana yazdığı gibi; masaüstünde ve web'de label, 14sp, işaretçiyle kullanılan bir sayfadaki gibi.

FilledTextFieldColors

Temanın renklerini almayan bir alan için PantrixFilledTextField'ın boyandığı renkler: verilen renk kullanılır, verilmeyen temadaki rolünde kalır. Bir ürün yalnızca değiştirdiği renkleri verir, başkasını vermez:

ParametreTürVarsayılanNe olduğu
containerColorColor.UnspecifiedDinlenirken kutunun dolgusu. Temanın neutral rolünün container'ı.
focusedContainerColorColor.UnspecifiedÇerçeveliyken kutunun dolgusu: odakta ve hatada. Temanın surface rengi.
hoveredOutlineColorColor.UnspecifiedFare üstündeyken çerçeve. Temanın borderHover rengi.
focusedOutlineColorColor.UnspecifiedAlan odaktayken çerçeve. Temanın primary rengi.
errorColorColor.UnspecifiedMetnin yanlış olduğunu söyleyenler: çerçeve, kutunun altındaki mesaj, imleç ve sınırını aştığında sayaç. Temanın danger rengi.
textColorColor.UnspecifiedYazılan metin. Temanın textPrimary rengi.
labelColorColor.UnspecifiedEtiket: hem dinlenirken yazının yerinde, hem yazının üstündeki kendi satırında. Temanın textSecondary rengi.
placeholderColorColor.UnspecifiedYer tutucu. Temanın textSecondary rengi.
supportingTextColorColor.UnspecifiedKutunun altındaki yardım metni ve sayaç. Temanın textSecondary rengi.
iconColorColor.UnspecifiedYuvadaki bir ikonun, kendi rengini vermedikçe çizildiği renk ve temizleme düğmesinin çarpısı. Temanın textSecondary rengi.
cursorColorColor.Unspecifiedİmleç ve onunla birlikte bir seçimin tutamaçları ile zemini. Temanın primary rengi.
scrollBarColorColor.UnspecifiedBirkaç satırlı bir kutunun metninin ne kadar kaydığını gösteren çubuk. Temanın borderStrong rengi: çubuk, kutunun dolgusunun üstünde bir işarettir ve bir kutunun yumuşak kenarı orada görünmezdi.