@iyulab/components 1.25.0 → 1.27.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 (74) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +1 -1
  3. package/dist/_virtual/{_@oxc-project_runtime@0.142.0 → _@oxc-project_runtime@0.143.0}/helpers/esm/decorate.js +1 -1
  4. package/dist/_virtual/{_@oxc-project_runtime@0.142.0 → _@oxc-project_runtime@0.143.0}/helpers/esm/decorateMetadata.js +1 -1
  5. package/dist/_virtual/_glob-assets_raw/calendar.svg.02c3abd8.js +4 -0
  6. package/dist/_virtual/_glob-assets_raw/dark.css.e8ac080d.js +1 -1
  7. package/dist/_virtual/_glob-assets_raw/light.css.637cb2f8.js +1 -1
  8. package/dist/components/UFloatingElement.js +2 -2
  9. package/dist/components/UFormControlElement.js +2 -2
  10. package/dist/components/UOverlayElement.js +6 -4
  11. package/dist/components/alert/UAlert.js +2 -2
  12. package/dist/components/avatar/UAvatar.js +2 -2
  13. package/dist/components/badge/UBadge.js +2 -2
  14. package/dist/components/breadcrumb/UBreadcrumb.js +1 -1
  15. package/dist/components/breadcrumb-item/UBreadcrumbItem.js +2 -2
  16. package/dist/components/button/UButton.js +2 -2
  17. package/dist/components/button/UButton.styles.js +5 -1
  18. package/dist/components/button-group/UButtonGroup.js +10 -9
  19. package/dist/components/button-group/UButtonGroup.styles.js +2 -1
  20. package/dist/components/card/UCard.js +2 -2
  21. package/dist/components/carousel/UCarousel.js +6 -4
  22. package/dist/components/checkbox/UCheckbox.js +2 -2
  23. package/dist/components/chip/UChip.js +2 -2
  24. package/dist/components/copy-button/UCopyButton.js +2 -2
  25. package/dist/components/date-picker/UDatePicker.d.ts +70 -0
  26. package/dist/components/date-picker/UDatePicker.js +306 -0
  27. package/dist/components/date-picker/UDatePicker.styles.d.ts +1 -0
  28. package/dist/components/date-picker/UDatePicker.styles.js +147 -0
  29. package/dist/components/dialog/UDialog.js +2 -2
  30. package/dist/components/divider/UDivider.js +2 -2
  31. package/dist/components/drawer/UDrawer.js +2 -2
  32. package/dist/components/expander/UExpander.js +2 -2
  33. package/dist/components/field/UField.js +2 -2
  34. package/dist/components/form/UForm.js +2 -2
  35. package/dist/components/form/UForm.styles.js +2 -1
  36. package/dist/components/icon/UIcon.js +2 -2
  37. package/dist/components/icon-button/UIconButton.js +2 -2
  38. package/dist/components/input/UInput.js +3 -3
  39. package/dist/components/menu/UMenu.js +6 -4
  40. package/dist/components/menu-item/UMenuItem.js +3 -3
  41. package/dist/components/option/UOption.js +2 -2
  42. package/dist/components/panel/UPanel.js +2 -2
  43. package/dist/components/popover/UPopover.js +2 -2
  44. package/dist/components/progress-bar/UProgressBar.js +2 -2
  45. package/dist/components/progress-ring/UProgressRing.js +2 -2
  46. package/dist/components/radio/URadio.js +2 -2
  47. package/dist/components/rating/URating.js +2 -2
  48. package/dist/components/select/USelect.js +3 -3
  49. package/dist/components/skeleton/USkeleton.js +2 -2
  50. package/dist/components/slider/USlider.js +10 -8
  51. package/dist/components/spinner/USpinner.js +2 -2
  52. package/dist/components/split-panel/USplitPanel.js +2 -2
  53. package/dist/components/switch/USwitch.js +2 -2
  54. package/dist/components/tab/UTab.js +2 -2
  55. package/dist/components/tab-panel/UTabPanel.js +2 -2
  56. package/dist/components/tag/UTag.js +2 -2
  57. package/dist/components/text/UText.js +2 -2
  58. package/dist/components/textarea/UTextarea.js +2 -2
  59. package/dist/components/tooltip/UTooltip.js +13 -11
  60. package/dist/components/tree/UTree.js +8 -6
  61. package/dist/components/tree-item/UTreeItem.js +2 -2
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.js +5 -3
  64. package/dist/react/UDatePicker.d.ts +13 -0
  65. package/dist/react/UDatePicker.js +12 -0
  66. package/dist/react/index.d.ts +1 -0
  67. package/dist/react/index.js +1 -0
  68. package/dist/styles/dark.css +17 -1
  69. package/dist/styles/light.css +11 -0
  70. package/dist/utilities/format.d.ts +25 -0
  71. package/dist/utilities/format.js +61 -0
  72. package/dist/utilities/icons.js +2 -0
  73. package/package.json +5 -2
  74. package/skills/iyulab-components/references/components/date-picker.md +71 -0
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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,5 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.js";
3
3
  import { UFloatingElement } from "../UFloatingElement.js";
4
4
  import { arrayAttrConverter } from "../../utilities/converters.js";
5
5
  import { styles } from "./UPopover.styles.js";
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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,12 +1,12 @@
1
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorate.js";
3
3
  import { UFormControlElement } from "../UFormControlElement.js";
4
4
  import "../spinner/USpinner.js";
5
5
  import "../icon/UIcon.js";
6
6
  import { Locale } from "../../utilities/Locale.js";
7
7
  import "../field/UField.js";
8
- import { UOption } from "../option/UOption.js";
9
8
  import { UPopover } from "../popover/UPopover.js";
9
+ import { UOption } from "../option/UOption.js";
10
10
  import { styles } from "./USelect.styles.js";
11
11
  import { html } from "lit";
12
12
  import { customElement, property, query, 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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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";
@@ -41,9 +41,10 @@ var USlider = class USlider extends UFormControlElement {
41
41
  const handleDocumentMove = (ev) => {
42
42
  ev.preventDefault();
43
43
  const val = getPointerValue(ev);
44
- if (this.dragging === "min") if (this.range) this.minVal = Math.min(val, this.maxVal);
45
- else this.value = val;
46
- else if (this.dragging === "max") this.maxVal = Math.max(val, this.minVal);
44
+ if (this.dragging === "min") {
45
+ if (this.range) this.minVal = Math.min(val, this.maxVal);
46
+ else this.value = val;
47
+ } else if (this.dragging === "max") this.maxVal = Math.max(val, this.minVal);
47
48
  };
48
49
  const handleDocumentUp = () => {
49
50
  document.removeEventListener("pointermove", handleDocumentMove);
@@ -86,9 +87,10 @@ var USlider = class USlider extends UFormControlElement {
86
87
  e.preventDefault();
87
88
  const newVal = this.snap(currentVal + delta);
88
89
  const before = JSON.stringify(this.value);
89
- if (thumb === "min") if (this.range) this.minVal = Math.min(newVal, this.maxVal);
90
- else this.value = newVal;
91
- else this.maxVal = Math.max(newVal, this.minVal);
90
+ if (thumb === "min") {
91
+ if (this.range) this.minVal = Math.min(newVal, this.maxVal);
92
+ else this.value = newVal;
93
+ } else this.maxVal = Math.max(newVal, this.minVal);
92
94
  if (JSON.stringify(this.value) !== before) this.emitChange();
93
95
  };
94
96
  }
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.142.0/helpers/esm/decorateMetadata.js";
2
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
1
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
2
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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";
@@ -55,15 +55,17 @@ var UTooltip = class UTooltip extends UFloatingElement {
55
55
  if (oldAnchors) this.unbind(oldAnchors);
56
56
  if (newAnchors) this.bind(newAnchors);
57
57
  }
58
- if (changedProperties.has("offset") || changedProperties.has("interactive")) if (this.interactive) {
59
- let size = 0;
60
- if (typeof this.offset === "number") size = this.offset;
61
- if (typeof this.offset === "object") {
62
- const { mainAxis = 0, crossAxis = 0 } = this.offset;
63
- size = Math.max(mainAxis, crossAxis);
64
- }
65
- this.style.setProperty("--tooltip-bridge-area", `${size}px`);
66
- } else this.style.removeProperty("--tooltip-bridge-area");
58
+ if (changedProperties.has("offset") || changedProperties.has("interactive")) {
59
+ if (this.interactive) {
60
+ let size = 0;
61
+ if (typeof this.offset === "number") size = this.offset;
62
+ if (typeof this.offset === "object") {
63
+ const { mainAxis = 0, crossAxis = 0 } = this.offset;
64
+ size = Math.max(mainAxis, crossAxis);
65
+ }
66
+ this.style.setProperty("--tooltip-bridge-area", `${size}px`);
67
+ } else this.style.removeProperty("--tooltip-bridge-area");
68
+ }
67
69
  }
68
70
  render() {
69
71
  return html`
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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";
@@ -98,10 +98,12 @@ var UTree = class UTree extends UElement {
98
98
  }
99
99
  case "ArrowRight":
100
100
  e.preventDefault();
101
- if (!focused.leaf) if (!focused.expanded) focused.expand();
102
- else {
103
- const first = focused.childItems[0];
104
- if (first && !first.disabled) first.focus();
101
+ if (!focused.leaf) {
102
+ if (!focused.expanded) focused.expand();
103
+ else {
104
+ const first = focused.childItems[0];
105
+ if (first && !first.disabled) first.focus();
106
+ }
105
107
  }
106
108
  break;
107
109
  case "ArrowLeft":
@@ -1,6 +1,6 @@
1
1
  import { UElement } from "../UElement.js";
2
- import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorateMetadata.js";
3
- import __decorate from "../../_virtual/_@oxc-project_runtime@0.142.0/helpers/esm/decorate.js";
2
+ import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.143.0/helpers/esm/decorateMetadata.js";
3
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.143.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.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './components/carousel/UCarousel.js';
14
14
  export * from './components/checkbox/UCheckbox.js';
15
15
  export * from './components/chip/UChip.js';
16
16
  export * from './components/copy-button/UCopyButton.js';
17
+ export * from './components/date-picker/UDatePicker.js';
17
18
  export * from './components/dialog/UDialog.js';
18
19
  export * from './components/divider/UDivider.js';
19
20
  export * from './components/drawer/UDrawer.js';
@@ -59,6 +60,7 @@ export * from './utilities/BrowserStorage.js';
59
60
  export * from './utilities/converters.js';
60
61
  export * from './utilities/Dialog.js';
61
62
  export * from './utilities/elements.js';
63
+ export * from './utilities/format.js';
62
64
  export * from './utilities/icons.js';
63
65
  export * from './utilities/Locale.js';
64
66
  export * from './utilities/OverlayManager.js';
package/dist/index.js CHANGED
@@ -24,14 +24,16 @@ 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";
26
26
  import { UCopyButton } from "./components/copy-button/UCopyButton.js";
27
+ import { UField } from "./components/field/UField.js";
28
+ import { UPopover } from "./components/popover/UPopover.js";
29
+ import { formatCurrency, formatDate, formatNumber } from "./utilities/format.js";
30
+ import { UDatePicker } from "./components/date-picker/UDatePicker.js";
27
31
  import { UDialog } from "./components/dialog/UDialog.js";
28
32
  import { UDivider } from "./components/divider/UDivider.js";
29
33
  import { UDrawer } from "./components/drawer/UDrawer.js";
30
34
  import { UExpander } from "./components/expander/UExpander.js";
31
- import { UField } from "./components/field/UField.js";
32
35
  import { UForm } from "./components/form/UForm.js";
33
36
  import { UOption } from "./components/option/UOption.js";
34
- import { UPopover } from "./components/popover/UPopover.js";
35
37
  import { UInput } from "./components/input/UInput.js";
36
38
  import { UMenuItem } from "./components/menu-item/UMenuItem.js";
37
39
  import { UMenu } from "./components/menu/UMenu.js";
@@ -55,4 +57,4 @@ import { BrowserStorage } from "./utilities/BrowserStorage.js";
55
57
  import { Dialog } from "./utilities/Dialog.js";
56
58
  import { Theme } from "./utilities/Theme.js";
57
59
  import { Toast } from "./utilities/Toast.js";
58
- export { BrowserStorage, Dialog, IconCache, IconRegistry, Locale, OverlayManager, Theme, Toast, UAlert, UAvatar, UBadge, UBreadcrumb, UBreadcrumbItem, UButton, UButtonGroup, UCard, UCarousel, UCheckbox, UChip, UCopyButton, 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, 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, jsonAttrConverter, querySelectorAllWithin, querySelectorWithin, setDefaultBaseUrl, urlAttrConverter };
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { UDatePicker as UDatePickerElement } from '../components/date-picker/UDatePicker';
3
+
4
+ export declare const UDatePicker: React.ForwardRefExoticComponent<
5
+ Omit<Partial<UDatePickerElement>, keyof React.HTMLAttributes<UDatePickerElement>>
6
+ & Omit<React.HTMLAttributes<UDatePickerElement>, 'onChange'>
7
+ & React.RefAttributes<UDatePickerElement>
8
+ & {
9
+ onChange?: (event: CustomEvent) => void;
10
+ }
11
+ >;
12
+
13
+ export type UDatePickerProps = React.ComponentProps<typeof UDatePicker>;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit/react';
3
+ import { UDatePicker as UDatePickerElement } from '../components/date-picker/UDatePicker.js';
4
+
5
+ export const UDatePicker = createComponent({
6
+ react: React,
7
+ tagName: 'u-date-picker',
8
+ elementClass: UDatePickerElement,
9
+ events: {
10
+ onChange: 'change',
11
+ },
12
+ });
@@ -30,6 +30,7 @@ export { UExpander, UExpanderProps } from './UExpander';
30
30
  export { UDrawer, UDrawerProps } from './UDrawer';
31
31
  export { UDivider, UDividerProps } from './UDivider';
32
32
  export { UDialog, UDialogProps } from './UDialog';
33
+ export { UDatePicker, UDatePickerProps } from './UDatePicker';
33
34
  export { UCopyButton, UCopyButtonProps } from './UCopyButton';
34
35
  export { UChip, UChipProps } from './UChip';
35
36
  export { UCheckbox, UCheckboxProps } from './UCheckbox';
@@ -30,6 +30,7 @@ export { UExpander } from './UExpander.js';
30
30
  export { UDrawer } from './UDrawer.js';
31
31
  export { UDivider } from './UDivider.js';
32
32
  export { UDialog } from './UDialog.js';
33
+ export { UDatePicker } from './UDatePicker.js';
33
34
  export { UCopyButton } from './UCopyButton.js';
34
35
  export { UChip } from './UChip.js';
35
36
  export { UCheckbox } from './UCheckbox.js';
@@ -280,7 +280,23 @@
280
280
  neutral-200(1.15)보다 실제로 더 잘 구분된다 — 그 오버라이드가 해결하려던 증상이
281
281
  *"툴바·헤더가 배경에 묻힌다"* 였다. */
282
282
  --u-bg-color-raised: var(--u-neutral-300);
283
-
283
+
284
+ /* ★올림면 위의 hover — `--u-bg-color-hover`(전역, 바탕면 전용)와 값이 같아서
285
+ («둘 다 neutral-300») 카드·표 머리 위에 마우스를 올려도 아무 일도 안 일어났다
286
+ (소비앱 초안 2026-08-06 · `L2-11-1`). 전역 토큰 하나로는 "지금 위에 있는 면"을
287
+ 알 방법이 없어(참조 지점마다 계산 기준이 다를 수 없다) **전용 토큰**을 신설한다.
288
+
289
+ ⚠**A안**(`raised`를 neutral-200으로) — 과거에 거부된 값(위 주석). **B안**(전역
290
+ `hover`를 neutral-400으로) — `--u-bg-color-active` 와 충돌해 결함이 다른 쌍으로
291
+ 옮겨간다. ⇒ hover 는 본래 "현재 면보다 한 단 위"이지 절대 단이 아니므로
292
+ `color-mix()` 로 raised 자신을 기준 삼아 상대 계산한다.
293
+
294
+ N=6% 는 raised(L≈0.023)와 active(L≈0.047, neutral-400) 사이 대비 계산으로 골랐다 —
295
+ 결과 L≈0.038, raised 대비 ≈1.21(라이트의 기존 "약한" 1.04보다 뚜렷하고, `bg→raised`
296
+ 의 기존 1.31 과 비슷한 체감), active 와는 값이 달라 겹치지 않는다(≈#373737 vs
297
+ active #3D3D3D). N 을 더 올리면(≈10%+) active 를 넘어서 순서가 뒤집힌다 — 확인함. */
298
+ --u-bg-color-raised-hover: color-mix(in srgb, var(--u-bg-color-raised), white 6%);
299
+
284
300
  /* 유채색 표면 — 라이트와 **같은 단이 아니라 같은 세기**로 짝지었다(light.css 참조).
285
301
  팔레트 유채색 틴트가 다크에서 짓눌리므로 한 단 위를 쓴다. green 은 대칭이라 그대로. */
286
302
  --u-primary-bg-color: var(--u-blue-100);
@@ -299,6 +299,17 @@
299
299
  ⚠한 단만 정의한다. 두 단째의 실측 수요는 라이트 한쪽뿐이었다(다크에서는 소비 측
300
300
  오버라이드가 두 값을 같은 단으로 합치고 있었다). */
301
301
  --u-bg-color-raised: var(--u-neutral-50);
302
+
303
+ /* ⚠**라이트는 전역 hover 에 그대로 별칭한다 — 결손이 아니라 실측 결론이다**
304
+ (L2-11-1, dark.css 의 같은 자리 참조). 두 시트는 각각 완결적이어야 한다는
305
+ 불변식(`token-fallbacks.test.ts` 「키 패리티」)이 있어 다크에만 선언할 수 없다.
306
+ 라이트 팔레트는 raised(250)·hover(245)·active(238) 가 12단 안에 몰려 있어
307
+ (L≈0.956/0.913/0.855) 셋과 겹치지 않는 네 번째 단을 넣을 여유가 없다 — 대비를
308
+ 조금만 올려도(≈1.10) active 와 거의 붙고(≈1단 차), 더 올리면 순서가 뒤집힌다.
309
+ 다크와 달리 raised(250)≠hover(245) 라 «완전히 안 움직이는» 결함이 아니었으므로
310
+ (약한 대비 1.04 로 이미 알려진 채로 남는다 — 같은 초안이 지적한 곁가지),
311
+ 새 단을 억지로 만들지 않고 기존 hover 를 그대로 쓴다. */
312
+ --u-bg-color-raised-hover: var(--u-bg-color-hover);
302
313
 
303
314
  /* 유채색 표면 — 정보/성공/위험 상태의 '면'.
304
315
  역할 층의 유채색은 전경 5단뿐이라, 상태 배경이 필요한 컴포넌트는 팔레트를 직접
@@ -0,0 +1,25 @@
1
+ import { LocaleTag } from './Locale.js';
2
+ /**
3
+ * Wraps `Intl.NumberFormat` with the active locale (`Locale.get()` if omitted).
4
+ */
5
+ export declare function formatNumber(value: number, options?: Intl.NumberFormatOptions, locale?: LocaleTag): string;
6
+ /**
7
+ * Formats a number as currency. The `currency` code is **required and has no default** —
8
+ * the caller must always specify it (e.g. `'KRW'`, `'USD'`). Currency selection is domain knowledge,
9
+ * and this utility does not assume a default.
10
+ *
11
+ * @note If `options` contains `currency` or `style`, they will override the explicit `currency` argument.
12
+ */
13
+ export declare function formatCurrency(value: number, currency: string, options?: Intl.NumberFormatOptions, locale?: LocaleTag): string;
14
+ /**
15
+ * Wraps `Intl.DateTimeFormat` with the active locale. Accepts a Date object or
16
+ * an ISO `YYYY-MM-DD` date string (parsed as local time, not UTC).
17
+ *
18
+ * A value that can't be resolved to a real date (malformed string, or an
19
+ * already-Invalid `Date`) degrades to `String(value)` rather than throwing —
20
+ * `Intl.DateTimeFormat.format()` throws `RangeError` on an Invalid Date, and this
21
+ * utility is called from render paths where an uncaught throw blanks the whole
22
+ * component. Same degrade-instead-of-throw contract as `formatCurrency`'s
23
+ * missing-`currency` fallback.
24
+ */
25
+ export declare function formatDate(value: Date | string, options?: Intl.DateTimeFormatOptions, locale?: LocaleTag): string;
@@ -0,0 +1,61 @@
1
+ import { Locale } from "./Locale.js";
2
+ //#region src/utilities/format.ts
3
+ /**
4
+ * Parses "YYYY-MM-DD" as midnight in the **local** timezone.
5
+ * Using `Date.parse("YYYY-MM-DD")` (UTC interpretation) shifts the date
6
+ * back a day in negative-UTC-offset regions — split y/m/d and construct
7
+ * `new Date(y, m-1, d)` directly instead.
8
+ *
9
+ * A full ISO datetime (e.g. `2026-02-24T09:00:00Z`) is unambiguous — it carries
10
+ * its own timezone — so the local-time-safe split isn't needed there; when the
11
+ * split doesn't yield three numbers, fall back to native parsing instead of
12
+ * producing an Invalid Date.
13
+ */
14
+ function parseISODate(iso) {
15
+ const [y, m, d] = iso.split("-").map(Number);
16
+ return Number.isNaN(y) || Number.isNaN(m) || Number.isNaN(d) ? new Date(iso) : new Date(y, m - 1, d);
17
+ }
18
+ /**
19
+ * Resolves a Date or ISO date string to a Date object.
20
+ */
21
+ function resolve(value) {
22
+ return typeof value === "string" ? parseISODate(value) : value;
23
+ }
24
+ /**
25
+ * Wraps `Intl.NumberFormat` with the active locale (`Locale.get()` if omitted).
26
+ */
27
+ function formatNumber(value, options, locale) {
28
+ return new Intl.NumberFormat(locale ?? Locale.get(), options).format(value);
29
+ }
30
+ /**
31
+ * Formats a number as currency. The `currency` code is **required and has no default** —
32
+ * the caller must always specify it (e.g. `'KRW'`, `'USD'`). Currency selection is domain knowledge,
33
+ * and this utility does not assume a default.
34
+ *
35
+ * @note If `options` contains `currency` or `style`, they will override the explicit `currency` argument.
36
+ */
37
+ function formatCurrency(value, currency, options, locale) {
38
+ return new Intl.NumberFormat(locale ?? Locale.get(), {
39
+ style: "currency",
40
+ currency,
41
+ ...options
42
+ }).format(value);
43
+ }
44
+ /**
45
+ * Wraps `Intl.DateTimeFormat` with the active locale. Accepts a Date object or
46
+ * an ISO `YYYY-MM-DD` date string (parsed as local time, not UTC).
47
+ *
48
+ * A value that can't be resolved to a real date (malformed string, or an
49
+ * already-Invalid `Date`) degrades to `String(value)` rather than throwing —
50
+ * `Intl.DateTimeFormat.format()` throws `RangeError` on an Invalid Date, and this
51
+ * utility is called from render paths where an uncaught throw blanks the whole
52
+ * component. Same degrade-instead-of-throw contract as `formatCurrency`'s
53
+ * missing-`currency` fallback.
54
+ */
55
+ function formatDate(value, options, locale) {
56
+ const date = resolve(value);
57
+ if (Number.isNaN(date.getTime())) return String(value);
58
+ return new Intl.DateTimeFormat(locale ?? Locale.get(), options).format(date);
59
+ }
60
+ //#endregion
61
+ export { formatCurrency, formatDate, formatNumber };
@@ -1,6 +1,7 @@
1
1
  import alert_circle_fill_svg_default from "../_virtual/_glob-assets_raw/alert-circle-fill.svg.1e438750.js";
2
2
  import alert_triangle_fill_svg_default from "../_virtual/_glob-assets_raw/alert-triangle-fill.svg.1a8797c4.js";
3
3
  import bell_fill_svg_default from "../_virtual/_glob-assets_raw/bell-fill.svg.d37c41d9.js";
4
+ import calendar_svg_default from "../_virtual/_glob-assets_raw/calendar.svg.02c3abd8.js";
4
5
  import check_svg_default from "../_virtual/_glob-assets_raw/check.svg.4690b01e.js";
5
6
  import chevron_down_svg_default from "../_virtual/_glob-assets_raw/chevron-down.svg.0ccd06ea.js";
6
7
  import chevron_left_svg_default from "../_virtual/_glob-assets_raw/chevron-left.svg.b4601050.js";
@@ -41,6 +42,7 @@ var InternalIconBundle = new Map(Object.entries(/* #__PURE__ */ Object.assign({
41
42
  "../assets/icons/alert-circle-fill.svg": alert_circle_fill_svg_default,
42
43
  "../assets/icons/alert-triangle-fill.svg": alert_triangle_fill_svg_default,
43
44
  "../assets/icons/bell-fill.svg": bell_fill_svg_default,
45
+ "../assets/icons/calendar.svg": calendar_svg_default,
44
46
  "../assets/icons/check.svg": check_svg_default,
45
47
  "../assets/icons/chevron-down.svg": chevron_down_svg_default,
46
48
  "../assets/icons/chevron-left.svg": chevron_left_svg_default,
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.25.0",
4
+ "version": "1.27.0",
5
5
  "keywords": [
6
6
  "iyulab",
7
7
  "components",
@@ -29,8 +29,11 @@
29
29
  "node": ">=20"
30
30
  },
31
31
  "sideEffects": [
32
+ "./dist/components/*/U*.js",
32
33
  "./src/components/*/U*.ts",
33
- "./dist/components/*/U*.js"
34
+ "./dist/index.js",
35
+ "./src/index.ts",
36
+ "./dist/react/index.js"
34
37
  ],
35
38
  "exports": {
36
39
  ".": {