@nar-bus/ui-kit 1.8.1 → 1.10.0
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/Button-DsTGnChX.js +3222 -0
- package/dist/atoms/Badge.d.ts +1 -1
- package/dist/atoms/Badge.d.ts.map +1 -1
- package/dist/atoms/RadioGroup.d.ts +2 -0
- package/dist/atoms/RadioGroup.d.ts.map +1 -1
- package/dist/atoms/Tooltip.d.ts.map +1 -1
- package/dist/i18n/en.json.d.ts +28 -0
- package/dist/i18n/resources.d.ts +56 -0
- package/dist/i18n/resources.d.ts.map +1 -1
- package/dist/i18n/resources.js +1 -1
- package/dist/i18n/tr.json.d.ts +28 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3384 -5844
- package/dist/map.d.ts +7 -0
- package/dist/map.d.ts.map +1 -0
- package/dist/map.js +174 -0
- package/dist/organisms/DataTable.d.ts +18 -1
- package/dist/organisms/DataTable.d.ts.map +1 -1
- package/dist/organisms/FilterPanel.d.ts +4 -1
- package/dist/organisms/FilterPanel.d.ts.map +1 -1
- package/dist/organisms/GlobalSearch.d.ts +61 -0
- package/dist/organisms/GlobalSearch.d.ts.map +1 -0
- package/dist/organisms/MapLayerControl.d.ts +33 -0
- package/dist/organisms/MapLayerControl.d.ts.map +1 -0
- package/dist/organisms/MapLegend.d.ts +25 -0
- package/dist/organisms/MapLegend.d.ts.map +1 -0
- package/dist/organisms/MapShell.d.ts +64 -0
- package/dist/organisms/MapShell.d.ts.map +1 -0
- package/dist/organisms/RichTextEditor.d.ts +35 -0
- package/dist/organisms/RichTextEditor.d.ts.map +1 -0
- package/dist/organisms/RichTextToolbar.d.ts +12 -0
- package/dist/organisms/RichTextToolbar.d.ts.map +1 -0
- package/dist/organisms/index.d.ts +2 -0
- package/dist/organisms/index.d.ts.map +1 -1
- package/dist/resources-DnPSGheR.js +48 -0
- package/dist/templates/ListPageLayout.d.ts +17 -1
- package/dist/templates/ListPageLayout.d.ts.map +1 -1
- package/dist/theme.css +1 -1
- package/dist/ui-kit.css +1 -1
- package/dist/utils/tooltipPosition.d.ts +51 -0
- package/dist/utils/tooltipPosition.d.ts.map +1 -0
- package/package.json +19 -3
- package/dist/resources-BLEM3J7E.js +0 -44
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FIX-498 — Pure tooltip positioning with viewport flip + clamp.
|
|
3
|
+
*
|
|
4
|
+
* The Tooltip component used to split positioning between JS (top/left set on the
|
|
5
|
+
* portaled node) and CSS translate classes (`-translate-x-1/2 -translate-y-full`).
|
|
6
|
+
* With no JS-side number to test, a near-viewport-edge tooltip overflowed and was
|
|
7
|
+
* clipped (e.g. header status bar under the 42px --header-height).
|
|
8
|
+
*
|
|
9
|
+
* This helper places the tooltip FULLY in JS — including the half-size centering
|
|
10
|
+
* the CSS translate used to perform — so overflow is testable. `side` becomes a
|
|
11
|
+
* PREFERENCE: if the primary axis overflows and the opposite side has room, it
|
|
12
|
+
* flips; the cross-axis is clamped into the viewport (`max` applied last so an
|
|
13
|
+
* oversized tooltip sticks to the margin edge instead of going negative).
|
|
14
|
+
*
|
|
15
|
+
* Extracted as a pure function because jsdom computes no layout, so the component
|
|
16
|
+
* itself can't be positioned in vitest — the math is asserted here instead.
|
|
17
|
+
*/
|
|
18
|
+
export type TooltipSide = "top" | "right" | "bottom" | "left";
|
|
19
|
+
export interface Rect {
|
|
20
|
+
top: number;
|
|
21
|
+
left: number;
|
|
22
|
+
right: number;
|
|
23
|
+
bottom: number;
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
}
|
|
27
|
+
export interface Size {
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
}
|
|
31
|
+
export interface Viewport {
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
}
|
|
35
|
+
export interface TooltipPlacement {
|
|
36
|
+
top: number;
|
|
37
|
+
left: number;
|
|
38
|
+
side: TooltipSide;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Compute the final on-screen position for a tooltip.
|
|
42
|
+
*
|
|
43
|
+
* @param trigger Bounding rect of the trigger element.
|
|
44
|
+
* @param tooltip Measured natural size of the tooltip.
|
|
45
|
+
* @param side Preferred side (may flip to its opposite on overflow).
|
|
46
|
+
* @param viewport Viewport dimensions.
|
|
47
|
+
* @param gap Trigger↔tooltip offset (the legacy ±8).
|
|
48
|
+
* @param margin Minimum padding from the viewport edge.
|
|
49
|
+
*/
|
|
50
|
+
export declare function computeTooltipPosition(trigger: Rect, tooltip: Size, side: TooltipSide, viewport: Viewport, gap?: number, margin?: number): TooltipPlacement;
|
|
51
|
+
//# sourceMappingURL=tooltipPosition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltipPosition.d.ts","sourceRoot":"","sources":["../../src/utils/tooltipPosition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB;AA0DD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,QAAQ,EAClB,GAAG,SAAI,EACP,MAAM,SAAI,GACT,gBAAgB,CAyBlB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nar-bus/ui-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"types": "./dist/i18n/resources.d.ts",
|
|
15
15
|
"import": "./dist/i18n/resources.js"
|
|
16
16
|
},
|
|
17
|
+
"./map": {
|
|
18
|
+
"types": "./dist/map.d.ts",
|
|
19
|
+
"import": "./dist/map.js"
|
|
20
|
+
},
|
|
17
21
|
"./theme.css": "./dist/theme.css"
|
|
18
22
|
},
|
|
19
23
|
"files": [
|
|
@@ -29,7 +33,7 @@
|
|
|
29
33
|
},
|
|
30
34
|
"scripts": {
|
|
31
35
|
"build": "vite build && node -e \"const fs=require('fs');const f=fs.readdirSync('dist').find(x=>x.endsWith('.css'));if(f&&f!=='theme.css')fs.copyFileSync('dist/'+f,'dist/theme.css')\"",
|
|
32
|
-
"postbuild": "node scripts/verify-dist-i18n.mjs",
|
|
36
|
+
"postbuild": "node scripts/verify-dist-i18n.mjs && node scripts/verify-dist-css.mjs",
|
|
33
37
|
"dev": "vite build --watch",
|
|
34
38
|
"typecheck": "tsc --noEmit",
|
|
35
39
|
"lint": "eslint src/",
|
|
@@ -47,9 +51,16 @@
|
|
|
47
51
|
"sonner": "^2.0.0",
|
|
48
52
|
"@tanstack/react-table": "^8.0.0",
|
|
49
53
|
"@tanstack/react-virtual": "^3.0.0",
|
|
50
|
-
"tailwindcss": "^4.0.0"
|
|
54
|
+
"tailwindcss": "^4.0.0",
|
|
55
|
+
"maplibre-gl": "^5.24.0"
|
|
56
|
+
},
|
|
57
|
+
"peerDependenciesMeta": {
|
|
58
|
+
"maplibre-gl": {
|
|
59
|
+
"optional": true
|
|
60
|
+
}
|
|
51
61
|
},
|
|
52
62
|
"devDependencies": {
|
|
63
|
+
"maplibre-gl": "^5.24.0",
|
|
53
64
|
"@nar-bus/ui-shared": "*",
|
|
54
65
|
"@storybook/addon-a11y": "^8.4.0",
|
|
55
66
|
"@storybook/addon-essentials": "^8.6.18",
|
|
@@ -75,6 +86,11 @@
|
|
|
75
86
|
"dependencies": {
|
|
76
87
|
"@fontsource-variable/geist": "^5.2.8",
|
|
77
88
|
"@fontsource-variable/geist-mono": "^5.2.7",
|
|
89
|
+
"@tiptap/extension-link": "^3.22.0",
|
|
90
|
+
"@tiptap/extension-placeholder": "^3.22.0",
|
|
91
|
+
"@tiptap/pm": "^3.22.0",
|
|
92
|
+
"@tiptap/react": "^3.22.0",
|
|
93
|
+
"@tiptap/starter-kit": "^3.22.0",
|
|
78
94
|
"clsx": "^2.1.1",
|
|
79
95
|
"date-fns": "^4.1.0",
|
|
80
96
|
"lucide-react": "^0.475.0",
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
const o = { ara: "Ara...", filtre: "Filtre", kaydet: "Kaydet", iptal: "İptal", sil: "Sil", duzenle: "Düzenle", ekle: "Ekle", kapat: "Kapat", daha_fazla: "Daha fazla", temizle: "Temizle", tamam: "Tamam", geri: "Geri", ileri: "İleri", devam: "Devam", calistir: "Çalıştır", onayla: "Onayla", gonder: "Gönder", yukle: "Yükle", indir: "İndir", kopyala: "Kopyala", kopyalandi: "Kopyalandı", yapistir: "Yapıştır", sec: "Seç", vazgec: "Vazgeç", detay: "Detay", detaya_git: "Detaya Git", yenile: "Yenile", disa_aktar: "Dışa Aktar", evet: "Evet", hayir: "Hayır", tumu: "Tümü", yok: "Yok", olustur: '"{{value}}" oluştur' }, s = { sayfa: "Sayfa", toplam: "Toplam", secili: "Seçili", kayit_bulunamadi: "Kayıt bulunamadı", siralama: "Sıralama", filtrele: "Filtrele", tumunu_sec: "Tümünü Seç", secimi_kaldir: "Seçimi Kaldır", satirlar: "satır", sayfa_basina: "sayfa başına", eylemler: "Eylemler" }, y = { zorunlu_alan: "Bu alan zorunludur", gecersiz_deger: "Geçersiz değer", min_karakter: "En az {{min}} karakter olmalıdır", max_karakter: "En fazla {{max}} karakter olmalıdır", email_gecersiz: "Geçerli bir e-posta adresi giriniz", sayi_gecersiz: "Geçerli bir sayı giriniz" }, u = { emin_misiniz: "Emin misiniz?", bu_islem_geri_alinamaz: "Bu işlem geri alınamaz.", onay: "Onayla", vazgec: "Vazgeç", silme_onay: "Bu kaydı silmek istediğinize emin misiniz?", silme_baslik: "Kaydı Sil", entity_silme_onay: "kalıcı olarak silinecek. Bu işlem geri alınamaz." }, d = { karanlik_mod: "Karanlık Mod", aydinlik_mod: "Aydınlık Mod", tema_degistir: "Tema Değiştir" }, _ = { bugun: "Bugün", dun: "Dün", bu_hafta: "Bu Hafta", bu_ay: "Bu Ay", gecen_ay: "Geçen Ay", son_7_gun: "Son 7 Gün", son_30_gun: "Son 30 Gün", baslangic: "Başlangıç", bitis: "Bitiş", tarih_sec: "Tarih Seçiniz", saat: "Saat" }, m = { onceki_sayfa: "Önceki Sayfa", sonraki_sayfa: "Sonraki Sayfa", previous_page: "Önceki sayfa", next_page: "Sonraki sayfa", sayfa_x_y: "Sayfa {{current}} / {{total}}", kayit_gosteriliyor: "{{from}}-{{to}} / {{total}} kayıt gösteriliyor", ilk_sayfa: "İlk Sayfa", son_sayfa: "Son Sayfa" }, c = { kayit_bulunamadi: "Kayıt bulunamadı", henuz_veri_yok: "Henüz veri yok", sonuc_bulunamadi: "Aradığınız kriterlere uygun sonuç bulunamadı" }, k = { basarili: "Başarılı", hata: "Hata", uyari: "Uyarı", bilgi: "Bilgi", yukleniyor: "Yükleniyor...", kaydediliyor: "Kaydediliyor...", siliniyor: "Siliniyor..." }, g = { filtre_uygula: "Filtreyi Uygula", filtreleri_temizle: "Filtreleri Temizle", aktif_filtre: "{{count}} aktif filtre", op_contains: "İçerir", op_equals: "Eşittir", op_not_equals: "Eşit Değil", op_starts_with: "Başlar", op_ends_with: "Biter", op_greater: "Büyüktür", op_less: "Küçüktür", op_greater_eq: "Büyük Eşit", op_less_eq: "Küçük Eşit", operator_sec: "Operatör seçin", secili: "Seçili" }, f = { ham_json: "Ham JSON", form_gorunumu: "Form Görünümü", formatla: "Formatla", gecersiz_json: "Geçersiz JSON formatı", kopyalandi: "Kopyalandı!", kopyala: "Kopyala", icerik: "JSON içeriği", duzenle: "Düzenle", goruntule: "Görüntüle" }, p = { sifreyi_goster: "Şifreyi göster", sifreyi_gizle: "Şifreyi gizle", onceki_ay: "Önceki ay", sonraki_ay: "Sonraki ay", filtreyi_kaldir: "{{name}} filtresini kaldır", kopyala: "Kopyala", panel: "Panel", iletisim_kutusu: "İletişim kutusu", kaldir: "{{label}} seçimini kaldır", filtrele: "Seçenekleri filtrele", filtreler: "Filtreler", breadcrumb: "Yol haritası", pagination: "Sayfalama", detay_sayfasi: "Detay sayfası", filtreler_kenar: "Filtre kenar çubuğu", giris: "Giriş", rapor_kriterleri: "Rapor kriterleri" }, S = { lifecycle: { ACTIVE: "Aktif", INACTIVE: "Pasif", MAINTENANCE: "Bakımda", FAULTY: "Arızalı" }, power: { ON: "Enerjili", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor" }, disconnection: { ON: "Enerji Var", OFF: "Enerji Yok", UNKNOWN: "Bilinmiyor", OPENING: "Açılıyor", CLOSING: "Kapanıyor" } }, h = { hero: { live: "CANLI", fleetOnline: "AKTİF SAYAÇLAR", online: "aktif", vs1h: "vs 1s", fleet: { online: "AKTİF", offline: "PASİF", unknown: "ENERJİSİZ" }, readingSla24h: "OKUMA SLA · 24S", target: "hedef", activeOutages: "AKTİF KESİNTİLER", affectedMeters: "etkilenen sayaç", alarm: { crit: "KRİTİK", warn: "UYARI", viewDetails: "{{slug}} detaylarını görüntüle" }, tape: { ariaLabel: "Son sistem olayları" } } }, r = {
|
|
2
|
-
common: o,
|
|
3
|
-
table: s,
|
|
4
|
-
form: y,
|
|
5
|
-
dialog: u,
|
|
6
|
-
theme: d,
|
|
7
|
-
date: _,
|
|
8
|
-
pagination: m,
|
|
9
|
-
empty: c,
|
|
10
|
-
status: k,
|
|
11
|
-
filter: g,
|
|
12
|
-
json_editor: f,
|
|
13
|
-
aria: p,
|
|
14
|
-
detail_status: S,
|
|
15
|
-
dashboard: h
|
|
16
|
-
}, N = { ara: "Search...", filtre: "Filter", kaydet: "Save", iptal: "Cancel", sil: "Delete", duzenle: "Edit", ekle: "Add", kapat: "Close", daha_fazla: "More", temizle: "Clear", tamam: "OK", geri: "Back", ileri: "Next", devam: "Continue", calistir: "Execute", onayla: "Confirm", gonder: "Send", yukle: "Upload", indir: "Download", kopyala: "Copy", kopyalandi: "Copied", yapistir: "Paste", sec: "Select", vazgec: "Cancel", detay: "Detail", detaya_git: "Go to Detail", yenile: "Refresh", disa_aktar: "Export", evet: "Yes", hayir: "No", tumu: "All", yok: "None", olustur: 'Create "{{value}}"' }, z = { sayfa: "Page", toplam: "Total", secili: "Selected", kayit_bulunamadi: "No records found", siralama: "Sort", filtrele: "Filter", tumunu_sec: "Select All", secimi_kaldir: "Deselect All", satirlar: "rows", sayfa_basina: "per page", eylemler: "Actions" }, b = { zorunlu_alan: "This field is required", gecersiz_deger: "Invalid value", min_karakter: "Must be at least {{min}} characters", max_karakter: "Must be at most {{max}} characters", email_gecersiz: "Please enter a valid email address", sayi_gecersiz: "Please enter a valid number" }, E = { emin_misiniz: "Are you sure?", bu_islem_geri_alinamaz: "This action cannot be undone.", onay: "Confirm", vazgec: "Cancel", silme_onay: "Are you sure you want to delete this record?", silme_baslik: "Delete Record", entity_silme_onay: "will be permanently deleted. This action cannot be undone." }, v = { karanlik_mod: "Dark Mode", aydinlik_mod: "Light Mode", tema_degistir: "Toggle Theme" }, A = { bugun: "Today", dun: "Yesterday", bu_hafta: "This Week", bu_ay: "This Month", gecen_ay: "Last Month", son_7_gun: "Last 7 Days", son_30_gun: "Last 30 Days", baslangic: "Start", bitis: "End", tarih_sec: "Select Date", saat: "Time" }, O = { onceki_sayfa: "Previous Page", sonraki_sayfa: "Next Page", previous_page: "Previous page", next_page: "Next page", sayfa_x_y: "Page {{current}} / {{total}}", kayit_gosteriliyor: "Showing {{from}}-{{to}} of {{total}} records", ilk_sayfa: "First Page", son_sayfa: "Last Page" }, T = { kayit_bulunamadi: "No records found", henuz_veri_yok: "No data yet", sonuc_bulunamadi: "No results matching your criteria" }, F = { basarili: "Success", hata: "Error", uyari: "Warning", bilgi: "Info", yukleniyor: "Loading...", kaydediliyor: "Saving...", siliniyor: "Deleting..." }, K = { filtre_uygula: "Apply Filter", filtreleri_temizle: "Clear Filters", aktif_filtre: "{{count}} active filter(s)", op_contains: "Contains", op_equals: "Equals", op_not_equals: "Not Equals", op_starts_with: "Starts With", op_ends_with: "Ends With", op_greater: "Greater Than", op_less: "Less Than", op_greater_eq: "Greater or Equal", op_less_eq: "Less or Equal", operator_sec: "Select operator", secili: "Selected" }, w = { ham_json: "Raw JSON", form_gorunumu: "Form View", formatla: "Format", gecersiz_json: "Invalid JSON format", kopyalandi: "Copied!", kopyala: "Copy", icerik: "JSON content", duzenle: "Edit", goruntule: "View" }, C = { sifreyi_goster: "Show password", sifreyi_gizle: "Hide password", onceki_ay: "Previous month", sonraki_ay: "Next month", filtreyi_kaldir: "Remove {{name}} filter", kopyala: "Copy", panel: "Panel", iletisim_kutusu: "Dialog", kaldir: "Remove {{label}}", filtrele: "Filter options", filtreler: "Filters", breadcrumb: "Breadcrumb", pagination: "Pagination", detay_sayfasi: "Detail page", filtreler_kenar: "Filter sidebar", giris: "Sign in", rapor_kriterleri: "Report criteria" }, D = { lifecycle: { ACTIVE: "Active", INACTIVE: "Inactive", MAINTENANCE: "Maintenance", FAULTY: "Faulty" }, power: { ON: "Energized", OFF: "No Energy", UNKNOWN: "Unknown" }, disconnection: { ON: "Power OK", OFF: "No Power", UNKNOWN: "Unknown", OPENING: "Opening", CLOSING: "Closing" } }, I = { hero: { live: "LIVE", fleetOnline: "FLEET ONLINE", online: "online", vs1h: "vs 1h", fleet: { online: "ONLINE", offline: "OFF", unknown: "UNK" }, readingSla24h: "READING SLA · 24h", target: "target", activeOutages: "ACTIVE OUTAGES", affectedMeters: "meters affected", alarm: { crit: "CRIT", warn: "WARN", viewDetails: "View {{slug}} details" }, tape: { ariaLabel: "Recent system events" } } }, l = {
|
|
17
|
-
common: N,
|
|
18
|
-
table: z,
|
|
19
|
-
form: b,
|
|
20
|
-
dialog: E,
|
|
21
|
-
theme: v,
|
|
22
|
-
date: A,
|
|
23
|
-
pagination: O,
|
|
24
|
-
empty: T,
|
|
25
|
-
status: F,
|
|
26
|
-
filter: K,
|
|
27
|
-
json_editor: w,
|
|
28
|
-
aria: C,
|
|
29
|
-
detail_status: D,
|
|
30
|
-
dashboard: I
|
|
31
|
-
}, L = {
|
|
32
|
-
tr: { common: r },
|
|
33
|
-
en: { common: l }
|
|
34
|
-
};
|
|
35
|
-
function B(e, n = {}) {
|
|
36
|
-
const { namespace: a = "common", overwrite: i = !1, deep: t = !0 } = n;
|
|
37
|
-
return e.addResourceBundle("tr", a, r, t, i), e.addResourceBundle("en", a, l, t, i), e;
|
|
38
|
-
}
|
|
39
|
-
export {
|
|
40
|
-
l as e,
|
|
41
|
-
B as r,
|
|
42
|
-
r as t,
|
|
43
|
-
L as u
|
|
44
|
-
};
|