@kodaris/krubble-components 1.0.59 → 1.0.61

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.
@@ -119,7 +119,7 @@ KRCodeDemo.styles = [krBaseCSS, css `
119
119
  display: block;
120
120
  border: 1px solid #d5dbdb;
121
121
  border-radius: 8px;
122
- overflow: hidden;
122
+ overflow: visible;
123
123
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
124
124
  }
125
125
 
@@ -0,0 +1,86 @@
1
+ import { LitElement } from 'lit';
2
+ import '../button/button.js';
3
+ export interface KRDateRangePickerValue {
4
+ type: 'absolute' | 'relative';
5
+ startDate?: string;
6
+ endDate?: string;
7
+ amount?: number;
8
+ unit?: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';
9
+ }
10
+ export interface KRDateRangePickerRelativeOption {
11
+ key: string;
12
+ amount: number;
13
+ unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year';
14
+ type: 'relative';
15
+ }
16
+ export type KRDateRangePickerMode = 'relative' | 'absolute';
17
+ /**
18
+ * A date range picker component for selecting date ranges with relative and absolute options.
19
+ *
20
+ * @fires change - Fired when the date range selection changes
21
+ * @csspart trigger - The trigger button element
22
+ * @csspart dropdown - The dropdown container
23
+ */
24
+ export declare class KRDateRangePicker extends LitElement {
25
+ static styles: import("lit").CSSResult;
26
+ /**
27
+ * Selected date range value
28
+ */
29
+ value?: KRDateRangePickerValue;
30
+ /**
31
+ * Relative date options to display
32
+ */
33
+ relativeOptions: KRDateRangePickerRelativeOption[];
34
+ /**
35
+ * Whether the picker is disabled
36
+ */
37
+ disabled: boolean;
38
+ /**
39
+ * Whether the picker is in an invalid state
40
+ */
41
+ invalid: boolean;
42
+ /**
43
+ * Placeholder text when no range is selected
44
+ */
45
+ placeholder: string;
46
+ /**
47
+ * Initial start date for absolute mode (YYYY-MM-DD)
48
+ */
49
+ startDate: string;
50
+ /**
51
+ * Initial end date for absolute mode (YYYY-MM-DD)
52
+ */
53
+ endDate: string;
54
+ /**
55
+ * Date range picker mode - 'relative' only or 'absolute' only. If not set, shows both tabs (default)
56
+ */
57
+ mode?: KRDateRangePickerMode;
58
+ private _isOpen;
59
+ private _activeTab;
60
+ private _tempStartDate;
61
+ private _tempEndDate;
62
+ connectedCallback(): void;
63
+ disconnectedCallback(): void;
64
+ private _handleClickOutside;
65
+ private _handleTriggerClick;
66
+ private _handleTabClick;
67
+ private _handleRelativeSelect;
68
+ private _handleApplyAbsolute;
69
+ private _handleCancel;
70
+ private _formatRelativeOption;
71
+ private _getDisplayValue;
72
+ private _renderTriggerText;
73
+ private _renderContent;
74
+ private _renderRelativeContent;
75
+ private _renderAbsoluteContent;
76
+ private _renderFooter;
77
+ private _handleStartDateChange;
78
+ private _handleEndDateChange;
79
+ render(): import("lit-html").TemplateResult<1>;
80
+ }
81
+ declare global {
82
+ interface HTMLElementTagNameMap {
83
+ 'kr-date-range-picker': KRDateRangePicker;
84
+ }
85
+ }
86
+ //# sourceMappingURL=date-range-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.d.ts","sourceRoot":"","sources":["../../src/date-range-picker/date-range-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CACzE;AAED,MAAM,WAAW,+BAA+B;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACvE,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D;;;;;;GAMG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,0BAkLpB;IAEF;;OAEG;IAEH,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAE/B;;OAEG;IAEH,eAAe,EAAE,+BAA+B,EAAE,CAQhD;IAEF;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,WAAW,SAAyB;IAEpC;;OAEG;IAEH,SAAS,SAAM;IAEf;;OAEG;IAEH,OAAO,SAAM;IAEb;;OAEG;IAEH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAG7B,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,UAAU,CAAuC;IAGzD,OAAO,CAAC,cAAc,CAAM;IAG5B,OAAO,CAAC,YAAY,CAAM;IAEjB,iBAAiB;IAejB,oBAAoB;IAK7B,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,sBAAsB;IAuB9B,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,oBAAoB;IAInB,MAAM;CAsEhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,iBAAiB,CAAC;KAC3C;CACF"}
@@ -0,0 +1,565 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css, nothing } from 'lit';
8
+ import { customElement, property, state } from 'lit/decorators.js';
9
+ import { classMap } from 'lit/directives/class-map.js';
10
+ import '../button/button.js';
11
+ /**
12
+ * A date range picker component for selecting date ranges with relative and absolute options.
13
+ *
14
+ * @fires change - Fired when the date range selection changes
15
+ * @csspart trigger - The trigger button element
16
+ * @csspart dropdown - The dropdown container
17
+ */
18
+ let KRDateRangePicker = class KRDateRangePicker extends LitElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ /**
22
+ * Relative date options to display
23
+ */
24
+ this.relativeOptions = [
25
+ { key: 'last-5-minutes', amount: 5, unit: 'minute', type: 'relative' },
26
+ { key: 'last-30-minutes', amount: 30, unit: 'minute', type: 'relative' },
27
+ { key: 'last-1-hour', amount: 1, unit: 'hour', type: 'relative' },
28
+ { key: 'last-6-hours', amount: 6, unit: 'hour', type: 'relative' },
29
+ { key: 'last-1-day', amount: 1, unit: 'day', type: 'relative' },
30
+ { key: 'last-7-days', amount: 7, unit: 'day', type: 'relative' },
31
+ { key: 'last-30-days', amount: 30, unit: 'day', type: 'relative' },
32
+ ];
33
+ /**
34
+ * Whether the picker is disabled
35
+ */
36
+ this.disabled = false;
37
+ /**
38
+ * Whether the picker is in an invalid state
39
+ */
40
+ this.invalid = false;
41
+ /**
42
+ * Placeholder text when no range is selected
43
+ */
44
+ this.placeholder = 'Select a date range';
45
+ /**
46
+ * Initial start date for absolute mode (YYYY-MM-DD)
47
+ */
48
+ this.startDate = '';
49
+ /**
50
+ * Initial end date for absolute mode (YYYY-MM-DD)
51
+ */
52
+ this.endDate = '';
53
+ this._isOpen = false;
54
+ this._activeTab = 'relative';
55
+ this._tempStartDate = '';
56
+ this._tempEndDate = '';
57
+ this._handleClickOutside = (e) => {
58
+ if (!e.composedPath().includes(this)) {
59
+ this._isOpen = false;
60
+ }
61
+ };
62
+ }
63
+ connectedCallback() {
64
+ super.connectedCallback();
65
+ document.addEventListener('click', this._handleClickOutside);
66
+ if (this.startDate)
67
+ this._tempStartDate = this.startDate;
68
+ if (this.endDate)
69
+ this._tempEndDate = this.endDate;
70
+ // Set initial active tab based on mode
71
+ if (this.mode === 'relative') {
72
+ this._activeTab = 'relative';
73
+ }
74
+ else if (this.mode === 'absolute') {
75
+ this._activeTab = 'absolute';
76
+ }
77
+ }
78
+ disconnectedCallback() {
79
+ super.disconnectedCallback();
80
+ document.removeEventListener('click', this._handleClickOutside);
81
+ }
82
+ _handleTriggerClick() {
83
+ if (this.disabled)
84
+ return;
85
+ this._isOpen = !this._isOpen;
86
+ }
87
+ _handleTabClick(tab) {
88
+ this._activeTab = tab;
89
+ }
90
+ _handleRelativeSelect(option) {
91
+ this.value = {
92
+ type: 'relative',
93
+ amount: option.amount,
94
+ unit: option.unit,
95
+ };
96
+ this._isOpen = false;
97
+ this.dispatchEvent(new CustomEvent('change', {
98
+ detail: { value: this.value },
99
+ bubbles: true,
100
+ composed: true,
101
+ }));
102
+ }
103
+ _handleApplyAbsolute() {
104
+ if (!this._tempStartDate) {
105
+ return;
106
+ }
107
+ if (!this._tempEndDate) {
108
+ return;
109
+ }
110
+ if (this._tempStartDate >= this._tempEndDate) {
111
+ return;
112
+ }
113
+ this.value = {
114
+ type: 'absolute',
115
+ startDate: this._tempStartDate,
116
+ endDate: this._tempEndDate,
117
+ };
118
+ this.startDate = this._tempStartDate;
119
+ this.endDate = this._tempEndDate;
120
+ this._isOpen = false;
121
+ this.dispatchEvent(new CustomEvent('change', {
122
+ detail: { value: this.value },
123
+ bubbles: true,
124
+ composed: true,
125
+ }));
126
+ }
127
+ _handleCancel() {
128
+ this._isOpen = false;
129
+ this._tempStartDate = this.startDate;
130
+ this._tempEndDate = this.endDate;
131
+ }
132
+ _formatRelativeOption(option) {
133
+ if (option.amount === 0) {
134
+ if (option.unit === 'day') {
135
+ return 'Today';
136
+ }
137
+ return `This ${option.unit}`;
138
+ }
139
+ const unitLabels = {
140
+ second: option.amount === 1 ? 'second' : 'seconds',
141
+ minute: option.amount === 1 ? 'minute' : 'minutes',
142
+ hour: option.amount === 1 ? 'hour' : 'hours',
143
+ day: option.amount === 1 ? 'day' : 'days',
144
+ week: option.amount === 1 ? 'week' : 'weeks',
145
+ month: option.amount === 1 ? 'month' : 'months',
146
+ year: option.amount === 1 ? 'year' : 'years',
147
+ };
148
+ return `Last ${option.amount} ${unitLabels[option.unit]}`;
149
+ }
150
+ _getDisplayValue() {
151
+ if (!this.value)
152
+ return '';
153
+ if (this.value.type === 'relative' && this.value.amount !== undefined && this.value.unit) {
154
+ return this._formatRelativeOption({
155
+ key: '',
156
+ amount: this.value.amount,
157
+ unit: this.value.unit,
158
+ type: 'relative',
159
+ });
160
+ }
161
+ if (this.value.type === 'absolute' && this.value.startDate && this.value.endDate) {
162
+ return `${this.value.startDate} - ${this.value.endDate}`;
163
+ }
164
+ return '';
165
+ }
166
+ _renderTriggerText() {
167
+ const displayValue = this._getDisplayValue();
168
+ if (displayValue) {
169
+ return html `${displayValue}`;
170
+ }
171
+ return html `<span class="trigger-placeholder">${this.placeholder}</span>`;
172
+ }
173
+ _renderContent() {
174
+ if (this.mode === 'relative') {
175
+ return this._renderRelativeContent();
176
+ }
177
+ if (this.mode === 'absolute') {
178
+ return this._renderAbsoluteContent();
179
+ }
180
+ if (this._activeTab === 'relative') {
181
+ return this._renderRelativeContent();
182
+ }
183
+ return this._renderAbsoluteContent();
184
+ }
185
+ _renderRelativeContent() {
186
+ return html `
187
+ <div class="relative-options">
188
+ ${this.relativeOptions.map((option) => html `
189
+ <button
190
+ class=${classMap({
191
+ 'relative-option': true,
192
+ 'relative-option--selected': this.value?.type === 'relative' &&
193
+ this.value?.amount === option.amount &&
194
+ this.value?.unit === option.unit
195
+ })}
196
+ type="button"
197
+ @click=${() => this._handleRelativeSelect(option)}
198
+ >
199
+ ${this._formatRelativeOption(option)}
200
+ </button>
201
+ `)}
202
+ </div>
203
+ `;
204
+ }
205
+ _renderAbsoluteContent() {
206
+ return html `
207
+ <div class="absolute">
208
+ <div class="date-row">
209
+ <span class="date-label">Start</span>
210
+ <input
211
+ class="date-input"
212
+ type="date"
213
+ .value=${this._tempStartDate}
214
+ @change=${this._handleStartDateChange}
215
+ />
216
+ </div>
217
+ <div class="date-row">
218
+ <span class="date-label">End</span>
219
+ <input
220
+ class="date-input"
221
+ type="date"
222
+ .value=${this._tempEndDate}
223
+ @change=${this._handleEndDateChange}
224
+ />
225
+ </div>
226
+ </div>
227
+ `;
228
+ }
229
+ _renderFooter() {
230
+ if (this.mode === 'absolute') {
231
+ return html `
232
+ <div class="footer">
233
+ <kr-button variant="outline" size="small" @click=${this._handleCancel}>
234
+ Cancel
235
+ </kr-button>
236
+ <kr-button
237
+ variant="primary"
238
+ size="small"
239
+ ?disabled=${!this._tempStartDate || !this._tempEndDate}
240
+ @click=${this._handleApplyAbsolute}
241
+ >
242
+ Apply
243
+ </kr-button>
244
+ </div>
245
+ `;
246
+ }
247
+ if (this.mode === 'relative') {
248
+ return nothing;
249
+ }
250
+ if (this._activeTab === 'absolute') {
251
+ return html `
252
+ <div class="footer">
253
+ <kr-button variant="outline" size="small" @click=${this._handleCancel}>
254
+ Cancel
255
+ </kr-button>
256
+ <kr-button
257
+ variant="primary"
258
+ size="small"
259
+ ?disabled=${!this._tempStartDate || !this._tempEndDate}
260
+ @click=${this._handleApplyAbsolute}
261
+ >
262
+ Apply
263
+ </kr-button>
264
+ </div>
265
+ `;
266
+ }
267
+ return nothing;
268
+ }
269
+ _handleStartDateChange(e) {
270
+ this._tempStartDate = e.target.value;
271
+ }
272
+ _handleEndDateChange(e) {
273
+ this._tempEndDate = e.target.value;
274
+ }
275
+ render() {
276
+ return html `
277
+ <button
278
+ part="trigger"
279
+ class=${classMap({
280
+ 'trigger': true,
281
+ 'trigger--invalid': this.invalid
282
+ })}
283
+ type="button"
284
+ ?disabled=${this.disabled}
285
+ @click=${this._handleTriggerClick}
286
+ >
287
+ <svg class="icon" fill="none" viewBox="0 0 24 24" stroke="currentColor">
288
+ <path
289
+ stroke-linecap="round"
290
+ stroke-linejoin="round"
291
+ stroke-width="2"
292
+ d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
293
+ />
294
+ </svg>
295
+ <span class="trigger-text">
296
+ ${this._renderTriggerText()}
297
+ </span>
298
+ <svg class="icon" fill="none" viewBox="0 0 24 24" stroke="currentColor">
299
+ <path
300
+ stroke-linecap="round"
301
+ stroke-linejoin="round"
302
+ stroke-width="2"
303
+ d="M19 9l-7 7-7-7"
304
+ />
305
+ </svg>
306
+ </button>
307
+
308
+ <div part="dropdown" class=${classMap({
309
+ 'dropdown': true,
310
+ 'dropdown--open': this._isOpen
311
+ })}>
312
+ ${!this.mode ? html `
313
+ <div class="tabs">
314
+ <button
315
+ class=${classMap({
316
+ 'tab': true,
317
+ 'tab--active': this._activeTab === 'relative'
318
+ })}
319
+ type="button"
320
+ @click=${() => this._handleTabClick('relative')}
321
+ >
322
+ Relative
323
+ </button>
324
+ <button
325
+ class=${classMap({
326
+ 'tab': true,
327
+ 'tab--active': this._activeTab === 'absolute'
328
+ })}
329
+ type="button"
330
+ @click=${() => this._handleTabClick('absolute')}
331
+ >
332
+ Absolute
333
+ </button>
334
+ </div>
335
+ ` : nothing}
336
+
337
+ <div class="content">
338
+ ${this._renderContent()}
339
+ </div>
340
+
341
+ ${this._renderFooter()}
342
+ </div>
343
+ `;
344
+ }
345
+ };
346
+ KRDateRangePicker.styles = css `
347
+ :host {
348
+ display: inline-block;
349
+ position: relative;
350
+ font-family: inherit;
351
+ }
352
+
353
+ .trigger {
354
+ display: inline-flex;
355
+ align-items: center;
356
+ gap: 0.5rem;
357
+ min-width: 250px;
358
+ padding: 0.5rem 0.75rem;
359
+ font-size: 14px;
360
+ font-family: inherit;
361
+ color: #111827;
362
+ background-color: #fff;
363
+ border: 1px solid #d1d5db;
364
+ border-radius: 4px;
365
+ cursor: pointer;
366
+ transition: border-color 0.2s, box-shadow 0.2s;
367
+ text-align: left;
368
+ }
369
+
370
+ .trigger:hover:not(:disabled) {
371
+ border-color: #9ca3af;
372
+ }
373
+
374
+ .trigger:focus {
375
+ outline: none;
376
+ border-color: #2563eb;
377
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
378
+ }
379
+
380
+ .trigger:disabled {
381
+ background-color: #f3f4f6;
382
+ color: #9ca3af;
383
+ cursor: not-allowed;
384
+ }
385
+
386
+ .trigger--invalid {
387
+ border-color: #ef4444;
388
+ }
389
+
390
+ .trigger-text {
391
+ flex: 1;
392
+ }
393
+
394
+ .trigger-placeholder {
395
+ color: #9ca3af;
396
+ }
397
+
398
+ .icon {
399
+ width: 16px;
400
+ height: 16px;
401
+ color: #6b7280;
402
+ flex-shrink: 0;
403
+ }
404
+
405
+ .dropdown {
406
+ position: absolute;
407
+ top: calc(100% + 4px);
408
+ left: 0;
409
+ z-index: 1000;
410
+ min-width: 320px;
411
+ background-color: #fff;
412
+ border: 1px solid #d1d5db;
413
+ border-radius: 8px;
414
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
415
+ display: none;
416
+ }
417
+
418
+ .dropdown--open {
419
+ display: block;
420
+ }
421
+
422
+ .tabs {
423
+ display: flex;
424
+ border-bottom: 1px solid #e5e7eb;
425
+ }
426
+
427
+ .tab {
428
+ flex: 1;
429
+ padding: 0.75rem;
430
+ font-size: 14px;
431
+ font-weight: 500;
432
+ font-family: inherit;
433
+ color: #6b7280;
434
+ background: none;
435
+ border: none;
436
+ border-bottom: 2px solid transparent;
437
+ cursor: pointer;
438
+ transition: color 0.2s;
439
+ }
440
+
441
+ .tab:hover {
442
+ color: #111827;
443
+ }
444
+
445
+ .tab--active {
446
+ color: #2563eb;
447
+ border-bottom-color: #2563eb;
448
+ }
449
+
450
+ .content {
451
+ padding: 1rem;
452
+ }
453
+
454
+ .relative-options {
455
+ display: flex;
456
+ flex-direction: column;
457
+ gap: 0.25rem;
458
+ }
459
+
460
+ .relative-option {
461
+ display: flex;
462
+ align-items: center;
463
+ padding: 0.5rem 0.75rem;
464
+ font-size: 14px;
465
+ font-family: inherit;
466
+ color: #111827;
467
+ background: none;
468
+ border: none;
469
+ border-radius: 4px;
470
+ cursor: pointer;
471
+ text-align: left;
472
+ transition: background-color 0.2s;
473
+ }
474
+
475
+ .relative-option:hover {
476
+ background-color: #f3f4f6;
477
+ }
478
+
479
+ .relative-option--selected {
480
+ background-color: #eff6ff;
481
+ color: #1e40af;
482
+ }
483
+
484
+ .absolute {
485
+ display: flex;
486
+ flex-direction: column;
487
+ gap: 1rem;
488
+ }
489
+
490
+ .date-row {
491
+ display: flex;
492
+ align-items: center;
493
+ gap: 0.75rem;
494
+ }
495
+
496
+ .date-label {
497
+ width: 60px;
498
+ font-size: 14px;
499
+ color: #6b7280;
500
+ }
501
+
502
+ .date-input {
503
+ flex: 1;
504
+ padding: 0.5rem 0.75rem;
505
+ font-size: 14px;
506
+ font-family: inherit;
507
+ border: 1px solid #d1d5db;
508
+ border-radius: 4px;
509
+ }
510
+
511
+ .date-input:focus {
512
+ outline: none;
513
+ border-color: #2563eb;
514
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
515
+ }
516
+
517
+ .footer {
518
+ display: flex;
519
+ justify-content: flex-end;
520
+ gap: 0.5rem;
521
+ padding: 0.75rem 1rem;
522
+ border-top: 1px solid #e5e7eb;
523
+ }
524
+ `;
525
+ __decorate([
526
+ property({ type: Object })
527
+ ], KRDateRangePicker.prototype, "value", void 0);
528
+ __decorate([
529
+ property({ type: Array })
530
+ ], KRDateRangePicker.prototype, "relativeOptions", void 0);
531
+ __decorate([
532
+ property({ type: Boolean })
533
+ ], KRDateRangePicker.prototype, "disabled", void 0);
534
+ __decorate([
535
+ property({ type: Boolean })
536
+ ], KRDateRangePicker.prototype, "invalid", void 0);
537
+ __decorate([
538
+ property({ type: String })
539
+ ], KRDateRangePicker.prototype, "placeholder", void 0);
540
+ __decorate([
541
+ property({ type: String })
542
+ ], KRDateRangePicker.prototype, "startDate", void 0);
543
+ __decorate([
544
+ property({ type: String })
545
+ ], KRDateRangePicker.prototype, "endDate", void 0);
546
+ __decorate([
547
+ property({ type: String })
548
+ ], KRDateRangePicker.prototype, "mode", void 0);
549
+ __decorate([
550
+ state()
551
+ ], KRDateRangePicker.prototype, "_isOpen", void 0);
552
+ __decorate([
553
+ state()
554
+ ], KRDateRangePicker.prototype, "_activeTab", void 0);
555
+ __decorate([
556
+ state()
557
+ ], KRDateRangePicker.prototype, "_tempStartDate", void 0);
558
+ __decorate([
559
+ state()
560
+ ], KRDateRangePicker.prototype, "_tempEndDate", void 0);
561
+ KRDateRangePicker = __decorate([
562
+ customElement('kr-date-range-picker')
563
+ ], KRDateRangePicker);
564
+ export { KRDateRangePicker };
565
+ //# sourceMappingURL=date-range-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.js","sourceRoot":"","sources":["../../src/date-range-picker/date-range-picker.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export type { KRButtonOption } from './button/button.js';
6
6
  export { KRCodeDemo } from './code-demo/code-demo.js';
7
7
  export { KRContextMenu } from './context-menu/context-menu.js';
8
8
  export { KRDialog, KRDialogRef } from './dialog/dialog.js';
9
+ export { KRDateRangePicker } from './date-range-picker/date-range-picker.js';
9
10
  export { KRSnackbar } from './snackbar/snackbar.js';
10
11
  export { KRTabGroup } from './tabs/tabs.js';
11
12
  export { KRTab } from './tabs/tab.js';
@@ -24,4 +25,5 @@ export type { ContextMenuItem, ContextMenuOptions } from './context-menu/context
24
25
  export type { KRDialogConfig } from './dialog/dialog.js';
25
26
  export type { KRSnackbarOptions } from './snackbar/snackbar.js';
26
27
  export type { KRAutoSuggestOption } from './form/auto-suggest/auto-suggest.js';
28
+ export type { KRDateRangePickerValue, KRDateRangePickerRelativeOption, KRDateRangePickerMode } from './date-range-picker/date-range-picker.js';
27
29
  //# sourceMappingURL=index.d.ts.map