@iyulab/components 1.33.1 → 1.33.4

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 (72) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/_virtual/{_@oxc-project_runtime@0.146.0 → _@oxc-project_runtime@0.147.0}/helpers/esm/decorate.js +1 -1
  3. package/dist/_virtual/{_@oxc-project_runtime@0.146.0 → _@oxc-project_runtime@0.147.0}/helpers/esm/decorateMetadata.js +1 -1
  4. package/dist/assets/locales/ar.json.js +8 -2
  5. package/dist/assets/locales/de.json.js +8 -2
  6. package/dist/assets/locales/en.json.js +8 -2
  7. package/dist/assets/locales/es.json.js +8 -2
  8. package/dist/assets/locales/fr.json.js +8 -2
  9. package/dist/assets/locales/id.json.js +8 -2
  10. package/dist/assets/locales/ja.json.js +8 -2
  11. package/dist/assets/locales/ko.json.js +8 -2
  12. package/dist/assets/locales/pt-BR.json.js +8 -2
  13. package/dist/assets/locales/ru.json.js +8 -2
  14. package/dist/assets/locales/th.json.js +8 -2
  15. package/dist/assets/locales/vi.json.js +8 -2
  16. package/dist/assets/locales/zh-CN.json.js +8 -2
  17. package/dist/assets/locales/zh-TW.json.js +8 -2
  18. package/dist/components/UFloatingElement.d.ts +4 -0
  19. package/dist/components/UFloatingElement.js +2 -2
  20. package/dist/components/UFormControlElement.js +2 -2
  21. package/dist/components/UOverlayElement.js +2 -2
  22. package/dist/components/alert/UAlert.js +2 -2
  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 +7 -2
  31. package/dist/components/checkbox/UCheckbox.js +2 -2
  32. package/dist/components/chip/UChip.js +2 -2
  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.js +2 -2
  40. package/dist/components/form/UForm.js +2 -2
  41. package/dist/components/icon/UIcon.js +2 -2
  42. package/dist/components/icon-button/UIconButton.js +2 -2
  43. package/dist/components/input/UInput.js +2 -2
  44. package/dist/components/menu/UMenu.js +2 -2
  45. package/dist/components/menu-item/UMenuItem.js +2 -2
  46. package/dist/components/option/UOption.js +2 -2
  47. package/dist/components/panel/UPanel.js +2 -2
  48. package/dist/components/popover/UPopover.js +14 -5
  49. package/dist/components/progress-bar/UProgressBar.js +2 -2
  50. package/dist/components/progress-ring/UProgressRing.js +2 -2
  51. package/dist/components/radio/URadio.js +2 -2
  52. package/dist/components/rating/URating.js +2 -2
  53. package/dist/components/select/USelect.js +2 -2
  54. package/dist/components/skeleton/USkeleton.js +2 -2
  55. package/dist/components/slider/USlider.js +2 -2
  56. package/dist/components/spinner/USpinner.js +2 -2
  57. package/dist/components/split-panel/USplitPanel.js +2 -2
  58. package/dist/components/switch/USwitch.js +2 -2
  59. package/dist/components/tab/UTab.js +2 -2
  60. package/dist/components/tab-panel/UTabPanel.js +2 -2
  61. package/dist/components/tag/UTag.js +2 -2
  62. package/dist/components/text/UText.js +2 -2
  63. package/dist/components/textarea/UTextarea.js +2 -2
  64. package/dist/components/tooltip/UTooltip.js +2 -2
  65. package/dist/components/tree/UTree.js +2 -2
  66. package/dist/components/tree-item/UTreeItem.js +2 -2
  67. package/dist/index.js +3 -3
  68. package/dist/utilities/Locale.d.ts +1 -1
  69. package/dist/utilities/Locale.js +1 -1
  70. package/dist/utilities/elements.d.ts +6 -0
  71. package/dist/utilities/elements.js +9 -1
  72. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,48 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.33.4] - 2026-08-27
4
+
5
+ ### Fixed
6
+
7
+ - **`u-carousel`'s previous/next buttons and pagination dots had no accessible
8
+ name.** All three are icon-only controls; without an explicit label a screen
9
+ reader announced them as unnamed buttons. They now carry a localized
10
+ `aria-label` (`Locale.getValue('previousSlide' | 'nextSlide' | 'goToSlide')`,
11
+ the pagination dots also gaining `aria-current`) — translated across all 14
12
+ built-in locales.
13
+
14
+ ## [1.33.3] - 2026-08-26
15
+
16
+ ### Fixed
17
+
18
+ - **`Locale`'s automatic locale detection could pick up the host machine's OS
19
+ locale instead of a browser user's language.** `detectLocale()` trusted any
20
+ global `navigator.language` it found, including the one Node.js itself now
21
+ provides outside a browser — that global reflects the server/CLI machine's
22
+ OS locale, not a real user's setting. Importing this module in a non-browser
23
+ context (SSR, a Node script, a test runner) could silently default to a
24
+ non-English locale instead of the documented `'en'` fallback. It now only
25
+ trusts `navigator.language` when an actual `window` is present.
26
+
27
+ ## [1.33.2] - 2026-08-25
28
+
29
+ ### Fixed
30
+
31
+ - **`u-popover[trigger="hover"]` closed immediately on touch devices.** Its hover
32
+ handlers didn't distinguish pointer type — a tap fires `pointerenter` followed
33
+ almost instantly by `pointerleave` (touch/pen have no sustained "hover" state the
34
+ way a mouse does), so the popover closed again before a user could interact with
35
+ it. It now falls back to a click-like toggle on `touch`/`pen` pointers, matching
36
+ the common convention for hover-triggered menus (this also fixes `u-menu-item`'s
37
+ submenu, which uses the same trigger). Mouse and `focus`/`focusin` triggers are
38
+ unaffected.
39
+
40
+ ### Docs
41
+
42
+ - `UFloatingElement`'s `show-delay`/`hide-delay` now document their kebab-case HTML
43
+ attribute name explicitly — the corresponding `showDelay`/`hideDelay` camelCase
44
+ spelling is silently ignored, and this wasn't called out before.
45
+
3
46
  ## [1.33.1] - 2026-08-25
4
47
 
5
48
  ### Fixed
@@ -1,4 +1,4 @@
1
- //#region \0@oxc-project+runtime@0.146.0/helpers/esm/decorate.js
1
+ //#region \0@oxc-project+runtime@0.147.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.146.0/helpers/esm/decorateMetadata.js
1
+ //#region \0@oxc-project+runtime@0.147.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
  }
@@ -13,6 +13,9 @@ var decrement = "إنقاص القيمة";
13
13
  var clear = "مسح القيمة";
14
14
  var showPassword = "إظهار كلمة المرور";
15
15
  var hidePassword = "إخفاء كلمة المرور";
16
+ var previousSlide = "الشريحة السابقة";
17
+ var nextSlide = "الشريحة التالية";
18
+ var goToSlide = "الانتقال إلى الشريحة {n}";
16
19
  var ar_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var ar_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, ar_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, ar_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Wert verringern";
13
13
  var clear = "Wert löschen";
14
14
  var showPassword = "Passwort anzeigen";
15
15
  var hidePassword = "Passwort verbergen";
16
+ var previousSlide = "Vorherige Folie";
17
+ var nextSlide = "Nächste Folie";
18
+ var goToSlide = "Zu Folie {n} wechseln";
16
19
  var de_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var de_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, de_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, de_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Decrease value";
13
13
  var clear = "Clear value";
14
14
  var showPassword = "Show password";
15
15
  var hidePassword = "Hide password";
16
+ var previousSlide = "Previous slide";
17
+ var nextSlide = "Next slide";
18
+ var goToSlide = "Go to slide {n}";
16
19
  var en_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var en_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, en_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, en_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Disminuir valor";
13
13
  var clear = "Borrar valor";
14
14
  var showPassword = "Mostrar contraseña";
15
15
  var hidePassword = "Ocultar contraseña";
16
+ var previousSlide = "Diapositiva anterior";
17
+ var nextSlide = "Siguiente diapositiva";
18
+ var goToSlide = "Ir a la diapositiva {n}";
16
19
  var es_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var es_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, es_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, es_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Diminuer la valeur";
13
13
  var clear = "Effacer la valeur";
14
14
  var showPassword = "Afficher le mot de passe";
15
15
  var hidePassword = "Masquer le mot de passe";
16
+ var previousSlide = "Diapositive précédente";
17
+ var nextSlide = "Diapositive suivante";
18
+ var goToSlide = "Aller à la diapositive {n}";
16
19
  var fr_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var fr_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, fr_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, fr_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Kurangi nilai";
13
13
  var clear = "Hapus nilai";
14
14
  var showPassword = "Tampilkan kata sandi";
15
15
  var hidePassword = "Sembunyikan kata sandi";
16
+ var previousSlide = "Slide sebelumnya";
17
+ var nextSlide = "Slide berikutnya";
18
+ var goToSlide = "Buka slide {n}";
16
19
  var id_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var id_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, id_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, id_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "値を減らす";
13
13
  var clear = "値をクリア";
14
14
  var showPassword = "パスワードを表示";
15
15
  var hidePassword = "パスワードを隠す";
16
+ var previousSlide = "前のスライド";
17
+ var nextSlide = "次のスライド";
18
+ var goToSlide = "スライド{n}に移動";
16
19
  var ja_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var ja_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, ja_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, ja_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "값 감소";
13
13
  var clear = "값 지우기";
14
14
  var showPassword = "비밀번호 표시";
15
15
  var hidePassword = "비밀번호 숨기기";
16
+ var previousSlide = "이전 슬라이드";
17
+ var nextSlide = "다음 슬라이드";
18
+ var goToSlide = "{n}번 슬라이드로 이동";
16
19
  var ko_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var ko_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, ko_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, ko_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Diminuir valor";
13
13
  var clear = "Limpar valor";
14
14
  var showPassword = "Mostrar senha";
15
15
  var hidePassword = "Ocultar senha";
16
+ var previousSlide = "Slide anterior";
17
+ var nextSlide = "Próximo slide";
18
+ var goToSlide = "Ir para o slide {n}";
16
19
  var pt_BR_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var pt_BR_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, pt_BR_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, pt_BR_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Уменьшить значение";
13
13
  var clear = "Очистить значение";
14
14
  var showPassword = "Показать пароль";
15
15
  var hidePassword = "Скрыть пароль";
16
+ var previousSlide = "Предыдущий слайд";
17
+ var nextSlide = "Следующий слайд";
18
+ var goToSlide = "Перейти к слайду {n}";
16
19
  var ru_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var ru_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, ru_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, ru_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "ลดค่า";
13
13
  var clear = "ล้างค่า";
14
14
  var showPassword = "แสดงรหัสผ่าน";
15
15
  var hidePassword = "ซ่อนรหัสผ่าน";
16
+ var previousSlide = "สไลด์ก่อนหน้า";
17
+ var nextSlide = "สไลด์ถัดไป";
18
+ var goToSlide = "ไปที่สไลด์ที่ {n}";
16
19
  var th_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var th_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, th_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, th_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "Giảm giá trị";
13
13
  var clear = "Xóa giá trị";
14
14
  var showPassword = "Hiện mật khẩu";
15
15
  var hidePassword = "Ẩn mật khẩu";
16
+ var previousSlide = "Slide trước";
17
+ var nextSlide = "Slide sau";
18
+ var goToSlide = "Đi đến slide {n}";
16
19
  var vi_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var vi_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, vi_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, vi_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "减少值";
13
13
  var clear = "清除值";
14
14
  var showPassword = "显示密码";
15
15
  var hidePassword = "隐藏密码";
16
+ var previousSlide = "上一张幻灯片";
17
+ var nextSlide = "下一张幻灯片";
18
+ var goToSlide = "转到幻灯片{n}";
16
19
  var zh_CN_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var zh_CN_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, zh_CN_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, zh_CN_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -13,6 +13,9 @@ var decrement = "減少值";
13
13
  var clear = "清除值";
14
14
  var showPassword = "顯示密碼";
15
15
  var hidePassword = "隱藏密碼";
16
+ var previousSlide = "上一張投影片";
17
+ var nextSlide = "下一張投影片";
18
+ var goToSlide = "前往投影片{n}";
16
19
  var zh_TW_default = {
17
20
  valueMissing,
18
21
  badInput,
@@ -27,7 +30,10 @@ var zh_TW_default = {
27
30
  decrement,
28
31
  clear,
29
32
  showPassword,
30
- hidePassword
33
+ hidePassword,
34
+ previousSlide,
35
+ nextSlide,
36
+ goToSlide
31
37
  };
32
38
  //#endregion
33
- export { badInput, clear, decrement, zh_TW_default as default, hidePassword, increment, patternMismatch, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
39
+ export { badInput, clear, decrement, zh_TW_default as default, goToSlide, hidePassword, increment, nextSlide, patternMismatch, previousSlide, rangeOverflow, rangeUnderflow, showPassword, stepMismatch, tooLong, tooShort, typeMismatch, valueMissing };
@@ -76,12 +76,16 @@ export declare class UFloatingElement extends UElement {
76
76
  /**
77
77
  * 엘리먼트가 표시되기 전 지연 시간(ms)입니다.
78
78
  *
79
+ * @attr {number} show-delay - HTML에서는 이 kebab-case 이름으로만 반영됩니다
80
+ * (`showDelay`로 적으면 조용히 무시됩니다).
79
81
  * @default 0
80
82
  */
81
83
  showDelay: number;
82
84
  /**
83
85
  * 엘리먼트가 숨겨지기 전 지연 시간(ms)입니다.
84
86
  *
87
+ * @attr {number} hide-delay - HTML에서는 이 kebab-case 이름으로만 반영됩니다
88
+ * (`hideDelay`로 적으면 조용히 무시됩니다).
85
89
  * @default 0
86
90
  */
87
91
  hideDelay: number;
@@ -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.146.0/helpers/esm/decorateMetadata.js";
5
- import __decorate from "../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
4
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
5
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.147.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.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UFormControlElement.styles.js";
5
5
  import { property } 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.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../_virtual/_@oxc-project_runtime@0.147.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,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
6
6
  import { styles } from "./UAlert.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UAvatar.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../icon/UIcon.js";
5
5
  import { statusIcon } from "../../utilities/statusIcon.js";
6
6
  import { styles } from "./UBadge.styles.js";
@@ -1,5 +1,5 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import "../icon/UIcon.js";
4
4
  import { styles } from "./UBreadcrumb.styles.js";
5
5
  import { html } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UBreadcrumbItem.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../spinner/USpinner.js";
5
5
  import { styles } from "./UButton.styles.js";
6
6
  import { html } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { UButton } from "../button/UButton.js";
5
5
  import { UIconButton } from "../icon-button/UIconButton.js";
6
6
  import { styles } from "./UButtonGroup.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UCard.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,8 +1,9 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
6
+ import { Locale } from "../../utilities/Locale.js";
6
7
  import { styles } from "./UCarousel.styles.js";
7
8
  import { html } from "lit";
8
9
  import { customElement, property, state } from "lit/decorators.js";
@@ -143,6 +144,7 @@ var UCarousel = class UCarousel extends UElement {
143
144
  ?hidden=${!this.navigation || !this.loop && this.index <= 0}
144
145
  variant="ghost"
145
146
  rounded
147
+ aria-label=${Locale.getValue("previousSlide")}
146
148
  @click=${this.prev}>
147
149
  <u-icon lib="internal" name="chevron-left"></u-icon>
148
150
  </u-button>
@@ -150,6 +152,7 @@ var UCarousel = class UCarousel extends UElement {
150
152
  ?hidden=${!this.navigation || !this.loop && this.index >= this.maxIndex}
151
153
  variant="ghost"
152
154
  rounded
155
+ aria-label=${Locale.getValue("nextSlide")}
153
156
  @click=${this.next}>
154
157
  <u-icon lib="internal" name="chevron-right"></u-icon>
155
158
  </u-button>
@@ -158,6 +161,8 @@ var UCarousel = class UCarousel extends UElement {
158
161
  ?hidden=${!this.pagination || this.pageCount <= 1}>
159
162
  ${Array.from({ length: this.pageCount }, (_, i) => html`
160
163
  <button part="dot" class="dot"
164
+ aria-label=${Locale.getValue("goToSlide", { n: i + 1 })}
165
+ aria-current=${i === this.currentPage ? "true" : "false"}
161
166
  ?active=${i === this.currentPage}
162
167
  @click=${() => this.goTo(Math.min(i * this.perMove, this.maxIndex))}>
163
168
  </button>
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../icon/UIcon.js";
5
5
  import { Locale } from "../../utilities/Locale.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
6
6
  import "../tooltip/UTooltip.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
6
6
  import "../icon-button/UIconButton.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../icon/UIcon.js";
5
5
  import "../icon-button/UIconButton.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UOverlayElement } from "../UOverlayElement.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UDivider.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UOverlayElement } from "../UOverlayElement.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../icon/UIcon.js";
5
5
  import { styles } from "./UExpander.styles.js";
6
6
  import { html } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UField.styles.js";
5
5
  import { html, nothing } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { UFormControlElement } from "../UFormControlElement.js";
5
5
  import { arrayAttrConverter } from "../../utilities/converters.js";
6
6
  import { styles } from "./UForm.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { IconRegistry, getDefaultBaseUrl } from "../../utilities/icons.js";
5
5
  import { styles } from "./UIcon.styles.js";
6
6
  import { nothing } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
6
6
  import "../tooltip/UTooltip.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../spinner/USpinner.js";
5
5
  import "../icon/UIcon.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { UMenuItem } from "../menu-item/UMenuItem.js";
5
5
  import { styles } from "./UMenu.styles.js";
6
6
  import { html } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../icon/UIcon.js";
5
5
  import "../popover/UPopover.js";
6
6
  import { UDivider } from "../divider/UDivider.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../icon/UIcon.js";
5
5
  import { styles } from "./UOption.styles.js";
6
6
  import { html, nothing } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UPanel.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,5 +1,6 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import { isCoarsePointer } from "../../utilities/elements.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
4
  import { UFloatingElement } from "../UFloatingElement.js";
4
5
  import { arrayAttrConverter } from "../../utilities/converters.js";
5
6
  import { styles } from "./UPopover.styles.js";
@@ -47,15 +48,23 @@ var UPopover = class UPopover extends UFloatingElement {
47
48
  };
48
49
  this.handleAnchorPointerEnter = (e) => {
49
50
  this.cancelSafeTimer();
51
+ if (isCoarsePointer(e)) {
52
+ if (this.open) this.hide();
53
+ else this.show(e.currentTarget);
54
+ return;
55
+ }
50
56
  this.show(e.currentTarget);
51
57
  };
52
- this.handleAnchorPointerLeave = () => {
58
+ this.handleAnchorPointerLeave = (e) => {
59
+ if (isCoarsePointer(e)) return;
53
60
  this.startSafeTimer();
54
61
  };
55
- this.handlePopoverPointerEnter = () => {
62
+ this.handlePopoverPointerEnter = (e) => {
63
+ if (isCoarsePointer(e)) return;
56
64
  this.cancelSafeTimer();
57
65
  };
58
- this.handlePopoverPointerLeave = () => {
66
+ this.handlePopoverPointerLeave = (e) => {
67
+ if (isCoarsePointer(e)) return;
59
68
  this.startSafeTimer();
60
69
  };
61
70
  this.handleAnchorFocusIn = (e) => {
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UProgressBar.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property, state } from "lit/decorators.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UProgressRing.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property, state } from "lit/decorators.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import { Locale } from "../../utilities/Locale.js";
5
5
  import "../field/UField.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../icon/UIcon.js";
5
5
  import { Locale } from "../../utilities/Locale.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../spinner/USpinner.js";
5
5
  import "../icon/UIcon.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./USkeleton.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property } from "lit/decorators.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../tooltip/UTooltip.js";
5
5
  import { Locale } from "../../utilities/Locale.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./USpinner.styles.js";
5
5
  import { html } from "lit";
6
6
  import { customElement, property, state } from "lit/decorators.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { arrayAttrConverter } from "../../utilities/converters.js";
5
5
  import { styles } from "./USplitPanel.styles.js";
6
6
  import { html } from "lit";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import { Locale } from "../../utilities/Locale.js";
5
5
  import { styles } from "./USwitch.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../button/UButton.js";
5
5
  import "../icon/UIcon.js";
6
6
  import { styles } from "./UTab.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { UPanel } from "../panel/UPanel.js";
5
5
  import { UTab } from "../tab/UTab.js";
6
6
  import { styles } from "./UTabPanel.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../icon/UIcon.js";
5
5
  import { statusIcon } from "../../utilities/statusIcon.js";
6
6
  import { styles } from "./UTag.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { styles } from "./UText.styles.js";
5
5
  import { customElement, property } from "lit/decorators.js";
6
6
  import { html, literal } from "lit/static-html.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import { Locale } from "../../utilities/Locale.js";
5
5
  import "../field/UField.js";
@@ -1,5 +1,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
3
3
  import { UFloatingElement } from "../UFloatingElement.js";
4
4
  import { styles } from "./UTooltip.styles.js";
5
5
  import { html } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import { UTreeItem } from "../tree-item/UTreeItem.js";
5
5
  import { styles } from "./UTree.styles.js";
6
6
  import { html } from "lit";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.147.0/helpers/esm/decorate.js";
4
4
  import "../spinner/USpinner.js";
5
5
  import "../icon/UIcon.js";
6
6
  import { styles } from "./UTreeItem.styles.js";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { UElement } from "./components/UElement.js";
2
- import { getParentElement, querySelectorAllWithin, querySelectorWithin } from "./utilities/elements.js";
2
+ import { getParentElement, isCoarsePointer, querySelectorAllWithin, querySelectorWithin } from "./utilities/elements.js";
3
3
  import { UFloatingElement } from "./components/UFloatingElement.js";
4
4
  import { UFormControlElement } from "./components/UFormControlElement.js";
5
5
  import { OverlayManager } from "./utilities/OverlayManager.js";
@@ -18,8 +18,8 @@ import { UTooltip } from "./components/tooltip/UTooltip.js";
18
18
  import { UIconButton } from "./components/icon-button/UIconButton.js";
19
19
  import { UButtonGroup } from "./components/button-group/UButtonGroup.js";
20
20
  import { UCard } from "./components/card/UCard.js";
21
- import { UCarousel } from "./components/carousel/UCarousel.js";
22
21
  import { Locale } from "./utilities/Locale.js";
22
+ import { UCarousel } from "./components/carousel/UCarousel.js";
23
23
  import { UCheckbox } from "./components/checkbox/UCheckbox.js";
24
24
  import { UTag } from "./components/tag/UTag.js";
25
25
  import { UChip } from "./components/chip/UChip.js";
@@ -57,4 +57,4 @@ import { BrowserStorage } from "./utilities/BrowserStorage.js";
57
57
  import { Dialog } from "./utilities/Dialog.js";
58
58
  import { Theme } from "./utilities/Theme.js";
59
59
  import { Toast } from "./utilities/Toast.js";
60
- export { BrowserStorage, Dialog, IconCache, IconRegistry, Locale, OverlayManager, Theme, Toast, UAlert, UAvatar, UBadge, UBreadcrumb, UBreadcrumbItem, UButton, UButtonGroup, UCard, UCarousel, UCheckbox, UChip, UCopyButton, UDatePicker, UDialog, UDivider, UDrawer, UElement, UExpander, UField, UFloatingElement, UForm, UFormControlElement, UIcon, UIconButton, UInput, UMenu, UMenuItem, UOption, UOverlayElement, UPanel, UPopover, UProgressBar, UProgressRing, URadio, URating, USelect, USkeleton, USlider, USpinner, USplitPanel, USwitch, UTab, UTabPanel, UTag, UText, UTextarea, UTooltip, UTree, UTreeItem, arrayAttrConverter, booleanAttrConverter, dateAttrConverter, formatCurrency, formatDate, formatNumber, getDefaultBaseUrl, getParentElement, jsonAttrConverter, querySelectorAllWithin, querySelectorWithin, setDefaultBaseUrl, urlAttrConverter };
60
+ export { BrowserStorage, Dialog, IconCache, IconRegistry, Locale, OverlayManager, Theme, Toast, UAlert, UAvatar, UBadge, UBreadcrumb, UBreadcrumbItem, UButton, UButtonGroup, UCard, UCarousel, UCheckbox, UChip, UCopyButton, UDatePicker, UDialog, UDivider, UDrawer, UElement, UExpander, UField, UFloatingElement, UForm, UFormControlElement, UIcon, UIconButton, UInput, UMenu, UMenuItem, UOption, UOverlayElement, UPanel, UPopover, UProgressBar, UProgressRing, URadio, URating, USelect, USkeleton, USlider, USpinner, USplitPanel, USwitch, UTab, UTabPanel, UTag, UText, UTextarea, UTooltip, UTree, UTreeItem, arrayAttrConverter, booleanAttrConverter, dateAttrConverter, formatCurrency, formatDate, formatNumber, getDefaultBaseUrl, getParentElement, isCoarsePointer, jsonAttrConverter, querySelectorAllWithin, querySelectorWithin, setDefaultBaseUrl, urlAttrConverter };
@@ -12,7 +12,7 @@ export type SupportedLocale = 'en' | 'ko' | 'ja' | 'zh-CN' | 'zh-TW' | 'es' | 'f
12
12
  /** 내장 로케일은 자동완성되지만, 임의의 BCP47 태그도 그대로 받는다. */
13
13
  export type LocaleTag = SupportedLocale | (string & {});
14
14
  /** 라이브러리가 제공하는 chrome 문자열 키. 지금은 검증 메시지뿐이지만 이후 다른 UI 문구도 추가될 수 있다. */
15
- export type LocaleMessageKey = 'valueMissing' | 'badInput' | 'typeMismatch' | 'patternMismatch' | 'rangeUnderflow' | 'rangeOverflow' | 'stepMismatch' | 'tooShort' | 'tooLong' | 'increment' | 'decrement' | 'clear' | 'showPassword' | 'hidePassword';
15
+ export type LocaleMessageKey = 'valueMissing' | 'badInput' | 'typeMismatch' | 'patternMismatch' | 'rangeUnderflow' | 'rangeOverflow' | 'stepMismatch' | 'tooShort' | 'tooLong' | 'increment' | 'decrement' | 'clear' | 'showPassword' | 'hidePassword' | 'previousSlide' | 'nextSlide' | 'goToSlide';
16
16
  type LocaleTable = Record<LocaleMessageKey, string>;
17
17
  /**
18
18
  * 한 패키지(또는 앱 영역)의 문자열 묶음.
@@ -34,7 +34,7 @@ var builtins = new Map(Object.entries(/* #__PURE__ */ Object.assign({
34
34
  var overrides = /* @__PURE__ */ new Map();
35
35
  /** 브라우저 환경이면 `navigator.language`/`document.lang`으로 초기 로케일을 추측한다. */
36
36
  function detectLocale() {
37
- if (typeof navigator !== "undefined" && navigator.language) return navigator.language;
37
+ if (typeof window !== "undefined" && typeof navigator !== "undefined" && navigator.language) return navigator.language;
38
38
  if (typeof document !== "undefined" && document.documentElement?.lang) return document.documentElement.lang;
39
39
  return "en";
40
40
  }
@@ -15,3 +15,9 @@ export declare function querySelectorWithin(element: Element, selectors: string)
15
15
  * - 탐색은 element가 존재하는 shadow DOM 또는 document 루트 범위에서 이루어집니다.
16
16
  */
17
17
  export declare function querySelectorAllWithin(element: Element, selectors: string): HTMLElement[];
18
+ /**
19
+ * 터치/펜처럼 지속되는 hover 상태가 없는 포인터인지 여부입니다.
20
+ * - 이런 포인터는 탭 시 `pointerenter` 직후 `pointerleave`가 뒤따르므로, hover 트리거
21
+ * 컴포넌트가 이를 구분하지 않으면 열리자마자 닫히는 결함으로 이어집니다(docket #104).
22
+ */
23
+ export declare function isCoarsePointer(event: PointerEvent): boolean;
@@ -34,5 +34,13 @@ function querySelectorAllWithin(element, selectors) {
34
34
  return Array.from(nodeList);
35
35
  } else return [];
36
36
  }
37
+ /**
38
+ * 터치/펜처럼 지속되는 hover 상태가 없는 포인터인지 여부입니다.
39
+ * - 이런 포인터는 탭 시 `pointerenter` 직후 `pointerleave`가 뒤따르므로, hover 트리거
40
+ * 컴포넌트가 이를 구분하지 않으면 열리자마자 닫히는 결함으로 이어집니다(docket #104).
41
+ */
42
+ function isCoarsePointer(event) {
43
+ return event.pointerType === "touch" || event.pointerType === "pen";
44
+ }
37
45
  //#endregion
38
- export { getParentElement, querySelectorAllWithin, querySelectorWithin };
46
+ export { getParentElement, isCoarsePointer, querySelectorAllWithin, querySelectorWithin };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iyulab/components",
3
3
  "description": "web-components library based on lit-element made by iyulab",
4
- "version": "1.33.1",
4
+ "version": "1.33.4",
5
5
  "keywords": [
6
6
  "iyulab",
7
7
  "components",