@appaflytech/wappa-mcp 0.0.12 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base-components.d.ts +3 -0
- package/dist/base-components.d.ts.map +1 -1
- package/dist/base-components.js +130 -1
- package/dist/base-components.js.map +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -7
- package/dist/client.js.map +1 -1
- package/dist/tools/components.js +2 -2
- package/dist/tools/components.js.map +1 -1
- package/dist/tools/dynamic-entities.d.ts +62 -0
- package/dist/tools/dynamic-entities.d.ts.map +1 -1
- package/dist/tools/dynamic-entities.js +145 -14
- package/dist/tools/dynamic-entities.js.map +1 -1
- package/dist/tools/entities.d.ts.map +1 -1
- package/dist/tools/entities.js +150 -38
- package/dist/tools/entities.js.map +1 -1
- package/package.json +1 -1
package/dist/base-components.js
CHANGED
|
@@ -21,6 +21,7 @@ export const BASE_COMPONENTS = [
|
|
|
21
21
|
droppable: true,
|
|
22
22
|
icon: "container-software",
|
|
23
23
|
isMobile: false,
|
|
24
|
+
usage: "İçerik kapsayıcı: max-width ve padding vererek içeriği ekran ortasında sınırlar. Temel kullanım: size prop'u ile genişlik seçilir (fluid | extended | wide | medium | narrow); children olarak bölüm içeriği (row/column, stack vb.) konur; görsel ayar için className/style kullanılır. Veri bağlama: container'ın kendi metin prop'u yoktur, statik/yapısal bir wrapper'dır; veri bağlama children içindeki metin/görsel node'larında yapılır. Bir array-repeater veya query'ye bağlı child'ları içine alabilir. Tekrarlayıcı bağlamında (üst liste varsa) görünür alanı olmadığı için kendisi repeater ref almaz; satır verisi alt node'lara akar. Örn statik: { \"name\":\"container\", \"props\":{ \"size\":\"medium\" }, \"children\":[ ... ] }.",
|
|
24
25
|
definition: {
|
|
25
26
|
props: [
|
|
26
27
|
{
|
|
@@ -80,6 +81,7 @@ export const BASE_COMPONENTS = [
|
|
|
80
81
|
droppable: true,
|
|
81
82
|
icon: "repeat",
|
|
82
83
|
isMobile: true,
|
|
84
|
+
usage: "Dizi verisini tekrarlayan döngü bileşeni: tek bir şablon child'ı her veri satırı için klonlayarak liste render eder. Temel kullanım: props.repeater (array key) ile statik dizi verilebilir, AMA dinamik veri için refs.repeater kullanılır; children olarak TEK bir şablon alt-ağaç (örn. bir card/box) konur. TEKRARLAYICI KONTRATI (zorunlu): 1) Liste node'unda veri kaynağı: refs.repeater = { \"type\":\"query\", \"ref\":\"<queryId>\", \"mappings\":[{\"name\":\"title\",\"path\":\"Title\"},{\"name\":\"img\",\"path\":\"CoverUrl\"}] } (type \"raw\"|\"showcase\" de olabilir). 2) Children TEK şablon olmalı; render her satır için deep-clone eder. 3) Satır verisini gösteren HER alt node o alanı repeater ref ile bağlar: başlık için { \"refs\":{ \"value\":{ \"type\":\"repeater\", \"ref\":\"title\" } } }, görsel için { \"refs\":{ \"src\":{ \"type\":\"repeater\", \"ref\":\"img\" } } }. EN SIK HATA: sadece repeater array key / refs.repeater verip child'larda type:\"repeater\" ref'leri eklememek -> satırlar render olur ama veri görünmez. Child'lar MUTLAKA refs.<prop>={type:\"repeater\",ref:\"<alan>\"} kullanmalı.",
|
|
83
85
|
definition: {
|
|
84
86
|
props: [
|
|
85
87
|
{
|
|
@@ -118,6 +120,7 @@ export const BASE_COMPONENTS = [
|
|
|
118
120
|
droppable: true,
|
|
119
121
|
icon: "square",
|
|
120
122
|
isMobile: false,
|
|
123
|
+
usage: "Temel kapsayıcı (View/div): düzen ve gruplama için en yalın wrapper. Temel kullanım: tek prop'ları className (tailwind) ve style (RN style objesi); children olarak herhangi bir alt node alır. Veri bağlama: box'un kendi içerik prop'u yoktur, statik/yapısal bir bileşendir; metin/görsel bağlama daima içindeki child node'larda yapılır (örn. bir text child'a refs.value = { \"type\":\"query\", ... } veya refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı içinde satır kartı olarak kullanıldığında box kendisi ref almaz; alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } ile satır verisine bağlanır. Örn: { \"name\":\"box\", \"props\":{ \"className\":\"p-4 rounded-lg\" }, \"children\":[ ... ] }.",
|
|
121
124
|
definition: {
|
|
122
125
|
props: [
|
|
123
126
|
{
|
|
@@ -150,6 +153,7 @@ export const BASE_COMPONENTS = [
|
|
|
150
153
|
droppable: true,
|
|
151
154
|
icon: "crosshair",
|
|
152
155
|
isMobile: false,
|
|
156
|
+
usage: "İçeriği yatay ve dikey ortalayan kapsayıcı. Temel kullanım: prop'ları className ve style; children olarak ortalanacak öğeler (genellikle tek bir blok) konur. Veri bağlama: center'ın kendi metin prop'u yoktur; statik/yapısal wrapper olduğu için veri bağlama içindeki text/image child node'larında yapılır (örn. text child'a refs.value = { \"type\":\"page\", \"ref\":\"title\" } veya refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı şablonu içindeyse alt node'lar repeater ref kullanır: refs.value = { \"type\":\"repeater\", \"ref\":\"<alan>\" }. Örn: { \"name\":\"center\", \"props\":{ \"className\":\"min-h-screen\" }, \"children\":[ ... ] }.",
|
|
153
157
|
definition: {
|
|
154
158
|
props: [
|
|
155
159
|
{
|
|
@@ -182,6 +186,7 @@ export const BASE_COMPONENTS = [
|
|
|
182
186
|
droppable: true,
|
|
183
187
|
icon: "align-horizontal-left",
|
|
184
188
|
isMobile: false,
|
|
189
|
+
usage: "Çocukları yatay sıralayan dizilim kapsayıcısı (flex-row). Temel kullanım: space prop'u ile öğeler arası boşluk (none | xs | sm | md | lg | xl | 2xl | 3xl | 4xl), reversed ile ters sıralama; children olarak yan yana dizilecek node'lar konur; className/style ile özelleştirilir. Veri bağlama: hstack'in kendi içerik prop'u yoktur, yapısal bir dizilim bileşenidir; veri bağlama içindeki child node'larda yapılır (örn. bir text child'a refs.value = { \"type\":\"query\", \"ref\":\"<queryId>\", \"mappings\":[...] }). Tekrarlayıcı satır şablonu olarak da kullanılır; bu durumda alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } ile bağlanır. Örn: { \"name\":\"hstack\", \"props\":{ \"space\":\"md\" }, \"children\":[ ... ] }.",
|
|
185
190
|
definition: {
|
|
186
191
|
props: [
|
|
187
192
|
{
|
|
@@ -262,6 +267,7 @@ export const BASE_COMPONENTS = [
|
|
|
262
267
|
droppable: true,
|
|
263
268
|
icon: "align-vertical-top",
|
|
264
269
|
isMobile: false,
|
|
270
|
+
usage: "Çocukları dikey sıralayan dizilim kapsayıcısı (flex-column). Temel kullanım: space prop'u ile öğeler arası dikey boşluk (none | xs | sm | md | lg | xl | 2xl | 3xl | 4xl), reversed ile ters sıralama; children olarak alt alta dizilecek node'lar konur; className/style ile özelleştirilir. Veri bağlama: vstack'in kendi içerik prop'u yoktur, yapısal bir dizilim bileşenidir; veri bağlama içindeki text/image child node'larında yapılır (örn. text child'a refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı satır şablonu olarak kullanıldığında alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } ile satır verisine bağlanır. Örn: { \"name\":\"vstack\", \"props\":{ \"space\":\"sm\" }, \"children\":[ ... ] }.",
|
|
265
271
|
definition: {
|
|
266
272
|
props: [
|
|
267
273
|
{
|
|
@@ -342,6 +348,7 @@ export const BASE_COMPONENTS = [
|
|
|
342
348
|
droppable: true,
|
|
343
349
|
icon: "layout-grid",
|
|
344
350
|
isMobile: false,
|
|
351
|
+
usage: "CSS Grid kapsayıcısı: numColumns ile ızgara düzeni oluşturur. Temel kullanım: numColumns prop'u ile sütun sayısı (örn. 2, 3, 4), gap ile hücre arası boşluk (0 | xs | sm | md | lg | xl); children olarak ızgara hücrelerine yerleşecek node'lar konur. Veri bağlama: grid'in kendi içerik prop'u yoktur; statik kart listesi için children doğrudan yazılır. Dinamik ızgara için grid'in İÇİNE bir array-repeater koyup tekrarlayıcı kontratını orada kurmak gerekir (grid sadece düzeni sağlar). Grid'in kendisi repeater değildir; veri bağlama çocuklarındaki text/image node'larda (type:query/field/repeater) yapılır. Örn: { \"name\":\"grid\", \"props\":{ \"numColumns\":3, \"gap\":\"md\" }, \"children\":[ ... ] }.",
|
|
345
352
|
definition: {
|
|
346
353
|
props: [
|
|
347
354
|
{
|
|
@@ -411,6 +418,7 @@ export const BASE_COMPONENTS = [
|
|
|
411
418
|
droppable: true,
|
|
412
419
|
icon: "mouse-pointer",
|
|
413
420
|
isMobile: true,
|
|
421
|
+
usage: "Tıklanabilir kapsayıcı: içine konan öğeleri basılabilir alana çevirir. Temel kullanım: onPress ve onLongPress handler (JS) prop'ları ile etkileşim tanımlanır; children olarak tıklanacak içerik (kart, text, icon) konur; className/style ile özelleştirilir. Veri bağlama: pressable'ın görünür metin prop'u yoktur; içerik bağlama child node'larda yapılır. Bir Link veya hedefe yönlendirme için ilgili ref tipleri kullanılabilir (örn. bir child'a refs.href = { \"type\":\"link\", \"ref\":\"<linkId>\" }). Tekrarlayıcı satır şablonunda her satır için tıklanabilir kart olarak kullanılır; alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } ile bağlanır. Örn: { \"name\":\"pressable\", \"props\":{ \"onPress\":\"...\" }, \"children\":[ ... ] }.",
|
|
414
422
|
definition: {
|
|
415
423
|
props: [
|
|
416
424
|
{
|
|
@@ -453,6 +461,7 @@ export const BASE_COMPONENTS = [
|
|
|
453
461
|
droppable: true,
|
|
454
462
|
icon: "align-horizontal-left",
|
|
455
463
|
isMobile: false,
|
|
464
|
+
usage: "Responsive yatay düzen satırı (HStack tabanlı): genellikle column'ları barındırır ve 12'lik grid sistemini sürer. Temel kullanım: breakpoint nesne prop'ları xl | lg | md | sm | xs ile her ekran için ayrı ayar verilir; her birinin alt prop'ları direction (row | column | row-reverse | column-reverse), align (start | center | end | stretch), justify (start | center | end | between | around | evenly), wrap (nowrap | wrap | wrap-reverse) ve gutter (sütun arası boşluk); children olarak column node'ları konur. Veri bağlama: row yapısal bir düzen bileşenidir, kendi içerik prop'u yoktur; veri bağlama column içindeki text/image node'larında yapılır (type:query/field/repeater). Örn: { \"name\":\"row\", \"props\":{ \"lg\":{ \"justify\":\"between\", \"gutter\":\"md\" } }, \"children\":[ ... ] }.",
|
|
456
465
|
definition: {
|
|
457
466
|
props: [
|
|
458
467
|
{
|
|
@@ -1215,6 +1224,7 @@ export const BASE_COMPONENTS = [
|
|
|
1215
1224
|
droppable: true,
|
|
1216
1225
|
icon: "dashboard",
|
|
1217
1226
|
isMobile: false,
|
|
1227
|
+
usage: "Responsive 12'lik grid sütunu (Box): row içinde genişlik kaplar. Temel kullanım: breakpoint nesne prop'ları xl | lg | md | sm | xs ile her ekran için sütun ayarı verilir; her birinin alt prop'u size (1/12 ... 12/12 arası, value 1-12) ile genişlik belirlenir (varsa offset/order da bu nesnelerde tanımlanır); children olarak sütun içeriği konur. Veri bağlama: column yapısal bir kapsayıcıdır, kendi içerik prop'u yoktur; veri bağlama içindeki child text/image node'larında yapılır (örn. refs.value = { \"type\":\"query\", \"ref\":\"<queryId>\", \"mappings\":[...] } veya refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı şablonunda alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } kullanır. Örn: { \"name\":\"column\", \"props\":{ \"lg\":{ \"size\":6 }, \"xs\":{ \"size\":12 } }, \"children\":[ ... ] }.",
|
|
1218
1228
|
definition: {
|
|
1219
1229
|
props: [
|
|
1220
1230
|
{
|
|
@@ -2012,6 +2022,7 @@ export const BASE_COMPONENTS = [
|
|
|
2012
2022
|
droppable: true,
|
|
2013
2023
|
icon: "dashboard",
|
|
2014
2024
|
isMobile: false,
|
|
2025
|
+
usage: "Responsive 12'lik grid sütunu (Box): row içinde genişlik kaplar. Temel kullanım: breakpoint nesne prop'ları xl | lg | md | sm | xs ile her ekran için sütun ayarı verilir; her birinin alt prop'u size (1/12 ... 12/12 arası, value 1-12) ile genişlik belirlenir (varsa offset/order da bu nesnelerde tanımlanır); children olarak sütun içeriği konur. Veri bağlama: column yapısal bir kapsayıcıdır, kendi içerik prop'u yoktur; veri bağlama içindeki child text/image node'larında yapılır (örn. refs.value = { \"type\":\"query\", \"ref\":\"<queryId>\", \"mappings\":[...] } veya refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı şablonunda alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } kullanır. Örn: { \"name\":\"column\", \"props\":{ \"lg\":{ \"size\":6 }, \"xs\":{ \"size\":12 } }, \"children\":[ ... ] }.",
|
|
2015
2026
|
definition: {
|
|
2016
2027
|
props: [
|
|
2017
2028
|
{
|
|
@@ -2809,6 +2820,7 @@ export const BASE_COMPONENTS = [
|
|
|
2809
2820
|
droppable: true,
|
|
2810
2821
|
icon: "dashboard",
|
|
2811
2822
|
isMobile: false,
|
|
2823
|
+
usage: "Responsive 12'lik grid sütunu (Box): row içinde genişlik kaplar. Temel kullanım: breakpoint nesne prop'ları xl | lg | md | sm | xs ile her ekran için sütun ayarı verilir; her birinin alt prop'u size (1/12 ... 12/12 arası, value 1-12) ile genişlik belirlenir (varsa offset/order da bu nesnelerde tanımlanır); children olarak sütun içeriği konur. Veri bağlama: column yapısal bir kapsayıcıdır, kendi içerik prop'u yoktur; veri bağlama içindeki child text/image node'larında yapılır (örn. refs.value = { \"type\":\"query\", \"ref\":\"<queryId>\", \"mappings\":[...] } veya refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı şablonunda alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } kullanır. Örn: { \"name\":\"column\", \"props\":{ \"lg\":{ \"size\":6 }, \"xs\":{ \"size\":12 } }, \"children\":[ ... ] }.",
|
|
2812
2824
|
definition: {
|
|
2813
2825
|
props: [
|
|
2814
2826
|
{
|
|
@@ -3606,6 +3618,7 @@ export const BASE_COMPONENTS = [
|
|
|
3606
3618
|
droppable: true,
|
|
3607
3619
|
icon: "dashboard",
|
|
3608
3620
|
isMobile: false,
|
|
3621
|
+
usage: "Responsive 12'lik grid sütunu (Box): row içinde genişlik kaplar. Temel kullanım: breakpoint nesne prop'ları xl | lg | md | sm | xs ile her ekran için sütun ayarı verilir; her birinin alt prop'u size (1/12 ... 12/12 arası, value 1-12) ile genişlik belirlenir (varsa offset/order da bu nesnelerde tanımlanır); children olarak sütun içeriği konur. Veri bağlama: column yapısal bir kapsayıcıdır, kendi içerik prop'u yoktur; veri bağlama içindeki child text/image node'larında yapılır (örn. refs.value = { \"type\":\"query\", \"ref\":\"<queryId>\", \"mappings\":[...] } veya refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" }). Tekrarlayıcı şablonunda alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } kullanır. Örn: { \"name\":\"column\", \"props\":{ \"lg\":{ \"size\":6 }, \"xs\":{ \"size\":12 } }, \"children\":[ ... ] }.",
|
|
3609
3622
|
definition: {
|
|
3610
3623
|
props: [
|
|
3611
3624
|
{
|
|
@@ -4403,6 +4416,7 @@ export const BASE_COMPONENTS = [
|
|
|
4403
4416
|
droppable: true,
|
|
4404
4417
|
icon: "highlights",
|
|
4405
4418
|
isMobile: false,
|
|
4419
|
+
usage: "Sayfa bölümü (<section>), Container ile sarılı: başlıklı bir içerik bloğu oluşturur. Temel kullanım: title (başlık), description (kısa açıklama), anchor (bağlantı/link) prop'ları; Container ayarları grubunda size ile bölüm genişliği (fluid | extended | wide | medium | narrow); children olarak bölüm içeriği konur. Veri bağlama: title ve description refs ile bağlanabilir; uygun Reference tipleri type:\"page\" (örn refs.title = { \"type\":\"page\", \"ref\":\"title\" }), type:\"field\" (meta alanı), type:\"string\" (çok dilli metin) veya type:\"query\". anchor için refs.anchor = { \"type\":\"link\", \"ref\":\"<linkId>\" } kullanılır. Örn: { \"name\":\"section\", \"props\":{ \"size\":\"medium\" }, \"refs\":{ \"title\":{ \"type\":\"page\", \"ref\":\"title\" } }, \"children\":[ ... ] }.",
|
|
4406
4420
|
definition: {
|
|
4407
4421
|
props: [
|
|
4408
4422
|
{
|
|
@@ -4506,6 +4520,7 @@ export const BASE_COMPONENTS = [
|
|
|
4506
4520
|
droppable: true,
|
|
4507
4521
|
icon: "document",
|
|
4508
4522
|
isMobile: false,
|
|
4523
|
+
usage: "Bağımsız içerik bölümü (<article>): blog yazıları, haberler gibi tek başına anlamlı içerik için kapsayıcı. Temel kullanım: id (HTML id, sayfa içi bağlantı/anchor için), className ve style prop'ları; children olarak başlık, görsel, gövde metni gibi node'lar konur. Veri bağlama: article'ın kendi içerik prop'u yoktur; veri bağlama içindeki child text/image node'larında yapılır; bir blog/haber detayında genellikle sayfanın meta verisine bağlanır (örn. text child'a refs.value = { \"type\":\"field\", \"ref\":\"<metaAlanı>\" } veya refs.value = { \"type\":\"page\", \"ref\":\"title\" }). Bir query satırının detay kartı olarak tekrarlayıcı içinde kullanılırsa alt node'lar refs.<prop> = { \"type\":\"repeater\", \"ref\":\"<alan>\" } ile bağlanır. Örn: { \"name\":\"article\", \"props\":{ \"id\":\"post-1\" }, \"children\":[ ... ] }.",
|
|
4509
4524
|
definition: {
|
|
4510
4525
|
props: [
|
|
4511
4526
|
{
|
|
@@ -4544,6 +4559,7 @@ export const BASE_COMPONENTS = [
|
|
|
4544
4559
|
droppable: true,
|
|
4545
4560
|
icon: "home",
|
|
4546
4561
|
isMobile: false,
|
|
4562
|
+
usage: "Sayfanın ana içerik alanını saran yapısal kapsayıcıdır (<main>), sayfa başına bir adet kullanılır.\nTemel kullanım: id ile sayfa içi anchor verilir; className (tailwind) ve style ile görünüm ayarlanır. Asıl içerik (header, section, listeler vb.) children olarak içine konur; kendisi bir veri prop'u taşımaz.\nVeri bağlama: main'in kendi props'unda bağlanacak metin/görsel alanı yoktur; veriyi alt node'lar (text, image, listeler) kendi refs'leriyle bağlar. Bir tekrarlayıcı (array-repeater/card-list) içinde main'i şablon olarak kullanırsan, alt node'lar satır alanlarını type:\"repeater\" ile çeker. Örn. içindeki bir başlık: { \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"PageTitle\" } } }.",
|
|
4547
4563
|
definition: {
|
|
4548
4564
|
props: [
|
|
4549
4565
|
{
|
|
@@ -4582,6 +4598,7 @@ export const BASE_COMPONENTS = [
|
|
|
4582
4598
|
droppable: true,
|
|
4583
4599
|
icon: "navigation",
|
|
4584
4600
|
isMobile: false,
|
|
4601
|
+
usage: "Navigasyon bölümü kapsayıcısıdır (<nav>); menü/link gruplarını barındırır.\nTemel kullanım: ariaLabel ile ekran okuyucu etiketi, id ile anchor, className/style ile görünüm verilir. Link/menü öğeleri children olarak eklenir.\nVeri bağlama: nav'ın doğrudan bir href/menu prop'u yoktur; menüyü genelde içine konan link node'ları taşır. Dinamik menü için içteki bir liste node'unda refs.navigation = { \"type\": \"navigation\", \"ref\": \"<menuId>\" } kullan, link href'i için child node'da refs.href = { \"type\": \"link\", \"ref\": \"<linkId>\" }. Menü öğeleri bir tekrarlayıcı ile üretiliyorsa alt link'ler etiket/href'i type:\"repeater\" ile bağlar: { \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"label\" }, \"href\": { \"type\": \"repeater\", \"ref\": \"url\" } } }.",
|
|
4585
4602
|
definition: {
|
|
4586
4603
|
props: [
|
|
4587
4604
|
{
|
|
@@ -4626,6 +4643,7 @@ export const BASE_COMPONENTS = [
|
|
|
4626
4643
|
droppable: true,
|
|
4627
4644
|
icon: "sidebar",
|
|
4628
4645
|
isMobile: false,
|
|
4646
|
+
usage: "Kenar/yan içerik bölümüdür (<aside>); sidebar, ek bilgi, ilgili linkler gibi tamamlayıcı içerik için kullanılır.\nTemel kullanım: id ile anchor, className (tailwind) ve style ile görünüm verilir. İçeriği children olarak eklenir; kendi veri prop'u yoktur.\nVeri bağlama: aside statik bir kapsayıcıdır; metin/görsel alt node'lar veriyi kendi refs'leriyle (type:\"query\", type:\"field\", type:\"showcase\") bağlar. Örn. içine konan ilgili-yazılar listesinde refs.repeater = { \"type\": \"query\", \"ref\": \"relatedPosts\", \"mappings\": [{ \"name\": \"title\", \"path\": \"Title\" }] } ve şablon child'da { \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"title\" } } }.",
|
|
4629
4647
|
definition: {
|
|
4630
4648
|
props: [
|
|
4631
4649
|
{
|
|
@@ -4664,6 +4682,7 @@ export const BASE_COMPONENTS = [
|
|
|
4664
4682
|
droppable: true,
|
|
4665
4683
|
icon: "header",
|
|
4666
4684
|
isMobile: false,
|
|
4685
|
+
usage: "Sayfa veya bölüm başlık alanıdır (<header>); logo, başlık, üst menü gibi giriş içerikleri için kullanılır.\nTemel kullanım: id ile anchor, className/style ile görünüm verilir. Başlık metni, logo ve nav öğeleri children olarak içine konur.\nVeri bağlama: header kendi başına veri taşımaz; içindeki text/image node'ları veriyi bağlar. Sayfa başlığını göstermek için içteki başlık node'unda refs.value = { \"type\": \"page\", \"ref\": \"title\" }, logo için refs.src = { \"type\": \"file\", \"ref\": \"<fileId>\" } ya da { \"type\": \"page\", \"ref\": \"image\" } kullan.",
|
|
4667
4686
|
definition: {
|
|
4668
4687
|
props: [
|
|
4669
4688
|
{
|
|
@@ -4702,6 +4721,7 @@ export const BASE_COMPONENTS = [
|
|
|
4702
4721
|
droppable: true,
|
|
4703
4722
|
icon: "footer",
|
|
4704
4723
|
isMobile: false,
|
|
4724
|
+
usage: "Sayfa veya bölüm alt alanıdır (<footer>); telif metni, alt menü ve ikincil linkler için kullanılır.\nTemel kullanım: id ile anchor, className/style ile görünüm verilir. İçeriği (metin, link grupları) children olarak eklenir.\nVeri bağlama: footer statik kapsayıcıdır; veriyi alt node'lar bağlar. Çok dilli telif metni için içteki text node'unda refs.value = { \"type\": \"string\", \"ref\": \"<stringId>\" }; alt menü için bir liste node'unda refs.navigation = { \"type\": \"navigation\", \"ref\": \"<menuId>\" } kullan. Tekrarlayan link listesinde child'lar etiket/href'i type:\"repeater\" ile çeker.",
|
|
4705
4725
|
definition: {
|
|
4706
4726
|
props: [
|
|
4707
4727
|
{
|
|
@@ -4740,6 +4760,7 @@ export const BASE_COMPONENTS = [
|
|
|
4740
4760
|
droppable: true,
|
|
4741
4761
|
icon: "list",
|
|
4742
4762
|
isMobile: false,
|
|
4763
|
+
usage: "Sırasız liste kapsayıcısıdır (<ul>); madde işaretli liste oluşturur, içine li öğeleri konur.\nTemel kullanım: listStyle (disc/circle/square/none) ile madde stilini, className/style ile görünümü ayarla. Children olarak li node'ları eklenir.\nVeri bağlama: ul statik bir liste işaretleyicisidir; tek başına bir veri kaynağı prop'u (refs.repeater) tanımlamaz, satırlar el ile eklenen li'lerdir. Dinamik/sorgu sürümlü liste için array-repeater veya card-list bileşenini tercih et; orada refs.repeater + child type:\"repeater\" kontratı geçerlidir. ul içindeki tek bir li metnini sabit veriden bağlamak için li'nin içindeki text node'unda refs.value = { \"type\": \"field\", \"ref\": \"<alan>\" } kullanılabilir.",
|
|
4743
4764
|
definition: {
|
|
4744
4765
|
props: [
|
|
4745
4766
|
{
|
|
@@ -4795,6 +4816,7 @@ export const BASE_COMPONENTS = [
|
|
|
4795
4816
|
droppable: true,
|
|
4796
4817
|
icon: "numbered-list",
|
|
4797
4818
|
isMobile: false,
|
|
4819
|
+
usage: "Sıralı (numaralı) liste kapsayıcısıdır (<ol>); içine li öğeleri konur.\nTemel kullanım: listStyle (decimal/lower-alpha/upper-alpha/lower-roman/upper-roman/none) ile numara biçimi, start ile başlangıç sayısı, reversed ile azalan sıra, className/style ile görünüm ayarlanır. Children olarak li node'ları eklenir.\nVeri bağlama: ol statik bir liste işaretleyicisidir; kendi başına refs.repeater veri kaynağı tanımlamaz. Dinamik/numaralı veri listesi için array-repeater/card-list bileşeni kullan (refs.repeater + child type:\"repeater\"). ol içindeki li metinleri sabit veriden bağlanacaksa li içi text node'unda refs.value = { \"type\": \"query\", \"ref\": \"<queryId>\" } gibi bir bağlama kullanılabilir.",
|
|
4798
4820
|
definition: {
|
|
4799
4821
|
props: [
|
|
4800
4822
|
{
|
|
@@ -4870,6 +4892,7 @@ export const BASE_COMPONENTS = [
|
|
|
4870
4892
|
droppable: true,
|
|
4871
4893
|
icon: "list-item",
|
|
4872
4894
|
isMobile: false,
|
|
4895
|
+
usage: "Liste öğesidir (<li>); ul veya ol içinde tek bir satır/maddeyi temsil eder.\nTemel kullanım: value (number) ile sıralı listede o öğeye atanacak sayıyı, className/style ile görünümü ayarla. Madde içeriği (text, link, image) children olarak eklenir.\nVeri bağlama: li'nin kendi value prop'u sabittir; gösterilecek metin/görsel li içindeki alt node'lar tarafından bağlanır (refs.value = { \"type\": \"field\", \"ref\": \"<alan>\" } veya { \"type\": \"string\", \"ref\": \"<stringId>\" }). li bir array-repeater'ın şablon child'ı olarak kullanılıyorsa, içindeki node'lar satır alanlarını type:\"repeater\" ile çeker: { \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"name\" } } }.",
|
|
4873
4896
|
definition: {
|
|
4874
4897
|
props: [
|
|
4875
4898
|
{
|
|
@@ -4908,6 +4931,7 @@ export const BASE_COMPONENTS = [
|
|
|
4908
4931
|
droppable: false,
|
|
4909
4932
|
icon: "detail-view",
|
|
4910
4933
|
isMobile: true,
|
|
4934
|
+
usage: "Sayfa tasarım alanıdır; dinamik içeriğin yerleştiği kök gösterim kabıdır (droppable:false, isMobile).\nTemel kullanım: title ile admin panelinde görünen gösterim başlığını, className/style ile görünümü ayarla. İçerik doğrudan buraya değil, içindeki droppable bileşenlere konur; preview admin'de title metnini gösterir.\nVeri bağlama: view bir veri kabıdır; başlık/etiket alt node'ları veriyi bağlar. Bu sayfanın entity meta alanını göstermek için içteki text node'unda refs.value = { \"type\": \"field\", \"ref\": \"<metaAlanAdı>\" }, sayfa meta'sı için refs.value = { \"type\": \"page\", \"ref\": \"title\" } kullan. Listeler için içine array-repeater/card-list ekleyip refs.repeater kontratını uygula.",
|
|
4911
4935
|
definition: {
|
|
4912
4936
|
props: [
|
|
4913
4937
|
{
|
|
@@ -4950,6 +4974,7 @@ export const BASE_COMPONENTS = [
|
|
|
4950
4974
|
droppable: true,
|
|
4951
4975
|
icon: "detail-view",
|
|
4952
4976
|
isMobile: true,
|
|
4977
|
+
usage: "React Native View kapsayıcısıdır (isMobile); mobil ekranlarda içerik gruplamak için temel yapı bloğudur, içine öğe eklenebilir.\nTemel kullanım: title ile admin başlığı, className (tailwind) ve style (RN style objesi, örn. { padding: 10 }) ile düzen/görünüm verilir. Alt öğeler children olarak eklenir; kendi veri prop'u yoktur.\nVeri bağlama: mobile-view statik/yapısal bir kapsayıcıdır; metin ve görseller alt node'lar tarafından bağlanır (type:\"query\", type:\"field\", type:\"showcase\"). Bir tekrarlayıcı (flat-list/section-list/card-list) içinde şablon olarak kullanılırsa, içindeki node'lar satır alanlarını type:\"repeater\" ile çeker: { \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"title\" }, \"src\": { \"type\": \"repeater\", \"ref\": \"img\" } } }.",
|
|
4953
4978
|
definition: {
|
|
4954
4979
|
props: [
|
|
4955
4980
|
{
|
|
@@ -4992,6 +5017,7 @@ export const BASE_COMPONENTS = [
|
|
|
4992
5017
|
droppable: false,
|
|
4993
5018
|
icon: "code",
|
|
4994
5019
|
isMobile: true,
|
|
5020
|
+
usage: "Görünmez mantık bileşenidir (element, render etmez); sayfa yaşam döngüsü olaylarında JavaScript çalıştırır.\nTemel kullanım: onMount (sayfa açılınca bir kez), onUnmount (kapanınca temizlik), onInterval (intervalMs ms'de bir; varsayılan 5000), onEffect (deps listesindeki bir dataBus ID değişince + açılışta bir kez) handler prop'larını yaz. deps virgülle ayrılmış data ID listesidir, örn. \"selectedCategory, userId\". Handler içinde data.get(\"id\")/data.set(\"id\", val) ile dataBus'a, form.getValue ile forma erişilir.\nVeri bağlama: script görsel veri prop'u taşımaz; veriyi imperatif olarak kendisi çeker (onMount/onEffect içinde API/sorgu çağrısı) ve data.set ile dataBus'a yazar. Diğer node'lar bu veriyi refs ile (örn. type:\"query\" veya bir text node'unda refs.value) okuyarak gösterir. Periyodik yenileme/websocket benzeri akış için onInterval veya onEffect+deps kullanılır.",
|
|
4995
5021
|
definition: {
|
|
4996
5022
|
props: [
|
|
4997
5023
|
{
|
|
@@ -5042,6 +5068,7 @@ export const BASE_COMPONENTS = [
|
|
|
5042
5068
|
droppable: true,
|
|
5043
5069
|
icon: "square-dashed",
|
|
5044
5070
|
isMobile: true,
|
|
5071
|
+
usage: "React Native SafeAreaView kapsayıcısıdır (isMobile); notch, status bar ve home indicator alanlarından kaçınarak içeriği güvenli bölgede tutar.\nTemel kullanım: edges (all | top | bottom | top,bottom) ile hangi kenarların korunacağını, className/style ile görünümü ayarla. Genelde mobil ekranın en dış kabı olarak kullanılır ve içine mobile-view, scroll-view, listeler children olarak konur.\nVeri bağlama: safe-area-view yapısal bir kapsayıcıdır, kendi veri prop'u yoktur; içeriği alt node'lar bağlar. Veri gösterimi gerektiğinde içine eklenen text/image veya bir tekrarlayıcı (flat-list/card-list) node'u refs.repeater = { \"type\": \"query\", \"ref\": \"<queryId>\", \"mappings\": [...] } ve şablon child'larda type:\"repeater\" ref'leri ile veriyi alt ağaca akıtır.",
|
|
5045
5072
|
definition: {
|
|
5046
5073
|
props: [
|
|
5047
5074
|
{
|
|
@@ -5098,6 +5125,7 @@ export const BASE_COMPONENTS = [
|
|
|
5098
5125
|
droppable: true,
|
|
5099
5126
|
icon: "mouse-scroll",
|
|
5100
5127
|
isMobile: true,
|
|
5128
|
+
usage: "Kaydırılabilir kapsayıcı (RN ScrollView); içeriği ekrana sığmadığında dikey/yatay scroll sağlar.\nTemel kullanım: yapısal bir wrapper'dır, asıl içerik children olarak verilir. horizontal=true ile yatay kaydırma, showsVerticalScrollIndicator/showsHorizontalScrollIndicator ile scroll çubuğu görünürlüğü, keyboardShouldPersistTaps (never/always/handled) ile klavye davranışı ayarlanır. Düzen className/style ile yapılır.\nVeri bağlama: ScrollView'in kendi prop'ları statik kalır; veri children içindeki alt node'lara bağlanır. ScrollView'i tek başına dinamik liste için kullanma — uzun veri listeleri için flat-list tercih et. İçindeki bir metin/görsel alt node'u sorgu/alan/satır verisine bağlanabilir, örn. bir alt heading: { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Title\" } } } ya da bir sorgu satırına { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }.",
|
|
5101
5129
|
definition: {
|
|
5102
5130
|
props: [
|
|
5103
5131
|
{
|
|
@@ -5165,6 +5193,7 @@ export const BASE_COMPONENTS = [
|
|
|
5165
5193
|
droppable: false,
|
|
5166
5194
|
icon: "text-cursor-input",
|
|
5167
5195
|
isMobile: true,
|
|
5196
|
+
usage: "Tek/çok satırlı metin girişi (RN TextInput); form alanları için kullanılır.\nTemel kullanım: element'tir, children almaz. label etiket, placeholder ipucu metni, type (text/password/email/number), variant (outline/underlined/rounded), size (sm/md/lg/xl), helperText/errorText yardımcı ve hata metni, multiline + numberOfLines çok satır, keyboardType, autoCapitalize, secureTextEntry parolayı gizler. componentId verirsen handler'da form.getValue(\"id\") ile değeri okunur.\nVeri bağlama: ön-dolu (varsayılan) değeri veya etiketleri refs ile bağlayabilirsin. Örn. placeholder/label'i sayfa alanına: { \"refs\": { \"placeholder\": { \"type\": \"field\", \"ref\": \"SearchHint\" } } }; çok dilli etiket için { \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"str_email\" } } }. Bir tekrarlayıcı satırı içindeyse alanlar { \"type\": \"repeater\", \"ref\": \"<alan>\" } ile bağlanır.",
|
|
5168
5197
|
definition: {
|
|
5169
5198
|
props: [
|
|
5170
5199
|
{
|
|
@@ -5337,6 +5366,7 @@ export const BASE_COMPONENTS = [
|
|
|
5337
5366
|
droppable: true,
|
|
5338
5367
|
icon: "list",
|
|
5339
5368
|
isMobile: true,
|
|
5369
|
+
usage: "Performanslı sanallaştırılmış liste (RN FlatList); dinamik tekrarlayan satırları verimli render eder. Uzun listeler için tercih edilen tekrarlayıcıdır.\nTemel kullanım: children TEK bir şablon alt-ağaçtır (örn. bir kart/satır) ve her veri öğesi için klonlanır. horizontal yatay liste, numColumns grid sütun sayısı, keyExtractor satır key alanı (örn. id), showsVerticalScrollIndicator scroll çubuğu. props.data alanına statik dizi key'i verebilirsin AMA veri bağlama için refs.repeater kullan.\nTEKRARLAYICI KONTRATI (zorunlu): (1) Liste node'u veriyi refs.repeater üzerinde bağlar: { \"refs\": { \"repeater\": { \"type\": \"query\", \"ref\": \"products\", \"mappings\": [ { \"name\": \"title\", \"path\": \"Title\" }, { \"name\": \"img\", \"path\": \"CoverUrl\" } ] } } } (query/raw/showcase olabilir). (2) children TEK şablondur. (3) Satır alanı gösteren HER alt node o alanı repeater ref ile bağlar: başlık node'u { \"refs\": { \"children\": { \"type\": \"repeater\", \"ref\": \"title\" } } }, görsel node'u { \"refs\": { \"src\": { \"type\": \"repeater\", \"ref\": \"img\" } } }. EN SIK HATA: sadece data/repeater vermek ama child'larda type:\"repeater\" ref'leri kurmamak → satırlar boş görünür. Child'lar MUTLAKA refs.<prop>={type:\"repeater\",ref:\"<alan>\"} kullanmalı.",
|
|
5340
5370
|
definition: {
|
|
5341
5371
|
props: [
|
|
5342
5372
|
{
|
|
@@ -5397,6 +5427,7 @@ export const BASE_COMPONENTS = [
|
|
|
5397
5427
|
droppable: false,
|
|
5398
5428
|
icon: "app-switcher",
|
|
5399
5429
|
isMobile: true,
|
|
5430
|
+
usage: "Başlık bileşeni (H1–H6, xs–5xl boyut); vurgulu metin başlıkları için.\nTemel kullanım: element'tir, başlık metni children prop'una yazılır. nodeType (h1..h6) anlamsal etiketi, size (xs..5xl) görsel boyutu, bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children prop'unu dinamik metne bağla. Sayfanın kendi başlığı için { \"refs\": { \"children\": { \"type\": \"page\", \"ref\": \"title\" } } }; entity/meta alanı için { \"type\": \"field\", \"ref\": \"Name\" }; sorgudan tek değer için { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }; çok dilli için { \"type\": \"string\", \"ref\": \"str_x\" }. Bir tekrarlayıcı (flat-list vb.) satırı içindeyse: { \"refs\": { \"children\": { \"type\": \"repeater\", \"ref\": \"title\" } } }.",
|
|
5400
5431
|
definition: {
|
|
5401
5432
|
props: [
|
|
5402
5433
|
{
|
|
@@ -5551,6 +5582,7 @@ export const BASE_COMPONENTS = [
|
|
|
5551
5582
|
droppable: false,
|
|
5552
5583
|
icon: "app-switcher",
|
|
5553
5584
|
isMobile: false,
|
|
5585
|
+
usage: "En büyük başlık (<h1>); sayfa başına 1 adet kullanılmalı (SEO/anlamsal).\nTemel kullanım: başlık metni children prop'una yazılır. bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children'ı sayfa başlığına bağlamak en yaygın senaryodur: { \"refs\": { \"children\": { \"type\": \"page\", \"ref\": \"title\" } } }. Ayrıca entity alanı { \"type\": \"field\", \"ref\": \"Title\" } veya sorgu { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] } ile bağlanabilir. Tekrarlayıcı satırı içindeyse { \"type\": \"repeater\", \"ref\": \"<alan>\" } kullan.",
|
|
5554
5586
|
definition: {
|
|
5555
5587
|
props: [
|
|
5556
5588
|
{
|
|
@@ -5631,6 +5663,7 @@ export const BASE_COMPONENTS = [
|
|
|
5631
5663
|
droppable: false,
|
|
5632
5664
|
icon: "app-switcher",
|
|
5633
5665
|
isMobile: false,
|
|
5666
|
+
usage: "İkincil başlık (<h2>); bölüm başlıkları için.\nTemel kullanım: başlık metni children prop'una yazılır. bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children dinamik metne bağlanabilir. Örn. entity alanı: { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"SectionTitle\" } } }; çok dilli metin: { \"type\": \"string\", \"ref\": \"str_section\" }; sorgu sonucu: { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Tekrarlayıcı satırında: { \"type\": \"repeater\", \"ref\": \"<alan>\" }.",
|
|
5634
5667
|
definition: {
|
|
5635
5668
|
props: [
|
|
5636
5669
|
{
|
|
@@ -5711,6 +5744,7 @@ export const BASE_COMPONENTS = [
|
|
|
5711
5744
|
droppable: false,
|
|
5712
5745
|
icon: "app-switcher",
|
|
5713
5746
|
isMobile: false,
|
|
5747
|
+
usage: "Üçüncül başlık (<h3>); alt bölüm başlıkları için.\nTemel kullanım: başlık metni children prop'una yazılır. bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children dinamik metne bağlanabilir. Örn. { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Subtitle\" } } } veya sorgu { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Bir flat-list/tekrarlayıcı satırı içindeyse: { \"refs\": { \"children\": { \"type\": \"repeater\", \"ref\": \"title\" } } }.",
|
|
5714
5748
|
definition: {
|
|
5715
5749
|
props: [
|
|
5716
5750
|
{
|
|
@@ -5791,6 +5825,7 @@ export const BASE_COMPONENTS = [
|
|
|
5791
5825
|
droppable: false,
|
|
5792
5826
|
icon: "app-switcher",
|
|
5793
5827
|
isMobile: false,
|
|
5828
|
+
usage: "Dördüncül başlık (<h4>); küçük başlıklar için.\nTemel kullanım: başlık metni children prop'una yazılır. bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children dinamik metne bağlanabilir. Örn. entity alanı { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Label\" } } }, çok dilli { \"type\": \"string\", \"ref\": \"str_x\" } veya sorgu { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Tekrarlayıcı satırında: { \"type\": \"repeater\", \"ref\": \"<alan>\" }.",
|
|
5794
5829
|
definition: {
|
|
5795
5830
|
props: [
|
|
5796
5831
|
{
|
|
@@ -5871,6 +5906,7 @@ export const BASE_COMPONENTS = [
|
|
|
5871
5906
|
droppable: false,
|
|
5872
5907
|
icon: "app-switcher",
|
|
5873
5908
|
isMobile: false,
|
|
5909
|
+
usage: "Beşincil başlık (<h5>); ince hiyerarşi başlıkları için.\nTemel kullanım: başlık metni children prop'una yazılır. bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children dinamik metne bağlanabilir. Örn. { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Caption\" } } } veya sorgu { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Tekrarlayıcı satırında: { \"refs\": { \"children\": { \"type\": \"repeater\", \"ref\": \"<alan>\" } } }.",
|
|
5874
5910
|
definition: {
|
|
5875
5911
|
props: [
|
|
5876
5912
|
{
|
|
@@ -5951,6 +5987,7 @@ export const BASE_COMPONENTS = [
|
|
|
5951
5987
|
droppable: false,
|
|
5952
5988
|
icon: "app-switcher",
|
|
5953
5989
|
isMobile: false,
|
|
5990
|
+
usage: "Altıncıl başlık (<h6>); en küçük/anlamsal alt başlık için.\nTemel kullanım: başlık metni children prop'una yazılır. bold kalın, isTruncated/numberOfLines taşan metni keser, align (left/center/right/justify) hizalar.\nVeri bağlama: children dinamik metne bağlanabilir. Örn. entity alanı { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Note\" } } }, çok dilli { \"type\": \"string\", \"ref\": \"str_x\" } veya sorgu { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Tekrarlayıcı satırında: { \"type\": \"repeater\", \"ref\": \"<alan>\" }.",
|
|
5954
5991
|
definition: {
|
|
5955
5992
|
props: [
|
|
5956
5993
|
{
|
|
@@ -6031,6 +6068,7 @@ export const BASE_COMPONENTS = [
|
|
|
6031
6068
|
droppable: true,
|
|
6032
6069
|
icon: "text-inline",
|
|
6033
6070
|
isMobile: false,
|
|
6071
|
+
usage: "İnline metin sarmalayıcı (<span>); paragraf içi vurgulama/biçimlendirme için.\nTemel kullanım: metin children prop'una yazılır (ayrıca alt node'lar da sarılabilir, droppable). bold kalın, italic italik, underline altı çizili, strikethrough üstü çizili biçimlendirme anahtarlarıdır.\nVeri bağlama: children'ı dinamik metne bağla. Örn. entity alanı { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Author\" } } }; çok dilli { \"type\": \"string\", \"ref\": \"str_x\" }; sorgudan tek değer { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Bir tekrarlayıcı satırı içindeyse { \"refs\": { \"children\": { \"type\": \"repeater\", \"ref\": \"<alan>\" } } } kullan.",
|
|
6034
6072
|
definition: {
|
|
6035
6073
|
props: [
|
|
6036
6074
|
{
|
|
@@ -6092,6 +6130,7 @@ export const BASE_COMPONENTS = [
|
|
|
6092
6130
|
droppable: true,
|
|
6093
6131
|
icon: "text-bold",
|
|
6094
6132
|
isMobile: false,
|
|
6133
|
+
usage: "Kalın / önemli metin (<strong>); anlamsal vurgu için inline wrapper.\nTemel kullanım: kendi metin prop'u yoktur; vurgulanacak içerik children olarak verilir (droppable). Genelde içine bir metin node'u (örn. span ya da düz metin) konur. Stil className/style ile özelleştirilir.\nVeri bağlama: strong'un kendi prop'ları statiktir; dinamik metin, içine konan alt metin node'unun children prop'una bağlanır. Örn. iç metin node'u: { \"refs\": { \"children\": { \"type\": \"field\", \"ref\": \"Price\" } } } veya { \"type\": \"query\", \"ref\": \"q1\", \"mappings\": [...] }. Tekrarlayıcı satırında iç node { \"type\": \"repeater\", \"ref\": \"<alan>\" } kullanır.",
|
|
6095
6134
|
definition: {
|
|
6096
6135
|
props: [
|
|
6097
6136
|
{
|
|
@@ -6124,6 +6163,7 @@ export const BASE_COMPONENTS = [
|
|
|
6124
6163
|
droppable: true,
|
|
6125
6164
|
icon: "text-italic",
|
|
6126
6165
|
isMobile: false,
|
|
6166
|
+
usage: "İtalik/vurgulu metin sarmalayıcısıdır (<em>); type:\"wrapper\", droppable.\nTemel kullanım: Görsel metni children olarak alt node’lara koyarsın (genelde bir text/code child). Stil için className ve style props. Kendi metin prop’u yoktur; vurgulanacak içerik child’dadır.\nVeri bağlama: Doğrudan bağlanan metin prop’u yoktur; dinamik metni içteki text child’ında bağla. Örn. child text: { refs: { children: { type: \"field\", ref: \"OzetMetin\" } } } ya da sorgu satırı içinde { refs: { children: { type: \"repeater\", ref: \"title\" } } }. className/style statik kalır.",
|
|
6127
6167
|
definition: {
|
|
6128
6168
|
props: [
|
|
6129
6169
|
{
|
|
@@ -6156,6 +6196,7 @@ export const BASE_COMPONENTS = [
|
|
|
6156
6196
|
droppable: true,
|
|
6157
6197
|
icon: "quotes",
|
|
6158
6198
|
isMobile: false,
|
|
6199
|
+
usage: "Uzun alıntı bloğudur (<blockquote>); type:\"wrapper\", droppable.\nTemel kullanım: Alıntı metnini children olarak alt node’lara (örn. text) koyarsın. cite props alıntının kaynak URL’sini tutar; className/style ile biçimlendirilir.\nVeri bağlama: cite prop’unu link/field/page ile bağlayabilirsin: { refs: { cite: { type: \"link\", ref: \"kaynakLink\" } } } veya { refs: { cite: { type: \"field\", ref: \"KaynakUrl\" } } }. Alıntı metnini içteki text child’ında bağla, örn. { refs: { children: { type: \"field\", ref: \"AlintiMetni\" } } }; tekrarlayıcı içinde child’da { type: \"repeater\", ref: \"alinti\" } kullan.",
|
|
6159
6200
|
definition: {
|
|
6160
6201
|
props: [
|
|
6161
6202
|
{
|
|
@@ -6194,6 +6235,7 @@ export const BASE_COMPONENTS = [
|
|
|
6194
6235
|
droppable: true,
|
|
6195
6236
|
icon: "code",
|
|
6196
6237
|
isMobile: false,
|
|
6238
|
+
usage: "Önceden biçimlendirilmiş metin bloğudur (<pre>), boşluk ve satır sonlarını korur; type:\"wrapper\", droppable.\nTemel kullanım: İçeriği children olarak alt node’lara (genelde bir code/text) koyarsın. className/style ile görünüm ayarlanır; kendi içerik prop’u yoktur.\nVeri bağlama: Doğrudan metin prop’u olmadığından dinamik içeriği içteki text/code child’ında bağla. Örn. child code: { refs: { children: { type: \"field\", ref: \"KodOrnegi\" } } } veya sorgu satırında { refs: { children: { type: \"repeater\", ref: \"snippet\" } } }.",
|
|
6197
6239
|
definition: {
|
|
6198
6240
|
props: [
|
|
6199
6241
|
{
|
|
@@ -6226,6 +6268,7 @@ export const BASE_COMPONENTS = [
|
|
|
6226
6268
|
droppable: false,
|
|
6227
6269
|
icon: "code-inline",
|
|
6228
6270
|
isMobile: false,
|
|
6271
|
+
usage: "Kod parçası bileşenidir (<code>); type:\"element\", droppable değil. block=true ise <pre><code> olarak render edilir.\nTemel kullanım: Kod metnini children (long-text) prop’una yazarsın. block (switch) inline/blok görünümü belirler; className/style ile biçimlendirilir.\nVeri bağlama: children prop’unu field/query/repeater ile bağla. Örn. statik sayfa alanı: { refs: { children: { type: \"field\", ref: \"ApiOrnek\" } } }; sorgudan: { refs: { children: { type: \"query\", ref: \"snippetQuery\", mappings: [{ name: \"code\", path: \"Body\" }] } } }; tekrarlayıcı satırında: { refs: { children: { type: \"repeater\", ref: \"code\" } } }.",
|
|
6229
6272
|
definition: {
|
|
6230
6273
|
props: [
|
|
6231
6274
|
{
|
|
@@ -6273,6 +6316,7 @@ export const BASE_COMPONENTS = [
|
|
|
6273
6316
|
droppable: false,
|
|
6274
6317
|
icon: "calendar",
|
|
6275
6318
|
isMobile: false,
|
|
6319
|
+
usage: "SEO dostu, makine okunabilir tarih/saat elementidir (<time>); type:\"element\", droppable değil.\nTemel kullanım: Görünen metni children (text) prop’una, makine okunabilir ISO 8601 değeri dateTime prop’una (örn. \"2024-01-15T10:30:00\") yazarsın. className/style ile biçimlendirilir.\nVeri bağlama: Hem children hem dateTime field/query/repeater ile bağlanabilir. Örn. { refs: { children: { type: \"field\", ref: \"YayinTarihiMetin\" }, dateTime: { type: \"field\", ref: \"YayinTarihiISO\" } } }. Sorgu listesi içinde satır başına: { refs: { children: { type: \"repeater\", ref: \"dateLabel\" }, dateTime: { type: \"repeater\", ref: \"dateIso\" } } }.",
|
|
6276
6320
|
definition: {
|
|
6277
6321
|
props: [
|
|
6278
6322
|
{
|
|
@@ -6320,6 +6364,7 @@ export const BASE_COMPONENTS = [
|
|
|
6320
6364
|
droppable: false,
|
|
6321
6365
|
icon: "table",
|
|
6322
6366
|
isMobile: true,
|
|
6367
|
+
usage: "Temel metin bileşenidir; type:\"element\", mobil uyumlu (isMobile: true).\nTemel kullanım: Metni children (long-text) prop’una yazarsın. size (2xs–6xl), bold, italic switch’leri, isTruncated ve numberOfLines (line-clamp) ile görünüm; className/style ile biçim ayarlanır.\nVeri bağlama: En sık children bağlanır; field/page/query/string/repeater uygundur. Örn. sayfa meta: { refs: { children: { type: \"page\", ref: \"title\" } } }; entity alanı: { refs: { children: { type: \"field\", ref: \"Aciklama\" } } }; çok dilli: { type: \"string\", ref: \"hosgeldin\" }. Bir tekrarlayıcı (array-repeater/card-list vb.) şablonu içinde satır verisini göstermek için MUTLAKA { refs: { children: { type: \"repeater\", ref: \"title\" } } } kullan (ref, listenin refs.repeater mappings adıdır).",
|
|
6323
6368
|
definition: {
|
|
6324
6369
|
props: [
|
|
6325
6370
|
{
|
|
@@ -6432,6 +6477,7 @@ export const BASE_COMPONENTS = [
|
|
|
6432
6477
|
droppable: false,
|
|
6433
6478
|
icon: "component",
|
|
6434
6479
|
isMobile: false,
|
|
6480
|
+
usage: "Ham HTML / rich-text editör çıktısını render eden alandır; type:\"element\", droppable değil.\nTemel kullanım: HTML içeriğini content (editor) prop’una koyarsın. className/style ile dış sarmalayıcı biçimlenir; child beklemez.\nVeri bağlama: content prop’unu field/query/string/raw ile bağla. Örn. CMS alanından: { refs: { content: { type: \"field\", ref: \"GovdeHtml\" } } }; sorgudan: { refs: { content: { type: \"query\", ref: \"makaleQuery\", mappings: [{ name: \"content\", path: \"BodyHtml\" }] } } }; tekrarlayıcı içinde: { refs: { content: { type: \"repeater\", ref: \"body\" } } }.",
|
|
6435
6481
|
definition: {
|
|
6436
6482
|
props: [
|
|
6437
6483
|
{
|
|
@@ -6472,7 +6518,8 @@ export const BASE_COMPONENTS = [
|
|
|
6472
6518
|
type: "element",
|
|
6473
6519
|
droppable: false,
|
|
6474
6520
|
icon: "shapes",
|
|
6475
|
-
isMobile:
|
|
6521
|
+
isMobile: true,
|
|
6522
|
+
usage: "Lucide ikon bileşenidir; type:\"element\", droppable değil.\nTemel kullanım: İkon adını as prop’una verirsin (örn. \"HomeIcon\", \"UserIcon\", \"SearchIcon\"). size (2xs–2xl) boyutu, className/style rengi ve düzeni belirler.\nVeri bağlama: as prop’u dinamik ikon adı için field/query/repeater ile bağlanabilir. Örn. { refs: { as: { type: \"field\", ref: \"IkonAdi\" } } }. Liste şablonu içinde satıra göre ikon: { refs: { as: { type: \"repeater\", ref: \"icon\" } } } (değer geçerli bir Lucide ikon adı olmalı). Sabit ikonlarda as’i props’ta statik bırak.",
|
|
6476
6523
|
definition: {
|
|
6477
6524
|
props: [
|
|
6478
6525
|
{
|
|
@@ -6550,6 +6597,7 @@ export const BASE_COMPONENTS = [
|
|
|
6550
6597
|
droppable: false,
|
|
6551
6598
|
icon: "image",
|
|
6552
6599
|
isMobile: true,
|
|
6600
|
+
usage: "Görsel bileşenidir; type:\"element\", mobil uyumlu (isMobile: true).\nTemel kullanım: Görsel kaynağını source (image) prop’una verirsin; erişilebilirlik/SEO için alt (text), boyut için size (2xs–2xl/full/none), resizeMode (cover/contain/stretch/center) ve rounded ile yuvarlaklık ayarlanır.\nVeri bağlama: source en sık bağlanan prop’tur; file/field/page/query/repeater uygundur. Örn. dosya: { refs: { source: { type: \"file\", ref: \"kapakDosya\" } } }; sayfa görseli: { type: \"page\", ref: \"image\" }; entity alanı: { refs: { source: { type: \"field\", ref: \"GorselUrl\" }, alt: { type: \"field\", ref: \"GorselAlt\" } } }. Bir tekrarlayıcı (card-list/carousel) şablonunda satır görseli için: { refs: { source: { type: \"repeater\", ref: \"img\" } } } (ref, listenin refs.repeater mappings adıyla eşleşir, örn. mappings:[{name:\"img\",path:\"CoverUrl\"}]).",
|
|
6553
6601
|
definition: {
|
|
6554
6602
|
props: [
|
|
6555
6603
|
{
|
|
@@ -6702,6 +6750,7 @@ export const BASE_COMPONENTS = [
|
|
|
6702
6750
|
droppable: false,
|
|
6703
6751
|
icon: "vid-play",
|
|
6704
6752
|
isMobile: true,
|
|
6753
|
+
usage: "Video oynatıcı bileşenidir; type:\"element\", mobil uyumlu (isMobile: true).\nTemel kullanım: Video kaynağını source (video) prop’una verirsin; autoPlay, muted, loop, controls switch’leri oynatma davranışını belirler; className/style ile boyutlandırılır.\nVeri bağlama: source dinamik video için file/field/query/repeater ile bağlanır. Örn. { refs: { source: { type: \"file\", ref: \"tanitimVideo\" } } } veya { refs: { source: { type: \"field\", ref: \"VideoUrl\" } } }. Liste şablonu içinde satır videosu: { refs: { source: { type: \"repeater\", ref: \"video\" } } }. autoPlay/muted/loop/controls genelde statik props’ta kalır.",
|
|
6705
6754
|
definition: {
|
|
6706
6755
|
props: [
|
|
6707
6756
|
{
|
|
@@ -6763,6 +6812,7 @@ export const BASE_COMPONENTS = [
|
|
|
6763
6812
|
droppable: false,
|
|
6764
6813
|
icon: "vid-full-screen-on",
|
|
6765
6814
|
isMobile: false,
|
|
6815
|
+
usage: "Harici içeriği gömen alandır (yalnızca web); type:\"element\", droppable değil.\nTemel kullanım: Gömülecek URL’yi children (long-text) prop’una, erişilebilirlik için title prop’una yazarsın. className/style ile boyutlandırılır.\nVeri bağlama: children (URL) ve title field/link/query/repeater ile bağlanabilir. Örn. { refs: { children: { type: \"field\", ref: \"GomuluUrl\" } } } veya link href’ten: { refs: { children: { type: \"link\", ref: \"haritaLink\" } } }. Tekrarlayıcı satırında: { refs: { children: { type: \"repeater\", ref: \"embedUrl\" } } }.",
|
|
6766
6816
|
definition: {
|
|
6767
6817
|
props: [
|
|
6768
6818
|
{
|
|
@@ -6809,6 +6859,7 @@ export const BASE_COMPONENTS = [
|
|
|
6809
6859
|
droppable: false,
|
|
6810
6860
|
icon: "archive",
|
|
6811
6861
|
isMobile: true,
|
|
6862
|
+
usage: "Buton bileşenidir (gömülü ButtonText ile); type:\"element\", mobil uyumlu (isMobile: true).\nTemel kullanım: Buton metnini children (text) prop’una yazarsın; link/yönlendirme için anchor (link) prop’u; görünüm için action (primary/secondary/positive/negative/default), variant (solid/outline/link), size (xs–xl), isDisabled. Etkileşim için onPress ve onLongPress handler’ları (JS).\nVeri bağlama: children metnini field/query/string/repeater, anchor’ı link/field ile bağla. Örn. { refs: { children: { type: \"string\", ref: \"detayGor\" }, anchor: { type: \"link\", ref: \"urunLink\" } } }. Bir liste şablonu içinde satır başına farklı hedef için: { refs: { children: { type: \"repeater\", ref: \"label\" }, anchor: { type: \"repeater\", ref: \"href\" } } } (ref’ler listenin refs.repeater mappings adlarıdır). onPress/onLongPress handler kodu olarak statik kalır.",
|
|
6812
6863
|
definition: {
|
|
6813
6864
|
props: [
|
|
6814
6865
|
{
|
|
@@ -6943,6 +6994,7 @@ export const BASE_COMPONENTS = [
|
|
|
6943
6994
|
droppable: true,
|
|
6944
6995
|
icon: "link",
|
|
6945
6996
|
isMobile: false,
|
|
6997
|
+
usage: "İçine öğe sarmalayan, tıklanınca bir hedefe giden bağlantı (droppable: children bekler).\nTemel kullanım: `props.source` bağlantı hedefi (link tipi), `props.isExternal` yeni sekmede açar, `props.className`/`props.style` görünüm. children olarak text, image, box gibi öğeler konur ve tıklanabilir alanı oluşturur.\nVeri bağlama: `source` prop'u href'i `refs.source = { type:\"link\", ref:\"<linkId>\" }` ile bir Link kaydına bağlanır; sayfa içi/dinamik gidiş için `{ type:\"page\", ref:\"path\" }` ya da `{ type:\"field\", ref:\"<metaAlanı>\" }` de uygundur. Bir tekrarlayıcı (card-list/array-repeater) içindeyse satır URL'sini `refs.source = { type:\"repeater\", ref:\"href\" }` ile o satırın alanına bağla.\nÖrnek: { \"refs\": { \"source\": { \"type\": \"link\", \"ref\": \"detay-link\" } }, \"props\": { \"isExternal\": true } }",
|
|
6946
6998
|
definition: {
|
|
6947
6999
|
props: [
|
|
6948
7000
|
{
|
|
@@ -6989,6 +7041,7 @@ export const BASE_COMPONENTS = [
|
|
|
6989
7041
|
droppable: false,
|
|
6990
7042
|
icon: "plus-circle",
|
|
6991
7043
|
isMobile: false,
|
|
7044
|
+
usage: "Sayfanın köşesinde sabit duran, ikon ve/veya etiketli yüzen eylem butonu (FabIcon + FabLabel).\nTemel kullanım: `props.label` etiket metni (boşsa sadece ikon), `props.iconName` Lucide ikon adı (örn. PlusIcon), `props.size` sm|md|lg, `props.placement` bottom left|bottom right|top left|top right, `props.isDisabled` devre dışı. Eylem için genelde `props.componentId` verilir ve handler'da context.ui.open(\"id\") ile tetiklenir. Children beklemez.\nVeri bağlama: `label` metni `refs.label = { type:\"field\", ref:\"<metaAlanı>\" }` veya çok dilli için `{ type:\"string\", ref:\"<stringId>\" }` ile bağlanabilir; sabit metin için `{ type:\"static\", label:\"Ekle\" }`.\nÖrnek: { \"props\": { \"iconName\": \"PlusIcon\", \"placement\": \"bottom right\", \"componentId\": \"yeni-kayit\" }, \"refs\": { \"label\": { \"type\": \"static\", \"label\": \"Yeni\" } } }",
|
|
6992
7045
|
definition: {
|
|
6993
7046
|
props: [
|
|
6994
7047
|
{
|
|
@@ -7084,6 +7137,7 @@ export const BASE_COMPONENTS = [
|
|
|
7084
7137
|
droppable: false,
|
|
7085
7138
|
icon: "issue",
|
|
7086
7139
|
isMobile: false,
|
|
7140
|
+
usage: "Başlık, alt başlık, açıklama, görsel ve link içeren tekil kart bileşeni.\nTemel kullanım: `props.title`, `props.subtitle`, `props.description`, `props.image` (görsel), `props.anchor` (link), `props.size` sm|md|lg, `props.variant` ghost|outline|filled|elevated. Children beklemez; içeriği prop'lar üzerinden verilir.\nVeri bağlama: tüm metin/görsel/link prop'ları refs ile bağlanabilir — `refs.title`/`refs.description` için `{ type:\"field\", ref:\"<metaAlanı>\" }` veya `{ type:\"query\", ref:\"<queryId>\", mappings:[...] }`, `refs.image` için `{ type:\"file\", ref:\"<fileId>\" }`, `refs.anchor` için `{ type:\"link\", ref:\"<linkId>\" }`. Tek bir kayıt göstermek için tek satırlık query mapping kullanılır.\nÖnemli: Bir card-list/array-repeater'ın şablon çocuğu olarak kullanıldığında her prop SATIR alanına bağlanır: `refs.title = { type:\"repeater\", ref:\"baslik\" }`, `refs.image = { type:\"repeater\", ref:\"gorsel\" }`, `refs.anchor = { type:\"repeater\", ref:\"link\" }`.\nÖrnek: { \"refs\": { \"title\": { \"type\": \"field\", \"ref\": \"Title\" }, \"image\": { \"type\": \"file\", \"ref\": \"CoverFileId\" } }, \"props\": { \"variant\": \"elevated\" } }",
|
|
7087
7141
|
definition: {
|
|
7088
7142
|
props: [
|
|
7089
7143
|
{
|
|
@@ -7187,6 +7241,7 @@ export const BASE_COMPONENTS = [
|
|
|
7187
7241
|
droppable: false,
|
|
7188
7242
|
icon: "issues",
|
|
7189
7243
|
isMobile: false,
|
|
7244
|
+
usage: "Grid düzeninde çoklu kart gösteren TEKRARLAYICI liste bileşeni; her satır için bir kart render eder.\nTemel kullanım: Statik mod için `props.cards` bir dizidir; her eleman { title, subtitle, description, image, anchor, size, variant } alanlarını taşır. Grid sütun genişliği responsive `xl`/lg/md... gruplarındaki `size` (1/12..12/12) ile ayarlanır.\nDinamik veri (TEKRARLAYICI KONTRATI):\n1) Veri kaynağını `refs.repeater` ile bağla: `refs.repeater = { type:\"query\", ref:\"<queryId>\", mappings:[{name:\"title\",path:\"Title\"},{name:\"img\",path:\"CoverUrl\"},{name:\"link\",path:\"Slug\"}] }` (raw/showcase de olabilir).\n2) children, her satır için klonlanacak TEK bir şablon kart alt-ağacıdır.\n3) Şablon kartın her görünür alanı satıra bağlanmalı: kartta `refs.title = { type:\"repeater\", ref:\"title\" }`, `refs.image = { type:\"repeater\", ref:\"img\" }`, `refs.anchor = { type:\"repeater\", ref:\"link\" }`.\nEN SIK HATA: sadece `props.cards`/`repeater` vermek ama `refs.repeater`'ı VE çocuklarda `type:\"repeater\"` ref'lerini kurmamak → kartlar çıkar ama veri boş görünür. Çocuklar MUTLAKA `refs.<prop> = { type:\"repeater\", ref:\"<alan>\" }` kullanmalı.\nÖrnek: { \"refs\": { \"repeater\": { \"type\": \"query\", \"ref\": \"urunler\", \"mappings\": [ { \"name\": \"title\", \"path\": \"Name\" }, { \"name\": \"img\", \"path\": \"Image\" } ] } }, \"children\": [ { \"name\": \"card\", \"refs\": { \"title\": { \"type\": \"repeater\", \"ref\": \"title\" }, \"image\": { \"type\": \"repeater\", \"ref\": \"img\" } } } ] }",
|
|
7190
7245
|
definition: {
|
|
7191
7246
|
props: [
|
|
7192
7247
|
{
|
|
@@ -8073,6 +8128,7 @@ export const BASE_COMPONENTS = [
|
|
|
8073
8128
|
droppable: false,
|
|
8074
8129
|
icon: "user-avatar-circle",
|
|
8075
8130
|
isMobile: false,
|
|
8131
|
+
usage: "Profil resmi bileşeni (Avatar + AvatarImage + AvatarFallbackText); görsel yoksa isimden baş harfleri gösterir.\nTemel kullanım: `props.source` profil görseli, `props.name` görsel yoksa baş harflerin alınacağı isim, `props.size` xs|sm|md|lg|xl|2xl, `props.showBadge` online rozetini (AvatarBadge) açar. Children beklemez.\nVeri bağlama: `source` görselini `refs.source = { type:\"file\", ref:\"<fileId>\" }`, `name` metnini `refs.name = { type:\"field\", ref:\"<metaAlanı>\" }` veya `{ type:\"query\", ref:\"<queryId>\", mappings:[...] }` ile bağla. Bir kullanıcı listesinin (array-repeater) satır şablonundaysa: `refs.source = { type:\"repeater\", ref:\"avatar\" }`, `refs.name = { type:\"repeater\", ref:\"adSoyad\" }`.\nÖrnek: { \"refs\": { \"source\": { \"type\": \"file\", \"ref\": \"UserPhotoId\" }, \"name\": { \"type\": \"field\", \"ref\": \"FullName\" } }, \"props\": { \"size\": \"lg\", \"showBadge\": true } }",
|
|
8076
8132
|
definition: {
|
|
8077
8133
|
props: [
|
|
8078
8134
|
{
|
|
@@ -8156,6 +8212,7 @@ export const BASE_COMPONENTS = [
|
|
|
8156
8212
|
droppable: false,
|
|
8157
8213
|
icon: "label",
|
|
8158
8214
|
isMobile: true,
|
|
8215
|
+
usage: "Kısa durum/etiket rozeti (Badge + BadgeText).\nTemel kullanım: `props.text` etiket metni, `props.action` durum rengi info|success|warning|error|muted, `props.variant` solid|outline, `props.size` sm|md|lg. Children beklemez.\nVeri bağlama: `text` metnini `refs.text = { type:\"field\", ref:\"<metaAlanı>\" }`, `{ type:\"query\", ref:\"<queryId>\", mappings:[...] }` veya çok dilli `{ type:\"string\", ref:\"<stringId>\" }` ile bağla. Durum rengini de dinamik yapmak için `refs.action = { type:\"field\", ref:\"StatusColor\" }` kullanılabilir. Bir tablo/liste satırındaysa: `refs.text = { type:\"repeater\", ref:\"durum\" }`.\nÖrnek: { \"refs\": { \"text\": { \"type\": \"field\", \"ref\": \"Status\" } }, \"props\": { \"action\": \"success\", \"variant\": \"solid\" } }",
|
|
8159
8216
|
definition: {
|
|
8160
8217
|
props: [
|
|
8161
8218
|
{
|
|
@@ -8258,6 +8315,7 @@ export const BASE_COMPONENTS = [
|
|
|
8258
8315
|
droppable: false,
|
|
8259
8316
|
icon: "subtract",
|
|
8260
8317
|
isMobile: false,
|
|
8318
|
+
usage: "Yatay veya dikey ayırıcı çizgi; yapısal/dekoratif bir öğe.\nTemel kullanım: `props.orientation` horizontal|vertical, görünüm için `props.className`/`props.style`. Children beklemez ve genelde veri bağlamaya ihtiyaç duymaz.\nVeri bağlama: nadiren gerekir; koşullu/dinamik bir değere ihtiyaç olursa `orientation` veya `className` `refs` ile (örn. `{ type:\"field\", ref:\"<metaAlanı>\" }`) bağlanabilir. Bir tekrarlayıcı içinde satırlar arası ayırıcı olarak şablon ağaca statik konabilir.\nÖrnek: { \"props\": { \"orientation\": \"horizontal\", \"className\": \"my-4\" } }",
|
|
8261
8319
|
definition: {
|
|
8262
8320
|
props: [
|
|
8263
8321
|
{
|
|
@@ -8305,6 +8363,7 @@ export const BASE_COMPONENTS = [
|
|
|
8305
8363
|
droppable: false,
|
|
8306
8364
|
icon: "table",
|
|
8307
8365
|
isMobile: false,
|
|
8366
|
+
usage: "Sütunlu tablo bileşeni (TableHeader, TableBody, TableRow, TableHead, TableData); satırları bir veri dizisinden üretir.\nTemel kullanım: `props.columns` bir dizidir; her sütun { header (başlık), key (veri nesnesinden değerin alınacağı anahtar) } taşır. `props.dataKey` satırların okunacağı array key adıdır. `props.showCaption` + `props.caption` alt açıklama (TableCaption) gösterir. Children beklemez; satır/hücre yapısını columns ve veri belirler.\nVeri bağlama: Veri kaynağını `refs.dataKey = { type:\"query\", ref:\"<queryId>\", mappings:[{name:\"ad\",path:\"Name\"},{name:\"fiyat\",path:\"Price\"}] }` (veya raw/showcase) ile bağla; ardından her sütunun `key` alanı bu mapping adlarıyla (ad, fiyat) eşleşmeli. Statik veri için `props.dataKey` context/sayfa dizisi olabilir.\nÖrnek: { \"refs\": { \"dataKey\": { \"type\": \"query\", \"ref\": \"siparisler\", \"mappings\": [ { \"name\": \"no\", \"path\": \"OrderNo\" }, { \"name\": \"tutar\", \"path\": \"Total\" } ] } }, \"props\": { \"columns\": [ { \"header\": \"Sipariş\", \"key\": \"no\" }, { \"header\": \"Tutar\", \"key\": \"tutar\" } ] } }",
|
|
8308
8367
|
definition: {
|
|
8309
8368
|
props: [
|
|
8310
8369
|
{
|
|
@@ -8371,6 +8430,7 @@ export const BASE_COMPONENTS = [
|
|
|
8371
8430
|
droppable: false,
|
|
8372
8431
|
icon: "loading",
|
|
8373
8432
|
isMobile: true,
|
|
8433
|
+
usage: "Veri yüklenirken gösterilen iskelet/placeholder animasyonu (Skeleton / SkeletonText).\nTemel kullanım: `props.variant` rounded|sharp|circular, `props.speed` animasyon süresi (saniye, varsayılan 2). Metin iskeleti için `props.isText` açılır ve `props.lines` ile SkeletonText satır sayısı belirlenir. Children beklemez; gerçek içerik gelene kadar yer tutucu olarak kullanılır.\nVeri bağlama: genelde statik bir yer tutucudur ve veri bağlamaz; satır sayısını dinamik yapmak gerekirse `refs.lines = { type:\"field\", ref:\"<metaAlanı>\" }` kullanılabilir. Yükleme durumuna göre gösterim sayfa/handler mantığıyla yönetilir.\nÖrnek: { \"props\": { \"isText\": true, \"lines\": 3, \"variant\": \"rounded\" } }",
|
|
8374
8434
|
definition: {
|
|
8375
8435
|
props: [
|
|
8376
8436
|
{
|
|
@@ -8440,6 +8500,7 @@ export const BASE_COMPONENTS = [
|
|
|
8440
8500
|
droppable: false,
|
|
8441
8501
|
icon: "refresh",
|
|
8442
8502
|
isMobile: true,
|
|
8503
|
+
usage: "Basit yükleniyor dönen göstergesi.\nTemel kullanım: `props.size` small|large, `props.color` renk için className token (örn. text-primary, text-error), `props.className`/`props.style`. Children beklemez ve veri bağlamaz.\nVeri bağlama: statik bir yükleme göstergesidir; normalde refs gerekmez. İstenirse `color`/`className` `refs` ile (`{ type:\"field\", ref:\"<metaAlanı>\" }`) dinamik yapılabilir; görünürlük yükleme durumuyla sayfa mantığında kontrol edilir.\nÖrnek: { \"props\": { \"size\": \"large\", \"color\": \"text-primary\" } }",
|
|
8443
8504
|
definition: {
|
|
8444
8505
|
props: [
|
|
8445
8506
|
{
|
|
@@ -8493,6 +8554,7 @@ export const BASE_COMPONENTS = [
|
|
|
8493
8554
|
droppable: false,
|
|
8494
8555
|
icon: "warning",
|
|
8495
8556
|
isMobile: false,
|
|
8557
|
+
usage: "Sayfa içi uyarı/bilgi mesajı kutusu (Alert + AlertIcon + AlertText).\nTemel kullanım: `props.text` mesaj metni, `props.action` durum tipi info|success|warning|error|muted, `props.variant` solid|outline, `props.showIcon` ikonu açar; AlertIcon grubundaki `props.iconName` ile özel Lucide ikon verilebilir (boşsa duruma göre varsayılan). Children beklemez.\nVeri bağlama: `text` metnini `refs.text = { type:\"field\", ref:\"<metaAlanı>\" }`, `{ type:\"query\", ref:\"<queryId>\", mappings:[...] }` veya çok dilli `{ type:\"string\", ref:\"<stringId>\" }` ile bağla. Durumu dinamikleştirmek için `refs.action = { type:\"field\", ref:\"AlertType\" }` kullanılabilir.\nÖrnek: { \"refs\": { \"text\": { \"type\": \"field\", \"ref\": \"WarningMessage\" } }, \"props\": { \"action\": \"warning\", \"showIcon\": true } }",
|
|
8496
8558
|
definition: {
|
|
8497
8559
|
props: [
|
|
8498
8560
|
{
|
|
@@ -8594,6 +8656,7 @@ export const BASE_COMPONENTS = [
|
|
|
8594
8656
|
droppable: false,
|
|
8595
8657
|
icon: "graph-bar",
|
|
8596
8658
|
isMobile: true,
|
|
8659
|
+
usage: "0-100 arası değer gösteren ilerleme çubuğu (Progress + ProgressFilledTrack).\nTemel kullanım: `props.value` ilerleme (0-100), `props.size` xs|sm|md|lg|xl, `props.fillColor` dolgu rengi, `props.trackColor` arka plan rengi, `props.showLabel` etiketi açar, `props.label` özel etiket metni (boşsa yüzde gösterilir). Children beklemez.\nVeri bağlama: `value` sayısını `refs.value = { type:\"field\", ref:\"<metaAlanı>\" }` veya `{ type:\"query\", ref:\"<queryId>\", mappings:[{name:\"oran\",path:\"Percent\"}] }` ile bağla; özel etiketi `refs.label = { type:\"field\", ref:\"<metaAlanı>\" }` ile dinamik yap. Bir liste satırındaysa: `refs.value = { type:\"repeater\", ref:\"yuzde\" }`.\nÖrnek: { \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"CompletionRate\" } }, \"props\": { \"size\": \"md\", \"showLabel\": true } }",
|
|
8597
8660
|
definition: {
|
|
8598
8661
|
props: [
|
|
8599
8662
|
{
|
|
@@ -8684,6 +8747,7 @@ export const BASE_COMPONENTS = [
|
|
|
8684
8747
|
droppable: false,
|
|
8685
8748
|
icon: "notification",
|
|
8686
8749
|
isMobile: true,
|
|
8750
|
+
usage: "Geçici bildirim mesajı gösterir (başlık + açıklama, durum tipi ve konum desteğiyle).\nTemel kullanım: props.title (ToastTitle) ve props.description (ToastDescription) metinleri; props.action ile durum tipi (info/success/warning/error/muted), props.variant (solid/outline), props.placement (top, top right, bottom left vb.), props.duration (ms; 0 = manuel kapatma). Genelde bir handler içinde context.ui ile tetiklenir; props.componentId benzersiz kimlik olarak verilir.\nVeri bağlama: title ve description dinamik gösterilebilir. type:\"field\" ile mevcut sayfanın meta alanına, type:\"query\" ile bir sorgu sonucuna (mappings ile), type:\"string\" ile çok dilli metne, type:\"static\" ile sabit değere bağlanır.\nÖrnek: { \"refs\": { \"title\": { \"type\": \"field\", \"ref\": \"UserName\" }, \"description\": { \"type\": \"static\", \"label\": \"Kayıt başarılı\" } } }\nNot: Toast bir tekrarlayıcı değildir; tek bir bildirim örneğini temsil eder.",
|
|
8687
8751
|
definition: {
|
|
8688
8752
|
props: [
|
|
8689
8753
|
{
|
|
@@ -8809,6 +8873,7 @@ export const BASE_COMPONENTS = [
|
|
|
8809
8873
|
droppable: true,
|
|
8810
8874
|
icon: "chevron-down",
|
|
8811
8875
|
isMobile: false,
|
|
8876
|
+
usage: "Açılır kapanır panellerin kapsayıcısıdır; içine yalnızca AccordionItem (accordion-item) node'ları konur.\nTemel kullanım: props.type ile açılma modu (single = tek panel açık, multiple = çoklu), props.variant (filled/unfilled), props.componentId. children olarak bir veya daha fazla accordion-item beklenir; doğrudan içerik koymayın.\nVeri bağlama: Accordion'un kendi prop'ları statiktir; veri bağlama alt AccordionItem'larda yapılır. Dinamik sayıda panel gerekiyorsa accordion yerine array-repeater gibi bir tekrarlayıcı kullanın. className/style type:\"field\" veya type:\"query\" ile koşullu bağlanabilir.\nÖrnek (statik): { \"name\": \"accordion\", \"props\": { \"type\": \"single\" }, \"children\": [ { \"name\": \"accordion-item\", \"props\": { \"title\": \"SSS 1\" } } ] }",
|
|
8812
8877
|
definition: {
|
|
8813
8878
|
props: [
|
|
8814
8879
|
{
|
|
@@ -8871,6 +8936,7 @@ export const BASE_COMPONENTS = [
|
|
|
8871
8936
|
droppable: true,
|
|
8872
8937
|
icon: "chevron-right",
|
|
8873
8938
|
isMobile: false,
|
|
8939
|
+
usage: "Accordion içindeki tek bir açılır panel; Accordion'un doğrudan çocuğu olmalıdır.\nTemel kullanım: props.title (AccordionTrigger başlığı), props.value (benzersiz value key; boşsa başlık kullanılır), props.isDisabled (devre dışı). Panelin gövde içeriği bu node'un children'ı olarak verilir (text, box, image vb.).\nVeri bağlama: title type:\"field\", type:\"query\" (mappings ile), type:\"string\" veya type:\"static\" ile bağlanabilir. Bir tekrarlayıcı (array-repeater) şablonu içindeyse title ve children içindeki alanlar satır verisine bağlanır: { \"refs\": { \"title\": { \"type\": \"repeater\", \"ref\": \"baslik\" } } } ve gövdedeki bir text için { \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"icerik\" } } }.\nÖrnek: { \"name\": \"accordion-item\", \"refs\": { \"title\": { \"type\": \"field\", \"ref\": \"Question\" } } }",
|
|
8874
8940
|
definition: {
|
|
8875
8941
|
props: [
|
|
8876
8942
|
{
|
|
@@ -8919,6 +8985,7 @@ export const BASE_COMPONENTS = [
|
|
|
8919
8985
|
droppable: true,
|
|
8920
8986
|
icon: "tab",
|
|
8921
8987
|
isMobile: false,
|
|
8988
|
+
usage: "Sekmeli içerik kapsayıcısıdır; içine yalnızca Tab Panel (tab-panel) node'ları konur.\nTemel kullanım: props.defaultValue (başlangıçta açık tab-panel'in value değeri), props.tabBarPosition (top/bottom), props.activeColor / props.inactiveColor (hex renk; örn. #007AFF), props.componentId. children olarak bir veya daha fazla tab-panel beklenir.\nVeri bağlama: Tabs'ın kendi prop'ları genelde statiktir. defaultValue type:\"field\" veya type:\"static\" ile bağlanabilir. Veri bağlama esas olarak alt tab-panel'lerin içeriğinde yapılır. Dinamik sekme listesi gerekiyorsa tabs yerine bir tekrarlayıcı tercih edin.\nÖrnek (statik): { \"name\": \"tabs\", \"props\": { \"defaultValue\": \"genel\", \"tabBarPosition\": \"top\" }, \"children\": [ { \"name\": \"tab-panel\", \"props\": { \"label\": \"Genel\", \"value\": \"genel\" } } ] }",
|
|
8922
8989
|
definition: {
|
|
8923
8990
|
props: [
|
|
8924
8991
|
{
|
|
@@ -8984,6 +9051,7 @@ export const BASE_COMPONENTS = [
|
|
|
8984
9051
|
droppable: true,
|
|
8985
9052
|
icon: "detail-view",
|
|
8986
9053
|
isMobile: false,
|
|
9054
|
+
usage: "Tabs içindeki tek bir sekme paneli; Tabs'ın doğrudan çocuğu olmalıdır.\nTemel kullanım: props.label (sekme başlığı), props.value (benzersiz value key; Tabs defaultValue ile eşleşir), props.componentId. Panel içeriği bu node'un children'ı olarak verilir (box, text, image, listeler vb.).\nVeri bağlama: label type:\"field\", type:\"string\" veya type:\"static\" ile bağlanabilir; içerik için children içindeki node'lar kendi refs'leri ile (type:\"query\", type:\"field\", type:\"showcase\") bağlanır. Bir tekrarlayıcı şablonu içindeyse label ve children alanları type:\"repeater\" ile satır verisine bağlanır.\nÖrnek: { \"name\": \"tab-panel\", \"props\": { \"value\": \"detay\" }, \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"tab_detay\" } } }",
|
|
8987
9055
|
definition: {
|
|
8988
9056
|
props: [
|
|
8989
9057
|
{
|
|
@@ -9027,6 +9095,7 @@ export const BASE_COMPONENTS = [
|
|
|
9027
9095
|
droppable: true,
|
|
9028
9096
|
icon: "popup",
|
|
9029
9097
|
isMobile: true,
|
|
9098
|
+
usage: "Üst üste açılan modal diyalog; başlık, gövde ve footer alanlarını içerir (ModalHeader/Body/Footer).\nTemel kullanım: props.title (ModalHeader metni), props.size (xs/sm/md/lg/full), props.showCloseButton, props.componentId (handler'da context.ui.open(\"id\") ile açmak için). Gövde içeriği children olarak verilir; footer butonları da children içinde yer alır.\nVeri bağlama: title type:\"field\", type:\"query\" (mappings ile), type:\"string\" veya type:\"static\" ile bağlanabilir; gövdedeki children kendi refs'leri ile veriye bağlanır.\nÖrnek: { \"name\": \"modal\", \"props\": { \"size\": \"md\", \"showCloseButton\": true }, \"refs\": { \"title\": { \"type\": \"field\", \"ref\": \"ProductName\" } }, \"children\": [ /* gövde node'ları */ ] }\nNot: Modal bir tekrarlayıcı değildir; tek diyalog örneğidir.",
|
|
9030
9099
|
definition: {
|
|
9031
9100
|
props: [
|
|
9032
9101
|
{
|
|
@@ -9101,6 +9170,7 @@ export const BASE_COMPONENTS = [
|
|
|
9101
9170
|
droppable: true,
|
|
9102
9171
|
icon: "side-panel-open",
|
|
9103
9172
|
isMobile: false,
|
|
9173
|
+
usage: "Ekranın bir kenarından açılan yan panel (DrawerHeader/Body içerir).\nTemel kullanım: props.title (DrawerHeader metni), props.placement (left/right/top/bottom), props.showCloseButton, props.componentId (handler'da context.ui.open(\"id\") ile açılır). Panel gövdesi children olarak verilir (menü, form, liste vb.).\nVeri bağlama: title type:\"field\", type:\"string\", type:\"static\" veya type:\"query\" ile bağlanabilir; gövdedeki children kendi refs'leri ile veriye bağlanır. Drawer içine menü koyuyorsanız navigasyon için ilgili node'da type:\"navigation\" kullanılabilir.\nÖrnek: { \"name\": \"drawer\", \"props\": { \"placement\": \"left\" }, \"refs\": { \"title\": { \"type\": \"string\", \"ref\": \"menu_baslik\" } } }",
|
|
9104
9174
|
definition: {
|
|
9105
9175
|
props: [
|
|
9106
9176
|
{
|
|
@@ -9170,6 +9240,7 @@ export const BASE_COMPONENTS = [
|
|
|
9170
9240
|
droppable: false,
|
|
9171
9241
|
icon: "overflow-menu-vertical",
|
|
9172
9242
|
isMobile: false,
|
|
9243
|
+
usage: "Alttan açılan eylem paneli; tıklanabilir eylem öğelerini (ActionsheetItem) listeler.\nTemel kullanım: props.snapPoints (yüzde, virgülle ayrılmış; örn. \"50,80\", boş = tam yükseklik), props.componentId. Öğeler props.items dizisiyle verilir; her öğe text (ActionsheetItemText), iconName (Lucide ikon adı, opsiyonel) ve isDisabled alanlarına sahiptir.\nVeri bağlama (tekrarlayıcı): Statik öğeler props.items ile verilebilir. Dinamik öğeler için refs.repeater bir sorguya bağlanır ve mappings ile öğe alanları (text, iconName) üretilir.\nÖrnek: { \"name\": \"actionsheet\", \"refs\": { \"repeater\": { \"type\": \"query\", \"ref\": \"q_eylemler\", \"mappings\": [ { \"name\": \"text\", \"path\": \"Label\" }, { \"name\": \"iconName\", \"path\": \"Icon\" } ] } } }\nNot: items dizi prop'u olduğundan, repeater bağlandığında her satır bir ActionsheetItem üretir; ayrıca child şablon kullanılırsa o child'larda text/iconName için type:\"repeater\" ref'leri verin.",
|
|
9173
9244
|
definition: {
|
|
9174
9245
|
props: [
|
|
9175
9246
|
{
|
|
@@ -9231,6 +9302,7 @@ export const BASE_COMPONENTS = [
|
|
|
9231
9302
|
droppable: false,
|
|
9232
9303
|
icon: "list",
|
|
9233
9304
|
isMobile: false,
|
|
9305
|
+
usage: "Bir tetikleyiciye bağlı açılır menü; tıklanabilir MenuItem öğelerini gösterir.\nTemel kullanım: props.placement (top/bottom/left/right), props.componentId. Öğeler props.items dizisiyle verilir; her öğe label (MenuItemLabel), key (benzersiz anahtar) ve iconName (opsiyonel ikon) alanlarına sahiptir.\nVeri bağlama (tekrarlayıcı): Statik öğeler props.items ile; dinamik öğeler için refs.repeater bir sorgu/vitrine bağlanır ve mappings ile label/key/iconName alanları üretilir. Menü bir navigasyon ağacını gösterecekse ilgili alan type:\"navigation\" ref:\"<menuId>\" ile de bağlanabilir.\nÖrnek: { \"name\": \"menu\", \"props\": { \"placement\": \"bottom\" }, \"refs\": { \"repeater\": { \"type\": \"query\", \"ref\": \"q_menu\", \"mappings\": [ { \"name\": \"label\", \"path\": \"Title\" }, { \"name\": \"key\", \"path\": \"Id\" } ] } } }",
|
|
9234
9306
|
definition: {
|
|
9235
9307
|
props: [
|
|
9236
9308
|
{
|
|
@@ -9308,6 +9380,7 @@ export const BASE_COMPONENTS = [
|
|
|
9308
9380
|
droppable: false,
|
|
9309
9381
|
icon: "chat",
|
|
9310
9382
|
isMobile: false,
|
|
9383
|
+
usage: "Bir öğeye bağlı açılır bilgi balonu (PopoverHeader + PopoverBody, opsiyonel ok).\nTemel kullanım: props.title (PopoverHeader), props.body (PopoverBody içeriği), props.placement (top/bottom/left/right), props.showArrow (PopoverArrow), props.componentId.\nVeri bağlama: title ve body type:\"field\", type:\"query\" (mappings ile), type:\"string\" veya type:\"static\" ile bağlanabilir.\nÖrnek: { \"name\": \"popover\", \"props\": { \"placement\": \"top\", \"showArrow\": true }, \"refs\": { \"title\": { \"type\": \"field\", \"ref\": \"InfoTitle\" }, \"body\": { \"type\": \"field\", \"ref\": \"InfoBody\" } } }\nNot: Popover tek bir balon örneğidir; tekrarlayıcı değildir.",
|
|
9311
9384
|
definition: {
|
|
9312
9385
|
props: [
|
|
9313
9386
|
{
|
|
@@ -9382,6 +9455,7 @@ export const BASE_COMPONENTS = [
|
|
|
9382
9455
|
droppable: false,
|
|
9383
9456
|
icon: "warning",
|
|
9384
9457
|
isMobile: true,
|
|
9458
|
+
usage: "Kullanıcıdan onay isteyen uyarı diyaloğu (başlık, mesaj, onay/iptal butonları).\nTemel kullanım: props.title (AlertDialogHeader), props.body (AlertDialogBody mesajı), props.confirmText ve props.cancelText (buton metinleri), props.size (xs/sm/md/lg/full), props.componentId (handler'da context.ui.open(\"id\") ile açılır).\nVeri bağlama: title ve body type:\"field\", type:\"query\" (mappings ile), type:\"string\" veya type:\"static\" ile bağlanabilir; confirmText/cancelText de type:\"string\" ile çok dilli yapılabilir.\nÖrnek: { \"name\": \"alert-dialog\", \"props\": { \"confirmText\": \"Sil\", \"cancelText\": \"Vazgeç\" }, \"refs\": { \"body\": { \"type\": \"field\", \"ref\": \"DeleteMessage\" } } }\nNot: AlertDialog tek bir diyalog örneğidir; tekrarlayıcı değildir.",
|
|
9385
9459
|
definition: {
|
|
9386
9460
|
props: [
|
|
9387
9461
|
{
|
|
@@ -9465,6 +9539,7 @@ export const BASE_COMPONENTS = [
|
|
|
9465
9539
|
droppable: false,
|
|
9466
9540
|
icon: "information",
|
|
9467
9541
|
isMobile: true,
|
|
9542
|
+
usage: "Bir öğenin üzerine gelince/dokununca kısa bilgi gösteren balon (TooltipText).\nTemel kullanım: props.text (TooltipText metni), props.placement (top/bottom/left/right), props.componentId.\nVeri bağlama: text type:\"field\", type:\"query\" (mappings ile), type:\"string\" veya type:\"static\" ile bağlanabilir.\nÖrnek: { \"name\": \"tooltip\", \"props\": { \"placement\": \"top\" }, \"refs\": { \"text\": { \"type\": \"static\", \"label\": \"Daha fazla bilgi\" } } }\nNot: Tooltip tek bir metin balonudur; tekrarlayıcı değildir.",
|
|
9468
9543
|
definition: {
|
|
9469
9544
|
props: [
|
|
9470
9545
|
{
|
|
@@ -9529,6 +9604,7 @@ export const BASE_COMPONENTS = [
|
|
|
9529
9604
|
droppable: true,
|
|
9530
9605
|
icon: "form",
|
|
9531
9606
|
isMobile: true,
|
|
9607
|
+
usage: "Form öğelerini saran wrapper'dır; içine sürüklenen form öğesine (input, select, switch vb.) etiket, yardımcı metin ve hata metni ile durum bilgisi ekler.\n\nTemel kullanım: label (FormControlLabel), helperText (FormControlHelper), errorText (FormControlError) metinlerini; isDisabled, isRequired, isInvalid, isReadOnly durum prop'larını ve componentId'yi al. children olarak tek bir form öğesi (örn. input) beklenir; droppable'dır.\n\nVeri bağlama: label / helperText / errorText prop'ları refs ile bağlanabilir — type:\"field\" (meta alanı), type:\"string\" (çok dilli metin) veya type:\"query\" + mappings ile sorgu kolonuna. isInvalid/isRequired gibi durumlar da type:\"field\" ile bağlanabilir.\nÖrnek: { \"refs\": { \"label\": { \"type\": \"field\", \"ref\": \"FieldLabel\" }, \"errorText\": { \"type\": \"string\", \"ref\": \"err_required\" } } }\nBu component bir tekrarlayıcı değildir; tek bir form öğesini sarmalar.",
|
|
9532
9608
|
definition: {
|
|
9533
9609
|
props: [
|
|
9534
9610
|
{
|
|
@@ -9596,6 +9672,7 @@ export const BASE_COMPONENTS = [
|
|
|
9596
9672
|
droppable: false,
|
|
9597
9673
|
icon: "edit",
|
|
9598
9674
|
isMobile: true,
|
|
9675
|
+
usage: "Tek satırlık metin giriş alanı (FormControl + Input + InputField); kullanıcıdan metin/şifre/e-posta/sayı toplar.\n\nTemel kullanım: label, placeholder, type (text|password|email|number), variant (outline|underlined|rounded), size (sm|md|lg|xl), helperText, errorText ve componentId. Durum prop'ları: isDisabled, isRequired, isInvalid, isReadOnly. children almaz (element).\n\nVeri bağlama: placeholder, label, helperText, errorText metin prop'ları refs ile bağlanabilir; type:\"field\" (meta alanı), type:\"string\" (çok dilli) veya type:\"query\"+mappings uygundur. Bir tekrarlayıcı (flat-list/array-repeater) içindeki satır şablonunda ise prop'lar satır alanına bağlanır.\nÖrnek (statik bağlama): { \"refs\": { \"placeholder\": { \"type\": \"field\", \"ref\": \"EmailPlaceholder\" } } }\nÖrnek (tekrarlayıcı satırında): { \"refs\": { \"label\": { \"type\": \"repeater\", \"ref\": \"fieldLabel\" } } }\nGirilen değer componentId üzerinden form.getValue(\"id\") ile okunur.",
|
|
9599
9676
|
definition: {
|
|
9600
9677
|
props: [
|
|
9601
9678
|
{
|
|
@@ -9744,6 +9821,7 @@ export const BASE_COMPONENTS = [
|
|
|
9744
9821
|
droppable: false,
|
|
9745
9822
|
icon: "chevron-down",
|
|
9746
9823
|
isMobile: true,
|
|
9824
|
+
usage: "Açılır seçim listesi (FormControl + Select + SelectTrigger + SelectItem); kullanıcı tek bir seçenek seçer.\n\nTemel kullanım: label, placeholder, options (array; her öğe { label, value }), variant (outline|underlined|rounded), size (sm|md|lg|xl), helperText, componentId. Durum: isDisabled, isRequired, isInvalid, isReadOnly. children almaz; seçenekler options array prop'undan gelir.\n\nVeri bağlama: options prop'unu bir sorgu/vitrin sonucuyla doldurmak için refs.options kullan ve mappings ile { label, value } kolonlarını eşle — type:\"query\" | type:\"raw\" | type:\"showcase\" uygundur. label/placeholder metinleri type:\"field\" veya type:\"string\" ile bağlanabilir.\nÖrnek: { \"refs\": { \"options\": { \"type\": \"query\", \"ref\": \"cities\", \"mappings\": [ { \"name\": \"label\", \"path\": \"CityName\" }, { \"name\": \"value\", \"path\": \"CityId\" } ] } } }\nSeçilen değer componentId ile form.getValue(\"id\") üzerinden okunur.",
|
|
9747
9825
|
definition: {
|
|
9748
9826
|
props: [
|
|
9749
9827
|
{
|
|
@@ -9881,6 +9959,7 @@ export const BASE_COMPONENTS = [
|
|
|
9881
9959
|
droppable: false,
|
|
9882
9960
|
icon: "switcher",
|
|
9883
9961
|
isMobile: true,
|
|
9962
|
+
usage: "Açık/kapalı toggle anahtarı; boolean bir değeri kontrol eder.\n\nTemel kullanım: label (yanında gösterilecek etiket), size (sm|md|lg), isDisabled ve componentId. children almaz (element).\n\nVeri bağlama: label prop'u refs ile bağlanabilir — type:\"field\" (meta alanı), type:\"string\" (çok dilli metin) veya type:\"query\"+mappings. Bir tekrarlayıcı satırı içindeyse label/durum satır alanına type:\"repeater\" ile bağlanır.\nÖrnek: { \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"notifications_on\" } } }\nAnahtarın durumu componentId üzerinden form.getValue(\"id\") ile okunur; tekrarlayıcı değildir.",
|
|
9884
9963
|
definition: {
|
|
9885
9964
|
props: [
|
|
9886
9965
|
{
|
|
@@ -9946,6 +10025,7 @@ export const BASE_COMPONENTS = [
|
|
|
9946
10025
|
droppable: false,
|
|
9947
10026
|
icon: "checkbox",
|
|
9948
10027
|
isMobile: true,
|
|
10028
|
+
usage: "Onay kutusu; tek bir kutu (CheckboxLabel) veya options ile çoklu seçim grubu (CheckboxGroup) oluşturur.\n\nTemel kullanım: label (tekil kutu etiketi), options (array; her öğe { label, value } — grup için), size (sm|md|lg), isDisabled ve componentId. Durum prop'ları: isRequired, isInvalid, isReadOnly. children almaz; grup seçenekleri options array'inden gelir.\n\nVeri bağlama: options prop'unu sorgudan doldurmak için refs.options + mappings ile { label, value } eşle — type:\"query\" | type:\"raw\" | type:\"showcase\". label metni type:\"field\" veya type:\"string\" ile bağlanabilir.\nÖrnek: { \"refs\": { \"options\": { \"type\": \"query\", \"ref\": \"tags\", \"mappings\": [ { \"name\": \"label\", \"path\": \"TagName\" }, { \"name\": \"value\", \"path\": \"TagId\" } ] } } }\nSeçili değerler componentId üzerinden form.getValue(\"id\") ile okunur.",
|
|
9949
10029
|
definition: {
|
|
9950
10030
|
props: [
|
|
9951
10031
|
{
|
|
@@ -10055,6 +10135,7 @@ export const BASE_COMPONENTS = [
|
|
|
10055
10135
|
droppable: false,
|
|
10056
10136
|
icon: "radio",
|
|
10057
10137
|
isMobile: true,
|
|
10138
|
+
usage: "Tek seçimli radyo grubu (RadioGroup + Radio + RadioLabel); birden çok seçenekten yalnızca biri seçilir.\n\nTemel kullanım: options (array; her öğe { label, value } — label RadioLabel olur), size (sm|md|lg), isDisabled ve componentId. Durum prop'ları: isRequired, isInvalid, isReadOnly. children almaz; seçenekler options array'inden render edilir.\n\nVeri bağlama: options prop'unu sorgu/vitrin sonucuyla doldurmak için refs.options + mappings kullan ({ label, value } kolonlarını eşle) — type:\"query\" | type:\"raw\" | type:\"showcase\".\nÖrnek: { \"refs\": { \"options\": { \"type\": \"query\", \"ref\": \"genders\", \"mappings\": [ { \"name\": \"label\", \"path\": \"Name\" }, { \"name\": \"value\", \"path\": \"Code\" } ] } } }\nSeçilen değer componentId ile form.getValue(\"id\") üzerinden okunur.",
|
|
10058
10139
|
definition: {
|
|
10059
10140
|
props: [
|
|
10060
10141
|
{
|
|
@@ -10155,6 +10236,7 @@ export const BASE_COMPONENTS = [
|
|
|
10155
10236
|
droppable: false,
|
|
10156
10237
|
icon: "edit",
|
|
10157
10238
|
isMobile: true,
|
|
10239
|
+
usage: "Çok satırlı metin giriş alanı (FormControl + Textarea + TextareaInput); uzun metinler için.\n\nTemel kullanım: label, placeholder, size (sm|md|lg|xl), numberOfLines (görünen satır sayısı), helperText, errorText ve componentId. Durum prop'ları: isDisabled, isRequired, isInvalid, isReadOnly. children almaz (element).\n\nVeri bağlama: placeholder, label, helperText, errorText metin prop'ları refs ile bağlanabilir — type:\"field\" (meta alanı), type:\"string\" (çok dilli) veya type:\"query\"+mappings. Tekrarlayıcı satırı içindeyse type:\"repeater\" ile satır alanına bağlanır.\nÖrnek: { \"refs\": { \"placeholder\": { \"type\": \"string\", \"ref\": \"comment_placeholder\" } } }\nGirilen değer componentId üzerinden form.getValue(\"id\") ile okunur.",
|
|
10158
10240
|
definition: {
|
|
10159
10241
|
props: [
|
|
10160
10242
|
{
|
|
@@ -10267,6 +10349,7 @@ export const BASE_COMPONENTS = [
|
|
|
10267
10349
|
droppable: false,
|
|
10268
10350
|
icon: "slider",
|
|
10269
10351
|
isMobile: true,
|
|
10352
|
+
usage: "Kaydırma çubuğu (Slider + SliderTrack + SliderFilledTrack + SliderThumb); sayısal bir değeri bir aralıkta seçtirir.\n\nTemel kullanım: value (başlangıç değeri), minValue, maxValue, step, size (sm|md|lg), orientation (horizontal|vertical), showLabel (değer etiketini göster), isDisabled ve componentId. Durum prop'ları: isRequired, isInvalid, isReadOnly. children almaz (element).\n\nVeri bağlama: value (ve sınırlar minValue/maxValue) refs ile bağlanabilir — type:\"field\" (meta alanı) veya type:\"query\"+mappings ile sayısal kolona. Tekrarlayıcı satırı içindeyse value satır alanına type:\"repeater\" ile bağlanır.\nÖrnek: { \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"Rating\" } } }\nSeçilen değer componentId üzerinden form.getValue(\"id\") ile okunur.",
|
|
10270
10353
|
definition: {
|
|
10271
10354
|
props: [
|
|
10272
10355
|
{
|
|
@@ -10394,6 +10477,7 @@ export const BASE_COMPONENTS = [
|
|
|
10394
10477
|
droppable: false,
|
|
10395
10478
|
icon: "calendar",
|
|
10396
10479
|
isMobile: false,
|
|
10480
|
+
usage: "Takvim bileşeni; tekli, çoklu veya aralık modunda tarih seçtirir.\n\nTemel kullanım: label (FormControlLabel), mode (single|multiple|range), helperText ve componentId. Durum prop'ları: isDisabled, isRequired, isInvalid, isReadOnly. children almaz (element).\n\nVeri bağlama: label ve helperText metin prop'ları refs ile bağlanabilir — type:\"field\", type:\"string\" veya type:\"query\"+mappings. isInvalid/isRequired gibi durumlar type:\"field\" ile bağlanabilir.\nÖrnek: { \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"pick_date\" } } }\nSeçilen tarih(ler) componentId üzerinden form.getValue(\"id\") ile okunur; tekrarlayıcı değildir.",
|
|
10397
10481
|
definition: {
|
|
10398
10482
|
props: [
|
|
10399
10483
|
{
|
|
@@ -10479,6 +10563,7 @@ export const BASE_COMPONENTS = [
|
|
|
10479
10563
|
droppable: false,
|
|
10480
10564
|
icon: "time",
|
|
10481
10565
|
isMobile: false,
|
|
10566
|
+
usage: "Tarih ve/veya saat seçici; mode ile tarih, saat ya da her ikisini birden seçtirir.\n\nTemel kullanım: label (FormControlLabel), mode (date|time|datetime), helperText ve componentId. Durum prop'ları: isDisabled, isRequired, isInvalid, isReadOnly. children almaz (element).\n\nVeri bağlama: label ve helperText metin prop'ları refs ile bağlanabilir — type:\"field\" (meta alanı), type:\"string\" (çok dilli) veya type:\"query\"+mappings. isRequired/isInvalid durumları type:\"field\" ile bağlanabilir.\nÖrnek: { \"refs\": { \"helperText\": { \"type\": \"field\", \"ref\": \"AppointmentHint\" } } }\nSeçilen değer componentId üzerinden form.getValue(\"id\") ile okunur; tekrarlayıcı değildir.",
|
|
10482
10567
|
definition: {
|
|
10483
10568
|
props: [
|
|
10484
10569
|
{
|
|
@@ -10564,6 +10649,7 @@ export const BASE_COMPONENTS = [
|
|
|
10564
10649
|
droppable: true,
|
|
10565
10650
|
icon: "keyboard",
|
|
10566
10651
|
isMobile: true,
|
|
10652
|
+
usage: "Klavye açıldığında içeriği yukarı kaydıran yapısal kapsayıcıdır (React Native); form ekranlarında input'ların klavye altında kalmasını önler.\n\nTemel kullanım: behavior (padding|height|position), keyboardVerticalOffset (dikey ofset, sayı), className/style ve componentId. droppable'dır; children olarak form öğeleri (input, textarea, button vb.) yerleştirilir.\n\nVeri bağlama: Yapısal bir wrapper olduğu için kendi prop'ları genelde statik kalır; veri bağlama içerideki children üzerinden yapılır (örn. içteki input'larda type:\"field\"/type:\"query\"). Bir tekrarlayıcı içindeyse children'ı satır şablonu olarak taşıyabilir.\nÖrnek (yapı): { \"props\": { \"behavior\": \"padding\", \"keyboardVerticalOffset\": 80 }, \"children\": [ /* input, textarea ... */ ] }",
|
|
10567
10653
|
definition: {
|
|
10568
10654
|
props: [
|
|
10569
10655
|
{
|
|
@@ -10620,6 +10706,7 @@ export const BASE_COMPONENTS = [
|
|
|
10620
10706
|
droppable: false,
|
|
10621
10707
|
icon: "phone",
|
|
10622
10708
|
isMobile: true,
|
|
10709
|
+
usage: "Sistem durum çubuğunu kontrol eden görünmez bir kontrolcüdür (React Native); ekranın üst durum çubuğunun stilini ve görünürlüğünü ayarlar.\n\nTemel kullanım: barStyle (default|light-content|dark-content), backgroundColor (metin; örn. \"#FFFFFF\"), hidden (gizle) ve translucent (Android yarı saydam) switch'leri. children almaz; görsel bir alan kaplamaz.\n\nVeri bağlama: backgroundColor ve barStyle prop'ları gerekirse refs ile bağlanabilir — type:\"field\" (sayfa/meta alanı) veya type:\"page\" ile sayfa temasına; çoğu durumda statik değerlerle kullanılır.\nÖrnek: { \"props\": { \"barStyle\": \"light-content\", \"backgroundColor\": \"#000000\", \"translucent\": true } }\nBu component bir tekrarlayıcı değildir.",
|
|
10623
10710
|
definition: {
|
|
10624
10711
|
props: [
|
|
10625
10712
|
{
|
|
@@ -10668,6 +10755,7 @@ export const BASE_COMPONENTS = [
|
|
|
10668
10755
|
droppable: true,
|
|
10669
10756
|
icon: "keyboard",
|
|
10670
10757
|
isMobile: true,
|
|
10758
|
+
usage: "Klavye açıkken TextInput üstünde sabit bir aksesuar barı gösterir (sadece iOS). Temel kullanım: nativeID prop'u, ilgili TextInput'un inputAccessoryViewID değeriyle birebir eşleşmeli; backgroundColor ile bar rengini, className/style ile düzeni ayarlarsın. Bara konacak butonlar/metinler children olarak verilir (örn. 'Bitti' butonu). Veri bağlama: Bu yapısal bir kapsayıcıdır; kendi prop'ları genelde statiktir. Asıl veri, içindeki children node'larda bağlanır; örn. bir text child'ı value'sunu sayfa alanına bağlar: \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"hintText\" } }. backgroundColor'ı dinamik istiyorsan refs ile query/field bağlanabilir.",
|
|
10671
10759
|
definition: {
|
|
10672
10760
|
props: [
|
|
10673
10761
|
{
|
|
@@ -10711,6 +10799,7 @@ export const BASE_COMPONENTS = [
|
|
|
10711
10799
|
droppable: true,
|
|
10712
10800
|
icon: "mouse-pointer",
|
|
10713
10801
|
isMobile: true,
|
|
10802
|
+
usage: "İçeriği tıklanabilir yapan, basınca opaklığı azalan bir kapsayıcıdır (RN). Temel kullanım: activeOpacity (0–1) basılı opaklığı, disabled devre dışı durumunu belirler; onPress / onLongPress handler prop'larına JS yazılır; gösterilecek içerik children olarak verilir. Veri bağlama: Kendisi yapısaldır, veri children üzerinden akar. Bir liste satırı içindeyse onPress içinde repeater alanı kullanılabilir ve child'lar değerlerini bağlar; örn. başlığı satıra bağlamak için içindeki text node: \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"title\" } }. disabled gibi prop'lar refs ile field/query'e bağlanabilir.",
|
|
10714
10803
|
definition: {
|
|
10715
10804
|
props: [
|
|
10716
10805
|
{
|
|
@@ -10763,6 +10852,7 @@ export const BASE_COMPONENTS = [
|
|
|
10763
10852
|
droppable: true,
|
|
10764
10853
|
icon: "mouse-pointer",
|
|
10765
10854
|
isMobile: true,
|
|
10855
|
+
usage: "Basınca alt katman rengi değişen tıklanabilir kapsayıcı (RN). Temel kullanım: underlayColor basılıyken görünen arka rengi, activeOpacity basılı opaklığı, disabled devre dışı durumunu ayarlar; onPress / onLongPress handler'larına JS yazılır; içerik children olarak verilir (TouchableHighlight tek bir child sarmalı sever). Veri bağlama: Yapısal bir saran component'tir; veri içindeki child node'larda bağlanır. Örn. iç metin: \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"label\" } }. Liste satırı içindeyse child'lar repeater ile bağlanır (\"type\": \"repeater\", \"ref\": \"...\"). underlayColor dinamik istenirse refs ile query/field bağlanabilir.",
|
|
10766
10856
|
definition: {
|
|
10767
10857
|
props: [
|
|
10768
10858
|
{
|
|
@@ -10820,6 +10910,7 @@ export const BASE_COMPONENTS = [
|
|
|
10820
10910
|
droppable: true,
|
|
10821
10911
|
icon: "mouse-pointer",
|
|
10822
10912
|
isMobile: true,
|
|
10913
|
+
usage: "Görsel geri bildirim vermeden dokunmayı yakalayan tıklanabilir alan (RN); tam ekran 'boşluğa dokun' ya da klavye kapatma gibi senaryolarda kullanılır. Temel kullanım: disabled devre dışı bırakır; onPress / onLongPress handler'larına JS yazılır; tek bir child sarmalanır. Veri bağlama: Kendisi yapısaldır; veri children üzerinden akar. İçindeki node'lar refs ile bağlanır, örn. metin için \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"caption\" } }; liste satırı içindeyse child'lar \"type\": \"repeater\" ref'leri kullanır.",
|
|
10823
10914
|
definition: {
|
|
10824
10915
|
props: [
|
|
10825
10916
|
{
|
|
@@ -10867,6 +10958,7 @@ export const BASE_COMPONENTS = [
|
|
|
10867
10958
|
droppable: true,
|
|
10868
10959
|
icon: "mouse-pointer",
|
|
10869
10960
|
isMobile: true,
|
|
10961
|
+
usage: "Android'de ripple (dalga) efekti veren tıklanabilir alan (RN). Temel kullanım: useForeground ripple'ın ön planda mı çizileceğini, disabled devre dışı durumunu belirler; onPress / onLongPress handler'larına JS yazılır; içerik children olarak verilir. Veri bağlama: Yapısal kapsayıcıdır; veri içindeki child node'larda bağlanır. Örn. iç metin: \"refs\": { \"value\": { \"type\": \"query\", \"ref\": \"btnLabelQuery\" } }. Liste satırı içindeyse child'lar değerlerini \"type\": \"repeater\" ref'leriyle bağlar.",
|
|
10870
10962
|
definition: {
|
|
10871
10963
|
props: [
|
|
10872
10964
|
{
|
|
@@ -10919,6 +11011,7 @@ export const BASE_COMPONENTS = [
|
|
|
10919
11011
|
droppable: true,
|
|
10920
11012
|
icon: "list",
|
|
10921
11013
|
isMobile: true,
|
|
11014
|
+
usage: "Başlıklı bölümler halinde gruplanmış veriyi gösteren liste (RN SectionList) — örn. alfabetik kişi listesi. Temel kullanım: sections prop'u { title, data[] } yapısındaki bölüm dizisini taşır, keyExtractor satır anahtar alanını, stickySectionHeadersEnabled yapışkan başlığı belirler. children TEK bir şablon satır alt-ağacıdır; render her data öğesi için klonlar. Veri bağlama (tekrarlayıcı kontratı): Veri kaynağını refs.repeater'a bağla: \"refs\": { \"repeater\": { \"type\": \"query\", \"ref\": \"contactsQuery\", \"mappings\": [ { \"name\": \"name\", \"path\": \"FullName\" }, { \"name\": \"avatar\", \"path\": \"PhotoUrl\" } ] } }. Statik alternatif: props.sections = [...]. Şablon satırdaki HER alt node alanını repeater ile bağlamalı: başlık için \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"name\" } }, görsel için \"refs\": { \"src\": { \"type\": \"repeater\", \"ref\": \"avatar\" } }. UYARI: sadece sections vermek yetmez; refs.repeater kurulmaz ve child'larda type:\"repeater\" ref'leri olmazsa satırlar çizilir ama veri görünmez.",
|
|
10922
11015
|
definition: {
|
|
10923
11016
|
props: [
|
|
10924
11017
|
{
|
|
@@ -10967,6 +11060,7 @@ export const BASE_COMPONENTS = [
|
|
|
10967
11060
|
droppable: true,
|
|
10968
11061
|
icon: "list",
|
|
10969
11062
|
isMobile: true,
|
|
11063
|
+
usage: "Çok büyük veri setleri için düşük seviye sanallaştırılmış liste (RN VirtualizedList) — sadece görünür satırları render eder. Temel kullanım: data prop'u kaynağı, keyExtractor satır anahtar alanını, horizontal yatay kaydırmayı, initialNumToRender ilk render edilecek satır sayısını belirler. children TEK bir şablon satır alt-ağacıdır; render her öğe için klonlar. Veri bağlama (tekrarlayıcı kontratı): Veri kaynağını refs.repeater'a bağla: \"refs\": { \"repeater\": { \"type\": \"query\", \"ref\": \"feedQuery\", \"mappings\": [ { \"name\": \"title\", \"path\": \"Title\" }, { \"name\": \"img\", \"path\": \"CoverUrl\" } ] } } (parametreli ise type:\"raw\" + parameters, vitrin ise type:\"showcase\"). Şablon satırdaki HER alt node o alanı repeater ile bağlamalı: \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"title\" } } ve \"refs\": { \"src\": { \"type\": \"repeater\", \"ref\": \"img\" } }. UYARI: refs.repeater + child'larda type:\"repeater\" ref'leri olmadan veri görünmez.",
|
|
10970
11064
|
definition: {
|
|
10971
11065
|
props: [
|
|
10972
11066
|
{
|
|
@@ -11019,6 +11113,7 @@ export const BASE_COMPONENTS = [
|
|
|
11019
11113
|
droppable: false,
|
|
11020
11114
|
icon: "refresh",
|
|
11021
11115
|
isMobile: true,
|
|
11116
|
+
usage: "Bir ScrollView / FlatList içinde aşağı çekerek yenileme (pull-to-refresh) göstergesi sağlar (RN); droppable değildir, kaydırılabilir bir listenin refreshControl'ü olarak kullanılır. Temel kullanım: refreshing yükleniyor durumunu (switch), tintColor iOS spinner rengini, title iOS başlığını, colors Android spinner renklerini (virgüllü), progressBackgroundColor Android arka rengini belirler. Veri bağlama: refreshing prop'u dinamik bir yükleniyor durumuna bağlanabilir; örn. sorgu meta'sından sayfalama/yüklenme durumu için \"refs\": { \"refreshing\": { \"type\": \"queryoptions\", \"ref\": \"listQuery\" } } ya da bir alan için \"refs\": { \"refreshing\": { \"type\": \"field\", \"ref\": \"isLoading\" } }. Yenileme mantığı genelde sarmalayan listenin handler'ında çağrılır.",
|
|
11022
11117
|
definition: {
|
|
11023
11118
|
props: [
|
|
11024
11119
|
{
|
|
@@ -11058,6 +11153,7 @@ export const BASE_COMPONENTS = [
|
|
|
11058
11153
|
droppable: false,
|
|
11059
11154
|
icon: "image",
|
|
11060
11155
|
isMobile: true,
|
|
11156
|
+
usage: "Yatay/dikey kaydırılabilen slayt (carousel) bileşeni — banner, ürün vitrini, galeri için. Temel kullanım: data prop'u slayt dizisi kaynağını, autoPlay otomatik oynatmayı, loop sonsuz döngüyü, pagingEnabled sayfa sayfa kaydırmayı, showDots nokta göstergesini ayarlar. children TEK bir şablon slayt alt-ağacıdır (örn. bir image + başlık kartı); render her veri öğesi için klonlar. Veri bağlama (tekrarlayıcı kontratı): Slayt kaynağını refs.repeater'a bağla: \"refs\": { \"repeater\": { \"type\": \"showcase\", \"ref\": \"bannerShowcase\", \"mappings\": [ { \"name\": \"img\", \"path\": \"ImageUrl\" }, { \"name\": \"title\", \"path\": \"Title\" }, { \"name\": \"link\", \"path\": \"Href\" } ] } } (query/raw da olabilir; statikse props.data = [...]). Şablon slayttaki HER alt node alanını repeater ile bağlamalı: görsel için \"refs\": { \"src\": { \"type\": \"repeater\", \"ref\": \"img\" } }, başlık için \"refs\": { \"value\": { \"type\": \"repeater\", \"ref\": \"title\" } }. UYARI: sadece data vermek yetmez; refs.repeater kurulmadan ve child'larda type:\"repeater\" ref'leri olmadan slaytlar boş görünür.",
|
|
11061
11157
|
definition: {
|
|
11062
11158
|
props: [
|
|
11063
11159
|
{
|
|
@@ -11115,6 +11211,7 @@ export const BASE_COMPONENTS = [
|
|
|
11115
11211
|
droppable: true,
|
|
11116
11212
|
icon: "side-panel-open",
|
|
11117
11213
|
isMobile: true,
|
|
11214
|
+
usage: "Alttan yukarı açılan modal panel. Temel kullanım: snapPoints açılma yüksekliklerini (virgüllü, örn. 25%,50%,90%), index başlangıç snap konumunu, enablePanDownToClose aşağı çekince kapanmayı, showBackdrop arka katmanı, showDragIndicator tutma çubuğunu belirler. Panel içeriği children olarak verilir. Açmak için: bottomsheet'e componentId ver, ayrı bir butonun handler'ında context.ui.open('componentId') çağır. Veri bağlama: Kendisi yapısaldır; veri içindeki child node'larda bağlanır (örn. metin \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"detailText\" } }, ya da içine bir liste koyup tekrarlayıcı kontratını uygula). Bir satırın detayını gösteren sheet ise child'lar repeater alanlarını kullanabilir.",
|
|
11118
11215
|
definition: {
|
|
11119
11216
|
props: [
|
|
11120
11217
|
{
|
|
@@ -11172,6 +11269,7 @@ export const BASE_COMPONENTS = [
|
|
|
11172
11269
|
droppable: true,
|
|
11173
11270
|
icon: "fade",
|
|
11174
11271
|
isMobile: true,
|
|
11272
|
+
usage: "İçeriğini RN/DOM ağacında bulunduğu yerden alıp başka bir noktaya (PortalHost) taşıyan kapsayıcıdır; üst üste binen modal, tooltip, toast gibi overlay'leri kök seviyede render etmek için kullanılır. Temel kullanım: hostName, içeriğin hangi PortalHost altına çizileceğini belirtir; taşınacak içerik children olarak verilir. Veri bağlama: Yapısal/saran bir component'tir, kendi prop'ları genelde statiktir; veri taşınan children içinde bağlanır. Örn. portal içindeki bir metin: \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"message\" } }; içine liste koyarsan o liste tekrarlayıcı kontratını (refs.repeater + child repeater ref'leri) kullanır.",
|
|
11175
11273
|
definition: {
|
|
11176
11274
|
props: [
|
|
11177
11275
|
{
|
|
@@ -11210,6 +11308,7 @@ export const BASE_COMPONENTS = [
|
|
|
11210
11308
|
droppable: true,
|
|
11211
11309
|
icon: "image",
|
|
11212
11310
|
isMobile: true,
|
|
11311
|
+
usage: "Arkaplanında bir görsel olan ve üstüne içerik konabilen kapsayıcı (RN ImageBackground). Temel kullanım: source arkaplan görselini, resizeMode görselin sığma biçimini (cover/contain/stretch/repeat/center) belirler; üstte gösterilecek içerik (başlık, butonlar) children olarak verilir; className/style ile boyut verilir. Veri bağlama: source prop'u dinamik bir görsele bağlanabilir; örn. sayfa görseli için \"refs\": { \"source\": { \"type\": \"page\", \"ref\": \"image\" } }, bir dosya için \"type\": \"file\", bir alan için \"type\": \"field\", ya da bir sorgu sonucundan \"type\": \"query\". Liste satırı içindeyse \"refs\": { \"source\": { \"type\": \"repeater\", \"ref\": \"img\" } }. Üstteki metin/buton children'ları da kendi refs'leriyle (field/query/repeater) bağlanabilir.",
|
|
11213
11312
|
definition: {
|
|
11214
11313
|
props: [
|
|
11215
11314
|
{
|
|
@@ -11274,6 +11373,7 @@ export const BASE_COMPONENTS = [
|
|
|
11274
11373
|
droppable: false,
|
|
11275
11374
|
icon: "globe",
|
|
11276
11375
|
isMobile: true,
|
|
11376
|
+
usage: "Gömülü web sayfası gösterir (react-native-webview); droppable değil, children almaz.\nTemel kullanım: props.source bir URL alır; alternatif olarak props.html ile ham HTML gömülür. javaScriptEnabled, domStorageEnabled, scalesPageToFit switch'leri ile davranış ayarlanır. style RN style objesi, className tailwind sınıfı.\nVeri bağlama: source ve html prop'ları refs ile dinamikleştirilebilir. type:\"field\" ile mevcut sayfanın meta alanına, type:\"query\" (mappings ile) ile sorgu sonucuna, type:\"link\" ile bir link href'ine, type:\"static\" ile sabit değere bağlanır. Bir liste şablonu içinde satır URL'sini göstermek için type:\"repeater\" kullanılır.\nÖrnek: \"refs\": { \"source\": { \"type\": \"field\", \"ref\": \"detayUrl\" } } veya satır içinde: \"refs\": { \"source\": { \"type\": \"repeater\", \"ref\": \"url\" } }",
|
|
11277
11377
|
definition: {
|
|
11278
11378
|
props: [
|
|
11279
11379
|
{
|
|
@@ -11335,6 +11435,7 @@ export const BASE_COMPONENTS = [
|
|
|
11335
11435
|
droppable: false,
|
|
11336
11436
|
icon: "play",
|
|
11337
11437
|
isMobile: true,
|
|
11438
|
+
usage: "Lottie animasyon oynatıcı (lottie-react-native); droppable değil, children almaz.\nTemel kullanım: props.source bir animasyon JSON URL'i veya JSON kaynağı alır; autoPlay ve loop switch'leri, speed (number) ile oynatma kontrol edilir. style/className ile boyut/yerleşim ayarlanır.\nVeri bağlama: source prop'u refs ile bağlanabilir. type:\"file\" ile yüklenmiş bir animasyon dosyasına, type:\"field\" ile meta alanına, type:\"static\" ile sabit URL'e, type:\"query\" (mappings) ile sorgudan gelen URL'e bağlanır. Bir liste şablonu içinde her satırın animasyonunu göstermek için type:\"repeater\".\nÖrnek: \"refs\": { \"source\": { \"type\": \"file\", \"ref\": \"animasyonId\" } } veya satır içinde: \"refs\": { \"source\": { \"type\": \"repeater\", \"ref\": \"lottieUrl\" } }",
|
|
11338
11439
|
definition: {
|
|
11339
11440
|
props: [
|
|
11340
11441
|
{
|
|
@@ -11387,6 +11488,7 @@ export const BASE_COMPONENTS = [
|
|
|
11387
11488
|
droppable: false,
|
|
11388
11489
|
icon: "calendar",
|
|
11389
11490
|
isMobile: true,
|
|
11491
|
+
usage: "Native tarih/saat seçici (react-native-date-picker); droppable değil, children almaz. Form alanıdır (FormControl: isDisabled, isRequired, isInvalid, isReadOnly).\nTemel kullanım: props.label etiket, props.placeholder ipucu metni, props.mode = date | time | datetime. minimumDate/maximumDate ile aralık sınırlanır; değer componentId ile handler'da okunur (form.getValue).\nVeri bağlama: label, placeholder, minimumDate, maximumDate prop'ları refs ile bağlanabilir. Çok dilli etiket için type:\"string\", meta alanından sınır için type:\"field\", sabit için type:\"static\". label'ı sorgudan beslemek için type:\"query\" (mappings).\nÖrnek: \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"dogumTarihiLabel\" }, \"minimumDate\": { \"type\": \"field\", \"ref\": \"minTarih\" } }",
|
|
11390
11492
|
definition: {
|
|
11391
11493
|
props: [
|
|
11392
11494
|
{
|
|
@@ -11489,6 +11591,7 @@ export const BASE_COMPONENTS = [
|
|
|
11489
11591
|
droppable: false,
|
|
11490
11592
|
icon: "edit",
|
|
11491
11593
|
isMobile: true,
|
|
11594
|
+
usage: "Tek kullanımlık şifre (OTP) giriş alanı; droppable değil, children almaz. Form alanıdır (FormControl: isDisabled, isRequired, isInvalid, isReadOnly).\nTemel kullanım: props.label etiket, props.numberOfDigits hane sayısı (number), autoFocus ve secureTextEntry switch'leri. Girilen kod componentId ile handler'da okunur.\nVeri bağlama: label prop'u refs ile bağlanabilir. Çok dilli etiket için type:\"string\", meta alanı için type:\"field\", sabit değer için type:\"static\".\nÖrnek: \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"otpLabel\" } }",
|
|
11492
11595
|
definition: {
|
|
11493
11596
|
props: [
|
|
11494
11597
|
{
|
|
@@ -11572,6 +11675,7 @@ export const BASE_COMPONENTS = [
|
|
|
11572
11675
|
droppable: false,
|
|
11573
11676
|
icon: "image",
|
|
11574
11677
|
isMobile: true,
|
|
11678
|
+
usage: "Galeri/kameradan görsel seçici (expo-image-picker); droppable değil, children almaz. Form alanıdır (FormControl: isDisabled, isRequired, isInvalid, isReadOnly).\nTemel kullanım: props.label etiket, props.multiple çoklu seçim, props.mediaTypes = Images | Videos | All, props.quality (0–1 number). Seçilen dosya(lar) componentId ile handler'da okunur (genellikle upload edilir).\nVeri bağlama: label prop'u refs ile bağlanabilir. Çok dilli etiket için type:\"string\", meta alanı için type:\"field\", sabit için type:\"static\".\nÖrnek: \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"fotografSecLabel\" } }",
|
|
11575
11679
|
definition: {
|
|
11576
11680
|
props: [
|
|
11577
11681
|
{
|
|
@@ -11669,6 +11773,7 @@ export const BASE_COMPONENTS = [
|
|
|
11669
11773
|
droppable: false,
|
|
11670
11774
|
icon: "document",
|
|
11671
11775
|
isMobile: true,
|
|
11776
|
+
usage: "Dosya seçici (expo-document-picker); droppable değil, children almaz. Form alanıdır (FormControl: isDisabled, isRequired, isInvalid, isReadOnly).\nTemel kullanım: props.label etiket, props.multiple çoklu seçim, props.type ile MIME filtresi (örn: application/pdf). Seçilen dosya(lar) componentId ile handler'da okunur.\nVeri bağlama: label prop'u refs ile bağlanabilir. Çok dilli etiket için type:\"string\", meta alanı için type:\"field\", sabit için type:\"static\".\nÖrnek: \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"dosyaSecLabel\" } }",
|
|
11672
11777
|
definition: {
|
|
11673
11778
|
props: [
|
|
11674
11779
|
{
|
|
@@ -11747,6 +11852,7 @@ export const BASE_COMPONENTS = [
|
|
|
11747
11852
|
droppable: false,
|
|
11748
11853
|
icon: "phone",
|
|
11749
11854
|
isMobile: true,
|
|
11855
|
+
usage: "Ülke kodlu telefon giriş alanı; droppable değil, children almaz. Form alanıdır (FormControl: isDisabled, isRequired, isInvalid, isReadOnly).\nTemel kullanım: props.label etiket, props.placeholder ipucu, props.defaultCode varsayılan ülke kodu (örn: TR), props.autoFormat switch. Girilen numara componentId ile handler'da okunur.\nVeri bağlama: label, placeholder, defaultCode prop'ları refs ile bağlanabilir. Çok dilli etiket için type:\"string\", kullanıcı/meta verisinden ön doldurma için type:\"field\", sabit için type:\"static\".\nÖrnek: \"refs\": { \"label\": { \"type\": \"string\", \"ref\": \"telefonLabel\" }, \"defaultCode\": { \"type\": \"field\", \"ref\": \"ulkeKodu\" } }",
|
|
11750
11856
|
definition: {
|
|
11751
11857
|
props: [
|
|
11752
11858
|
{
|
|
@@ -11830,6 +11936,7 @@ export const BASE_COMPONENTS = [
|
|
|
11830
11936
|
droppable: false,
|
|
11831
11937
|
icon: "tab",
|
|
11832
11938
|
isMobile: true,
|
|
11939
|
+
usage: "Native sekme görünümü (react-native-tab-view); droppable değil. Sekme içerikleri children olarak verilir.\nTemel kullanım: props.routes bir array'dir; her item { key, title, icon? } içerir ve sıra children sırasıyla eşleşir. props.initialIndex başlangıç sekmesi (number), swipeEnabled ve lazy switch'leri. children: her sekmenin içerik alt-ağacı.\nVeri bağlama: routes statik array olarak props.routes ile verilir; sekme başlıkları metin olduğundan dinamik liste için tipik kullanım değildir. Sekme içeriğindeki child node'lar kendi prop'larını ayrı ayrı refs ile (type:\"query\", type:\"field\", type:\"repeater\") bağlar.\nÖrnek: \"props\": { \"routes\": [ { \"key\": \"genel\", \"title\": \"Genel\" }, { \"key\": \"yorum\", \"title\": \"Yorumlar\" } ], \"initialIndex\": 0 }",
|
|
11833
11940
|
definition: {
|
|
11834
11941
|
props: [
|
|
11835
11942
|
{
|
|
@@ -11899,6 +12006,7 @@ export const BASE_COMPONENTS = [
|
|
|
11899
12006
|
droppable: true,
|
|
11900
12007
|
icon: "location",
|
|
11901
12008
|
isMobile: true,
|
|
12009
|
+
usage: "Native harita bileşeni (react-native-maps); wrapper'dır ve droppable=true — children olarak map-marker node'ları alır.\nTemel kullanım: props.latitude/longitude merkez koordinat, latitudeDelta/longitudeDelta zoom seviyesi (number), showsUserLocation ve showsMyLocationButton switch'leri, props.mapType = standard | satellite | hybrid | terrain. children: bir veya birden çok map-marker.\nVeri bağlama: latitude, longitude, latitudeDelta, longitudeDelta prop'ları refs ile bağlanabilir. Meta alanından merkez için type:\"field\", sorgudan için type:\"query\" (mappings), sabit için type:\"static\".\nDinamik işaretçiler için: children'a tek bir map-marker şablonu koyup map-view üzerinde refs.repeater = { type:\"query\", ref:\"<konumSorgu>\", mappings:[{name:\"lat\",path:\"Lat\"},{name:\"lng\",path:\"Lng\"},{name:\"baslik\",path:\"Ad\"}] } verilir; şablon marker her satır için klonlanır.\nÖrnek: \"refs\": { \"latitude\": { \"type\": \"field\", \"ref\": \"merkezLat\" }, \"longitude\": { \"type\": \"field\", \"ref\": \"merkezLng\" }, \"repeater\": { \"type\": \"query\", \"ref\": \"subeler\", \"mappings\": [ { \"name\": \"lat\", \"path\": \"Lat\" }, { \"name\": \"lng\", \"path\": \"Lng\" }, { \"name\": \"baslik\", \"path\": \"Ad\" } ] } }",
|
|
11902
12010
|
definition: {
|
|
11903
12011
|
props: [
|
|
11904
12012
|
{
|
|
@@ -11984,6 +12092,7 @@ export const BASE_COMPONENTS = [
|
|
|
11984
12092
|
droppable: false,
|
|
11985
12093
|
icon: "pin",
|
|
11986
12094
|
isMobile: true,
|
|
12095
|
+
usage: "Harita üzerinde işaretleyici (react-native-maps Marker); droppable değil, children almaz. Bir map-view'in child'ı olarak kullanılır.\nTemel kullanım: props.latitude/longitude konum (number), props.title başlık, props.description açıklama, props.pinColor pin rengi.\nVeri bağlama: latitude, longitude, title, description, pinColor prop'ları refs ile bağlanabilir. Tekil işaretçi için meta alanından type:\"field\" ya da sabit type:\"static\".\nDinamik işaretçiler için map-view'in repeater kontratının ŞABLON child'ı olarak kullanılır: her satır alanı type:\"repeater\" ile bağlanır — \"refs\": { \"latitude\": { \"type\": \"repeater\", \"ref\": \"lat\" }, \"longitude\": { \"type\": \"repeater\", \"ref\": \"lng\" }, \"title\": { \"type\": \"repeater\", \"ref\": \"baslik\" } }. Bu ref'ler her satırın değerine çözülür ve marker klonlanır.",
|
|
11987
12096
|
definition: {
|
|
11988
12097
|
props: [
|
|
11989
12098
|
{
|
|
@@ -12027,6 +12136,7 @@ export const BASE_COMPONENTS = [
|
|
|
12027
12136
|
droppable: false,
|
|
12028
12137
|
icon: "chart-bar",
|
|
12029
12138
|
isMobile: true,
|
|
12139
|
+
usage: "Çubuk grafik (react-native-gifted-charts); droppable değil, children almaz.\nTemel kullanım: props.data grafik verisidir; her item { value, label?, frontColor? } biçimindedir. barWidth ve spacing (number) ile yerleşim, props.frontColor varsayılan çubuk rengi, showGradient switch. Statik veri props.data array'i olarak verilebilir.\nVeri bağlama: data prop'u refs.data ile bir sorguya bağlanır ve mappings sorgu kolonlarını grafik alanlarına (value/label/frontColor) çevirir. type:\"query\" veya parametreli type:\"raw\", vitrin için type:\"showcase\" uygundur.\nÖrnek: \"refs\": { \"data\": { \"type\": \"query\", \"ref\": \"aylikSatis\", \"mappings\": [ { \"name\": \"value\", \"path\": \"Tutar\" }, { \"name\": \"label\", \"path\": \"Ay\" } ] } }. Not: grafik veriyi tek prop'tan okur, bu yüzden array-repeater kontratı (child type:\"repeater\") gerekmez.",
|
|
12030
12140
|
definition: {
|
|
12031
12141
|
props: [
|
|
12032
12142
|
{
|
|
@@ -12085,6 +12195,7 @@ export const BASE_COMPONENTS = [
|
|
|
12085
12195
|
droppable: false,
|
|
12086
12196
|
icon: "chart-line",
|
|
12087
12197
|
isMobile: true,
|
|
12198
|
+
usage: "Çizgi grafik (react-native-gifted-charts); droppable değil, children almaz.\nTemel kullanım: props.data grafik verisidir; her item { value, label?, dataPointText? } biçimindedir. curved (eğrili), areaChart (alan dolgusu), showVerticalLines (dikey ızgara) switch'leri, props.thickness (number) çizgi kalınlığı, props.color çizgi rengi.\nVeri bağlama: data prop'u refs.data ile bir sorguya bağlanır ve mappings kolonları grafik alanlarına (value/label/dataPointText) çevirir. type:\"query\" veya parametreli type:\"raw\", vitrin için type:\"showcase\" uygundur.\nÖrnek: \"refs\": { \"data\": { \"type\": \"query\", \"ref\": \"trafik\", \"mappings\": [ { \"name\": \"value\", \"path\": \"Ziyaret\" }, { \"name\": \"label\", \"path\": \"Gun\" } ] } }. Not: veri tek prop üzerinden okunur; child bazlı array-repeater kontratı gerekmez.",
|
|
12088
12199
|
definition: {
|
|
12089
12200
|
props: [
|
|
12090
12201
|
{
|
|
@@ -12148,6 +12259,7 @@ export const BASE_COMPONENTS = [
|
|
|
12148
12259
|
droppable: false,
|
|
12149
12260
|
icon: "chart-pie",
|
|
12150
12261
|
isMobile: true,
|
|
12262
|
+
usage: "Pasta/donut grafik çizer (react-native-gifted-charts). Temel kullanım: data array key olarak verilir; her item { value, color?, text? } biçimindedir. radius / innerRadius (donut için), donut ve showText switch'leri görünümü ayarlar; children almaz. Veri bağlama: data prop'u bir sorgu sonucuna refs ile bağlanır ve mappings her satırı { value, color?, text? } şekline çevirir. Örn: refs:{ data:{ type:\"query\", ref:\"satisDagilimi\", mappings:[{name:\"value\",path:\"Tutar\"},{name:\"text\",path:\"Kategori\"},{name:\"color\",path:\"Renk\"}] } }. field/showcase tipleri de uygundur; sabit grafik için props.data = [{value:40,color:\"#f00\",text:\"A\"}, ...].",
|
|
12151
12263
|
definition: {
|
|
12152
12264
|
props: [
|
|
12153
12265
|
{
|
|
@@ -12206,6 +12318,7 @@ export const BASE_COMPONENTS = [
|
|
|
12206
12318
|
droppable: false,
|
|
12207
12319
|
icon: "camera",
|
|
12208
12320
|
isMobile: true,
|
|
12321
|
+
usage: "Kamera önizleme bileşeni (expo-camera). Temel kullanım: facing (back/front), flashMode (off/on/auto/torch) ve zoom (0–1) prop'ları ile kontrol edilir; children almaz, componentId ile dataBus/handler üzerinden çekim yapılır. Veri bağlama: dinamik prop nadirdir ama facing/zoom gibi değerler bir alana bağlanabilir. Örn dinamik yön: refs:{ facing:{ type:\"field\", ref:\"varsayilanKamera\" } } veya refs:{ zoom:{ type:\"query\", ref:\"kameraAyar\", mappings:[{name:\"zoom\",path:\"ZoomDegeri\"}] } }. Çoğu durumda props ile statik kullanılır (facing:\"back\", flashMode:\"auto\").",
|
|
12209
12322
|
definition: {
|
|
12210
12323
|
props: [
|
|
12211
12324
|
{
|
|
@@ -12281,6 +12394,7 @@ export const BASE_COMPONENTS = [
|
|
|
12281
12394
|
droppable: false,
|
|
12282
12395
|
icon: "barcode",
|
|
12283
12396
|
isMobile: true,
|
|
12397
|
+
usage: "Barkod/QR okuyucu (expo-camera). Temel kullanım: barcodeTypes virgüllü liste olarak desteklenen tipleri belirler (örn \"qr,code128,ean13,upc_a,pdf417\"); children almaz, okunan değer componentId ile dataBus'a yazılır ve handler'da okunur. Veri bağlama: barcodeTypes bir alana/sorguya bağlanabilir. Örn: props:{ barcodeTypes:\"qr,ean13\" } veya dinamik: refs:{ barcodeTypes:{ type:\"field\", ref:\"izinliBarkodTipleri\" } }. Genellikle props ile statik kullanılır.",
|
|
12284
12398
|
definition: {
|
|
12285
12399
|
props: [
|
|
12286
12400
|
{
|
|
@@ -12319,6 +12433,7 @@ export const BASE_COMPONENTS = [
|
|
|
12319
12433
|
droppable: true,
|
|
12320
12434
|
icon: "link",
|
|
12321
12435
|
isMobile: true,
|
|
12436
|
+
usage: "Tıklanınca router.push(href) ile gezinen tıklanabilir kapsayıcıdır (wrapper). Temel kullanım: href hedefini, activeOpacity (basınca opaklık 0–1), disabled ve onPress (JS handler) prop'larını alır; children olarak tıklanabilir içerik (kart, satır, text+image) yerleştirilir. Veri bağlama: href bir Link'e bağlanır → refs:{ href:{ type:\"link\", ref:\"urunDetayLink\" } }; ayrıca page ile sayfa yoluna bağlanabilir refs:{ href:{ type:\"page\", ref:\"path\" } }. Bir tekrarlayıcı (card-list/flat-list) ŞABLONU içindeyse href satıra göre değişmelidir → refs:{ href:{ type:\"repeater\", ref:\"detayUrl\" } } (üst listenin refs.repeater.mappings içinde name:\"detayUrl\" tanımlı olmalı).",
|
|
12322
12437
|
definition: {
|
|
12323
12438
|
props: [
|
|
12324
12439
|
{
|
|
@@ -12375,6 +12490,7 @@ export const BASE_COMPONENTS = [
|
|
|
12375
12490
|
droppable: true,
|
|
12376
12491
|
icon: "drag-handle",
|
|
12377
12492
|
isMobile: true,
|
|
12493
|
+
usage: "Kaydırılabilir satır kapsayıcısı; sola/sağa kaydırınca eylem butonları gösterir (react-native-gesture-handler, wrapper). Temel kullanım: leftActions / rightActions JSON array prop'larıyla [{label, color, textColor, width}] butonlar tanımlanır; friction sürtünme çarpanını, onSwipeLeft/onSwipeRight JS handler'ları eylemleri belirler; children olarak satır içeriği konur. Veri bağlama: genellikle bir liste (flat-list/section-list) ŞABLONU içinde kullanılır; satır içeriğindeki text/image child'ları satır alanlarına refs:{ value:{ type:\"repeater\", ref:\"baslik\" } } ile bağlanır. leftActions/rightActions çoğunlukla props ile statiktir; dinamikse refs:{ rightActions:{ type:\"field\", ref:\"satirEylemleri\" } }.",
|
|
12378
12494
|
definition: {
|
|
12379
12495
|
props: [
|
|
12380
12496
|
{
|
|
@@ -12434,6 +12550,7 @@ export const BASE_COMPONENTS = [
|
|
|
12434
12550
|
droppable: false,
|
|
12435
12551
|
icon: "drag-handle",
|
|
12436
12552
|
isMobile: true,
|
|
12553
|
+
usage: "Sürükle-bırak ile yeniden sıralanan listedir (reanimated + gesture-handler). DİKKAT: bu bileşen kendi item'larını items JSON array prop'undan (her öğe { id, label, ... }, id ZORUNLU) render eder; itemHeight satır yüksekliği, onChange (JS) sıralama değişince tetiklenir, componentId yeni sırayı dataBus'a yazar. children'ı şablon olarak KULLANMAZ — repeater kontratı uygulanmaz. Veri bağlama: items'ı bir sorguya bağla ve mappings ile { id, label } üret → refs:{ items:{ type:\"query\", ref:\"gorevler\", mappings:[{name:\"id\",path:\"Id\"},{name:\"label\",path:\"Baslik\"}] } }. Sabit liste için props.items = [{id:\"1\",label:\"A\"},{id:\"2\",label:\"B\"}].",
|
|
12437
12554
|
definition: {
|
|
12438
12555
|
props: [
|
|
12439
12556
|
{
|
|
@@ -12487,6 +12604,7 @@ export const BASE_COMPONENTS = [
|
|
|
12487
12604
|
droppable: false,
|
|
12488
12605
|
icon: "checkbox",
|
|
12489
12606
|
isMobile: true,
|
|
12607
|
+
usage: "Çoklu seçim kutusu; modal picker ile arama ve birden çok seçim sağlar. Temel kullanım: label, options (options-editor), placeholder, maxSelect, searchable switch'i ve onChange (JS) prop'ları vardır; seçimi componentId (formBus key) ile forma yazar, children almaz. FormControl durumları isDisabled/isRequired/isInvalid/isReadOnly. Veri bağlama: seçenekleri statik options yerine sorgudan doldurmak için options'ı bağla → refs:{ options:{ type:\"query\", ref:\"sehirler\", mappings:[{name:\"label\",path:\"Ad\"},{name:\"value\",path:\"Kod\"}] } }. label ise field/string ile bağlanabilir: refs:{ label:{ type:\"field\", ref:\"formEtiketi\" } }.",
|
|
12490
12608
|
definition: {
|
|
12491
12609
|
props: [
|
|
12492
12610
|
{
|
|
@@ -12585,6 +12703,7 @@ export const BASE_COMPONENTS = [
|
|
|
12585
12703
|
droppable: false,
|
|
12586
12704
|
icon: "switcher",
|
|
12587
12705
|
isMobile: true,
|
|
12706
|
+
usage: "Segmentli seçim çubuğu; filtre veya görünüm geçişi için tek seçimli sekme grubu sunar. Temel kullanım: options (options-editor), activeColor / inactiveColor, scrollable switch'i ve onChange (JS) prop'ları; seçili değeri componentId (formBus key) ile forma/dataBus'a yazar, children almaz. Veri bağlama: segmentleri dinamik üretmek için options'ı bir sorguya bağla → refs:{ options:{ type:\"query\", ref:\"durumlar\", mappings:[{name:\"label\",path:\"Ad\"},{name:\"value\",path:\"Kod\"}] } }. Renk prop'ları genelde statik (activeColor:\"#2563eb\"), gerekirse field ile bağlanabilir.",
|
|
12588
12707
|
definition: {
|
|
12589
12708
|
props: [
|
|
12590
12709
|
{
|
|
@@ -12647,6 +12766,7 @@ export const BASE_COMPONENTS = [
|
|
|
12647
12766
|
droppable: false,
|
|
12648
12767
|
icon: "vid-play",
|
|
12649
12768
|
isMobile: true,
|
|
12769
|
+
usage: "Ses oynatıcı; isteğe bağlı kontrollerle çalar ve componentId (dataBus key) üzerinden programatik play/pause/stop kabul eder (expo-av). Temel kullanım: src (ses URL'i), autoPlay, loop, showControls switch'leri ve onEnd (JS) handler'ı; children almaz. Veri bağlama: src'yi sorgu/alan/dosyaya bağla. Örn sorgudan: refs:{ src:{ type:\"query\", ref:\"podcastBolum\", mappings:[{name:\"src\",path:\"SesUrl\"}] } }; dosya için refs:{ src:{ type:\"file\", ref:\"kayit123\" } } veya meta alanı refs:{ src:{ type:\"field\", ref:\"sesDosyasi\" } }. Bir liste şablonu içindeyse refs:{ src:{ type:\"repeater\", ref:\"ses\" } }.",
|
|
12650
12770
|
definition: {
|
|
12651
12771
|
props: [
|
|
12652
12772
|
{
|
|
@@ -12709,6 +12829,7 @@ export const BASE_COMPONENTS = [
|
|
|
12709
12829
|
droppable: false,
|
|
12710
12830
|
icon: "cloud-download",
|
|
12711
12831
|
isMobile: true,
|
|
12832
|
+
usage: "Görünmez veri sağlayıcıdır: declarative HTTP isteği yapıp sonucu dataBus'a yazar (sayfaya UI eklemez, children render etmez). Temel kullanım: url, method (GET/POST/...), headers ve body (JSON), resultPath (örn \"data.items\") ile yanıttan çekilecek yol; çıktı key prop'una, loadingKey/errorKey ayrı dataBus key'lerine yazılır; deps (virgüllü key) değişince yeniden çeker, pollInterval ms ile periyodik yeniler, disabled kapatır. Veri akışı: bu bileşen sonucu key altında dataBus'a koyar; ALT AĞAÇ bu veriyi göstermek için bir liste (flat-list/card-list) kullanır ve o listenin satırları repeater ref'leriyle alanlara bağlanır. url/headers/body genelde statik props'tur; dinamik url için refs:{ url:{ type:\"field\", ref:\"apiBase\" } } kullanılabilir. Not: sorgu sonuçlarını göstermek için doğrudan list+refs.repeater (type:\"query\") tercih edilir; data-fetch harici REST API'ler içindir.",
|
|
12712
12833
|
definition: {
|
|
12713
12834
|
props: [
|
|
12714
12835
|
{
|
|
@@ -12800,6 +12921,7 @@ export const BASE_COMPONENTS = [
|
|
|
12800
12921
|
droppable: false,
|
|
12801
12922
|
icon: "link",
|
|
12802
12923
|
isMobile: true,
|
|
12924
|
+
usage: "Görünmez gerçek zamanlı bağlantı sağlayıcıdır: WebSocket açar ve gelen mesajları dataBus'a yazar (UI/children render etmez). Temel kullanım: url (wss://...), enabled switch'i, reconnect ve reconnectDelay (ms) ile otomatik yeniden bağlanma; gelen mesajlar componentId (dataBus key) altına birikir; onMessage/onConnect/onDisconnect JS handler'larıyla işlenir. Veri akışı: bileşen veriyi componentId key'ine yazar; canlı listeyi göstermek için ALT AĞAÇTA bir tekrarlayıcı (flat-list/section-list) kullanılır ve satır child'ları refs:{ value:{ type:\"repeater\", ref:\"<alan>\" } } ile bağlanır (üst liste refs.repeater ile dataBus key'ine/sorguya bağlı). url genelde statik props; dinamikse refs:{ url:{ type:\"field\", ref:\"wsAdresi\" } }.",
|
|
12803
12925
|
definition: {
|
|
12804
12926
|
props: [
|
|
12805
12927
|
{
|
|
@@ -12854,6 +12976,7 @@ export const BASE_COMPONENTS = [
|
|
|
12854
12976
|
droppable: false,
|
|
12855
12977
|
icon: "notification",
|
|
12856
12978
|
isMobile: true,
|
|
12979
|
+
usage: "Görünmez olay dinleyicisidir: push/local bildirim olaylarını dinleyip dataBus'a yazar (expo-notifications, UI/children render etmez). Temel kullanım: componentId (dataBus key) altına bildirim olaylarını biriktirir; onReceive (uygulama açıkken gelen bildirim) ve onTap (bildirime dokunma) JS handler'larıyla tepki verilir. Veri akışı: olaylar componentId key'ine yazılır; bunları listelemek için ALT AĞAÇTA bir tekrarlayıcı (flat-list) kullanılır ve satır metni refs:{ value:{ type:\"repeater\", ref:\"baslik\" } } ile bağlanır. Bu bileşenin props'larında veri bağlama gerekmez; davranış handler'larda kurulur.",
|
|
12857
12980
|
definition: {
|
|
12858
12981
|
props: [
|
|
12859
12982
|
{
|
|
@@ -12883,6 +13006,7 @@ export const BASE_COMPONENTS = [
|
|
|
12883
13006
|
droppable: false,
|
|
12884
13007
|
icon: "link",
|
|
12885
13008
|
isMobile: true,
|
|
13009
|
+
usage: "Gelen deep link / universal link olaylarını dinleyip yakalanan URL'yi dataBus'a yazan görünmez bir dinleyici element'tir (children yok).\nTemel kullanım: props.componentId ile yazılacak dataBus anahtarını belirle (gelen link bu key'e kaydedilir), props.handleInitial (switch) uygulamayı linkle açan ilk URL'yi de okur, props.onLink (handler/JS) link geldiğinde çalışır. Yakalanan değer dataBus üzerinden diğer component'lere taşınır; refs ile bağlanan veri kaynağı değildir, kendisi veri ÜRETİR.\nVeri bağlama: Bu component'in kendi prop'larına refs ile bağlama tipik değildir; componentId statik bir anahtar (props.componentId = \"incomingLink\") olarak verilir. Üretilen link değerini kullanmak isteyen child/diğer node'lar dataBus key'i üzerinden okur (örn. bir raw query'nin parameters'ında bu key kullanılır).\nÖrnek: { \"props\": { \"componentId\": \"incomingLink\", \"handleInitial\": true } }",
|
|
12886
13010
|
definition: {
|
|
12887
13011
|
props: [
|
|
12888
13012
|
{
|
|
@@ -12912,6 +13036,7 @@ export const BASE_COMPONENTS = [
|
|
|
12912
13036
|
droppable: true,
|
|
12913
13037
|
icon: "warning",
|
|
12914
13038
|
isMobile: true,
|
|
13039
|
+
usage: "Çocuk node'larda oluşan render hatalarını yakalayıp uygulamanın çökmesini önleyen, hata anında fallback gösteren bir wrapper'dır (children alır ve sarar).\nTemel kullanım: children olarak korumak istediğin alt ağacı yerleştir. props.fallbackTitle ve props.fallbackMessage hata durumunda gösterilecek başlık ve mesajı belirler; props.componentId, className ve style ile kimliklendirip stillendir. droppable:true olduğundan içine serbestçe component eklenir.\nVeri bağlama: fallbackTitle / fallbackMessage prop'ları refs ile bağlanabilir; çok dilli metin için type:\"string\", sayfa/meta alanı için type:\"field\" ya da type:\"page\", sorgu sonucu için type:\"query\" kullan. children kendi refs'leriyle (query/field/repeater) bağımsız çalışır.\nÖrnek: { \"refs\": { \"fallbackMessage\": { \"type\": \"string\", \"ref\": \"errFallbackMsg\" } } }",
|
|
12915
13040
|
definition: {
|
|
12916
13041
|
props: [
|
|
12917
13042
|
{
|
|
@@ -12954,6 +13079,7 @@ export const BASE_COMPONENTS = [
|
|
|
12954
13079
|
droppable: false,
|
|
12955
13080
|
icon: "paint-brush",
|
|
12956
13081
|
isMobile: true,
|
|
13082
|
+
usage: "Kullanıcının hex renk seçmesini sağlayan form kontrolüdür (children yok); seçilen değeri form/dataBus'a yazar.\nTemel kullanım: props.label etiketi, props.value başlangıç hex değerini (örn. \"#FF0000\"), props.showAlpha (switch) alpha kanalını açar. FormControl durum prop'ları isDisabled, isRequired, isInvalid, isReadOnly ile davranışı kontrol et; props.componentId değeri form.getValue ile okumak için kullanılır.\nVeri bağlama: label ve value prop'ları refs ile bağlanabilir. label için çok dilli type:\"string\" ya da meta için type:\"field\"; başlangıç değerini bir kayıttan getirmek için value'yu type:\"query\" (mappings ile kolon) veya bir tekrarlayıcı içindeyse type:\"repeater\" ile bağla.\nÖrnek: { \"props\": { \"showAlpha\": true }, \"refs\": { \"value\": { \"type\": \"field\", \"ref\": \"brandColor\" } } }",
|
|
12957
13083
|
definition: {
|
|
12958
13084
|
props: [
|
|
12959
13085
|
{
|
|
@@ -13032,6 +13158,7 @@ export const BASE_COMPONENTS = [
|
|
|
13032
13158
|
droppable: false,
|
|
13033
13159
|
icon: "graph-bar",
|
|
13034
13160
|
isMobile: true,
|
|
13161
|
+
usage: "0–100 arası bir değeri dairesel ilerleme halkası olarak gösteren salt görsel element'tir (children yok).\nTemel kullanım: props.value (number, 0–100) doluluk oranı, props.size halka boyutu (px), props.strokeWidth çizgi kalınlığı, props.color dolu kısmın rengi, props.trackColor arka iz rengi, props.showLabel (switch) ortada yüzde metnini gösterir.\nVeri bağlama: Asıl bağlanacak prop value'dur. Bir sorgu sonucundaki sayıya bağlamak için type:\"query\" (mappings ile ilgili kolonu \"value\" adına eşle), sayfa/meta alanı için type:\"field\", statik değer için type:\"static\" kullan. color/trackColor da type:\"field\" ile temalanabilir. Bir liste/tekrarlayıcı satırı içinde her halka kendi değerini type:\"repeater\" ile alır.\nÖrnek: { \"refs\": { \"value\": { \"type\": \"query\", \"ref\": \"progressQ\", \"mappings\": [{ \"name\": \"value\", \"path\": \"Percent\" }] } } }",
|
|
13035
13162
|
definition: {
|
|
13036
13163
|
props: [
|
|
13037
13164
|
{
|
|
@@ -13099,6 +13226,7 @@ export const BASE_COMPONENTS = [
|
|
|
13099
13226
|
droppable: false,
|
|
13100
13227
|
icon: "crop",
|
|
13101
13228
|
isMobile: true,
|
|
13229
|
+
usage: "Verilen görseli kullanıcıya kırptıran etkileşimli element'tir (children yok); kırpılan sonucu form/dataBus'a yazar.\nTemel kullanım: props.source kırpılacak görsel kaynağı (image), props.aspectRatio en-boy oranı (örn. 1 = kare), props.cropShape dropdown ile \"rectangle\" veya \"circle\" kırpma şekli; props.componentId ile sonucu handler'da oku.\nVeri bağlama: Bağlanacak ana prop source'tur. Yüklenen bir dosyaya bağlamak için type:\"file\", sayfanın görseli için type:\"page\" ref:\"image\", bir kayıttan gelen görsel URL'si için type:\"query\" (mappings ile URL kolonunu \"source\"a eşle), meta alanı için type:\"field\" kullan. Tekrarlayıcı satırı içinde source'u type:\"repeater\" ile bağla.\nÖrnek: { \"props\": { \"aspectRatio\": 1, \"cropShape\": \"circle\" }, \"refs\": { \"source\": { \"type\": \"file\", \"ref\": \"uploadedAvatar\" } } }",
|
|
13102
13230
|
definition: {
|
|
13103
13231
|
props: [
|
|
13104
13232
|
{
|
|
@@ -13156,6 +13284,7 @@ export const BASE_COMPONENTS = [
|
|
|
13156
13284
|
droppable: true,
|
|
13157
13285
|
icon: "overflow-menu-vertical",
|
|
13158
13286
|
isMobile: true,
|
|
13287
|
+
usage: "Sardığı içeriğe uzun basıldığında native bir bağlam menüsü açan wrapper'dır (children sarar; uzun basış menüyü tetikler).\nTemel kullanım: children olarak menüyü tetikleyecek görünür içeriği koy. props.actions, her biri { title, systemIcon, destructive } alanlarına sahip bir array'dir (menü öğeleri); destructive:true öğeyi yıkıcı/kırmızı gösterir. props.componentId, className, style ile kimliklendir ve stillendir.\nVeri bağlama: actions statik bir dizi olarak (props.actions = [{ \"title\": \"Sil\", \"destructive\": true }]) verilebilir; öğe başlıkları çok dilli ise tek tek type:\"string\" ile bağlanabilir. Sardığı children kendi refs'leriyle (type:\"query\"/\"field\"/\"repeater\") veri gösterir; bu component'in kendisi bir tekrarlayıcı DEĞİLDİR, refs.repeater kullanmaz.\nÖrnek: { \"props\": { \"actions\": [{ \"title\": \"Paylaş\", \"systemIcon\": \"square.and.arrow.up\" }, { \"title\": \"Sil\", \"destructive\": true }] } }",
|
|
13159
13288
|
definition: {
|
|
13160
13289
|
props: [
|
|
13161
13290
|
{
|