@lekoala/date-picker 0.1.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/LICENSE +21 -0
- package/README.md +236 -0
- package/custom-elements.json +366 -0
- package/dist/date-picker.css +344 -0
- package/dist/date-picker.js +2693 -0
- package/dist/date-picker.min.css +1 -0
- package/dist/date-picker.min.js +17 -0
- package/dist/date-picker.standalone.min.js +361 -0
- package/dist/types/calendar-model.d.ts +34 -0
- package/dist/types/calendar-model.d.ts.map +1 -0
- package/dist/types/date-calendar.d.ts +228 -0
- package/dist/types/date-calendar.d.ts.map +1 -0
- package/dist/types/date-field.d.ts +94 -0
- package/dist/types/date-field.d.ts.map +1 -0
- package/dist/types/date-picker.d.ts +258 -0
- package/dist/types/date-picker.d.ts.map +1 -0
- package/dist/types/date-range.d.ts +89 -0
- package/dist/types/date-range.d.ts.map +1 -0
- package/dist/types/date.d.ts +61 -0
- package/dist/types/date.d.ts.map +1 -0
- package/dist/types/define.d.ts +2 -0
- package/dist/types/define.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/intl.d.ts +33 -0
- package/dist/types/intl.d.ts.map +1 -0
- package/dist/types/locales/ar.d.ts +22 -0
- package/dist/types/locales/ar.d.ts.map +1 -0
- package/dist/types/locales/de.d.ts +22 -0
- package/dist/types/locales/de.d.ts.map +1 -0
- package/dist/types/locales/en.d.ts +22 -0
- package/dist/types/locales/en.d.ts.map +1 -0
- package/dist/types/locales/es.d.ts +22 -0
- package/dist/types/locales/es.d.ts.map +1 -0
- package/dist/types/locales/fr.d.ts +22 -0
- package/dist/types/locales/fr.d.ts.map +1 -0
- package/dist/types/locales/hi.d.ts +22 -0
- package/dist/types/locales/hi.d.ts.map +1 -0
- package/dist/types/locales/id.d.ts +22 -0
- package/dist/types/locales/id.d.ts.map +1 -0
- package/dist/types/locales/it.d.ts +22 -0
- package/dist/types/locales/it.d.ts.map +1 -0
- package/dist/types/locales/ja.d.ts +22 -0
- package/dist/types/locales/ja.d.ts.map +1 -0
- package/dist/types/locales/ko.d.ts +22 -0
- package/dist/types/locales/ko.d.ts.map +1 -0
- package/dist/types/locales/nl.d.ts +22 -0
- package/dist/types/locales/nl.d.ts.map +1 -0
- package/dist/types/locales/pl.d.ts +22 -0
- package/dist/types/locales/pl.d.ts.map +1 -0
- package/dist/types/locales/pt-BR.d.ts +22 -0
- package/dist/types/locales/pt-BR.d.ts.map +1 -0
- package/dist/types/locales/pt-PT.d.ts +22 -0
- package/dist/types/locales/pt-PT.d.ts.map +1 -0
- package/dist/types/locales/ru.d.ts +22 -0
- package/dist/types/locales/ru.d.ts.map +1 -0
- package/dist/types/locales/tr.d.ts +22 -0
- package/dist/types/locales/tr.d.ts.map +1 -0
- package/dist/types/locales/zh-CN.d.ts +22 -0
- package/dist/types/locales/zh-CN.d.ts.map +1 -0
- package/dist/types/messages.d.ts +43 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/source.d.ts +28 -0
- package/dist/types/source.d.ts.map +1 -0
- package/docs/ACCESSIBILITY.md +128 -0
- package/docs/API.md +289 -0
- package/docs/ARCHITECTURE.md +183 -0
- package/docs/AT-CHECKLIST.md +63 -0
- package/docs/CALENDAR-INTEGRATION.md +70 -0
- package/docs/DECISIONS.md +40 -0
- package/docs/MIGRATION-FLATPICKR.md +92 -0
- package/docs/ROADMAP.md +105 -0
- package/docs/TESTING.md +73 -0
- package/docs/USE_CASES.md +128 -0
- package/package.json +174 -0
- package/src/calendar-model.js +80 -0
- package/src/date-calendar.js +800 -0
- package/src/date-field.js +203 -0
- package/src/date-picker.css +344 -0
- package/src/date-picker.js +1140 -0
- package/src/date-range.js +172 -0
- package/src/date.js +203 -0
- package/src/define.js +9 -0
- package/src/index.js +15 -0
- package/src/intl.js +155 -0
- package/src/locales/ar.js +20 -0
- package/src/locales/de.js +20 -0
- package/src/locales/en.js +20 -0
- package/src/locales/es.js +20 -0
- package/src/locales/fr.js +20 -0
- package/src/locales/hi.js +20 -0
- package/src/locales/id.js +20 -0
- package/src/locales/it.js +20 -0
- package/src/locales/ja.js +20 -0
- package/src/locales/ko.js +20 -0
- package/src/locales/nl.js +20 -0
- package/src/locales/pl.js +20 -0
- package/src/locales/pt-BR.js +20 -0
- package/src/locales/pt-PT.js +20 -0
- package/src/locales/ru.js +20 -0
- package/src/locales/tr.js +20 -0
- package/src/locales/zh-CN.js +20 -0
- package/src/messages.js +31 -0
- package/src/source.js +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 LeKoala
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# @lekoala/date-picker
|
|
2
|
+
|
|
3
|
+
Small, native-first date picker and inline calendar primitives.
|
|
4
|
+
|
|
5
|
+
> v0.1: the interaction contract, event names, public styling tokens and the component API are frozen — see [docs/DECISIONS.md](docs/DECISIONS.md). Internal DOM and class names are `.dp-*` implementation details and stay private.
|
|
6
|
+
|
|
7
|
+
This project fills the gap between a normal editable date field and a full scheduling calendar. A plain date input remains the right answer for simple CMS/editing forms. This component becomes useful when a date has context: availability, disabled days, annotations, remote state, start/end relationships, or a mini calendar that navigates another view.
|
|
8
|
+
|
|
9
|
+
## The two primitives
|
|
10
|
+
|
|
11
|
+
### `<date-calendar>`
|
|
12
|
+
|
|
13
|
+
An inline calendar with real month/year navigation, keyboard support and three separate pieces of state:
|
|
14
|
+
|
|
15
|
+
- `display` — the month being rendered (`YYYY-MM`);
|
|
16
|
+
- `focusedDate` — the roving keyboard target (`YYYY-MM-DD`);
|
|
17
|
+
- `value` — the selected date (`YYYY-MM-DD`, optional).
|
|
18
|
+
|
|
19
|
+
User activation is exposed separately as `dateactivate`. This is what makes the same calendar useful as a selector **and** as a mini navigator.
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<date-calendar value="2026-09-10" fixed-weeks></date-calendar>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For a navigator that should not own a selection:
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<date-calendar id="mini" selection="none" fixed-weeks show-week-numbers></date-calendar>
|
|
29
|
+
<script type="module">
|
|
30
|
+
const mini = document.querySelector("#mini");
|
|
31
|
+
mini.addEventListener("dateactivate", (event) => {
|
|
32
|
+
agenda.gotoDate(event.detail.date);
|
|
33
|
+
});
|
|
34
|
+
</script>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### `<date-picker>`
|
|
38
|
+
|
|
39
|
+
A composition around a real editable text input. The user sees and edits a short locale-aware numeric date while form submission stays canonical ISO.
|
|
40
|
+
|
|
41
|
+
**Use `<date-picker>` when choosing a date benefits from calendar context.** For a simple editable date field, a normal input with formatting and validation is the right tool instead.
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<date-picker value="2026-09-10" locale="fr-BE">
|
|
45
|
+
<input name="appointment_date" required>
|
|
46
|
+
</date-picker>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
With JavaScript enabled the input displays `10/09/2026`; the hidden submitted value remains `2026-09-10`. The visible input keeps the label, focus, required state and validation UI.
|
|
50
|
+
|
|
51
|
+
By default the calendar opens when the field receives focus — without stealing the keyboard focus, so typing works immediately. `open-on-focus="false"` makes the calendar opt-in (trigger button or `ArrowDown`). Under `readonly` the value stays editable-by-calendar-off but is still submitted; under `disabled` the field is also unsubmitted.
|
|
52
|
+
|
|
53
|
+
## Start/end ranges
|
|
54
|
+
|
|
55
|
+
Two product shapes cover ranges.
|
|
56
|
+
|
|
57
|
+
**One shared calendar surface** — two editable fields wired to a single picker popup:
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<date-picker range>
|
|
61
|
+
<input data-range-start name="arrival" aria-label="Arrival">
|
|
62
|
+
<input data-range-end name="departure" aria-label="Departure">
|
|
63
|
+
</date-picker>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Opening from a field targets that bound; picking the first date moves the active endpoint to the other bound without closing, and the second pick completes and closes. `picker.range` is the atomic `{ start, end }` API (single `rangechange` event).
|
|
67
|
+
|
|
68
|
+
**Two independent pickers** — a small external link for visually separate fields:
|
|
69
|
+
|
|
70
|
+
```js
|
|
71
|
+
import { linkDateRange } from "@lekoala/date-picker";
|
|
72
|
+
|
|
73
|
+
const cleanup = linkDateRange(startPicker, endPicker);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The relationship applies `end >= start` and `start <= end` as effective bounds. Neither picker knows about its sibling.
|
|
77
|
+
|
|
78
|
+
## Availability and per-day metadata
|
|
79
|
+
|
|
80
|
+
The calendar accepts a source function or `{ load() }` object with the same abortable shape used elsewhere in LeKoala components:
|
|
81
|
+
|
|
82
|
+
```js
|
|
83
|
+
calendar.source = async ({ start, end }, { signal }) => {
|
|
84
|
+
const response = await fetch(`/availability?start=${start}&end=${end}`, { signal });
|
|
85
|
+
return response.json();
|
|
86
|
+
};
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Accepted payloads are deliberately simple:
|
|
90
|
+
|
|
91
|
+
```js
|
|
92
|
+
{
|
|
93
|
+
dates: {
|
|
94
|
+
"2026-09-10": {
|
|
95
|
+
enabled: true,
|
|
96
|
+
description: "Available morning and afternoon",
|
|
97
|
+
morning: true,
|
|
98
|
+
afternoon: true
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Business metadata is not interpreted by the core. Consumers can add visual content without replacing the grid cell or its accessibility semantics:
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
calendar.renderDay = (_date, state) => {
|
|
108
|
+
if (!state.morning && !state.afternoon) return "";
|
|
109
|
+
return `${state.morning ? "●" : "○"}${state.afternoon ? "●" : "○"}`;
|
|
110
|
+
};
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Date math
|
|
114
|
+
|
|
115
|
+
The public value model is intentionally boring: canonical `YYYY-MM-DD` strings. There is no public `Date`, timestamp, timezone or `Temporal` dependency.
|
|
116
|
+
|
|
117
|
+
Pure civil-date helpers are exported under `dates`:
|
|
118
|
+
|
|
119
|
+
```js
|
|
120
|
+
import { dates } from "@lekoala/date-picker";
|
|
121
|
+
|
|
122
|
+
const weeks = dates.getMonthWeeks("2026-09-03", { firstDay: 1 });
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
`getMonthWeeks()` returns the true 4–6 full civil weeks covering the month. It never pads to six rows. `fixed-weeks` is a rendering choice made by `<date-calendar>`.
|
|
126
|
+
|
|
127
|
+
## Accessibility baseline
|
|
128
|
+
|
|
129
|
+
The calendar follows the WAI-ARIA date-picker/grid interaction model:
|
|
130
|
+
|
|
131
|
+
- semantic `table[role="grid"]`;
|
|
132
|
+
- one roving `tabindex="0"` grid cell;
|
|
133
|
+
- arrow keys move by day/week;
|
|
134
|
+
- Home/End move to week boundaries;
|
|
135
|
+
- PageUp/PageDown move by month;
|
|
136
|
+
- Shift+PageUp/PageDown move by year;
|
|
137
|
+
- Enter/Space activate a date;
|
|
138
|
+
- keyboard movement never implicitly selects;
|
|
139
|
+
- `aria-selected` identifies the selected date;
|
|
140
|
+
- `aria-current="date"` identifies today;
|
|
141
|
+
- abbreviated weekday headers keep full `abbr` names.
|
|
142
|
+
|
|
143
|
+
The picker popup uses native Popover for the top layer and `@lekoala/floating` for geometry. It has `role="dialog"`, but it is intentionally **not** marked `aria-modal` because the current implementation does not inert the rest of the document.
|
|
144
|
+
|
|
145
|
+
When the popup opens on the field's focus, grid navigation is reachable via `ArrowDown` (or the trigger button) so the focus-restore/Escape flow stays predictable.
|
|
146
|
+
|
|
147
|
+
See [docs/ACCESSIBILITY.md](docs/ACCESSIBILITY.md).
|
|
148
|
+
|
|
149
|
+
## Install / develop
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
bun install
|
|
153
|
+
bun run dev
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If a previous `bun run dev` is still holding port `4859`, clear it with `bun run dev:kill` (or restart in one go with `bun run dev:restart`).
|
|
157
|
+
|
|
158
|
+
Tooling is aligned with the current LeKoala component repos:
|
|
159
|
+
|
|
160
|
+
- Bun 1.4.2
|
|
161
|
+
- TypeScript 7.0.2 (`checkJs` + declaration emit)
|
|
162
|
+
- Biome 2.5.11
|
|
163
|
+
- Playwright 1.62.1
|
|
164
|
+
- `@lekoala/floating ^0.1.1`
|
|
165
|
+
|
|
166
|
+
Useful commands:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
bun run test
|
|
170
|
+
bun run typecheck
|
|
171
|
+
bun run lint
|
|
172
|
+
bun run build
|
|
173
|
+
bun run test:browser
|
|
174
|
+
bun run test:browser:all
|
|
175
|
+
bun run check:all
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Build outputs
|
|
179
|
+
|
|
180
|
+
`bun run build` produces:
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
dist/date-picker.js
|
|
184
|
+
dist/date-picker.min.js
|
|
185
|
+
dist/date-picker.css
|
|
186
|
+
dist/date-picker.min.css
|
|
187
|
+
dist/date-picker.standalone.min.js
|
|
188
|
+
dist/types/**
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
The default ESM exports point at `src/`, matching the native-first development style of `@lekoala/combobox`. The classic build is file:// friendly; the standalone build additionally injects the component CSS.
|
|
192
|
+
|
|
193
|
+
## Scope
|
|
194
|
+
|
|
195
|
+
Included in v0.1:
|
|
196
|
+
|
|
197
|
+
- inline single-date selection;
|
|
198
|
+
- mini-calendar/navigation-only use;
|
|
199
|
+
- month and year selection;
|
|
200
|
+
- previous/next navigation;
|
|
201
|
+
- editable localized input + canonical submitted value;
|
|
202
|
+
- min/max and custom disabled rules;
|
|
203
|
+
- presentation-only range band (`highlightedRange`);
|
|
204
|
+
- shared-calendar two-field range picker (`<date-picker range>`);
|
|
205
|
+
- linked start/end pickers (`linkDateRange`);
|
|
206
|
+
- async per-day state with cancellation;
|
|
207
|
+
- custom day decorations that cannot replace the accessible cell;
|
|
208
|
+
- fixed six-row presentation as an opt-in;
|
|
209
|
+
- ISO week numbers;
|
|
210
|
+
- keyboard and focus contracts.
|
|
211
|
+
|
|
212
|
+
Deliberately out of scope for v0.1:
|
|
213
|
+
|
|
214
|
+
- time or datetime picking;
|
|
215
|
+
- timezones;
|
|
216
|
+
- in-place single-calendar range *selection interaction* (use the two-field picker);
|
|
217
|
+
- multi-date selection;
|
|
218
|
+
- recurrence;
|
|
219
|
+
- natural-language parsing;
|
|
220
|
+
- plugin registry;
|
|
221
|
+
- virtualized months;
|
|
222
|
+
- scheduling/time slots.
|
|
223
|
+
|
|
224
|
+
## Docs
|
|
225
|
+
|
|
226
|
+
- [Changelog](CHANGELOG.md)
|
|
227
|
+
- [Architecture](docs/ARCHITECTURE.md)
|
|
228
|
+
- [Decisions](docs/DECISIONS.md)
|
|
229
|
+
- [API](docs/API.md)
|
|
230
|
+
- [Accessibility checklist](docs/AT-CHECKLIST.md)
|
|
231
|
+
- [Use cases](docs/USE_CASES.md)
|
|
232
|
+
- [Accessibility](docs/ACCESSIBILITY.md)
|
|
233
|
+
- [Testing](docs/TESTING.md)
|
|
234
|
+
- [Roadmap](docs/ROADMAP.md)
|
|
235
|
+
- [Calendar integration](docs/CALENDAR-INTEGRATION.md)
|
|
236
|
+
- [Flatpickr/Formidable migration](docs/MIGRATION-FLATPICKR.md)
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "2.1.0",
|
|
3
|
+
"readme": "README.md",
|
|
4
|
+
"modules": [
|
|
5
|
+
{
|
|
6
|
+
"kind": "javascript-module",
|
|
7
|
+
"path": "src/date-calendar.js",
|
|
8
|
+
"declarations": [
|
|
9
|
+
{
|
|
10
|
+
"kind": "class",
|
|
11
|
+
"name": "DateCalendarElement",
|
|
12
|
+
"tagName": "date-calendar",
|
|
13
|
+
"attributes": [
|
|
14
|
+
{
|
|
15
|
+
"name": "value"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "display"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "min"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "max"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "first-day"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "locale"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "fixed-weeks"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "show-week-numbers"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "selection"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"members": [
|
|
43
|
+
{
|
|
44
|
+
"kind": "getter",
|
|
45
|
+
"name": "locale"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"kind": "getter",
|
|
49
|
+
"name": "value"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"kind": "getter",
|
|
53
|
+
"name": "display"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"kind": "getter",
|
|
57
|
+
"name": "focusedDate"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"kind": "getter",
|
|
61
|
+
"name": "min"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"kind": "getter",
|
|
65
|
+
"name": "max"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"kind": "getter",
|
|
69
|
+
"name": "firstDay"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"kind": "getter",
|
|
73
|
+
"name": "selection"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"kind": "getter",
|
|
77
|
+
"name": "highlightedRange"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"kind": "getter",
|
|
81
|
+
"name": "fixedWeeks"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"kind": "getter",
|
|
85
|
+
"name": "showWeekNumbers"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"kind": "getter",
|
|
89
|
+
"name": "messages"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"kind": "getter",
|
|
93
|
+
"name": "source"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"kind": "getter",
|
|
97
|
+
"name": "dateState"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"kind": "getter",
|
|
101
|
+
"name": "renderDay"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"kind": "getter",
|
|
105
|
+
"name": "isDateDisabled"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"kind": "method",
|
|
109
|
+
"name": "getDateState"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"kind": "method",
|
|
113
|
+
"name": "refreshSource"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"kind": "method",
|
|
117
|
+
"name": "ensureDate"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"kind": "method",
|
|
121
|
+
"name": "previousMonth"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"kind": "method",
|
|
125
|
+
"name": "nextMonth"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"kind": "method",
|
|
129
|
+
"name": "focusDate"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"kind": "method",
|
|
133
|
+
"name": "focusGrid"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"kind": "method",
|
|
137
|
+
"name": "render"
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"events": [
|
|
141
|
+
{
|
|
142
|
+
"name": "dateactivate"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "datechange"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"name": "dateinvalid"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "dateloadend"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"name": "dateloaderror"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "dateloadstart"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "displaychange"
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"cssProperties": [
|
|
164
|
+
{
|
|
165
|
+
"name": "--dp-bg"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"name": "--dp-fg"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "--dp-muted"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"name": "--dp-border"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "--dp-hover"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "--dp-accent"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "--dp-accent-fg"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "--dp-radius"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"name": "--dp-day-size"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "--dp-gap"
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"exports": [
|
|
198
|
+
{
|
|
199
|
+
"kind": "js",
|
|
200
|
+
"name": "DateCalendarElement",
|
|
201
|
+
"declaration": {
|
|
202
|
+
"name": "DateCalendarElement",
|
|
203
|
+
"module": "src/date-calendar.js"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"kind": "javascript-module",
|
|
210
|
+
"path": "src/date-picker.js",
|
|
211
|
+
"declarations": [
|
|
212
|
+
{
|
|
213
|
+
"kind": "class",
|
|
214
|
+
"name": "DatePickerElement",
|
|
215
|
+
"tagName": "date-picker",
|
|
216
|
+
"attributes": [
|
|
217
|
+
{
|
|
218
|
+
"name": "value"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "locale"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "min"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"name": "max"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "open-on-focus"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"members": [
|
|
234
|
+
{
|
|
235
|
+
"kind": "getter",
|
|
236
|
+
"name": "input"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"kind": "getter",
|
|
240
|
+
"name": "calendar"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"kind": "getter",
|
|
244
|
+
"name": "value"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"kind": "getter",
|
|
248
|
+
"name": "range"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"kind": "getter",
|
|
252
|
+
"name": "locale"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"kind": "getter",
|
|
256
|
+
"name": "min"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"kind": "getter",
|
|
260
|
+
"name": "max"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"kind": "getter",
|
|
264
|
+
"name": "openOnFocus"
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"kind": "getter",
|
|
268
|
+
"name": "open"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"kind": "getter",
|
|
272
|
+
"name": "messages"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"kind": "getter",
|
|
276
|
+
"name": "source"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"kind": "getter",
|
|
280
|
+
"name": "dateState"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"kind": "getter",
|
|
284
|
+
"name": "renderDay"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"kind": "getter",
|
|
288
|
+
"name": "isDateDisabled"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"kind": "method",
|
|
292
|
+
"name": "validate"
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"kind": "method",
|
|
296
|
+
"name": "show"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"kind": "method",
|
|
300
|
+
"name": "hide"
|
|
301
|
+
}
|
|
302
|
+
],
|
|
303
|
+
"events": [
|
|
304
|
+
{
|
|
305
|
+
"name": "close"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"name": "dateinvalid"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"name": "open"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"name": "rangechange"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"name": "valuechange"
|
|
318
|
+
}
|
|
319
|
+
],
|
|
320
|
+
"cssProperties": [
|
|
321
|
+
{
|
|
322
|
+
"name": "--dp-bg"
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"name": "--dp-fg"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"name": "--dp-muted"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"name": "--dp-border"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"name": "--dp-hover"
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"name": "--dp-accent"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"name": "--dp-accent-fg"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"name": "--dp-radius"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"name": "--dp-day-size"
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"name": "--dp-gap"
|
|
350
|
+
}
|
|
351
|
+
]
|
|
352
|
+
}
|
|
353
|
+
],
|
|
354
|
+
"exports": [
|
|
355
|
+
{
|
|
356
|
+
"kind": "js",
|
|
357
|
+
"name": "DatePickerElement",
|
|
358
|
+
"declaration": {
|
|
359
|
+
"name": "DatePickerElement",
|
|
360
|
+
"module": "src/date-picker.js"
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
]
|
|
364
|
+
}
|
|
365
|
+
]
|
|
366
|
+
}
|