@iyulab/components 1.41.0 → 1.42.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.
Files changed (75) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.149.0 → _@oxc-project_runtime@0.150.0}/helpers/esm/decorate.js +1 -1
  3. package/dist/_virtual/{_@oxc-project_runtime@0.149.0 → _@oxc-project_runtime@0.150.0}/helpers/esm/decorateMetadata.js +1 -1
  4. package/dist/assets/locales/ar.json.js +18 -2
  5. package/dist/assets/locales/de.json.js +18 -2
  6. package/dist/assets/locales/en.json.js +18 -2
  7. package/dist/assets/locales/es.json.js +18 -2
  8. package/dist/assets/locales/fr.json.js +18 -2
  9. package/dist/assets/locales/id.json.js +18 -2
  10. package/dist/assets/locales/ja.json.js +18 -2
  11. package/dist/assets/locales/ko.json.js +18 -2
  12. package/dist/assets/locales/pt-BR.json.js +18 -2
  13. package/dist/assets/locales/ru.json.js +18 -2
  14. package/dist/assets/locales/th.json.js +18 -2
  15. package/dist/assets/locales/vi.json.js +18 -2
  16. package/dist/assets/locales/zh-CN.json.js +18 -2
  17. package/dist/assets/locales/zh-TW.json.js +18 -2
  18. package/dist/components/UFloatingElement.js +2 -2
  19. package/dist/components/UFormControlElement.js +2 -2
  20. package/dist/components/UOverlayElement.js +2 -2
  21. package/dist/components/alert/UAlert.d.ts +25 -2
  22. package/dist/components/alert/UAlert.js +48 -4
  23. package/dist/components/avatar/UAvatar.js +2 -2
  24. package/dist/components/badge/UBadge.js +2 -2
  25. package/dist/components/breadcrumb/UBreadcrumb.js +1 -1
  26. package/dist/components/breadcrumb-item/UBreadcrumbItem.js +2 -2
  27. package/dist/components/button/UButton.js +2 -2
  28. package/dist/components/button-group/UButtonGroup.js +2 -2
  29. package/dist/components/card/UCard.js +2 -2
  30. package/dist/components/carousel/UCarousel.js +2 -2
  31. package/dist/components/checkbox/UCheckbox.js +2 -2
  32. package/dist/components/chip/UChip.js +4 -3
  33. package/dist/components/copy-button/UCopyButton.js +2 -2
  34. package/dist/components/date-picker/UDatePicker.js +2 -2
  35. package/dist/components/dialog/UDialog.js +2 -2
  36. package/dist/components/divider/UDivider.js +2 -2
  37. package/dist/components/drawer/UDrawer.js +2 -2
  38. package/dist/components/expander/UExpander.js +2 -2
  39. package/dist/components/field/UField.d.ts +28 -0
  40. package/dist/components/field/UField.js +58 -4
  41. package/dist/components/file-input/UFileInput.js +2 -2
  42. package/dist/components/form/UForm.js +2 -2
  43. package/dist/components/icon/UIcon.js +2 -2
  44. package/dist/components/icon-button/UIconButton.js +2 -2
  45. package/dist/components/input/UInput.js +2 -2
  46. package/dist/components/menu/UMenu.js +2 -2
  47. package/dist/components/menu-item/UMenuItem.js +2 -2
  48. package/dist/components/option/UOption.js +2 -2
  49. package/dist/components/panel/UPanel.js +2 -2
  50. package/dist/components/popover/UPopover.js +2 -2
  51. package/dist/components/progress-bar/UProgressBar.js +2 -2
  52. package/dist/components/progress-ring/UProgressRing.js +2 -2
  53. package/dist/components/radio/URadio.js +2 -2
  54. package/dist/components/rating/URating.js +2 -2
  55. package/dist/components/select/USelect.js +2 -2
  56. package/dist/components/skeleton/USkeleton.js +2 -2
  57. package/dist/components/slider/USlider.js +2 -2
  58. package/dist/components/spinner/USpinner.js +2 -2
  59. package/dist/components/split-panel/USplitPanel.js +2 -2
  60. package/dist/components/switch/USwitch.js +2 -2
  61. package/dist/components/tab/UTab.js +4 -3
  62. package/dist/components/tab-panel/UTabPanel.js +2 -2
  63. package/dist/components/tag/UTag.js +2 -2
  64. package/dist/components/text/UText.js +2 -2
  65. package/dist/components/textarea/UTextarea.js +2 -2
  66. package/dist/components/tooltip/UTooltip.js +2 -2
  67. package/dist/components/tree/UTree.js +2 -2
  68. package/dist/components/tree-item/UTreeItem.js +2 -2
  69. package/dist/index.js +2 -2
  70. package/dist/plugins/vite-plugin-react-wrapper.d.ts +14 -0
  71. package/dist/plugins/vite-plugin-react-wrapper.js +9 -4
  72. package/dist/utilities/Locale.d.ts +1 -1
  73. package/package.json +1 -1
  74. package/skills/iyulab-components/references/components/alert.md +1 -1
  75. package/skills/iyulab-components/references/components/field.md +7 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,61 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.42.0] - 2026-09-17
4
+
5
+ ### Fixed
6
+
7
+ - **Two icon-only controls named themselves in English regardless of the locale.** `u-chip`'s remove
8
+ button and `u-tab`'s close button carried a hard-coded `aria-label`, so on a Korean app a
9
+ screen-reader user heard "Remove" and "Close tab" while everything around them was translated.
10
+ These controls have no visible text, so the gap could not show up in a visual review — only
11
+ someone using assistive technology would meet it. Both names now come from the locale table, with
12
+ `remove` and `closeTab` added for all fourteen built-in locales.
13
+ - **`u-alert` fell back to the raw status value as its title, which is not a word in any locale.**
14
+ An alert written without a `title` showed `ERROR` or `DANGER` in the title row regardless of the
15
+ locale in effect, so a Korean screen carried uppercase English — one such screen reached a
16
+ customer in a printed manual. The same component's close button has always gone through `Locale`,
17
+ so the locale layer was not missing, only unused in this one place. The default title now comes
18
+ from the locale table (`오류` / `Error` / `エラー` …), with entries added for all fourteen built-in
19
+ locales, and a consumer-supplied `title` still wins.
20
+
21
+ ### Added
22
+
23
+ - **`u-alert` warns once in development when `status` is not one of the five known values.** An
24
+ unknown value renders as a neutral notice with the bell icon and `role="status"` — so an alert
25
+ meant to report an error looks like an ordinary message and nothing says otherwise. Types cannot
26
+ catch this, because attributes set in HTML or produced by a server carry no type. `ALERT_STATUSES`
27
+ is now exported so the runtime check and the type read the same list.
28
+
29
+ - **`reactWrapper({ reexport })`** — the generated React barrel can now re-export additional module
30
+ specifiers alongside the wrappers it generates. A package that keeps a few hand-written wrappers
31
+ (for a generic property or a custom event mapping the generator cannot derive) previously had to
32
+ publish them on a separate subpath, which left consumers with a barrel that was *not* a superset
33
+ of the per-component subpaths: what you got depended on which specifier you reached for. Passing
34
+ the hand-written module here folds it into the same barrel, so one specifier carries everything.
35
+ Give a package specifier rather than a relative path — a relative path bypasses the `exports` map,
36
+ which in a workspace makes the barrel load a different copy of the elements than the rest of the
37
+ package and registers the same tag twice.
38
+
39
+ ## [1.41.1] - 2026-09-16
40
+
41
+ ### Fixed
42
+
43
+ - **The development-mode warning that reports an unnamed field fired on correctly built forms**
44
+ whenever the field was first rendered inside a hidden container — a closed drawer, a collapsed
45
+ accordion, an inactive tab panel, a wizard step that is not current. The check asked whether the
46
+ slotted subtree held anything *focusable*, and the focusability test it used considers an element
47
+ that is not rendered to be unfocusable. Whether a label has a control to name is a question about
48
+ structure, not about what is on screen right now, so the check now answers it structurally
49
+ (form-associated custom element, native form/focusable tag, `tabindex`, `contenteditable`) and no
50
+ longer consults visibility or `disabled`. Focus delegation still uses the focusability test, which
51
+ is the right question there. Consequently the warning text now reads "has no form control" rather
52
+ than "has no focusable control".
53
+ - **A false warning silenced the real ones.** These warnings de-duplicate per key, and both field
54
+ warnings used one flat key each, so the first occurrence on a page consumed the budget for every
55
+ later field — a spurious warning permanently suppressed genuine ones, and even without any false
56
+ positive only the first of several real violations was ever reported. Both keys now include the
57
+ label, matching `u-icon` and `u-split-panel`, which already key by what distinguishes the case.
58
+
3
59
  ## [1.41.0] - 2026-09-16
4
60
 
5
61
  ### Fixed
@@ -1,4 +1,4 @@
1
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorate.js
1
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/decorate.js
2
2
  function __decorate(decorators, target, key, desc) {
3
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -1,4 +1,4 @@
1
- //#region \0@oxc-project+runtime@0.149.0/helpers/esm/decorateMetadata.js
1
+ //#region \0@oxc-project+runtime@0.150.0/helpers/esm/decorateMetadata.js
2
2
  function __decorateMetadata(k, v) {
3
3
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4
4
  }
@@ -29,6 +29,14 @@ var noFileChosen = "لم يتم اختيار أي ملف";
29
29
  var filesSelected = "تم اختيار {count} ملفات";
30
30
  var resizePanels = "تغيير حجم اللوحات";
31
31
  var search = "بحث";
32
+ var alertError = "خطأ";
33
+ var alertWarning = "تحذير";
34
+ var alertSuccess = "نجاح";
35
+ var alertInfo = "معلومات";
36
+ var alertNotice = "إشعار";
37
+ var alertMessage = "رسالة";
38
+ var remove = "إزالة";
39
+ var closeTab = "إغلاق علامة التبويب";
32
40
  var ar_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var ar_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, ar_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, ar_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "Keine Datei ausgewählt";
29
29
  var filesSelected = "{count} Dateien ausgewählt";
30
30
  var resizePanels = "Bereichsgröße ändern";
31
31
  var search = "Suchen";
32
+ var alertError = "Fehler";
33
+ var alertWarning = "Warnung";
34
+ var alertSuccess = "Erfolg";
35
+ var alertInfo = "Information";
36
+ var alertNotice = "Hinweis";
37
+ var alertMessage = "Nachricht";
38
+ var remove = "Entfernen";
39
+ var closeTab = "Tab schließen";
32
40
  var de_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var de_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, de_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, de_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "No file chosen";
29
29
  var filesSelected = "{count} files selected";
30
30
  var resizePanels = "Resize panels";
31
31
  var search = "Search";
32
+ var alertError = "Error";
33
+ var alertWarning = "Warning";
34
+ var alertSuccess = "Success";
35
+ var alertInfo = "Information";
36
+ var alertNotice = "Notice";
37
+ var alertMessage = "Message";
38
+ var remove = "Remove";
39
+ var closeTab = "Close tab";
32
40
  var en_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var en_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, en_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, en_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -28,6 +28,14 @@ var noFileChosen = "Ningún archivo elegido";
28
28
  var filesSelected = "{count} archivos seleccionados";
29
29
  var resizePanels = "Cambiar el tamaño de los paneles";
30
30
  var search = "Buscar";
31
+ var alertError = "Error";
32
+ var alertWarning = "Advertencia";
33
+ var alertSuccess = "Éxito";
34
+ var alertInfo = "Información";
35
+ var alertNotice = "Aviso";
36
+ var alertMessage = "Mensaje";
37
+ var remove = "Quitar";
38
+ var closeTab = "Cerrar pestaña";
31
39
  var es_default = {
32
40
  valueMissing,
33
41
  badInput,
@@ -58,7 +66,15 @@ var es_default = {
58
66
  noFileChosen,
59
67
  filesSelected,
60
68
  resizePanels,
61
- search
69
+ search,
70
+ alertError,
71
+ alertWarning,
72
+ alertSuccess,
73
+ alertInfo,
74
+ alertNotice,
75
+ alertMessage,
76
+ remove,
77
+ closeTab
62
78
  };
63
79
  //#endregion
64
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, es_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, tooLong, tooShort, typeMismatch, valueMissing };
80
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, es_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "Aucun fichier choisi";
29
29
  var filesSelected = "{count} fichiers sélectionnés";
30
30
  var resizePanels = "Redimensionner les panneaux";
31
31
  var search = "Rechercher";
32
+ var alertError = "Erreur";
33
+ var alertWarning = "Avertissement";
34
+ var alertSuccess = "Succès";
35
+ var alertInfo = "Information";
36
+ var alertNotice = "Avis";
37
+ var alertMessage = "Message";
38
+ var remove = "Supprimer";
39
+ var closeTab = "Fermer l'onglet";
32
40
  var fr_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var fr_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, fr_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, fr_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "Tidak ada berkas dipilih";
29
29
  var filesSelected = "{count} berkas dipilih";
30
30
  var resizePanels = "Ubah ukuran panel";
31
31
  var search = "Cari";
32
+ var alertError = "Kesalahan";
33
+ var alertWarning = "Peringatan";
34
+ var alertSuccess = "Berhasil";
35
+ var alertInfo = "Informasi";
36
+ var alertNotice = "Pemberitahuan";
37
+ var alertMessage = "Pesan";
38
+ var remove = "Hapus";
39
+ var closeTab = "Tutup tab";
32
40
  var id_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var id_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, id_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, id_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "ファイルが選択されていません";
29
29
  var filesSelected = "{count}個のファイルを選択しました";
30
30
  var resizePanels = "パネルのサイズ変更";
31
31
  var search = "検索";
32
+ var alertError = "エラー";
33
+ var alertWarning = "警告";
34
+ var alertSuccess = "完了";
35
+ var alertInfo = "お知らせ";
36
+ var alertNotice = "通知";
37
+ var alertMessage = "メッセージ";
38
+ var remove = "削除";
39
+ var closeTab = "タブを閉じる";
32
40
  var ja_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var ja_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, ja_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, ja_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "선택된 파일 없음";
29
29
  var filesSelected = "{count}개 파일 선택됨";
30
30
  var resizePanels = "패널 크기 조절";
31
31
  var search = "검색";
32
+ var alertError = "오류";
33
+ var alertWarning = "경고";
34
+ var alertSuccess = "완료";
35
+ var alertInfo = "안내";
36
+ var alertNotice = "알림";
37
+ var alertMessage = "메시지";
38
+ var remove = "제거";
39
+ var closeTab = "탭 닫기";
32
40
  var ko_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var ko_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, ko_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, ko_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "Nenhum arquivo escolhido";
29
29
  var filesSelected = "{count} arquivos selecionados";
30
30
  var resizePanels = "Redimensionar painéis";
31
31
  var search = "Pesquisar";
32
+ var alertError = "Erro";
33
+ var alertWarning = "Aviso";
34
+ var alertSuccess = "Sucesso";
35
+ var alertInfo = "Informação";
36
+ var alertNotice = "Nota";
37
+ var alertMessage = "Mensagem";
38
+ var remove = "Remover";
39
+ var closeTab = "Fechar aba";
32
40
  var pt_BR_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var pt_BR_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, pt_BR_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, pt_BR_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "Файл не выбран";
29
29
  var filesSelected = "Выбрано файлов: {count}";
30
30
  var resizePanels = "Изменить размер панелей";
31
31
  var search = "Поиск";
32
+ var alertError = "Ошибка";
33
+ var alertWarning = "Предупреждение";
34
+ var alertSuccess = "Успешно";
35
+ var alertInfo = "Информация";
36
+ var alertNotice = "Уведомление";
37
+ var alertMessage = "Сообщение";
38
+ var remove = "Удалить";
39
+ var closeTab = "Закрыть вкладку";
32
40
  var ru_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var ru_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, ru_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, ru_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "ยังไม่ได้เลือกไฟล์";
29
29
  var filesSelected = "เลือกแล้ว {count} ไฟล์";
30
30
  var resizePanels = "ปรับขนาดแผง";
31
31
  var search = "ค้นหา";
32
+ var alertError = "ข้อผิดพลาด";
33
+ var alertWarning = "คำเตือน";
34
+ var alertSuccess = "สำเร็จ";
35
+ var alertInfo = "ข้อมูล";
36
+ var alertNotice = "ประกาศ";
37
+ var alertMessage = "ข้อความ";
38
+ var remove = "ลบ";
39
+ var closeTab = "ปิดแท็บ";
32
40
  var th_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var th_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, th_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, th_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "Chưa chọn tệp nào";
29
29
  var filesSelected = "Đã chọn {count} tệp";
30
30
  var resizePanels = "Thay đổi kích thước bảng";
31
31
  var search = "Tìm kiếm";
32
+ var alertError = "Lỗi";
33
+ var alertWarning = "Cảnh báo";
34
+ var alertSuccess = "Thành công";
35
+ var alertInfo = "Thông tin";
36
+ var alertNotice = "Lưu ý";
37
+ var alertMessage = "Thông báo";
38
+ var remove = "Xóa";
39
+ var closeTab = "Đóng tab";
32
40
  var vi_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var vi_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, vi_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, vi_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "未选择文件";
29
29
  var filesSelected = "已选择{count}个文件";
30
30
  var resizePanels = "调整面板大小";
31
31
  var search = "搜索";
32
+ var alertError = "错误";
33
+ var alertWarning = "警告";
34
+ var alertSuccess = "成功";
35
+ var alertInfo = "信息";
36
+ var alertNotice = "提示";
37
+ var alertMessage = "消息";
38
+ var remove = "移除";
39
+ var closeTab = "关闭标签页";
32
40
  var zh_CN_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var zh_CN_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, zh_CN_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, zh_CN_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -29,6 +29,14 @@ var noFileChosen = "未選擇檔案";
29
29
  var filesSelected = "已選擇{count}個檔案";
30
30
  var resizePanels = "調整面板大小";
31
31
  var search = "搜尋";
32
+ var alertError = "錯誤";
33
+ var alertWarning = "警告";
34
+ var alertSuccess = "成功";
35
+ var alertInfo = "資訊";
36
+ var alertNotice = "提示";
37
+ var alertMessage = "訊息";
38
+ var remove = "移除";
39
+ var closeTab = "關閉分頁";
32
40
  var zh_TW_default = {
33
41
  valueMissing,
34
42
  badInput,
@@ -59,7 +67,15 @@ var zh_TW_default = {
59
67
  noFileChosen,
60
68
  filesSelected,
61
69
  resizePanels,
62
- search
70
+ search,
71
+ alertError,
72
+ alertWarning,
73
+ alertSuccess,
74
+ alertInfo,
75
+ alertNotice,
76
+ alertMessage,
77
+ remove,
78
+ closeTab
63
79
  };
64
80
  //#endregion
65
- export { badInput, chooseDate, chooseFile, clear, close, copied, copy, decrement, zh_TW_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
81
+ export { alertError, alertInfo, alertMessage, alertNotice, alertSuccess, alertWarning, badInput, chooseDate, chooseFile, clear, close, closeTab, copied, copy, decrement, zh_TW_default as default, filesSelected, goToSlide, hidePassword, increment, nextMonth, nextSlide, noFileChosen, patternMismatch, previousMonth, previousSlide, rangeOverflow, rangeUnderflow, remove, resizePanels, search, showPassword, stepMismatch, time, today, tooLong, tooShort, typeMismatch, valueMissing };
@@ -1,8 +1,8 @@
1
1
  import { UElement } from "./UElement.js";
2
2
  import { getParentElement, querySelectorAllWithin } from "../utilities/elements.js";
3
3
  import { styles } from "./UFloatingElement.styles.js";
4
- import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
5
- import __decorate from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
4
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorateMetadata.js";
5
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorate.js";
6
6
  import { property, state } from "lit/decorators.js";
7
7
  import { arrow, autoPlacement, autoUpdate, computePosition, flip, hide, offset, shift } from "@floating-ui/dom";
8
8
  //#region src/components/UFloatingElement.ts
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "./UElement.js";
2
- import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UFormControlElement.styles.js";
5
5
  import { property, state } from "lit/decorators.js";
6
6
  //#region src/components/UFormControlElement.ts
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "./UElement.js";
2
- import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../_virtual/_@oxc-project_runtime@0.149.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.150.0/helpers/esm/decorate.js";
4
4
  import { OverlayManager } from "../utilities/OverlayManager.js";
5
5
  import { arrayAttrConverter } from "../utilities/converters.js";
6
6
  import { styles } from "./UOverlayElement.styles.js";
@@ -1,6 +1,8 @@
1
1
  import { PropertyValues } from 'lit';
2
2
  import { UElement } from '../UElement.js';
3
- export type AlertStatus = "error" | "warning" | "success" | "info" | "notice";
3
+ /** 유효한 `u-alert` 상태 — 런타임 검증과 타입이 **같은 목록**을 보게 둔다. */
4
+ export declare const ALERT_STATUSES: readonly ["error", "warning", "success", "info", "notice"];
5
+ export type AlertStatus = (typeof ALERT_STATUSES)[number];
4
6
  export type AlertVariant = "solid" | "filled" | "outlined" | "glass";
5
7
  /**
6
8
  * 사용자에게 메시지를 표시하는 Alert 컴포넌트입니다.
@@ -13,7 +15,7 @@ export type AlertVariant = "solid" | "filled" | "outlined" | "glass";
13
15
  * @csspart container - 전체 Alert 컨테이너 (flex column)
14
16
  * @csspart header - 아이콘·타이틀·닫기 버튼을 포함하는 상단 행
15
17
  * @csspart icon - 상태 아이콘 (status 없으면 hidden)
16
- * @csspart title - 타이틀 텍스트 (title 미지정 시 status 대문자 또는 'MESSAGE')
18
+ * @csspart title - 타이틀 텍스트 (title 미지정 시 현재 로케일의 상태 이름)
17
19
  * @csspart close-btn - 닫기 버튼 (closable=true 일 때만 표시)
18
20
  * @csspart content - 스크롤 가능한 본문 영역
19
21
  * @csspart footer - 하단 슬롯 영역
@@ -54,6 +56,27 @@ export declare class UAlert extends UElement {
54
56
  * Alert를 숨깁니다.
55
57
  */
56
58
  hide(): boolean;
59
+ /**
60
+ * `title` 을 주지 않았을 때 쓰는 제목 — **현재 로케일의 상태 이름**.
61
+ *
62
+ * 종전에는 `status` 를 대문자로 올려 썼다(`ERROR`·`WARNING` …). 그것은 **어느 로케일의
63
+ * 낱말도 아니어서**, 한국어 화면에 영문 대문자가 그대로 찍혔다(소비자 실측 — 이미 고객에게
64
+ * 전달된 매뉴얼 캡처 한 장에 그 상태로 실렸다). 같은 컴포넌트의 닫기 버튼은 처음부터
65
+ * `Locale` 을 탔으므로, 빠져 있던 것은 인프라가 아니라 **이 한 자리**였다.
66
+ *
67
+ * ⚠알 수 없는 `status` 는 여기서 조용히 «메시지» 로 떨어진다 — 그 사실 자체는
68
+ * `warnUnknownStatus` 가 개발 모드에서 알린다.
69
+ */
70
+ private defaultTitle;
71
+ /**
72
+ * 유효하지 않은 `status` 를 개발 모드에서 한 번 알린다.
73
+ *
74
+ * ★왜 필요한가: 이 컴포넌트는 알 수 없는 값을 **에러 없이** 받아 중립 알림(종 아이콘 ·
75
+ * `role="status"`)으로 그린다. 즉 `status="danger"` 는 *오류처럼 보이지 않는 오류 알림*이
76
+ * 되고 아무 신호도 나지 않는다 — 소비자가 실제로 화면 셋을 그 상태로 내보냈다.
77
+ * 타입은 이것을 막지 못한다(HTML 속성·서버가 만든 마크업에는 타입이 없다).
78
+ */
79
+ private warnUnknownStatus;
57
80
  /** Alert 상태에 따른 아이콘 이름을 반환합니다. */
58
81
  private mapIcon;
59
82
  /**