@api-client/ui 0.5.5 → 0.5.6

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 (82) hide show
  1. package/build/src/elements/highlight/MarkdownStyles.d.ts.map +1 -1
  2. package/build/src/elements/highlight/MarkdownStyles.js +0 -13
  3. package/build/src/elements/highlight/MarkdownStyles.js.map +1 -1
  4. package/build/src/elements/http/BodyEditor.d.ts +0 -13
  5. package/build/src/elements/http/BodyEditor.d.ts.map +1 -1
  6. package/build/src/elements/http/BodyEditor.js +0 -13
  7. package/build/src/elements/http/BodyEditor.js.map +1 -1
  8. package/build/src/elements/http/BodyTextEditor.d.ts +0 -13
  9. package/build/src/elements/http/BodyTextEditor.d.ts.map +1 -1
  10. package/build/src/elements/http/BodyTextEditor.js +0 -13
  11. package/build/src/elements/http/BodyTextEditor.js.map +1 -1
  12. package/build/src/elements/http/BodyUrlEncodedEditor.d.ts +0 -13
  13. package/build/src/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
  14. package/build/src/elements/http/BodyUrlEncodedEditor.js +0 -13
  15. package/build/src/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  16. package/build/src/elements/http/UrlInput.d.ts +0 -13
  17. package/build/src/elements/http/UrlInput.d.ts.map +1 -1
  18. package/build/src/elements/http/UrlInput.js +0 -13
  19. package/build/src/elements/http/UrlInput.js.map +1 -1
  20. package/build/src/index.d.ts +2 -0
  21. package/build/src/index.d.ts.map +1 -1
  22. package/build/src/index.js +2 -0
  23. package/build/src/index.js.map +1 -1
  24. package/build/src/md/button/internals/button.styles.js +1 -1
  25. package/build/src/md/button/internals/button.styles.js.map +1 -1
  26. package/build/src/md/date/internals/DateTime.d.ts +0 -13
  27. package/build/src/md/date/internals/DateTime.d.ts.map +1 -1
  28. package/build/src/md/date/internals/DateTime.js +0 -13
  29. package/build/src/md/date/internals/DateTime.js.map +1 -1
  30. package/build/src/md/date-picker/index.d.ts +13 -0
  31. package/build/src/md/date-picker/index.d.ts.map +1 -0
  32. package/build/src/md/date-picker/index.js +13 -0
  33. package/build/src/md/date-picker/index.js.map +1 -0
  34. package/build/src/md/date-picker/internals/DatePicker.styles.d.ts +4 -0
  35. package/build/src/md/date-picker/internals/DatePicker.styles.d.ts.map +1 -0
  36. package/build/src/md/date-picker/internals/DatePicker.styles.js +336 -0
  37. package/build/src/md/date-picker/internals/DatePicker.styles.js.map +1 -0
  38. package/build/src/md/date-picker/internals/DatePickerCalendar.d.ts +159 -0
  39. package/build/src/md/date-picker/internals/DatePickerCalendar.d.ts.map +1 -0
  40. package/build/src/md/date-picker/internals/DatePickerCalendar.js +770 -0
  41. package/build/src/md/date-picker/internals/DatePickerCalendar.js.map +1 -0
  42. package/build/src/md/date-picker/internals/DatePickerUtils.d.ts +93 -0
  43. package/build/src/md/date-picker/internals/DatePickerUtils.d.ts.map +1 -0
  44. package/build/src/md/date-picker/internals/DatePickerUtils.js +221 -0
  45. package/build/src/md/date-picker/internals/DatePickerUtils.js.map +1 -0
  46. package/build/src/md/date-picker/ui-date-picker-input.d.ts +108 -0
  47. package/build/src/md/date-picker/ui-date-picker-input.d.ts.map +1 -0
  48. package/build/src/md/date-picker/ui-date-picker-input.js +397 -0
  49. package/build/src/md/date-picker/ui-date-picker-input.js.map +1 -0
  50. package/build/src/md/date-picker/ui-date-picker-modal-input.d.ts +119 -0
  51. package/build/src/md/date-picker/ui-date-picker-modal-input.d.ts.map +1 -0
  52. package/build/src/md/date-picker/ui-date-picker-modal-input.js +473 -0
  53. package/build/src/md/date-picker/ui-date-picker-modal-input.js.map +1 -0
  54. package/build/src/md/date-picker/ui-date-picker-modal.d.ts +108 -0
  55. package/build/src/md/date-picker/ui-date-picker-modal.d.ts.map +1 -0
  56. package/build/src/md/date-picker/ui-date-picker-modal.js +344 -0
  57. package/build/src/md/date-picker/ui-date-picker-modal.js.map +1 -0
  58. package/build/src/md/dialog/internals/Dialog.styles.d.ts.map +1 -1
  59. package/build/src/md/dialog/internals/Dialog.styles.js +1 -0
  60. package/build/src/md/dialog/internals/Dialog.styles.js.map +1 -1
  61. package/demo/elements/har/har2.json +1 -1
  62. package/demo/md/date-picker/date-picker.ts +301 -0
  63. package/demo/md/date-picker/index.html +171 -0
  64. package/demo/md/index.html +2 -0
  65. package/package.json +1 -1
  66. package/src/elements/highlight/MarkdownStyles.ts +0 -13
  67. package/src/elements/http/BodyEditor.ts +0 -13
  68. package/src/elements/http/BodyTextEditor.ts +0 -13
  69. package/src/elements/http/BodyUrlEncodedEditor.ts +0 -13
  70. package/src/elements/http/UrlInput.ts +0 -13
  71. package/src/index.ts +17 -0
  72. package/src/md/button/internals/button.styles.ts +1 -1
  73. package/src/md/date/internals/DateTime.ts +0 -14
  74. package/src/md/date-picker/README.md +184 -0
  75. package/src/md/date-picker/index.ts +17 -0
  76. package/src/md/date-picker/internals/DatePicker.styles.ts +338 -0
  77. package/src/md/date-picker/internals/DatePickerCalendar.ts +697 -0
  78. package/src/md/date-picker/internals/DatePickerUtils.ts +288 -0
  79. package/src/md/date-picker/ui-date-picker-input.ts +272 -0
  80. package/src/md/date-picker/ui-date-picker-modal-input.ts +371 -0
  81. package/src/md/date-picker/ui-date-picker-modal.ts +263 -0
  82. package/src/md/dialog/internals/Dialog.styles.ts +1 -0
@@ -0,0 +1,13 @@
1
+ // Export main components
2
+ export { UiDatePickerCalendar } from './internals/DatePickerCalendar.js';
3
+ export { UiDatePickerInput } from './ui-date-picker-input.js';
4
+ export { UiDatePickerModal } from './ui-date-picker-modal.js';
5
+ export { UiDatePickerModalInput } from './ui-date-picker-modal-input.js';
6
+ // Export utilities and types
7
+ export * from './internals/DatePickerUtils.js';
8
+ // Import components for registration
9
+ import './ui-date-picker-input.js';
10
+ import './ui-date-picker-modal.js';
11
+ import './ui-date-picker-modal-input.js';
12
+ import './internals/DatePickerCalendar.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/md/date-picker/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAExE,6BAA6B;AAC7B,cAAc,gCAAgC,CAAA;AAK9C,qCAAqC;AACrC,OAAO,2BAA2B,CAAA;AAClC,OAAO,2BAA2B,CAAA;AAClC,OAAO,iCAAiC,CAAA;AACxC,OAAO,mCAAmC,CAAA","sourcesContent":["// Export main components\nexport { UiDatePickerCalendar } from './internals/DatePickerCalendar.js'\nexport { UiDatePickerInput } from './ui-date-picker-input.js'\nexport { UiDatePickerModal } from './ui-date-picker-modal.js'\nexport { UiDatePickerModalInput } from './ui-date-picker-modal-input.js'\n\n// Export utilities and types\nexport * from './internals/DatePickerUtils.js'\nexport type { DateSelectEvent, DateRangeSelectEvent } from './internals/DatePickerCalendar.js'\nexport type { ModalDatePickerChangeEvent } from './ui-date-picker-modal.js'\nexport type { ModalInputDatePickerChangeEvent } from './ui-date-picker-modal-input.js'\n\n// Import components for registration\nimport './ui-date-picker-input.js'\nimport './ui-date-picker-modal.js'\nimport './ui-date-picker-modal-input.js'\nimport './internals/DatePickerCalendar.js'\n"]}
@@ -0,0 +1,4 @@
1
+ export declare const calendarStyles: import("lit").CSSResult;
2
+ export declare const inputStyles: import("lit").CSSResult;
3
+ export declare const modalStyles: import("lit").CSSResult;
4
+ //# sourceMappingURL=DatePicker.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.styles.d.ts","sourceRoot":"","sources":["../../../../../src/md/date-picker/internals/DatePicker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBAyL1B,CAAA;AAED,eAAO,MAAM,WAAW,yBA+BvB,CAAA;AAED,eAAO,MAAM,WAAW,yBAmHvB,CAAA"}
@@ -0,0 +1,336 @@
1
+ import { css } from 'lit';
2
+ export const calendarStyles = css `
3
+ :host {
4
+ display: block;
5
+ font-family: 'Roboto', sans-serif;
6
+ font-size: 14px;
7
+ border-radius: 12px;
8
+ background: var(--md-sys-color-surface-container-high);
9
+ border: 1px solid var(--md-sys-color-outline-variant);
10
+ box-shadow: var(--md-sys-elevation-2);
11
+ overflow: hidden;
12
+ }
13
+
14
+ .calendar {
15
+ padding: 20px 12px 12px 12px;
16
+ }
17
+
18
+ /* Header */
19
+ .header {
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: space-between;
23
+ margin-bottom: 30px;
24
+ gap: 8px;
25
+ }
26
+
27
+ .month-year {
28
+ display: flex;
29
+ align-items: center;
30
+ flex: 1;
31
+ justify-content: space-between;
32
+ }
33
+
34
+ .month-selector,
35
+ .year-selector {
36
+ display: flex;
37
+ align-items: center;
38
+ }
39
+
40
+ .month-year-text {
41
+ font-size: 16px;
42
+ font-weight: 500;
43
+ color: var(--md-sys-color-on-surface);
44
+ min-width: 120px;
45
+ }
46
+
47
+ /* Weekdays header */
48
+ .weekdays {
49
+ display: grid;
50
+ grid-template-columns: repeat(7, 40px);
51
+ margin-bottom: 16px;
52
+ }
53
+
54
+ .weekday {
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: center;
58
+ height: 32px;
59
+ font-size: 12px;
60
+ font-weight: 500;
61
+ color: var(--md-sys-color-on-surface-variant);
62
+ text-transform: uppercase;
63
+ }
64
+
65
+ /* Calendar grid */
66
+ .days {
67
+ display: grid;
68
+ grid-template-columns: repeat(7, 40px);
69
+ gap: 0;
70
+ }
71
+
72
+ .day-cell {
73
+ display: flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ position: relative;
77
+ width: 40px;
78
+ }
79
+
80
+ .day-cell.in-range.has-complete-range {
81
+ background: var(--md-sys-color-secondary-container);
82
+ }
83
+
84
+ .day-cell.range-start.has-complete-range:not(.range-end) {
85
+ background: linear-gradient(to right, transparent 50%, var(--md-sys-color-secondary-container) 50%);
86
+ }
87
+
88
+ .day-cell.range-end.has-complete-range:not(.range-start) {
89
+ background: linear-gradient(to left, transparent 50%, var(--md-sys-color-secondary-container) 50%);
90
+ }
91
+
92
+ .day-cell.range-start.range-end.has-complete-range {
93
+ background: transparent;
94
+ }
95
+
96
+ .day-button {
97
+ width: 40px !important;
98
+ height: 40px !important;
99
+ min-width: 40px !important;
100
+ padding: 0;
101
+ }
102
+
103
+ .day-button.other-month {
104
+ opacity: 0.38;
105
+ }
106
+
107
+ .nav-button,
108
+ .month-button,
109
+ .year-button,
110
+ .other-month .day-button:not([color='filled']):not([disabled]) {
111
+ color: var(--md-sys-color-on-surface-variant);
112
+ }
113
+
114
+ .month-button,
115
+ .year-button {
116
+ padding: 0;
117
+ }
118
+
119
+ .weekday:not([color='filled']),
120
+ .day-button:not([color='filled']):not([disabled]) {
121
+ color: var(--md-sys-color-on-surface);
122
+ }
123
+
124
+ .today .day-button:not([color='filled']) {
125
+ color: var(--md-sys-color-primary);
126
+ }
127
+
128
+ .today .day-button {
129
+ --md-button-outline-color: var(--md-sys-color-primary);
130
+ }
131
+
132
+ /* Dropdown views */
133
+ .dropdown-view {
134
+ min-height: 300px;
135
+ }
136
+
137
+ .close-button {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: center;
141
+ width: 32px;
142
+ height: 32px;
143
+ border: none;
144
+ background: transparent;
145
+ color: var(--md-sys-color-on-surface-variant);
146
+ cursor: pointer;
147
+ border-radius: 16px;
148
+ transition: background-color 0.2s ease;
149
+ }
150
+
151
+ .close-button:hover {
152
+ background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent);
153
+ }
154
+
155
+ .close-button:focus {
156
+ outline: none;
157
+ background: color-mix(in srgb, var(--md-sys-color-on-surface) 12%, transparent);
158
+ }
159
+
160
+ /* Month dropdown */
161
+ .month-list {
162
+ display: grid;
163
+ grid-template-columns: repeat(3, 1fr);
164
+ gap: 8px;
165
+ }
166
+
167
+ .year-option:not(.selected),
168
+ .month-option:not(.selected) {
169
+ color: var(--md-sys-color-on-surface-variant);
170
+ }
171
+
172
+ /* Year dropdown */
173
+ .year-grid {
174
+ display: grid;
175
+ grid-template-columns: repeat(4, 1fr);
176
+ gap: 4px;
177
+ max-height: 240px;
178
+ overflow-y: auto;
179
+ padding: 4px;
180
+ }
181
+
182
+ .actions {
183
+ margin-top: 8px;
184
+ display: flex;
185
+ justify-content: flex-end;
186
+ }
187
+ `;
188
+ export const inputStyles = css `
189
+ :host {
190
+ display: inline-block;
191
+ width: 100%;
192
+ }
193
+
194
+ .input-container {
195
+ position: relative;
196
+ }
197
+
198
+ .dropdown-container {
199
+ position: absolute;
200
+ position-anchor: --ui-date-picker-anchor;
201
+ top: anchor(bottom);
202
+ left: anchor(left);
203
+ z-index: 1000;
204
+ margin-top: 4px;
205
+ min-width: anchor-size(width);
206
+ width: max-content;
207
+ max-width: calc(100vw - 32px);
208
+ }
209
+
210
+ .backdrop {
211
+ position: fixed;
212
+ top: 0;
213
+ left: 0;
214
+ right: 0;
215
+ bottom: 0;
216
+ z-index: 999;
217
+ background: transparent;
218
+ }
219
+ `;
220
+ export const modalStyles = css `
221
+ .modal-header {
222
+ display: flex;
223
+ align-items: center;
224
+ justify-content: space-between;
225
+ padding: 24px 24px 16px;
226
+ }
227
+
228
+ .modal-title {
229
+ font-size: 24px;
230
+ font-weight: 400;
231
+ color: var(--md-sys-color-on-surface);
232
+ margin: 0;
233
+ }
234
+
235
+ .modal-content {
236
+ display: flex;
237
+ flex-direction: column;
238
+ align-items: center;
239
+ gap: 24px;
240
+ max-height: 60vh;
241
+ overflow-y: auto;
242
+ }
243
+
244
+ .modal-content ui-date-picker-calendar {
245
+ box-shadow: none;
246
+ }
247
+
248
+ .date-range-display {
249
+ display: flex;
250
+ align-items: center;
251
+ gap: 16px;
252
+ padding: 16px;
253
+ background: var(--md-sys-color-surface-container-highest);
254
+ border-radius: 12px;
255
+ width: 100%;
256
+ max-width: 320px;
257
+ }
258
+
259
+ .date-display {
260
+ flex: 1;
261
+ text-align: center;
262
+ }
263
+
264
+ .date-label {
265
+ font-size: 12px;
266
+ font-weight: 500;
267
+ color: var(--md-sys-color-on-surface-variant);
268
+ text-transform: uppercase;
269
+ margin-bottom: 4px;
270
+ }
271
+
272
+ .date-value {
273
+ font-size: 16px;
274
+ font-weight: 400;
275
+ color: var(--md-sys-color-on-surface);
276
+ }
277
+
278
+ .date-separator {
279
+ color: var(--md-sys-color-on-surface-variant);
280
+ font-size: 18px;
281
+ }
282
+
283
+ .modal-actions {
284
+ display: flex;
285
+ justify-content: flex-end;
286
+ gap: 8px;
287
+ padding: 16px 24px;
288
+ border-top: 1px solid var(--md-sys-color-outline-variant);
289
+ }
290
+
291
+ /* Calendar Action Buttons */
292
+ .actions {
293
+ display: flex;
294
+ justify-content: flex-end;
295
+ gap: 8px;
296
+ margin-top: 16px;
297
+ padding-top: 16px;
298
+ border-top: 1px solid var(--md-sys-color-outline-variant);
299
+ }
300
+
301
+ /* Pending selection state */
302
+ .day.pending {
303
+ background: var(--md-sys-color-secondary-container);
304
+ color: var(--md-sys-color-on-secondary-container);
305
+ border: 2px solid var(--md-sys-color-secondary);
306
+ }
307
+
308
+ .day.pending.selected {
309
+ background: var(--md-sys-color-secondary);
310
+ color: var(--md-sys-color-on-secondary);
311
+ }
312
+
313
+ .day.pending.range-start,
314
+ .day.pending.range-end {
315
+ background: var(--md-sys-color-secondary);
316
+ color: var(--md-sys-color-on-secondary);
317
+ }
318
+
319
+ .day.pending.in-range {
320
+ background: var(--md-sys-color-secondary-container);
321
+ color: var(--md-sys-color-on-secondary-container);
322
+ }
323
+
324
+ /* Responsive */
325
+ @media (max-width: 640px) {
326
+ .modal-content {
327
+ padding: 16px;
328
+ }
329
+
330
+ .calendar {
331
+ width: 100%;
332
+ max-width: 320px;
333
+ }
334
+ }
335
+ `;
336
+ //# sourceMappingURL=DatePicker.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.styles.js","sourceRoot":"","sources":["../../../../../src/md/date-picker/internals/DatePicker.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyLhC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B7B,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmH7B,CAAA","sourcesContent":["import { css } from 'lit'\n\nexport const calendarStyles = css`\n :host {\n display: block;\n font-family: 'Roboto', sans-serif;\n font-size: 14px;\n border-radius: 12px;\n background: var(--md-sys-color-surface-container-high);\n border: 1px solid var(--md-sys-color-outline-variant);\n box-shadow: var(--md-sys-elevation-2);\n overflow: hidden;\n }\n\n .calendar {\n padding: 20px 12px 12px 12px;\n }\n\n /* Header */\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 30px;\n gap: 8px;\n }\n\n .month-year {\n display: flex;\n align-items: center;\n flex: 1;\n justify-content: space-between;\n }\n\n .month-selector,\n .year-selector {\n display: flex;\n align-items: center;\n }\n\n .month-year-text {\n font-size: 16px;\n font-weight: 500;\n color: var(--md-sys-color-on-surface);\n min-width: 120px;\n }\n\n /* Weekdays header */\n .weekdays {\n display: grid;\n grid-template-columns: repeat(7, 40px);\n margin-bottom: 16px;\n }\n\n .weekday {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 32px;\n font-size: 12px;\n font-weight: 500;\n color: var(--md-sys-color-on-surface-variant);\n text-transform: uppercase;\n }\n\n /* Calendar grid */\n .days {\n display: grid;\n grid-template-columns: repeat(7, 40px);\n gap: 0;\n }\n\n .day-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 40px;\n }\n\n .day-cell.in-range.has-complete-range {\n background: var(--md-sys-color-secondary-container);\n }\n\n .day-cell.range-start.has-complete-range:not(.range-end) {\n background: linear-gradient(to right, transparent 50%, var(--md-sys-color-secondary-container) 50%);\n }\n\n .day-cell.range-end.has-complete-range:not(.range-start) {\n background: linear-gradient(to left, transparent 50%, var(--md-sys-color-secondary-container) 50%);\n }\n\n .day-cell.range-start.range-end.has-complete-range {\n background: transparent;\n }\n\n .day-button {\n width: 40px !important;\n height: 40px !important;\n min-width: 40px !important;\n padding: 0;\n }\n\n .day-button.other-month {\n opacity: 0.38;\n }\n\n .nav-button,\n .month-button,\n .year-button,\n .other-month .day-button:not([color='filled']):not([disabled]) {\n color: var(--md-sys-color-on-surface-variant);\n }\n\n .month-button,\n .year-button {\n padding: 0;\n }\n\n .weekday:not([color='filled']),\n .day-button:not([color='filled']):not([disabled]) {\n color: var(--md-sys-color-on-surface);\n }\n\n .today .day-button:not([color='filled']) {\n color: var(--md-sys-color-primary);\n }\n\n .today .day-button {\n --md-button-outline-color: var(--md-sys-color-primary);\n }\n\n /* Dropdown views */\n .dropdown-view {\n min-height: 300px;\n }\n\n .close-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: var(--md-sys-color-on-surface-variant);\n cursor: pointer;\n border-radius: 16px;\n transition: background-color 0.2s ease;\n }\n\n .close-button:hover {\n background: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent);\n }\n\n .close-button:focus {\n outline: none;\n background: color-mix(in srgb, var(--md-sys-color-on-surface) 12%, transparent);\n }\n\n /* Month dropdown */\n .month-list {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 8px;\n }\n\n .year-option:not(.selected),\n .month-option:not(.selected) {\n color: var(--md-sys-color-on-surface-variant);\n }\n\n /* Year dropdown */\n .year-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 4px;\n max-height: 240px;\n overflow-y: auto;\n padding: 4px;\n }\n\n .actions {\n margin-top: 8px;\n display: flex;\n justify-content: flex-end;\n }\n`\n\nexport const inputStyles = css`\n :host {\n display: inline-block;\n width: 100%;\n }\n\n .input-container {\n position: relative;\n }\n\n .dropdown-container {\n position: absolute;\n position-anchor: --ui-date-picker-anchor;\n top: anchor(bottom);\n left: anchor(left);\n z-index: 1000;\n margin-top: 4px;\n min-width: anchor-size(width);\n width: max-content;\n max-width: calc(100vw - 32px);\n }\n\n .backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n background: transparent;\n }\n`\n\nexport const modalStyles = css`\n .modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 24px 24px 16px;\n }\n\n .modal-title {\n font-size: 24px;\n font-weight: 400;\n color: var(--md-sys-color-on-surface);\n margin: 0;\n }\n\n .modal-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 24px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .modal-content ui-date-picker-calendar {\n box-shadow: none;\n }\n\n .date-range-display {\n display: flex;\n align-items: center;\n gap: 16px;\n padding: 16px;\n background: var(--md-sys-color-surface-container-highest);\n border-radius: 12px;\n width: 100%;\n max-width: 320px;\n }\n\n .date-display {\n flex: 1;\n text-align: center;\n }\n\n .date-label {\n font-size: 12px;\n font-weight: 500;\n color: var(--md-sys-color-on-surface-variant);\n text-transform: uppercase;\n margin-bottom: 4px;\n }\n\n .date-value {\n font-size: 16px;\n font-weight: 400;\n color: var(--md-sys-color-on-surface);\n }\n\n .date-separator {\n color: var(--md-sys-color-on-surface-variant);\n font-size: 18px;\n }\n\n .modal-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 16px 24px;\n border-top: 1px solid var(--md-sys-color-outline-variant);\n }\n\n /* Calendar Action Buttons */\n .actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 16px;\n padding-top: 16px;\n border-top: 1px solid var(--md-sys-color-outline-variant);\n }\n\n /* Pending selection state */\n .day.pending {\n background: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n border: 2px solid var(--md-sys-color-secondary);\n }\n\n .day.pending.selected {\n background: var(--md-sys-color-secondary);\n color: var(--md-sys-color-on-secondary);\n }\n\n .day.pending.range-start,\n .day.pending.range-end {\n background: var(--md-sys-color-secondary);\n color: var(--md-sys-color-on-secondary);\n }\n\n .day.pending.in-range {\n background: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n }\n\n /* Responsive */\n @media (max-width: 640px) {\n .modal-content {\n padding: 16px;\n }\n\n .calendar {\n width: 100%;\n max-width: 320px;\n }\n }\n`\n"]}
@@ -0,0 +1,159 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ import { DateRange } from './DatePickerUtils.js';
3
+ import '../../../md/icons/ui-icon.js';
4
+ import '../../../md/button/ui-button.js';
5
+ import '../../../md/icon-button/ui-icon-button.js';
6
+ export interface DateSelectEvent {
7
+ date: Date;
8
+ formattedDate: string;
9
+ }
10
+ export interface DateRangeSelectEvent {
11
+ range: DateRange;
12
+ formattedRange: {
13
+ start: string | null;
14
+ end: string | null;
15
+ };
16
+ }
17
+ export interface DateRangeConfirmEvent {
18
+ range: DateRange | null;
19
+ formattedRange: {
20
+ start: string | null;
21
+ end: string | null;
22
+ };
23
+ }
24
+ export interface DateCancelEvent {
25
+ reason?: string;
26
+ }
27
+ /**
28
+ * A calendar grid component for date selection.
29
+ * Supports single date selection and date range selection.
30
+ *
31
+ * ## Usage
32
+ *
33
+ * ```html
34
+ * <ui-date-picker-calendar></ui-date-picker-calendar>
35
+ * ```
36
+ *
37
+ * ### Single date selection
38
+ * ```html
39
+ * <ui-date-picker-calendar
40
+ * .selectedDate=${new Date()}
41
+ * @date-select=${this.handleDateSelect}
42
+ * ></ui-date-picker-calendar>
43
+ * ```
44
+ *
45
+ * ### Date range selection
46
+ * ```html
47
+ * <ui-date-picker-calendar
48
+ * .rangeSelection=${true}
49
+ * .selectedRange=${{ start: new Date(), end: null }}
50
+ * @date-range-select=${this.handleRangeSelect}
51
+ * ></ui-date-picker-calendar>
52
+ * ```
53
+ */
54
+ export declare class UiDatePickerCalendar extends LitElement {
55
+ static styles: import("lit").CSSResult;
56
+ /**
57
+ * The currently displayed year
58
+ */
59
+ accessor year: number;
60
+ /**
61
+ * The currently displayed month (0-indexed)
62
+ */
63
+ accessor month: number;
64
+ /**
65
+ * The currently selected date for single selection mode
66
+ */
67
+ accessor selectedDate: Date | null;
68
+ /**
69
+ * The selected date range for range selection mode
70
+ */
71
+ accessor selectedRange: DateRange | null;
72
+ /**
73
+ * Enable range selection mode
74
+ */
75
+ accessor rangeSelection: boolean;
76
+ /**
77
+ * Minimum selectable date
78
+ */
79
+ accessor minDate: Date | undefined;
80
+ /**
81
+ * Maximum selectable date
82
+ */
83
+ accessor maxDate: Date | undefined;
84
+ /**
85
+ * Array of disabled dates
86
+ */
87
+ accessor disabledDates: Date[] | undefined;
88
+ /**
89
+ * Locale for date formatting and month/day names
90
+ */
91
+ accessor locale: string | undefined;
92
+ /**
93
+ * Whether to show navigation controls
94
+ */
95
+ accessor showNavigation: boolean;
96
+ /**
97
+ * Whether to show action buttons (OK/Cancel)
98
+ */
99
+ accessor showActions: boolean;
100
+ /**
101
+ * Text for the OK button
102
+ */
103
+ accessor okButtonText: string;
104
+ /**
105
+ * Text for the Cancel button
106
+ */
107
+ accessor cancelButtonText: string;
108
+ private accessor _calendarData;
109
+ private accessor _rangeStart;
110
+ private accessor _monthNames;
111
+ private accessor _showMonthDropdown;
112
+ private accessor _showYearDropdown;
113
+ private accessor _pendingDate;
114
+ private accessor _pendingRange;
115
+ connectedCallback(): void;
116
+ disconnectedCallback(): void;
117
+ updated(changedProperties: Map<string | number | symbol, unknown>): void;
118
+ private _scrollSelectedYearIntoView;
119
+ willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
120
+ private _updateCalendar;
121
+ private _updateMonthNames;
122
+ private _navigateMonth;
123
+ private _handlePrevMonth;
124
+ private _handleNextMonth;
125
+ private _handlePrevYear;
126
+ private _handleNextYear;
127
+ private _handleMonthClick;
128
+ private _handleYearClick;
129
+ private _handleMonthSelect;
130
+ private _handleYearSelect;
131
+ private _closeDropdowns;
132
+ private _handleDocumentKeyDown;
133
+ private _handleDayClick;
134
+ private _handleSingleSelection;
135
+ private _handleRangeSelection;
136
+ private _isDateDisabled;
137
+ private _handleConfirm;
138
+ private _handleCancel;
139
+ private _renderNavigation;
140
+ private _renderWeekdays;
141
+ private _renderDay;
142
+ private _renderDays;
143
+ private _renderActions;
144
+ private _renderMonthDropdown;
145
+ private _renderYearDropdown;
146
+ render(): TemplateResult;
147
+ }
148
+ declare global {
149
+ interface HTMLElementTagNameMap {
150
+ 'ui-date-picker-calendar': UiDatePickerCalendar;
151
+ }
152
+ interface HTMLElementEventMap {
153
+ 'date-select': CustomEvent<DateSelectEvent>;
154
+ 'date-range-select': CustomEvent<DateRangeSelectEvent>;
155
+ 'date-range-confirm': CustomEvent<DateRangeConfirmEvent>;
156
+ 'date-cancel': CustomEvent<DateCancelEvent>;
157
+ }
158
+ }
159
+ //# sourceMappingURL=DatePickerCalendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePickerCalendar.d.ts","sourceRoot":"","sources":["../../../../../src/md/date-picker/internals/DatePickerCalendar.ts"],"names":[],"mappings":"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"}