@iyulab/components 1.33.1 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +66 -0
- package/dist/_virtual/{_@oxc-project_runtime@0.146.0 → _@oxc-project_runtime@0.147.0}/helpers/esm/decorate.js +1 -1
- package/dist/_virtual/{_@oxc-project_runtime@0.146.0 → _@oxc-project_runtime@0.147.0}/helpers/esm/decorateMetadata.js +1 -1
- package/dist/assets/locales/ar.json.js +12 -2
- package/dist/assets/locales/de.json.js +12 -2
- package/dist/assets/locales/en.json.js +12 -2
- package/dist/assets/locales/es.json.js +11 -2
- package/dist/assets/locales/fr.json.js +12 -2
- package/dist/assets/locales/id.json.js +12 -2
- package/dist/assets/locales/ja.json.js +12 -2
- package/dist/assets/locales/ko.json.js +12 -2
- package/dist/assets/locales/pt-BR.json.js +12 -2
- package/dist/assets/locales/ru.json.js +12 -2
- package/dist/assets/locales/th.json.js +12 -2
- package/dist/assets/locales/vi.json.js +12 -2
- package/dist/assets/locales/zh-CN.json.js +12 -2
- package/dist/assets/locales/zh-TW.json.js +12 -2
- package/dist/components/UFloatingElement.d.ts +4 -0
- package/dist/components/UFloatingElement.js +2 -2
- package/dist/components/UFormControlElement.js +2 -2
- package/dist/components/UOverlayElement.js +2 -2
- package/dist/components/alert/UAlert.js +2 -2
- package/dist/components/avatar/UAvatar.js +2 -2
- package/dist/components/badge/UBadge.js +2 -2
- package/dist/components/breadcrumb/UBreadcrumb.js +1 -1
- package/dist/components/breadcrumb-item/UBreadcrumbItem.js +2 -2
- package/dist/components/button/UButton.js +2 -2
- package/dist/components/button-group/UButtonGroup.js +2 -2
- package/dist/components/card/UCard.js +2 -2
- package/dist/components/carousel/UCarousel.js +7 -2
- package/dist/components/checkbox/UCheckbox.js +2 -2
- package/dist/components/chip/UChip.js +2 -2
- package/dist/components/copy-button/UCopyButton.js +2 -2
- package/dist/components/date-picker/UDatePicker.d.ts +43 -6
- package/dist/components/date-picker/UDatePicker.js +102 -12
- package/dist/components/date-picker/UDatePicker.styles.js +29 -0
- package/dist/components/dialog/UDialog.js +2 -2
- package/dist/components/divider/UDivider.js +2 -2
- package/dist/components/drawer/UDrawer.js +2 -2
- package/dist/components/expander/UExpander.js +2 -2
- package/dist/components/field/UField.js +2 -2
- package/dist/components/form/UForm.js +2 -2
- package/dist/components/icon/UIcon.js +2 -2
- package/dist/components/icon-button/UIconButton.js +2 -2
- package/dist/components/input/UInput.js +2 -2
- package/dist/components/menu/UMenu.js +2 -2
- package/dist/components/menu-item/UMenuItem.js +2 -2
- package/dist/components/option/UOption.js +2 -2
- package/dist/components/panel/UPanel.js +2 -2
- package/dist/components/popover/UPopover.js +14 -5
- package/dist/components/progress-bar/UProgressBar.js +2 -2
- package/dist/components/progress-ring/UProgressRing.js +2 -2
- package/dist/components/radio/URadio.js +2 -2
- package/dist/components/rating/URating.js +2 -2
- package/dist/components/select/USelect.js +2 -2
- package/dist/components/skeleton/USkeleton.js +2 -2
- package/dist/components/slider/USlider.js +2 -2
- package/dist/components/spinner/USpinner.js +2 -2
- package/dist/components/split-panel/USplitPanel.js +2 -2
- package/dist/components/switch/USwitch.js +2 -2
- package/dist/components/tab/UTab.js +2 -2
- package/dist/components/tab-panel/UTabPanel.js +2 -2
- package/dist/components/tag/UTag.js +2 -2
- package/dist/components/text/UText.js +2 -2
- package/dist/components/textarea/UTextarea.js +2 -2
- package/dist/components/tooltip/UTooltip.js +2 -2
- package/dist/components/tree/UTree.js +2 -2
- package/dist/components/tree-item/UTreeItem.js +2 -2
- package/dist/index.js +3 -3
- package/dist/utilities/Locale.d.ts +1 -1
- package/dist/utilities/Locale.js +1 -1
- package/dist/utilities/elements.d.ts +6 -0
- package/dist/utilities/elements.js +9 -1
- package/package.json +1 -1
- package/skills/iyulab-components/references/components/date-picker.md +21 -5
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { UElement } from "../UElement.js";
|
|
2
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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,9 +1,14 @@
|
|
|
1
1
|
import { PropertyValues } from 'lit';
|
|
2
2
|
import { UFormControlElement } from '../UFormControlElement.js';
|
|
3
3
|
import { UPopover } from '../popover/UPopover.js';
|
|
4
|
+
export type DatePickerMode = 'date' | 'datetime';
|
|
4
5
|
/**
|
|
5
|
-
* A single-date-selection form control.
|
|
6
|
-
* native `input[type=date]`: an ISO `YYYY-MM-DD` string.
|
|
6
|
+
* A single-date(-time)-selection form control. In `mode="date"` (default) the value follows
|
|
7
|
+
* the same convention as the native `input[type=date]`: an ISO `YYYY-MM-DD` string. In
|
|
8
|
+
* `mode="datetime"` the value is a complete ISO-8601 `DateTimeOffset` string
|
|
9
|
+
* (`YYYY-MM-DDTHH:mm:ss±HH:mm`) — the component always fills in seconds and the browser's
|
|
10
|
+
* local UTC offset, so the value is unconditionally valid regardless of how coarse the time
|
|
11
|
+
* input was.
|
|
7
12
|
*
|
|
8
13
|
* The calendar week always starts on Sunday, regardless of locale — harmless for the
|
|
9
14
|
* locales this library currently ships (en/ko), but not correct for locales where Monday
|
|
@@ -20,17 +25,25 @@ import { UPopover } from '../popover/UPopover.js';
|
|
|
20
25
|
* @csspart calendar-weekdays - the weekday header row
|
|
21
26
|
* @csspart calendar-grid - the date grid
|
|
22
27
|
* @csspart day - a date cell button
|
|
28
|
+
* @csspart calendar-footer - the row holding the "today"/"clear" quick-action buttons
|
|
29
|
+
* @csspart calendar-time - the row holding the time-of-day input (datetime mode only)
|
|
23
30
|
*
|
|
24
31
|
* @cssprop --date-picker-popover-width - width of the calendar popover (default: 296px, independent of trigger width — a fixed-width calendar reads more naturally)
|
|
25
32
|
*
|
|
26
|
-
* @event change - fires when the user clicks a date cell, confirms via keyboard,
|
|
27
|
-
*
|
|
33
|
+
* @event change - fires when the user clicks a date cell, confirms via keyboard, changes the
|
|
34
|
+
* time input (datetime mode, once a date is set), or clicks the clear button. Programmatic
|
|
35
|
+
* value assignment does not fire it (same contract as native form controls).
|
|
28
36
|
*/
|
|
29
37
|
export declare class UDatePicker extends UFormControlElement<string> {
|
|
30
38
|
static styles: import('lit').CSSResultGroup[];
|
|
31
|
-
/**
|
|
39
|
+
/** `date` (default) selects a calendar day only. `datetime` also captures a time-of-day and
|
|
40
|
+
* the value becomes a complete ISO-8601 `DateTimeOffset` string. */
|
|
41
|
+
mode: DatePickerMode;
|
|
42
|
+
/** Minimum value (ISO YYYY-MM-DD) — dates before this cannot be selected. Date-only even in
|
|
43
|
+
* `mode="datetime"`; time-of-day is never range-checked. */
|
|
32
44
|
min?: string;
|
|
33
|
-
/** Maximum value (ISO YYYY-MM-DD) — dates after this cannot be selected.
|
|
45
|
+
/** Maximum value (ISO YYYY-MM-DD) — dates after this cannot be selected. Date-only even in
|
|
46
|
+
* `mode="datetime"`; time-of-day is never range-checked. */
|
|
34
47
|
max?: string;
|
|
35
48
|
/** Whether to show the clear button */
|
|
36
49
|
clearable: boolean;
|
|
@@ -43,14 +56,28 @@ export declare class UDatePicker extends UFormControlElement<string> {
|
|
|
43
56
|
private open;
|
|
44
57
|
private viewDate;
|
|
45
58
|
private focusedDate;
|
|
59
|
+
/** Time-of-day for the next selection while no `value` exists yet (`mode="datetime"` only) —
|
|
60
|
+
* once `value` is set, the time input reads/writes its time portion directly instead. */
|
|
61
|
+
private pendingTime;
|
|
46
62
|
private grabFocusOnUpdate;
|
|
47
63
|
protected updated(changed: PropertyValues): void;
|
|
48
64
|
render(): import('lit-html').TemplateResult<1>;
|
|
49
65
|
private renderCalendar;
|
|
66
|
+
private renderTimeRow;
|
|
67
|
+
private renderFooter;
|
|
50
68
|
private renderDay;
|
|
51
69
|
private isOutOfRange;
|
|
52
70
|
private focusDayButton;
|
|
71
|
+
/** `timeOverride` lets a caller force the time-of-day (the "today" quick action wants
|
|
72
|
+
* "right now", overriding whatever time was previously set) — a plain day-cell click omits
|
|
73
|
+
* it, which preserves the existing time-of-day (or `pendingTime`) so switching the date
|
|
74
|
+
* alone doesn't clobber a time the user already picked. */
|
|
53
75
|
private selectDay;
|
|
76
|
+
/** Time input change — only commits into `value` once a date already exists (matches native
|
|
77
|
+
* `datetime-local`: a time alone isn't a complete value). Before that, it just remembers
|
|
78
|
+
* `pendingTime` for whenever a day gets picked. Doesn't close the popover or refocus the
|
|
79
|
+
* trigger — unlike selecting a day, adjusting the time doesn't conclude the interaction. */
|
|
80
|
+
private handleTimeChange;
|
|
54
81
|
private handlePrevMonth;
|
|
55
82
|
private handleNextMonth;
|
|
56
83
|
private navigateMonth;
|
|
@@ -59,6 +86,16 @@ export declare class UDatePicker extends UFormControlElement<string> {
|
|
|
59
86
|
private handlePopoverShow;
|
|
60
87
|
private handlePopoverHide;
|
|
61
88
|
private handleClearClick;
|
|
89
|
+
/** "오늘" 퀵액션 — `today` 셀이 이미 렌더에서 계산해 표시 중인 값(`renderDay`의
|
|
90
|
+
* `isSameDay(date, new Date())`)을 실제로 선택하는 것뿐이라 `selectDay`를 그대로 탄다
|
|
91
|
+
* (범위 밖이면 `selectDay`가 조용히 no-op — 클릭 불가 상태인 day 셀과 동일 규약).
|
|
92
|
+
* datetime 모드에서는 "지금"을 통째로 채우는 것이 요청의 본질(§D-28 항목 2 docket 코멘트)
|
|
93
|
+
* 이라 시간까지 `now`로 덮어쓴다 — 평범한 day 셀 클릭과 달리 기존 시각을 보존하지 않는다. */
|
|
94
|
+
private handleTodayClick;
|
|
95
|
+
/** 캘린더 팝오버 안 "초기화" 퀵액션 — 트리거의 clear 아이콘(`handleClearClick`)과 값을
|
|
96
|
+
* 비우는 로직은 같지만, 팝오버가 열린 채로 눌렸으므로 선택 완료와 동일하게 닫아 준다. */
|
|
97
|
+
private handleFooterResetClick;
|
|
98
|
+
private resetValue;
|
|
62
99
|
/** suffix `u-icon`은 순수 표시 요소(버튼 아님)라 네이티브 키보드 활성화가 없다 —
|
|
63
100
|
* `role="button"`+`tabindex="0"`로 포커스 가능하게 한 뒤, Enter/Space를 같은 클릭
|
|
64
101
|
* 핸들러로 릴레이한다(`UInput`/`USelect`의 동일 패턴과 일치). */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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
|
+
import "../button/UButton.js";
|
|
4
5
|
import "../icon/UIcon.js";
|
|
5
6
|
import "../icon-button/UIconButton.js";
|
|
6
7
|
import { Locale } from "../../utilities/Locale.js";
|
|
@@ -34,6 +35,31 @@ function addDays(date, delta) {
|
|
|
34
35
|
function daysInMonth(date) {
|
|
35
36
|
return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
|
|
36
37
|
}
|
|
38
|
+
/** `±HH:mm` for the browser's local timezone at `date` (DST-aware — recomputed per date,
|
|
39
|
+
* not cached — `getTimezoneOffset()`'s sign is the inverse of the ISO-8601 offset sign). */
|
|
40
|
+
function getLocalOffset(date) {
|
|
41
|
+
const minutes = -date.getTimezoneOffset();
|
|
42
|
+
const sign = minutes >= 0 ? "+" : "-";
|
|
43
|
+
const abs = Math.abs(minutes);
|
|
44
|
+
return `${sign}${String(Math.floor(abs / 60)).padStart(2, "0")}:${String(abs % 60).padStart(2, "0")}`;
|
|
45
|
+
}
|
|
46
|
+
/** Builds the `value` for the given mode — `datetime` always emits seconds + local offset so
|
|
47
|
+
* the result is unconditionally a valid, unambiguous ISO-8601 `DateTimeOffset` regardless of
|
|
48
|
+
* how coarse the UI input was (this is the guarantee the datetime mode request asked for). */
|
|
49
|
+
function buildValue(date, mode, time) {
|
|
50
|
+
return mode === "datetime" ? `${toISODate(date)}T${time}:00${getLocalOffset(date)}` : toISODate(date);
|
|
51
|
+
}
|
|
52
|
+
/** Splits a `value` into its date portion (as a `Date`, via the local `parseISODate` above —
|
|
53
|
+
* date-only, no timezone conversion) and its `HH:mm` time-of-day (`'00:00'` if absent —
|
|
54
|
+
* covers both plain date-mode values and a datetime value with no time captured yet). */
|
|
55
|
+
function splitValue(value) {
|
|
56
|
+
const [datePart, rest] = value.split("T");
|
|
57
|
+
const match = rest?.match(/^(\d{2}:\d{2})/);
|
|
58
|
+
return {
|
|
59
|
+
date: parseISODate(datePart),
|
|
60
|
+
time: match ? match[1] : "00:00"
|
|
61
|
+
};
|
|
62
|
+
}
|
|
37
63
|
/** Cells to render for the calendar grid — leading `null`s pad the previous month's weekday offset. */
|
|
38
64
|
function buildMonthGrid(viewDate) {
|
|
39
65
|
const startOffset = startOfMonth(viewDate).getDay();
|
|
@@ -58,12 +84,23 @@ function getWeekdayLabels(locale) {
|
|
|
58
84
|
var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
59
85
|
constructor(..._args) {
|
|
60
86
|
super(..._args);
|
|
87
|
+
this.mode = "date";
|
|
61
88
|
this.clearable = false;
|
|
62
89
|
this.calendarId = `u-date-picker-calendar-${Math.random().toString(36).slice(2, 8)}`;
|
|
63
90
|
this.open = false;
|
|
64
91
|
this.viewDate = startOfMonth(/* @__PURE__ */ new Date());
|
|
65
92
|
this.focusedDate = /* @__PURE__ */ new Date();
|
|
93
|
+
this.pendingTime = "00:00";
|
|
66
94
|
this.grabFocusOnUpdate = false;
|
|
95
|
+
this.handleTimeChange = (e) => {
|
|
96
|
+
const time = e.target.value || "00:00";
|
|
97
|
+
this.pendingTime = time;
|
|
98
|
+
if (!this.value) return;
|
|
99
|
+
const iso = buildValue(splitValue(this.value).date, this.mode, time);
|
|
100
|
+
const changed = iso !== this.value;
|
|
101
|
+
this.value = iso;
|
|
102
|
+
if (changed) this.emitChange();
|
|
103
|
+
};
|
|
67
104
|
this.handlePrevMonth = () => this.navigateMonth(-1);
|
|
68
105
|
this.handleNextMonth = () => this.navigateMonth(1);
|
|
69
106
|
this.handleDayKeydown = (e, date) => {
|
|
@@ -106,7 +143,7 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
106
143
|
this.handlePopoverShow = () => {
|
|
107
144
|
this.open = true;
|
|
108
145
|
this.grabFocusOnUpdate = true;
|
|
109
|
-
const base = this.value ?
|
|
146
|
+
const base = this.value ? splitValue(this.value).date : /* @__PURE__ */ new Date();
|
|
110
147
|
this.viewDate = startOfMonth(base);
|
|
111
148
|
this.focusedDate = base;
|
|
112
149
|
};
|
|
@@ -116,9 +153,17 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
116
153
|
this.handleClearClick = (e) => {
|
|
117
154
|
e.preventDefault();
|
|
118
155
|
e.stopPropagation();
|
|
119
|
-
|
|
120
|
-
this.
|
|
121
|
-
|
|
156
|
+
this.resetValue();
|
|
157
|
+
this.containerEl?.focus();
|
|
158
|
+
};
|
|
159
|
+
this.handleTodayClick = () => {
|
|
160
|
+
const now = /* @__PURE__ */ new Date();
|
|
161
|
+
const time = this.mode === "datetime" ? `${String(now.getHours()).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}` : void 0;
|
|
162
|
+
this.selectDay(now, time);
|
|
163
|
+
};
|
|
164
|
+
this.handleFooterResetClick = () => {
|
|
165
|
+
this.resetValue();
|
|
166
|
+
this.popoverEl?.hide();
|
|
122
167
|
this.containerEl?.focus();
|
|
123
168
|
};
|
|
124
169
|
this.handleClearKeydown = (e) => {
|
|
@@ -139,7 +184,10 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
139
184
|
}
|
|
140
185
|
}
|
|
141
186
|
render() {
|
|
142
|
-
const displayText = this.value ? formatDate(this.value
|
|
187
|
+
const displayText = this.value ? formatDate(this.value, this.mode === "datetime" ? {
|
|
188
|
+
dateStyle: "medium",
|
|
189
|
+
timeStyle: "short"
|
|
190
|
+
} : void 0) : "";
|
|
143
191
|
return html`
|
|
144
192
|
<u-field part="field"
|
|
145
193
|
?required=${this.required}
|
|
@@ -216,11 +264,37 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
216
264
|
</div>
|
|
217
265
|
`)}
|
|
218
266
|
</div>
|
|
267
|
+
${this.renderTimeRow()}
|
|
268
|
+
${this.renderFooter()}
|
|
269
|
+
</div>
|
|
270
|
+
`;
|
|
271
|
+
}
|
|
272
|
+
renderTimeRow() {
|
|
273
|
+
if (this.mode !== "datetime") return "";
|
|
274
|
+
const time = this.value ? splitValue(this.value).time : this.pendingTime;
|
|
275
|
+
return html`
|
|
276
|
+
<div class="calendar-time" part="calendar-time">
|
|
277
|
+
<input type="time" class="time-input" part="time-input"
|
|
278
|
+
aria-label=${Locale.getValue("time")}
|
|
279
|
+
.value=${time}
|
|
280
|
+
@change=${this.handleTimeChange}
|
|
281
|
+
/>
|
|
282
|
+
</div>
|
|
283
|
+
`;
|
|
284
|
+
}
|
|
285
|
+
renderFooter() {
|
|
286
|
+
const todayDisabled = this.isOutOfRange(/* @__PURE__ */ new Date());
|
|
287
|
+
return html`
|
|
288
|
+
<div class="calendar-footer" part="calendar-footer">
|
|
289
|
+
<u-button variant="ghost" size="sm" ?disabled=${todayDisabled} @click=${this.handleTodayClick}>${Locale.getValue("today")}</u-button>
|
|
290
|
+
${this.clearable && this.value ? html`
|
|
291
|
+
<u-button variant="ghost" size="sm" @click=${this.handleFooterResetClick}>${Locale.getValue("clear")}</u-button>
|
|
292
|
+
` : ""}
|
|
219
293
|
</div>
|
|
220
294
|
`;
|
|
221
295
|
}
|
|
222
296
|
renderDay(date) {
|
|
223
|
-
const selected = this.value ? isSameDay(date,
|
|
297
|
+
const selected = this.value ? isSameDay(date, splitValue(this.value).date) : false;
|
|
224
298
|
const focused = isSameDay(date, this.focusedDate);
|
|
225
299
|
const today = isSameDay(date, /* @__PURE__ */ new Date());
|
|
226
300
|
const outOfRange = this.isOutOfRange(date);
|
|
@@ -249,11 +323,17 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
249
323
|
const iso = toISODate(date);
|
|
250
324
|
this.renderRoot.querySelector(`button.day[data-iso="${iso}"]`)?.focus();
|
|
251
325
|
}
|
|
252
|
-
|
|
326
|
+
/** `timeOverride` lets a caller force the time-of-day (the "today" quick action wants
|
|
327
|
+
* "right now", overriding whatever time was previously set) — a plain day-cell click omits
|
|
328
|
+
* it, which preserves the existing time-of-day (or `pendingTime`) so switching the date
|
|
329
|
+
* alone doesn't clobber a time the user already picked. */
|
|
330
|
+
selectDay(date, timeOverride) {
|
|
253
331
|
if (this.isOutOfRange(date)) return;
|
|
254
|
-
const
|
|
332
|
+
const time = timeOverride ?? (this.value ? splitValue(this.value).time : this.pendingTime);
|
|
333
|
+
const iso = buildValue(date, this.mode, time);
|
|
255
334
|
const changed = iso !== this.value;
|
|
256
335
|
this.value = iso;
|
|
336
|
+
if (this.mode === "datetime") this.pendingTime = time;
|
|
257
337
|
if (changed) this.emitChange();
|
|
258
338
|
this.popoverEl?.hide();
|
|
259
339
|
this.containerEl?.focus();
|
|
@@ -271,6 +351,11 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
271
351
|
if (next.getMonth() !== this.viewDate.getMonth() || next.getFullYear() !== this.viewDate.getFullYear()) this.viewDate = startOfMonth(next);
|
|
272
352
|
this.focusedDate = next;
|
|
273
353
|
}
|
|
354
|
+
resetValue() {
|
|
355
|
+
const hadValue = !!this.value;
|
|
356
|
+
this.value = void 0;
|
|
357
|
+
if (hadValue) this.emitChange();
|
|
358
|
+
}
|
|
274
359
|
emitChange() {
|
|
275
360
|
if (!this.novalidate) this.validate();
|
|
276
361
|
this.dispatchEvent(new Event("change", {
|
|
@@ -284,10 +369,10 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
284
369
|
if (this.required && !this.value) {
|
|
285
370
|
flags = { valueMissing: true };
|
|
286
371
|
message = Locale.getValue("valueMissing");
|
|
287
|
-
} else if (this.value && this.min &&
|
|
372
|
+
} else if (this.value && this.min && splitValue(this.value).date.getTime() < parseISODate(this.min).getTime()) {
|
|
288
373
|
flags = { rangeUnderflow: true };
|
|
289
374
|
message = Locale.getValue("rangeUnderflow", { min: this.min });
|
|
290
|
-
} else if (this.value && this.max &&
|
|
375
|
+
} else if (this.value && this.max && splitValue(this.value).date.getTime() > parseISODate(this.max).getTime()) {
|
|
291
376
|
flags = { rangeOverflow: true };
|
|
292
377
|
message = Locale.getValue("rangeOverflow", { max: this.max });
|
|
293
378
|
}
|
|
@@ -308,6 +393,10 @@ var UDatePicker = class UDatePicker extends UFormControlElement {
|
|
|
308
393
|
this.containerEl?.blur();
|
|
309
394
|
}
|
|
310
395
|
};
|
|
396
|
+
__decorate([property({
|
|
397
|
+
type: String,
|
|
398
|
+
reflect: true
|
|
399
|
+
}), __decorateMetadata("design:type", Object)], UDatePicker.prototype, "mode", void 0);
|
|
311
400
|
__decorate([property({ type: String }), __decorateMetadata("design:type", String)], UDatePicker.prototype, "min", void 0);
|
|
312
401
|
__decorate([property({ type: String }), __decorateMetadata("design:type", String)], UDatePicker.prototype, "max", void 0);
|
|
313
402
|
__decorate([property({
|
|
@@ -320,6 +409,7 @@ __decorate([query("u-popover", true), __decorateMetadata("design:type", typeof U
|
|
|
320
409
|
__decorate([state(), __decorateMetadata("design:type", Boolean)], UDatePicker.prototype, "open", void 0);
|
|
321
410
|
__decorate([state(), __decorateMetadata("design:type", typeof Date === "undefined" ? Object : Date)], UDatePicker.prototype, "viewDate", void 0);
|
|
322
411
|
__decorate([state(), __decorateMetadata("design:type", typeof Date === "undefined" ? Object : Date)], UDatePicker.prototype, "focusedDate", void 0);
|
|
412
|
+
__decorate([state(), __decorateMetadata("design:type", String)], UDatePicker.prototype, "pendingTime", void 0);
|
|
323
413
|
UDatePicker = __decorate([customElement("u-date-picker")], UDatePicker);
|
|
324
414
|
//#endregion
|
|
325
415
|
export { UDatePicker };
|
|
@@ -142,6 +142,35 @@ var styles = css`
|
|
|
142
142
|
color: var(--u-txt-color-disabled, #BDBDBD);
|
|
143
143
|
cursor: not-allowed;
|
|
144
144
|
}
|
|
145
|
+
|
|
146
|
+
.calendar-time {
|
|
147
|
+
display: flex;
|
|
148
|
+
justify-content: flex-end;
|
|
149
|
+
padding: 4px 4px 0;
|
|
150
|
+
}
|
|
151
|
+
.time-input {
|
|
152
|
+
font-family: inherit;
|
|
153
|
+
font-size: 0.9em;
|
|
154
|
+
padding: 2px 6px;
|
|
155
|
+
border: 1px solid var(--u-input-border-color, #E0E0E0);
|
|
156
|
+
border-radius: 0.25em;
|
|
157
|
+
background-color: var(--u-input-bg-color, #FFFFFF);
|
|
158
|
+
color: var(--u-txt-color, #212121);
|
|
159
|
+
}
|
|
160
|
+
.time-input:focus-visible {
|
|
161
|
+
outline: none;
|
|
162
|
+
box-shadow: 0 0 0 1px var(--u-input-border-color-focus, #1565C0);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.calendar-footer {
|
|
166
|
+
display: flex;
|
|
167
|
+
justify-content: space-between;
|
|
168
|
+
align-items: center;
|
|
169
|
+
gap: 8px;
|
|
170
|
+
padding-top: 8px;
|
|
171
|
+
margin-top: 4px;
|
|
172
|
+
border-top: 1px solid var(--u-border-color-weak, #EEEEEE);
|
|
173
|
+
}
|
|
145
174
|
`;
|
|
146
175
|
//#endregion
|
|
147
176
|
export { styles };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import __decorateMetadata from "../../_virtual/_@oxc-project_runtime@0.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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
|
|
2
|
-
import
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
3
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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.
|
|
2
|
-
import __decorate from "../../_virtual/_@oxc-project_runtime@0.
|
|
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";
|