@0001-labs/design-system-1 0.3.0-alpha.19 → 0.3.0-alpha.21
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/DS1/0-face/app-banner.ts +1 -1
- package/DS1/0-face/bento.ts +84 -0
- package/DS1/0-face/calendar.ts +2 -2
- package/DS1/1-root/bento.css +97 -0
- package/DS1/1-root/card.css +6 -1
- package/DS1/1-root/cjk.css +1 -1
- package/DS1/1-root/controls.css +1 -0
- package/DS1/1-root/fonts.css +1 -1
- package/DS1/1-root/one.css +1 -1
- package/DS1/1-root/one.semantic.css +1 -1
- package/DS1/3-unit/calendar-base.ts +31 -22
- package/DS1/3-unit/ds-bento.ts +67 -0
- package/DS1/3-unit/ds-calendar.ts +477 -22
- package/DS1/3-unit/styles/ds-bento.css +66 -0
- package/DS1/3-unit/styles/ds-calendar.css +119 -1
- package/DS1/index.ts +1 -1
- package/dist/0-face/app-banner.js +1 -1
- package/dist/0-face/bento.d.ts +41 -0
- package/dist/0-face/bento.d.ts.map +1 -0
- package/dist/0-face/bento.js +77 -0
- package/dist/0-face/calendar.js +2 -2
- package/dist/3-unit/calendar-base.d.ts +17 -12
- package/dist/3-unit/calendar-base.d.ts.map +1 -1
- package/dist/3-unit/calendar-base.js +21 -16
- package/dist/3-unit/ds-bento.d.ts +31 -0
- package/dist/3-unit/ds-bento.d.ts.map +1 -0
- package/dist/3-unit/ds-bento.js +47 -0
- package/dist/3-unit/ds-calendar-large.d.ts +3 -4
- package/dist/3-unit/ds-calendar-large.d.ts.map +1 -1
- package/dist/3-unit/ds-calendar.d.ts +139 -12
- package/dist/3-unit/ds-calendar.d.ts.map +1 -1
- package/dist/3-unit/ds-calendar.js +464 -23
- package/dist/design-system-1.bundle.js +1125 -1095
- package/dist/design-system-1.bundle.js.map +1 -1
- package/dist/design-system-1.bundle.min.js +2484 -2457
- package/dist/design-system-1.bundle.min.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/DS1/3-unit/ds-date-picker.ts +0 -540
- package/DS1/3-unit/styles/ds-date-picker.css +0 -124
- package/dist/3-unit/ds-date-picker.d.ts +0 -203
- package/dist/3-unit/ds-date-picker.d.ts.map +0 -1
- package/dist/3-unit/ds-date-picker.js +0 -499
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
/* ds-date-picker.css
|
|
2
|
-
* The field is the select's face: one control high at the foot of its
|
|
3
|
-
* square, ten squares wide by default, the calendar icon at its start and
|
|
4
|
-
* the down arrow at its end. The panel opens on the menu's frame, half a
|
|
5
|
-
* square from the field: a 1px line, half a square inside it, no shadow, so
|
|
6
|
-
* eight squares wide. Inside, on whole squares: the first and last day to
|
|
7
|
-
* type (each with its time below when times are on), one square spare, the
|
|
8
|
-
* compact month one square a day with 18px marks, then Include time and
|
|
9
|
-
* Clear, each one square, set off by one-square separators with a line
|
|
10
|
-
* through them. */
|
|
11
|
-
|
|
12
|
-
:host {
|
|
13
|
-
--ds-date-picker-width: calc(10 * var(--ds-unit));
|
|
14
|
-
box-sizing: border-box;
|
|
15
|
-
display: inline-flex;
|
|
16
|
-
align-items: flex-end;
|
|
17
|
-
vertical-align: bottom;
|
|
18
|
-
height: var(--ds-unit);
|
|
19
|
-
color: var(--ds-text-color);
|
|
20
|
-
font-family: var(--ds-typeface-regular);
|
|
21
|
-
font-size: var(--ds-type-size-default);
|
|
22
|
-
line-height: var(--ds-type-lineheight-default);
|
|
23
|
-
}
|
|
24
|
-
:host([hidden]) { display: none !important; }
|
|
25
|
-
|
|
26
|
-
.trigger {
|
|
27
|
-
display: inline-flex;
|
|
28
|
-
align-items: flex-end;
|
|
29
|
-
gap: calc(4px * var(--ds-sf, 1));
|
|
30
|
-
width: var(--ds-date-picker-width);
|
|
31
|
-
padding-inline: 0 calc(4px * var(--ds-sf, 1));
|
|
32
|
-
text-align: start;
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
}
|
|
35
|
-
.trigger:disabled { cursor: default; }
|
|
36
|
-
.trigger .icon,
|
|
37
|
-
.trigger .arrow { flex: 0 0 auto; }
|
|
38
|
-
.trigger .text {
|
|
39
|
-
flex: 1 1 auto;
|
|
40
|
-
min-width: 0;
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
text-overflow: ellipsis;
|
|
43
|
-
white-space: nowrap;
|
|
44
|
-
}
|
|
45
|
-
.trigger[data-empty] .text { color: var(--ds-title-color); }
|
|
46
|
-
.trigger[aria-expanded="true"] .arrow { transform: rotate(180deg); }
|
|
47
|
-
|
|
48
|
-
/* The panel, on the menu's frame. */
|
|
49
|
-
.popover {
|
|
50
|
-
position: fixed;
|
|
51
|
-
inset: auto;
|
|
52
|
-
box-sizing: border-box;
|
|
53
|
-
margin: 0;
|
|
54
|
-
padding: calc(var(--ds-unit) / 2 - 1px);
|
|
55
|
-
border: 1px solid var(--ds-border-color);
|
|
56
|
-
border-radius: var(--ds-radius-card);
|
|
57
|
-
background: var(--ds-paper);
|
|
58
|
-
color: var(--ds-text-color);
|
|
59
|
-
box-shadow: none;
|
|
60
|
-
overflow: visible;
|
|
61
|
-
}
|
|
62
|
-
.popover:not(:popover-open) { display: none; }
|
|
63
|
-
|
|
64
|
-
/* The days to type: a row of one square for each end, its time on the row below; one square spare after. */
|
|
65
|
-
.fields { margin-block-end: var(--ds-unit); }
|
|
66
|
-
.field-row {
|
|
67
|
-
display: flex;
|
|
68
|
-
align-items: flex-end;
|
|
69
|
-
gap: calc(var(--ds-unit) / 2);
|
|
70
|
-
height: var(--ds-unit);
|
|
71
|
-
}
|
|
72
|
-
.field { flex: 1 1 auto; min-width: 0; }
|
|
73
|
-
.clock { flex: 1 1 auto; min-width: 0; }
|
|
74
|
-
.fields, .options { width: calc(7 * var(--ds-unit)); }
|
|
75
|
-
|
|
76
|
-
/* The switches and Clear, each one square, the words on the sixteen. */
|
|
77
|
-
.option {
|
|
78
|
-
box-sizing: border-box;
|
|
79
|
-
display: flex;
|
|
80
|
-
align-items: flex-end;
|
|
81
|
-
justify-content: space-between;
|
|
82
|
-
gap: var(--ds-unit);
|
|
83
|
-
width: 100%;
|
|
84
|
-
height: var(--ds-unit);
|
|
85
|
-
margin: 0;
|
|
86
|
-
padding: 0 calc(4px * var(--ds-sf, 1));
|
|
87
|
-
border: 0;
|
|
88
|
-
border-radius: var(--ds-radius);
|
|
89
|
-
background: transparent;
|
|
90
|
-
color: var(--ds-text-color);
|
|
91
|
-
font: inherit;
|
|
92
|
-
letter-spacing: inherit;
|
|
93
|
-
text-align: start;
|
|
94
|
-
cursor: pointer;
|
|
95
|
-
}
|
|
96
|
-
.option:hover:not(:disabled) { background: var(--ds-row-fill-hover, var(--ds-fill)); }
|
|
97
|
-
.option:focus-visible { outline: 2px solid var(--ds-focus-ring); outline-offset: -2px; }
|
|
98
|
-
.option:disabled { color: var(--ds-title-color); cursor: default; }
|
|
99
|
-
.option .ds-switch { flex: 0 0 auto; }
|
|
100
|
-
|
|
101
|
-
/* A separator: one square with a 1px line through its middle. */
|
|
102
|
-
.separator {
|
|
103
|
-
position: relative;
|
|
104
|
-
height: var(--ds-unit);
|
|
105
|
-
}
|
|
106
|
-
.separator::after {
|
|
107
|
-
position: absolute;
|
|
108
|
-
inset-inline: 0;
|
|
109
|
-
top: calc(50% - 0.5px);
|
|
110
|
-
height: 1px;
|
|
111
|
-
background: var(--ds-border-color);
|
|
112
|
-
content: "";
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
116
|
-
.popover:popover-open {
|
|
117
|
-
animation: ds-date-picker-in 140ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
118
|
-
}
|
|
119
|
-
.trigger .arrow { transition: transform 140ms ease; }
|
|
120
|
-
}
|
|
121
|
-
@keyframes ds-date-picker-in {
|
|
122
|
-
from { opacity: 0; transform: translateY(calc(-4px * var(--ds-sf, 1))); }
|
|
123
|
-
to { opacity: 1; transform: none; }
|
|
124
|
-
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { LitElement, type PropertyValues } from "lit";
|
|
2
|
-
import { type DateLength } from "../0-face/format";
|
|
3
|
-
import { type Day } from "../0-face/calendar";
|
|
4
|
-
import "../2-core/ds-icon";
|
|
5
|
-
import "./ds-calendar";
|
|
6
|
-
/** Detail of `change` and `input`: the value now and before; each is empty when there is none. */
|
|
7
|
-
export interface DatePickerChangeDetail {
|
|
8
|
-
value: string;
|
|
9
|
-
previous: string;
|
|
10
|
-
}
|
|
11
|
-
/** One end of a value: its day and, when it has one, its time (`14:30`). */
|
|
12
|
-
export interface DatePickerEnd {
|
|
13
|
-
day: Day;
|
|
14
|
-
time: string;
|
|
15
|
-
}
|
|
16
|
-
/** Reads a value: `2026-10-21`, `2026-10-21T14:30`, or two of them joined by `/`. */
|
|
17
|
-
export declare function readDateValue(value: string | null | undefined): {
|
|
18
|
-
start?: DatePickerEnd;
|
|
19
|
-
end?: DatePickerEnd;
|
|
20
|
-
};
|
|
21
|
-
/**
|
|
22
|
-
* Writes a value from its ends, the times only with `time`. An end that is
|
|
23
|
-
* the same moment as the start leaves the value one day.
|
|
24
|
-
*/
|
|
25
|
-
export declare function writeDateValue(start: DatePickerEnd | undefined, end: DatePickerEnd | undefined, options: {
|
|
26
|
-
time: boolean;
|
|
27
|
-
}): string;
|
|
28
|
-
/** Reads what a person typed: a day written `YYYY-MM-DD`, or a date the browser can read ("Oct 21, 2026"). */
|
|
29
|
-
export declare function parseTypedDay(text: string): Day | null;
|
|
30
|
-
/**
|
|
31
|
-
* @element ds-date-picker
|
|
32
|
-
* @prop {string} value - `YYYY-MM-DD`, `YYYY-MM-DDTHH:MM`, or two joined by
|
|
33
|
-
* `/` for a range; empty for none.
|
|
34
|
-
* @prop {string} name - The form field's name.
|
|
35
|
-
* @prop {string} label - The field's accessible name: a translation key, or
|
|
36
|
-
* literal words.
|
|
37
|
-
* @prop {boolean} literal - Show `label` and `placeholder` as written.
|
|
38
|
-
* @prop {string} placeholder - The words before a day is chosen; the shared
|
|
39
|
-
* "Choose a date" by default.
|
|
40
|
-
* @prop {string} length - How a day is written: `short`, `medium` (the
|
|
41
|
-
* default) or `long`.
|
|
42
|
-
* @prop {boolean} time - Choose a time with each day (the Include time switch).
|
|
43
|
-
* @prop {boolean} noOptions - Leave the Include time switch out (`no-options`);
|
|
44
|
-
* `time` still applies.
|
|
45
|
-
* @prop {string} min - The first day a person may choose.
|
|
46
|
-
* @prop {string} max - The last day a person may choose.
|
|
47
|
-
* @prop {string} weekStart - The week's first day (`week-start`); the
|
|
48
|
-
* language's own by default.
|
|
49
|
-
* @prop {string} today - The day drawn as today; the reader's own by default.
|
|
50
|
-
* @prop {boolean} required - A form needs a value; Clear is left out.
|
|
51
|
-
* @prop {boolean} disabled - The field cannot be opened.
|
|
52
|
-
* @prop {boolean} open - The panel is open.
|
|
53
|
-
*
|
|
54
|
-
* @fires change - A person changed the value; `{ value, previous }`.
|
|
55
|
-
* @fires input - The same moment, for code listening as to a field.
|
|
56
|
-
* @fires ds-date-picker-toggle - The panel opened or closed; `{ open }`.
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* <ds-date-picker label="When" literal name="when" value="2026-10-21/2026-10-24"></ds-date-picker>
|
|
60
|
-
*/
|
|
61
|
-
export declare class DatePicker extends LitElement {
|
|
62
|
-
static formAssociated: boolean;
|
|
63
|
-
static properties: {
|
|
64
|
-
value: {
|
|
65
|
-
type: StringConstructor;
|
|
66
|
-
reflect: boolean;
|
|
67
|
-
};
|
|
68
|
-
name: {
|
|
69
|
-
type: StringConstructor;
|
|
70
|
-
reflect: boolean;
|
|
71
|
-
};
|
|
72
|
-
label: {
|
|
73
|
-
type: StringConstructor;
|
|
74
|
-
};
|
|
75
|
-
literal: {
|
|
76
|
-
type: BooleanConstructor;
|
|
77
|
-
reflect: boolean;
|
|
78
|
-
};
|
|
79
|
-
placeholder: {
|
|
80
|
-
type: StringConstructor;
|
|
81
|
-
};
|
|
82
|
-
length: {
|
|
83
|
-
type: StringConstructor;
|
|
84
|
-
};
|
|
85
|
-
time: {
|
|
86
|
-
type: BooleanConstructor;
|
|
87
|
-
reflect: boolean;
|
|
88
|
-
};
|
|
89
|
-
noOptions: {
|
|
90
|
-
type: BooleanConstructor;
|
|
91
|
-
attribute: string;
|
|
92
|
-
reflect: boolean;
|
|
93
|
-
};
|
|
94
|
-
min: {
|
|
95
|
-
type: StringConstructor;
|
|
96
|
-
};
|
|
97
|
-
max: {
|
|
98
|
-
type: StringConstructor;
|
|
99
|
-
};
|
|
100
|
-
weekStart: {
|
|
101
|
-
type: StringConstructor;
|
|
102
|
-
attribute: string;
|
|
103
|
-
};
|
|
104
|
-
today: {
|
|
105
|
-
type: StringConstructor;
|
|
106
|
-
};
|
|
107
|
-
required: {
|
|
108
|
-
type: BooleanConstructor;
|
|
109
|
-
reflect: boolean;
|
|
110
|
-
};
|
|
111
|
-
disabled: {
|
|
112
|
-
type: BooleanConstructor;
|
|
113
|
-
reflect: boolean;
|
|
114
|
-
};
|
|
115
|
-
open: {
|
|
116
|
-
type: BooleanConstructor;
|
|
117
|
-
reflect: boolean;
|
|
118
|
-
};
|
|
119
|
-
awaitingEnd: {
|
|
120
|
-
state: boolean;
|
|
121
|
-
};
|
|
122
|
-
};
|
|
123
|
-
static styles: import("lit").CSSResult[];
|
|
124
|
-
value: string;
|
|
125
|
-
name: string | undefined;
|
|
126
|
-
label: string | undefined;
|
|
127
|
-
literal: boolean;
|
|
128
|
-
placeholder: string | undefined;
|
|
129
|
-
length: DateLength | undefined;
|
|
130
|
-
time: boolean;
|
|
131
|
-
noOptions: boolean;
|
|
132
|
-
min: string | undefined;
|
|
133
|
-
max: string | undefined;
|
|
134
|
-
weekStart: string | undefined;
|
|
135
|
-
today: string | undefined;
|
|
136
|
-
required: boolean;
|
|
137
|
-
disabled: boolean;
|
|
138
|
-
open: boolean;
|
|
139
|
-
/** A first day has been pressed in this opening and the last is still to come. */
|
|
140
|
-
awaitingEnd: boolean;
|
|
141
|
-
private readonly internals;
|
|
142
|
-
/** The value the field started with, for a form's reset. */
|
|
143
|
-
private initial;
|
|
144
|
-
private shown;
|
|
145
|
-
/** Whether opening should move focus into the month (a key opened it). */
|
|
146
|
-
private focusMonth;
|
|
147
|
-
private readonly relabel;
|
|
148
|
-
constructor();
|
|
149
|
-
connectedCallback(): void;
|
|
150
|
-
disconnectedCallback(): void;
|
|
151
|
-
protected firstUpdated(): void;
|
|
152
|
-
/** The form was reset: back to the value it started with. */
|
|
153
|
-
formResetCallback(): void;
|
|
154
|
-
formDisabledCallback(disabled: boolean): void;
|
|
155
|
-
private words;
|
|
156
|
-
private get trigger();
|
|
157
|
-
private get panel();
|
|
158
|
-
private get calendar();
|
|
159
|
-
private get ends();
|
|
160
|
-
protected willUpdate(changed: PropertyValues<this>): void;
|
|
161
|
-
protected updated(changed: PropertyValues<this>): void;
|
|
162
|
-
/** Opens the panel. */
|
|
163
|
-
show(): void;
|
|
164
|
-
/** Closes the panel, giving focus back to the field when it was inside. */
|
|
165
|
-
hide(restore?: boolean): void;
|
|
166
|
-
private focusDay;
|
|
167
|
-
/** Below the field, half a square from it, or above when there is more room there; held inside the screen. */
|
|
168
|
-
private place;
|
|
169
|
-
private onOutside;
|
|
170
|
-
private toggle;
|
|
171
|
-
private onTriggerKey;
|
|
172
|
-
private onPanelKey;
|
|
173
|
-
private onFocusOut;
|
|
174
|
-
/** Takes a new value and says so. */
|
|
175
|
-
private commit;
|
|
176
|
-
private write;
|
|
177
|
-
/**
|
|
178
|
-
* A day pressed in the month. The first press of an opening starts the range
|
|
179
|
-
* (the value is that day until another is pressed); the second ends it and,
|
|
180
|
-
* without times to set, closes the panel.
|
|
181
|
-
*/
|
|
182
|
-
private picked;
|
|
183
|
-
/** A day typed in a field, read when the person leaves it or presses Enter. */
|
|
184
|
-
private typed;
|
|
185
|
-
private timed;
|
|
186
|
-
private setTime;
|
|
187
|
-
/** Pressing the switch's row presses the switch, as a label would. */
|
|
188
|
-
private passPress;
|
|
189
|
-
private clear;
|
|
190
|
-
private moment;
|
|
191
|
-
private formatter;
|
|
192
|
-
private fieldText;
|
|
193
|
-
/** The face's words: one day, or a range written as the language writes one ("Oct 21 – 24, 2026"). */
|
|
194
|
-
private faceText;
|
|
195
|
-
private renderEnd;
|
|
196
|
-
render(): import("lit").TemplateResult<1>;
|
|
197
|
-
}
|
|
198
|
-
declare global {
|
|
199
|
-
interface HTMLElementTagNameMap {
|
|
200
|
-
"ds-date-picker": DatePicker;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=ds-date-picker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ds-date-picker.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-date-picker.ts"],"names":[],"mappings":"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"}
|