jsl-ui 9.28.7 → 10.0.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.
Files changed (166) hide show
  1. package/docs/AutoSuggestComponent.md +17 -0
  2. package/docs/ButtonComponent.md +14 -0
  3. package/docs/CheckBoxComponent.md +12 -0
  4. package/docs/DateComponent.md +12 -0
  5. package/docs/DateRangeComponent.md +13 -0
  6. package/docs/DateTimeComponent.md +13 -0
  7. package/docs/DialogComponent.md +15 -0
  8. package/docs/ExpanderComponent.md +13 -0
  9. package/docs/FormComponent.md +15 -0
  10. package/docs/FormFieldComponent.md +15 -0
  11. package/docs/GridComponent.md +19 -0
  12. package/docs/InputComponent.md +15 -0
  13. package/docs/IntervalComponent.md +13 -0
  14. package/docs/LoadingComponent.md +12 -0
  15. package/docs/NavigationComponent.md +17 -0
  16. package/docs/Notification.md +14 -0
  17. package/docs/NotificationComponent.md +13 -0
  18. package/docs/NumberComponent.md +12 -0
  19. package/docs/OverlayComponent.md +12 -0
  20. package/docs/ProgressComponent.md +12 -0
  21. package/docs/README.md +24 -0
  22. package/docs/RibbonMenuComponent.md +14 -0
  23. package/docs/SelectComponent.md +15 -0
  24. package/docs/SplitterComponent.md +14 -0
  25. package/docs/StackPanelComponent.md +13 -0
  26. package/docs/TabsComponent.md +16 -0
  27. package/docs/TimeComponent.md +13 -0
  28. package/docs/TreeViewComponent.md +16 -0
  29. package/examples/showcase/checks-and-expanders.ts +163 -0
  30. package/examples/showcase/cultures.ts +39 -0
  31. package/examples/showcase/dates.ts +182 -0
  32. package/examples/showcase/dialogs.ts +184 -0
  33. package/examples/showcase/feedback-and-navigation.ts +174 -0
  34. package/examples/showcase/fields.ts +178 -0
  35. package/examples/showcase/fonts/Jost-Variable.ttf +0 -0
  36. package/examples/showcase/fonts/OFL-Jost.txt +93 -0
  37. package/examples/showcase/grids.ts +150 -0
  38. package/examples/showcase/index.html +60 -0
  39. package/examples/showcase/layout-and-navigation.ts +47 -0
  40. package/examples/showcase/nivona.css +98 -0
  41. package/examples/showcase/selects.ts +158 -0
  42. package/examples/showcase/showcase.css +231 -0
  43. package/examples/showcase/showcase.ts +214 -0
  44. package/examples/showcase/tabs.ts +161 -0
  45. package/examples/showcase/themes.css +83 -0
  46. package/examples/showcase/themes.ts +54 -0
  47. package/lib/components/IntervalComponent.d.ts +5 -0
  48. package/lib/components/IntervalComponent.js +29 -13
  49. package/lib/components/auto-suggest/AutoSuggestComponent.d.ts +11 -9
  50. package/lib/components/auto-suggest/AutoSuggestComponent.js +25 -38
  51. package/lib/components/button/ButtonComponent.d.ts +30 -1
  52. package/lib/components/button/ButtonComponent.js +85 -4
  53. package/lib/components/checkbox/CheckBoxComponent.d.ts +11 -1
  54. package/lib/components/checkbox/CheckBoxComponent.js +66 -56
  55. package/lib/components/checkbox/CheckBoxStyle.scss +72 -85
  56. package/lib/components/date/DateComponent.d.ts +10 -0
  57. package/lib/components/date/DateComponent.js +92 -44
  58. package/lib/components/date-range/DateRangeComponent.d.ts +14 -3
  59. package/lib/components/date-range/DateRangeComponent.js +96 -86
  60. package/lib/components/date-range/DateRangeStyle.scss +35 -11
  61. package/lib/components/date-time/DateTimeComponent.d.ts +8 -0
  62. package/lib/components/date-time/DateTimeComponent.js +64 -23
  63. package/lib/components/date-time/DateTimeStyle.scss +10 -7
  64. package/lib/components/dialog/DialogComponent.d.ts +21 -7
  65. package/lib/components/dialog/DialogComponent.js +179 -122
  66. package/lib/components/expander/ExpanderComponent.d.ts +15 -1
  67. package/lib/components/expander/ExpanderComponent.js +85 -64
  68. package/lib/components/expander/ExpanderStyle.scss +61 -47
  69. package/lib/components/form-field/FormFieldComponent.d.ts +45 -15
  70. package/lib/components/form-field/FormFieldComponent.js +249 -96
  71. package/lib/components/form-field/FormFieldStyle.scss +36 -87
  72. package/lib/components/form-field/create-control.d.ts +7 -0
  73. package/lib/components/form-field/create-control.js +48 -0
  74. package/lib/components/input/InputComponent.d.ts +18 -1
  75. package/lib/components/input/InputComponent.js +68 -93
  76. package/lib/components/loading/LoadingComponent.d.ts +9 -2
  77. package/lib/components/loading/LoadingComponent.js +13 -12
  78. package/lib/components/loading/LoadingStyle.css +19 -29
  79. package/lib/components/navigation/NavigationComponent.d.ts +34 -10
  80. package/lib/components/navigation/NavigationComponent.js +261 -33
  81. package/lib/components/navigation/NavigationStyle.scss +62 -226
  82. package/lib/components/notification/Notification.d.ts +37 -4
  83. package/lib/components/notification/Notification.js +160 -41
  84. package/lib/components/notification/Notification.scss +103 -19
  85. package/lib/components/number/NumberComponent.d.ts +16 -2
  86. package/lib/components/number/NumberComponent.js +54 -53
  87. package/lib/components/overlay/OverlayComponent.d.ts +13 -7
  88. package/lib/components/overlay/OverlayComponent.js +46 -114
  89. package/lib/components/overlay/overlay.css +18 -57
  90. package/lib/components/progress/ProgressComponent.d.ts +1 -0
  91. package/lib/components/progress/ProgressComponent.js +6 -6
  92. package/lib/components/progress/ProgressStyle.scss +5 -15
  93. package/lib/components/ribbon-menu/RibbonMenuComponent.js +2 -2
  94. package/lib/components/ribbon-menu/RibbonMenuStyle.scss +6 -76
  95. package/lib/components/select/SelectComponent.d.ts +33 -3
  96. package/lib/components/select/SelectComponent.js +312 -278
  97. package/lib/components/select/SelectDDAreaComponent.d.ts +13 -7
  98. package/lib/components/select/SelectDDAreaComponent.js +215 -256
  99. package/lib/components/select/SelectStyle.scss +204 -186
  100. package/lib/components/slider/nouislider.css +40 -54
  101. package/lib/components/stack-panel/SplitterComponent.d.ts +19 -3
  102. package/lib/components/stack-panel/SplitterComponent.js +94 -111
  103. package/lib/components/stack-panel/SplitterStyle.scss +9 -45
  104. package/lib/components/stack-panel/StackPanelComponent.js +3 -3
  105. package/lib/components/stack-panel/StackPanelStyle.scss +10 -52
  106. package/lib/components/tabs/TabsComponent.d.ts +17 -1
  107. package/lib/components/tabs/TabsComponent.js +247 -123
  108. package/lib/components/tabs/TabsStyle.scss +138 -75
  109. package/lib/components/time/TimeComponent.d.ts +5 -0
  110. package/lib/components/time/TimeComponent.js +61 -69
  111. package/lib/components/time/TimeComponent.scss +4 -4
  112. package/lib/components/tree-view/TreeViewComponent.d.ts +10 -4
  113. package/lib/components/tree-view/TreeViewComponent.js +65 -32
  114. package/lib/components/tree-view/TreeViewStyle.scss +12 -96
  115. package/lib/core/date.d.ts +2 -0
  116. package/lib/core/date.js +6 -0
  117. package/lib/core/jq.js +11 -8
  118. package/lib/grid/slick-default-theme.css +107 -31
  119. package/lib/grid/slick.creator.js +23 -5
  120. package/lib/grid/slick.formatters.js +4 -3
  121. package/lib/grid/slick.grid.css +38 -26
  122. package/lib/grid/slick.grid.d.ts +1 -0
  123. package/lib/grid/slick.grid.js +2 -3
  124. package/lib/grid.css +3413 -454
  125. package/lib/index.css +2500 -1031
  126. package/lib/index.css.map +1 -1
  127. package/lib/index.d.ts +1 -0
  128. package/lib/index.js +1 -1
  129. package/lib/index.js.map +1 -1
  130. package/lib/interaction/moveable.d.ts +1 -0
  131. package/lib/interaction/moveable.js +8 -0
  132. package/lib/interaction/resizable.d.ts +1 -0
  133. package/lib/interaction/resizable.js +9 -0
  134. package/lib/ui/auto.suggest.css +31 -14
  135. package/lib/ui/auto.suggest.d.ts +1 -0
  136. package/lib/ui/auto.suggest.js +88 -18
  137. package/lib/ui/base.css +2 -48
  138. package/lib/ui/button.css +134 -0
  139. package/lib/ui/date-input.css +11 -0
  140. package/lib/ui/date.picker/css/tiny-date-picker.css +124 -325
  141. package/lib/ui/date.picker/date-picker-options.js +4 -3
  142. package/lib/ui/date.picker/lib/date-manip.js +9 -0
  143. package/lib/ui/date.picker/mode/base-mode.d.ts +2 -1
  144. package/lib/ui/date.picker/mode/base-mode.js +112 -22
  145. package/lib/ui/date.picker/mode/dropdown-mode.d.ts +2 -4
  146. package/lib/ui/date.picker/mode/dropdown-mode.js +29 -42
  147. package/lib/ui/date.picker/mode/index.d.ts +2 -1
  148. package/lib/ui/date.picker/mode/modal-mode.d.ts +2 -1
  149. package/lib/ui/date.picker/mode/modal-mode.js +4 -2
  150. package/lib/ui/date.picker/mode/permanent-mode.d.ts +2 -1
  151. package/lib/ui/date.picker/views/day-picker.js +24 -15
  152. package/lib/ui/date.picker/views/month-picker.js +1 -1
  153. package/lib/ui/date.picker/views/year-picker.js +3 -2
  154. package/lib/ui/date.picker.d.ts +2 -1
  155. package/lib/ui/dialog.css +144 -108
  156. package/lib/ui/dialog.d.ts +19 -1
  157. package/lib/ui/dialog.js +178 -60
  158. package/lib/ui/input.css +35 -0
  159. package/lib/ui/number.input.js +50 -37
  160. package/lib/ui/theme.css +28 -0
  161. package/package.json +12 -8
  162. package/lib/components/drop-down/DropDownComponent.d.ts +0 -27
  163. package/lib/components/drop-down/DropDownComponent.js +0 -60
  164. package/lib/components/expander/OldExpanderStyle.scss +0 -37
  165. package/lib/ui/drop.down.d.ts +0 -52
  166. package/lib/ui/drop.down.js +0 -2112
@@ -1,326 +1,125 @@
1
- .dp-modal {
2
- position: fixed;
3
- top: 0;
4
- left: 0;
5
- right: 0;
6
- bottom: 0;
7
- background: rgba(255, 255, 255, 0.75);
1
+ @import "../../theme.css";
2
+
3
+ .dp-below, .dp-modal, .dp-permanent {
4
+ box-sizing: border-box;
5
+ color: var(--jsl-color-text);
6
+ font: inherit;
7
+ font-size: .875rem;
8
+ line-height: 1.4;
9
+ }
10
+ .dp-below *, .dp-modal *, .dp-permanent * { box-sizing: border-box; }
11
+ .dp {
12
+ width: 19rem;
13
+ max-width: calc(100vw - 1rem);
14
+ border: 1px solid var(--jsl-color-border);
15
+ border-radius: .875rem;
16
+ background: var(--jsl-color-surface);
17
+ box-shadow: 0 12px 32px rgba(0, 0, 0, .14), 0 2px 6px rgba(0, 0, 0, .06);
18
+ overflow: auto;
19
+ max-height: calc(100dvh - 1rem);
20
+ }
21
+ .dp-below { position: fixed; z-index: 2200; width: max-content; }
22
+ .dp-modal {
23
+ position: fixed;
24
+ inset: 0;
25
+ z-index: 2300;
26
+ display: grid;
27
+ place-items: center;
28
+ padding: .5rem;
29
+ background: var(--jsl-color-overlay);
30
+ }
31
+ .dp-permanent { display: inline-block; max-width: 100%; }
32
+ .dp-permanent .dp { box-shadow: none; max-width: 100%; }
33
+ .dp button {
34
+ appearance: none;
35
+ border: 0;
36
+ background: transparent;
37
+ color: inherit;
38
+ border-radius: .4rem;
39
+ padding: .5rem;
40
+ font: inherit;
41
+ line-height: 1.4;
42
+ cursor: pointer;
43
+ text-align: center;
44
+ margin: 0;
45
+ }
46
+ .dp button:hover:not(:disabled) { background: var(--jsl-color-surface-hover); }
47
+ .dp button:focus-visible {
48
+ outline: 2px solid var(--jsl-color-focus);
49
+ outline-offset: -2px;
50
+ position: relative;
51
+ z-index: 1;
52
+ }
53
+ .dp button:disabled {
54
+ color: var(--jsl-color-disabled-text);
55
+ cursor: not-allowed;
56
+ opacity: .4;
57
+ }
58
+ .dp-cal-header {
59
+ display: grid;
60
+ grid-template-columns: 2rem 1fr auto 2rem;
61
+ align-items: center;
62
+ gap: .125rem;
63
+ padding: .75rem .625rem .5rem;
64
+ }
65
+ .dp-cal-header button { font-weight: 600; }
66
+ .dp .dp-prev, .dp .dp-next { font-size: 1.375rem; line-height: 1; padding: .35rem; }
67
+ .dp-days {
68
+ display: grid;
69
+ grid-template-columns: repeat(7, minmax(0, 1fr));
70
+ gap: .125rem;
71
+ padding: 0 .625rem .625rem;
72
+ }
73
+ .dp-col-header {
74
+ color: var(--jsl-color-text-muted);
75
+ text-align: center;
76
+ font-size: .6875rem;
77
+ font-weight: 500;
78
+ padding: .5rem 0;
79
+ }
80
+ .dp .dp-day {
81
+ position: relative;
82
+ padding: .45rem 0;
83
+ min-height: 2.125rem;
84
+ font-size: .8125rem;
85
+ font-variant-numeric: tabular-nums;
86
+ }
87
+ .dp .dp-edge-day { color: var(--jsl-color-text-muted); }
88
+ .dp .dp-current:not(.dp-selected) { background: var(--jsl-color-surface-selected); }
89
+ .dp .dp-selected, .dp .dp-selected:hover:not(:disabled) {
90
+ background: var(--jsl-color-accent);
91
+ color: var(--jsl-color-on-accent);
92
+ font-weight: 600;
93
+ }
94
+ .dp-day-today::after {
95
+ content: "";
96
+ position: absolute;
97
+ width: 3px;
98
+ height: 3px;
99
+ bottom: 3px;
100
+ left: calc(50% - 1.5px);
101
+ border-radius: 50%;
102
+ background: currentColor;
103
+ }
104
+ .dp-cal-footer {
105
+ display: grid;
106
+ grid-template-columns: repeat(3, 1fr);
107
+ gap: .25rem;
108
+ border-top: 1px solid var(--jsl-color-border-subtle);
109
+ padding: .5rem .625rem;
110
+ }
111
+ .dp-cal-footer button { font-size: .75rem; font-weight: 500; }
112
+ .dp-months {
113
+ display: grid;
114
+ grid-template-columns: repeat(3, 1fr);
115
+ gap: .375rem;
116
+ padding: .75rem;
117
+ min-height: 15rem;
118
+ align-content: center;
119
+ }
120
+ .dp-months button { font-size: .75rem; padding: .875rem .25rem; }
121
+ .dp-years { padding: .75rem; height: 19rem; overflow-y: auto; display: grid; gap: .25rem; }
122
+ .dp-years button { display: block; width: 100%; padding: .625rem; }
123
+ @media (forced-colors: active) {
124
+ .dp .dp-selected { outline: 2px solid Highlight; }
8
125
  }
9
-
10
- .dp {
11
- position: relative;
12
- background: #FFF;
13
- box-shadow: 2px 2px 16px rgba(0, 0, 0, 0.25);
14
- line-height: 1.4;
15
- border-radius: 0.5rem;
16
- max-height: 400px;
17
- z-index: 2010;
18
- overflow: hidden;
19
- -webkit-tap-highlight-color: transparent;
20
- }
21
-
22
-
23
- /* .dp:before {
24
- content: ' ';
25
- height: 6px;
26
- position: absolute;
27
- top: 0;
28
- left: 0;
29
- right: 0;
30
- background: #3B99FC;
31
- background: linear-gradient(-90deg, #3B99FC 0%, #8AEFC8 100%);
32
- } */
33
-
34
- .dp-permanent .dp {
35
- padding-top: 0;
36
- border: 1px solid #EEE;
37
- box-shadow: none;
38
- }
39
-
40
- .dp-permanent .dp:before {
41
- display: none;
42
- }
43
-
44
- /* .dp-cal {
45
- min-height: 300px;
46
- } */
47
-
48
- .dp-below {
49
- position: absolute;
50
- width: 20rem;
51
- max-width: 100vw;
52
- }
53
-
54
- .dp-permanent {
55
- position: relative;
56
- width: 20rem;
57
- max-width: 100vw;
58
- z-index: 2010;
59
- }
60
-
61
- .dp-permanent .dp{
62
- z-index: 0;
63
- }
64
-
65
- .dp-modal .dp {
66
- position: absolute;
67
- top: 50%;
68
- left: 50%;
69
- max-width: 600px;
70
- width: calc(100% - 4em);
71
- transform: translate(-50%, -50%);
72
- animation: slide-up 0.3s forwards;
73
- }
74
-
75
- .dp-months {
76
- padding: 24px;
77
- }
78
-
79
- .dp-years {
80
- box-sizing: border-box;
81
- max-height: 400px;
82
- padding: 8px 0;
83
- overflow: auto !important; /* HACK for Chrome on Android */
84
- }
85
-
86
- .dp-cal-month,
87
- .dp-cal-year,
88
- .dp-day,
89
- .dp-month,
90
- .dp-year {
91
- box-sizing: border-box;
92
- text-align: center;
93
- text-decoration: none;
94
- position: relative;
95
- color: #3B404D;
96
- border-radius: 2px;
97
- border: 0;
98
- background: transparent;
99
- top: 0.2rem;
100
- }
101
-
102
- .dp-cal-header {
103
- position: relative;
104
- text-align: center;
105
- padding-bottom: 0.4rem;
106
- background: #f0f0f0;
107
- }
108
-
109
- .dp-next,
110
- .dp-prev {
111
- position: absolute;
112
- width: 1.8rem;
113
- height: 1.8rem;
114
- overflow: hidden;
115
- top: 0.3rem;
116
- color: #777;
117
- border-radius: 2px;
118
- border: 0;
119
- background: transparent;
120
- }
121
-
122
- .dp-next:focus,
123
- .dp-prev:focus,
124
- .dp-next:hover,
125
- .dp-prev:hover {
126
- outline: none;
127
- color: inherit;
128
- }
129
-
130
- .dp-prev {
131
- left: 24px;
132
- }
133
-
134
- .dp-next {
135
- right: 24px;
136
- }
137
-
138
- .dp-prev:before,
139
- .dp-next:before {
140
- content: '';
141
- border: 2px solid;
142
- width: 0.7rem;
143
- height: 0.7rem;
144
- display: inline-block;
145
- transform: rotate(-45deg);
146
- transition: border-color 0.2s;
147
- margin: 0.5rem 0 3rem 0.3rem
148
- }
149
-
150
- .dp-prev:before {
151
- border-right: 0;
152
- border-bottom: 0;
153
- }
154
-
155
- .dp-next:before {
156
- border-left: 0;
157
- border-top: 0;
158
- margin-left: 0;
159
- margin-right: 4px;
160
- }
161
-
162
- .dp-cal-month,
163
- .dp-cal-year {
164
- display: inline-block;
165
- font-size: 1.1rem;
166
- padding: 0.4rem 0.3rem 0.3rem;
167
- outline: none;
168
- }
169
-
170
- .dp-cal-footer {
171
- text-align: center;
172
- background: #f5f5f5;
173
- }
174
-
175
- .dp-day-today:after {
176
- content: '';
177
- height: 0;
178
- width: 0;
179
- border: 7px solid #227BD7;
180
- border-bottom-color: transparent;
181
- border-left-color: transparent;
182
- position: absolute;
183
- top: 0;
184
- right: 0;
185
- }
186
-
187
- .dp-close,
188
- .dp-clear,
189
- .dp-today {
190
- box-sizing: border-box;
191
- display: inline-block;
192
- width: 33%;
193
- padding: 8px;
194
- text-decoration: none;
195
- color: inherit;
196
- border: 0;
197
- background: transparent;
198
- }
199
-
200
- .dp-permanent .dp-close,
201
- .dp-permanent .dp-clear {
202
- display: none;
203
- }
204
-
205
- .dp-close:active,
206
- .dp-clear:active,
207
- .dp-today:active,
208
- .dp-next:active,
209
- .dp-prev:active,
210
- .dp-cal-month:active,
211
- .dp-cal-year:active {
212
- background: #75BCFC;
213
- color: white;
214
- }
215
-
216
- @media screen and (min-device-width: 1200px) {
217
- .dp-close:hover,
218
- .dp-close:focus,
219
- .dp-clear:hover,
220
- .dp-clear:focus,
221
- .dp-today:hover,
222
- .dp-today:focus,
223
- .dp-next:hover,
224
- .dp-next:focus,
225
- .dp-prev:hover,
226
- .dp-prev:focus,
227
- .dp-cal-month:focus,
228
- .dp-cal-month:hover,
229
- .dp-cal-year:hover,
230
- .dp-cal-year:focus {
231
- background: #75BCFC;
232
- color: white;
233
- }
234
- }
235
-
236
- .dp-col-header,
237
- .dp-day {
238
- width: 14.28571429%;
239
- display: inline-block;
240
- padding: 8px;
241
- text-align: center;
242
- }
243
-
244
- .dp-col-header {
245
- color: #AAA;
246
- text-transform: uppercase;
247
- font-weight: 300;
248
- font-size: 0.8rem;
249
- padding: 8px 0;
250
- }
251
-
252
- .dp-month {
253
- width: 33%;
254
- display: inline-block;
255
- padding: 8px;
256
- }
257
-
258
- .dp-year {
259
- display: block;
260
- padding: 8px 40px;
261
- width: 100%;
262
- }
263
-
264
- .dp-edge-day {
265
- color: #AAA;
266
- }
267
-
268
- .dp-day:hover,
269
- .dp-month:hover,
270
- .dp-year:hover,
271
- .dp-current:focus,
272
- .dp-current,
273
- .dp-day:focus,
274
- .dp-month:focus,
275
- .dp-year:focus {
276
- outline: none;
277
- background: #75BCFC;
278
- color: white;
279
- }
280
-
281
- .dp-selected:hover,
282
- .dp-selected:focus,
283
- .dp-selected {
284
- background: #3B99FC;
285
- color: #FFF;
286
- }
287
-
288
- .dp-day-disabled {
289
- background: transparent;
290
- color: #DDD;
291
- }
292
-
293
- .dp-day-disabled:focus,
294
- .dp-day-disabled:hover {
295
- background: #DDD;
296
- }
297
-
298
- .dp-focuser {
299
- position: absolute;
300
- z-index: 0;
301
- top: 50%;
302
- left: 50%;
303
- }
304
-
305
- /* Responsive overrides */
306
- @media (max-width: 480px), (max-height: 480px) {
307
- .dp-modal .dp {
308
- /* font-size: 0.9em; */
309
- width: auto;
310
- width: 100%;
311
- }
312
-
313
- .dp-day-of-week,
314
- .dp-day {
315
- padding: 0.3rem;
316
- }
317
- }
318
-
319
- @keyframes slide-up {
320
- 0% {
321
- transform: translate(-50%, 100%);
322
- }
323
- 100% {
324
- transform: translate(-50%, -50%);
325
- }
326
- }
@@ -40,7 +40,8 @@ export default function DatePickerOptions(opts) {
40
40
  opts.inRange = makeInRangeFn(opts);
41
41
  opts.min = parse(opts.min || shiftYear(now(), -100));
42
42
  opts.max = parse(opts.max || shiftYear(now(), 100));
43
- opts.hilightedDate = opts.parse(opts.hilightedDate);
43
+ opts.hilightedDate = opts.parse(opts.hilightedDate) || now();
44
+ opts.hilightedDate = opts.hilightedDate < opts.min ? opts.min : opts.hilightedDate > opts.max ? opts.max : opts.hilightedDate;
44
45
  return opts;
45
46
  }
46
47
  function defaults() {
@@ -58,13 +59,13 @@ function defaults() {
58
59
  parse: function (str) {
59
60
  //var date = new Date(str);
60
61
  var d = date.parse(str);
61
- return !d ? now() : d;
62
+ return d;
62
63
  },
63
64
  dateClass: function () { },
64
65
  inRange: function () {
65
66
  return true;
66
67
  },
67
- appendTo: document.body,
68
+ appendTo: null,
68
69
  dayOffset: 1
69
70
  };
70
71
  }
@@ -109,12 +109,21 @@ export function dateOrParse(parse) {
109
109
  * @returns {Date}
110
110
  */
111
111
  export function constrainDate(dt, min, max) {
112
+ if (!dt || isNaN(dt.getTime())) {
113
+ return null;
114
+ }
112
115
  return (dt < min) ? min :
113
116
  (dt > max) ? max :
114
117
  dt;
115
118
  }
116
119
  function dropTime(dt) {
120
+ if (dt == null) {
121
+ return null;
122
+ }
117
123
  dt = new Date(dt);
124
+ if (isNaN(dt.getTime())) {
125
+ return null;
126
+ }
118
127
  dt.setHours(0, 0, 0, 0);
119
128
  return dt;
120
129
  }
@@ -2,6 +2,7 @@ import { noop } from '../lib/fns';
2
2
  export default function BaseMode(input: any, emit: any, opts: any): {
3
3
  el: any;
4
4
  opts: any;
5
+ destroyed: boolean;
5
6
  shouldFocusOnBlur: boolean;
6
7
  shouldFocusOnRender: boolean;
7
8
  state: {
@@ -22,5 +23,5 @@ export default function BaseMode(input: any, emit: any, opts: any): {
22
23
  close: (becauseOfBlur?: boolean) => void;
23
24
  destroy: () => void;
24
25
  render: () => void;
25
- setState: (state: any) => void;
26
+ setState: (state: any, silent?: boolean) => void;
26
27
  };