@melodicdev/components 1.5.8 → 1.5.10
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/assets/melodic-components.js +103 -74
- package/assets/melodic-components.js.map +1 -1
- package/assets/melodic-components.min.js +560 -536
- package/lib/components/forms/button/button.styles.d.ts.map +1 -1
- package/lib/components/forms/button/button.styles.js +4 -0
- package/lib/components/forms/date-picker/date-picker.component.d.ts +8 -2
- package/lib/components/forms/date-picker/date-picker.component.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.component.js +32 -21
- package/lib/components/forms/date-picker/date-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.styles.js +53 -27
- package/lib/components/forms/date-picker/date-picker.template.d.ts.map +1 -1
- package/lib/components/forms/date-picker/date-picker.template.js +27 -17
- package/lib/components/forms/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/lib/components/forms/date-time-picker/date-time-picker.component.js +47 -0
- package/lib/components/forms/time-picker/time-picker.component.d.ts +5 -0
- package/lib/components/forms/time-picker/time-picker.component.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.component.js +29 -5
- package/lib/components/forms/time-picker/time-picker.styles.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.styles.js +53 -27
- package/lib/components/forms/time-picker/time-picker.template.d.ts.map +1 -1
- package/lib/components/forms/time-picker/time-picker.template.js +28 -17
- package/package.json +1 -1
|
@@ -5421,6 +5421,10 @@ const buttonStyles = () => css`
|
|
|
5421
5421
|
width: 1.25em;
|
|
5422
5422
|
height: 1.25em;
|
|
5423
5423
|
}
|
|
5424
|
+
|
|
5425
|
+
::slotted(ml-icon) {
|
|
5426
|
+
--ml-icon-size: 1.125em;
|
|
5427
|
+
}
|
|
5424
5428
|
`;
|
|
5425
5429
|
var ButtonComponent = class ButtonComponent$1 {
|
|
5426
5430
|
constructor() {
|
|
@@ -9526,23 +9530,33 @@ function datePickerTemplate(c) {
|
|
|
9526
9530
|
</label>
|
|
9527
9531
|
`)}
|
|
9528
9532
|
|
|
9529
|
-
<
|
|
9530
|
-
|
|
9531
|
-
|
|
9532
|
-
|
|
9533
|
-
|
|
9534
|
-
|
|
9535
|
-
|
|
9536
|
-
|
|
9537
|
-
|
|
9538
|
-
|
|
9539
|
-
|
|
9540
|
-
|
|
9541
|
-
|
|
9542
|
-
|
|
9543
|
-
|
|
9544
|
-
|
|
9545
|
-
|
|
9533
|
+
<div class="ml-date-picker__trigger">
|
|
9534
|
+
<input
|
|
9535
|
+
type="date"
|
|
9536
|
+
class="ml-date-picker__input"
|
|
9537
|
+
.value=${c.value}
|
|
9538
|
+
min=${c.min}
|
|
9539
|
+
max=${c.max}
|
|
9540
|
+
placeholder=${c.placeholder}
|
|
9541
|
+
?disabled=${c.disabled}
|
|
9542
|
+
?required=${c.required}
|
|
9543
|
+
aria-haspopup="dialog"
|
|
9544
|
+
aria-expanded=${c.isOpen ? "true" : "false"}
|
|
9545
|
+
@change=${c.handleInput}
|
|
9546
|
+
@click=${c.handleInputClick}
|
|
9547
|
+
@keydown=${c.handleKeyDown}
|
|
9548
|
+
/>
|
|
9549
|
+
<button
|
|
9550
|
+
type="button"
|
|
9551
|
+
class="ml-date-picker__calendar-btn"
|
|
9552
|
+
?disabled=${c.disabled}
|
|
9553
|
+
aria-label="Open calendar"
|
|
9554
|
+
tabindex="-1"
|
|
9555
|
+
@click=${c.toggleCalendar}
|
|
9556
|
+
>
|
|
9557
|
+
<ml-icon icon="calendar-blank" size="sm" class="ml-date-picker__icon"></ml-icon>
|
|
9558
|
+
</button>
|
|
9559
|
+
</div>
|
|
9546
9560
|
|
|
9547
9561
|
<div class="ml-date-picker__popover" popover="auto">
|
|
9548
9562
|
<ml-calendar
|
|
@@ -9633,32 +9647,24 @@ const datePickerStyles = () => css`
|
|
|
9633
9647
|
margin-left: var(--ml-space-0-5);
|
|
9634
9648
|
}
|
|
9635
9649
|
|
|
9636
|
-
/* Trigger
|
|
9650
|
+
/* Trigger wrapper */
|
|
9637
9651
|
.ml-date-picker__trigger {
|
|
9638
9652
|
display: flex;
|
|
9639
9653
|
align-items: center;
|
|
9640
|
-
gap: var(--ml-date-picker-gap);
|
|
9641
9654
|
width: 100%;
|
|
9642
|
-
padding: var(--ml-date-picker-padding);
|
|
9643
9655
|
border: var(--ml-date-picker-border-width) solid var(--ml-date-picker-border-color);
|
|
9644
9656
|
border-radius: var(--ml-date-picker-border-radius);
|
|
9645
9657
|
background-color: var(--ml-date-picker-bg);
|
|
9646
|
-
color: var(--ml-date-picker-color);
|
|
9647
|
-
cursor: pointer;
|
|
9648
|
-
font-family: var(--ml-date-picker-font-family);
|
|
9649
|
-
font-size: var(--ml-date-picker-font-size);
|
|
9650
|
-
text-align: left;
|
|
9651
9658
|
transition:
|
|
9652
9659
|
border-color var(--ml-date-picker-transition-duration) var(--ml-date-picker-transition-easing),
|
|
9653
9660
|
box-shadow var(--ml-date-picker-transition-duration) var(--ml-date-picker-transition-easing);
|
|
9654
9661
|
}
|
|
9655
9662
|
|
|
9656
|
-
.ml-date-picker__trigger:hover:not(:disabled) {
|
|
9663
|
+
.ml-date-picker__trigger:hover:not(:has(:disabled)) {
|
|
9657
9664
|
border-color: var(--ml-date-picker-hover-border-color);
|
|
9658
9665
|
}
|
|
9659
9666
|
|
|
9660
|
-
.ml-date-picker__trigger:focus-
|
|
9661
|
-
outline: none;
|
|
9667
|
+
.ml-date-picker__trigger:focus-within {
|
|
9662
9668
|
border-color: var(--ml-date-picker-focus-border-color);
|
|
9663
9669
|
box-shadow: var(--ml-date-picker-focus-shadow);
|
|
9664
9670
|
}
|
|
@@ -9672,7 +9678,7 @@ const datePickerStyles = () => css`
|
|
|
9672
9678
|
border-color: var(--ml-date-picker-error-border-color);
|
|
9673
9679
|
}
|
|
9674
9680
|
|
|
9675
|
-
.ml-date-picker--error .ml-date-picker__trigger:focus-
|
|
9681
|
+
.ml-date-picker--error .ml-date-picker__trigger:focus-within,
|
|
9676
9682
|
.ml-date-picker--error.ml-date-picker--open .ml-date-picker__trigger {
|
|
9677
9683
|
box-shadow: var(--ml-date-picker-error-focus-shadow);
|
|
9678
9684
|
}
|
|
@@ -9683,39 +9689,73 @@ const datePickerStyles = () => css`
|
|
|
9683
9689
|
background-color: var(--ml-date-picker-disabled-bg);
|
|
9684
9690
|
}
|
|
9685
9691
|
|
|
9692
|
+
/* Date input */
|
|
9693
|
+
.ml-date-picker__input {
|
|
9694
|
+
flex: 1;
|
|
9695
|
+
min-width: 0;
|
|
9696
|
+
border: none;
|
|
9697
|
+
outline: none;
|
|
9698
|
+
background: transparent;
|
|
9699
|
+
color: var(--ml-date-picker-color);
|
|
9700
|
+
font-family: var(--ml-date-picker-font-family);
|
|
9701
|
+
font-size: var(--ml-date-picker-font-size);
|
|
9702
|
+
padding: var(--ml-date-picker-padding);
|
|
9703
|
+
}
|
|
9704
|
+
|
|
9705
|
+
/* Hide native date picker indicator across browsers */
|
|
9706
|
+
.ml-date-picker__input::-webkit-calendar-picker-indicator {
|
|
9707
|
+
display: none;
|
|
9708
|
+
-webkit-appearance: none;
|
|
9709
|
+
}
|
|
9710
|
+
|
|
9711
|
+
.ml-date-picker__input::-webkit-date-and-time-value {
|
|
9712
|
+
text-align: left;
|
|
9713
|
+
}
|
|
9714
|
+
|
|
9715
|
+
.ml-date-picker__input:disabled {
|
|
9716
|
+
cursor: not-allowed;
|
|
9717
|
+
}
|
|
9718
|
+
|
|
9686
9719
|
/* Sizes */
|
|
9687
|
-
.ml-date-picker--sm .ml-date-
|
|
9720
|
+
.ml-date-picker--sm .ml-date-picker__input {
|
|
9688
9721
|
padding: var(--ml-space-2) var(--ml-space-3);
|
|
9689
9722
|
font-size: var(--ml-text-sm);
|
|
9690
9723
|
}
|
|
9691
9724
|
|
|
9692
|
-
.ml-date-picker--md .ml-date-
|
|
9725
|
+
.ml-date-picker--md .ml-date-picker__input {
|
|
9693
9726
|
padding: var(--ml-space-2-5) var(--ml-space-3-5);
|
|
9694
9727
|
font-size: var(--ml-text-sm);
|
|
9695
9728
|
}
|
|
9696
9729
|
|
|
9697
|
-
.ml-date-picker--lg .ml-date-
|
|
9730
|
+
.ml-date-picker--lg .ml-date-picker__input {
|
|
9698
9731
|
padding: var(--ml-space-3) var(--ml-space-3-5);
|
|
9699
9732
|
font-size: var(--ml-text-base);
|
|
9700
9733
|
}
|
|
9701
9734
|
|
|
9702
|
-
/*
|
|
9703
|
-
.ml-date-
|
|
9704
|
-
|
|
9735
|
+
/* Calendar button */
|
|
9736
|
+
.ml-date-picker__calendar-btn {
|
|
9737
|
+
display: flex;
|
|
9738
|
+
align-items: center;
|
|
9739
|
+
justify-content: center;
|
|
9740
|
+
border: none;
|
|
9741
|
+
background: transparent;
|
|
9742
|
+
cursor: pointer;
|
|
9743
|
+
padding: 0 var(--ml-space-3) 0 0;
|
|
9705
9744
|
color: var(--ml-date-picker-icon-color);
|
|
9745
|
+
transition: color var(--ml-date-picker-transition-duration) var(--ml-date-picker-transition-easing);
|
|
9706
9746
|
}
|
|
9707
9747
|
|
|
9708
|
-
|
|
9709
|
-
|
|
9710
|
-
|
|
9711
|
-
|
|
9712
|
-
|
|
9713
|
-
|
|
9714
|
-
white-space: nowrap;
|
|
9748
|
+
.ml-date-picker__calendar-btn:hover:not(:disabled) {
|
|
9749
|
+
color: var(--ml-date-picker-color);
|
|
9750
|
+
}
|
|
9751
|
+
|
|
9752
|
+
.ml-date-picker__calendar-btn:disabled {
|
|
9753
|
+
cursor: not-allowed;
|
|
9715
9754
|
}
|
|
9716
9755
|
|
|
9717
|
-
|
|
9718
|
-
|
|
9756
|
+
/* Icon */
|
|
9757
|
+
.ml-date-picker__icon {
|
|
9758
|
+
flex-shrink: 0;
|
|
9719
9759
|
}
|
|
9720
9760
|
|
|
9721
9761
|
/* Popover */
|
|
@@ -9767,29 +9807,6 @@ const datePickerStyles = () => css`
|
|
|
9767
9807
|
color: var(--ml-date-picker-error-color);
|
|
9768
9808
|
}
|
|
9769
9809
|
`;
|
|
9770
|
-
var MONTH_SHORT = [
|
|
9771
|
-
"Jan",
|
|
9772
|
-
"Feb",
|
|
9773
|
-
"Mar",
|
|
9774
|
-
"Apr",
|
|
9775
|
-
"May",
|
|
9776
|
-
"Jun",
|
|
9777
|
-
"Jul",
|
|
9778
|
-
"Aug",
|
|
9779
|
-
"Sep",
|
|
9780
|
-
"Oct",
|
|
9781
|
-
"Nov",
|
|
9782
|
-
"Dec"
|
|
9783
|
-
];
|
|
9784
|
-
function formatDisplay(iso) {
|
|
9785
|
-
if (!iso) return "";
|
|
9786
|
-
const parts = iso.split("-");
|
|
9787
|
-
if (parts.length !== 3) return iso;
|
|
9788
|
-
const month = parseInt(parts[1], 10) - 1;
|
|
9789
|
-
const day = parseInt(parts[2], 10);
|
|
9790
|
-
const year = parseInt(parts[0], 10);
|
|
9791
|
-
return `${MONTH_SHORT[month]} ${day}, ${year}`;
|
|
9792
|
-
}
|
|
9793
9810
|
var DatePickerComponent = class DatePickerComponent$1 {
|
|
9794
9811
|
constructor() {
|
|
9795
9812
|
this.value = "";
|
|
@@ -9809,6 +9826,13 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9809
9826
|
const popoverEl = this.getPopoverEl();
|
|
9810
9827
|
if (popoverEl) popoverEl.togglePopover();
|
|
9811
9828
|
};
|
|
9829
|
+
this.handleInput = (event) => {
|
|
9830
|
+
const input = event.target;
|
|
9831
|
+
this.commitValue(input.value);
|
|
9832
|
+
};
|
|
9833
|
+
this.handleInputClick = () => {
|
|
9834
|
+
if (!this.isOpen) this.toggleCalendar();
|
|
9835
|
+
};
|
|
9812
9836
|
this.handleDateSelect = (event) => {
|
|
9813
9837
|
event.stopPropagation();
|
|
9814
9838
|
const detail = event.detail;
|
|
@@ -9819,9 +9843,14 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9819
9843
|
if (event.key === "Escape" && this.isOpen) {
|
|
9820
9844
|
event.preventDefault();
|
|
9821
9845
|
this.closePopover();
|
|
9822
|
-
}
|
|
9846
|
+
}
|
|
9847
|
+
if (event.key === " ") {
|
|
9823
9848
|
event.preventDefault();
|
|
9824
|
-
this.toggleCalendar();
|
|
9849
|
+
if (!this.isOpen) this.toggleCalendar();
|
|
9850
|
+
}
|
|
9851
|
+
if (event.key === "F4" || event.altKey && event.key === "ArrowDown") {
|
|
9852
|
+
event.preventDefault();
|
|
9853
|
+
if (!this.isOpen) this.toggleCalendar();
|
|
9825
9854
|
}
|
|
9826
9855
|
};
|
|
9827
9856
|
this._handleToggle = (event) => {
|
|
@@ -9836,9 +9865,6 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9836
9865
|
}
|
|
9837
9866
|
};
|
|
9838
9867
|
}
|
|
9839
|
-
get displayValue() {
|
|
9840
|
-
return formatDisplay(this.value);
|
|
9841
|
-
}
|
|
9842
9868
|
onCreate() {
|
|
9843
9869
|
const popoverEl = this.getPopoverEl();
|
|
9844
9870
|
if (popoverEl) popoverEl.addEventListener("toggle", this._handleToggle);
|
|
@@ -9881,8 +9907,11 @@ var DatePickerComponent = class DatePickerComponent$1 {
|
|
|
9881
9907
|
popoverEl.style.top = `${y}px`;
|
|
9882
9908
|
}
|
|
9883
9909
|
returnFocus() {
|
|
9884
|
-
const
|
|
9885
|
-
if (
|
|
9910
|
+
const inputEl = this.getInputEl();
|
|
9911
|
+
if (inputEl) inputEl.focus();
|
|
9912
|
+
}
|
|
9913
|
+
getInputEl() {
|
|
9914
|
+
return this.elementRef.shadowRoot?.querySelector(".ml-date-picker__input");
|
|
9886
9915
|
}
|
|
9887
9916
|
getTriggerEl() {
|
|
9888
9917
|
return this.elementRef.shadowRoot?.querySelector(".ml-date-picker__trigger");
|