@aquera/nile-elements 2.0.1 → 2.0.3
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/README.md +8 -0
- package/demo/nxtgen-dark.css +2 -2
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1228 -572
- package/dist/nile-segmented-progress-bar/index.cjs.js +2 -0
- package/dist/nile-segmented-progress-bar/index.cjs.js.map +1 -0
- package/dist/nile-segmented-progress-bar/index.esm.js +1 -0
- package/dist/nile-segmented-progress-bar/nile-segmented-progress-bar.cjs.js +2 -0
- package/dist/nile-segmented-progress-bar/nile-segmented-progress-bar.cjs.js.map +1 -0
- package/dist/nile-segmented-progress-bar/nile-segmented-progress-bar.css.cjs.js +2 -0
- package/dist/nile-segmented-progress-bar/nile-segmented-progress-bar.css.cjs.js.map +1 -0
- package/dist/nile-segmented-progress-bar/nile-segmented-progress-bar.css.esm.js +243 -0
- package/dist/nile-segmented-progress-bar/nile-segmented-progress-bar.esm.js +69 -0
- package/dist/nile-timestamp-builder/index.cjs.js +2 -0
- package/dist/nile-timestamp-builder/index.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/index.esm.js +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.cjs.js +2 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder-utils.esm.js +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.cjs.js +2 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.css.cjs.js +2 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.css.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.css.esm.js +195 -0
- package/dist/nile-timestamp-builder/nile-timestamp-builder.esm.js +154 -0
- package/dist/nile-timestamp-builder/timezones.cjs.js +2 -0
- package/dist/nile-timestamp-builder/timezones.cjs.js.map +1 -0
- package/dist/nile-timestamp-builder/timezones.esm.js +1 -0
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js +1 -1
- package/dist/nile-wysiwyg-editor/engine/commands.cjs.js.map +1 -1
- package/dist/nile-wysiwyg-editor/engine/commands.esm.js +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-segmented-progress-bar/index.d.ts +2 -0
- package/dist/src/nile-segmented-progress-bar/index.js +2 -0
- package/dist/src/nile-segmented-progress-bar/index.js.map +1 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.css.d.ts +9 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.css.js +252 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.css.js.map +1 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.d.ts +135 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.js +373 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.js.map +1 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.test.d.ts +1 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.test.js +961 -0
- package/dist/src/nile-segmented-progress-bar/nile-segmented-progress-bar.test.js.map +1 -0
- package/dist/src/nile-timestamp-builder/index.d.ts +1 -0
- package/dist/src/nile-timestamp-builder/index.js +2 -0
- package/dist/src/nile-timestamp-builder/index.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.d.ts +54 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.js +254 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder-utils.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.d.ts +7 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.js +203 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.css.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.d.ts +94 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.js +578 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.js.map +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.d.ts +1 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.js +890 -0
- package/dist/src/nile-timestamp-builder/nile-timestamp-builder.test.js.map +1 -0
- package/dist/src/nile-timestamp-builder/timezones.d.ts +8 -0
- package/dist/src/nile-timestamp-builder/timezones.js +357 -0
- package/dist/src/nile-timestamp-builder/timezones.js.map +1 -0
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/index.ts +6 -0
- package/src/nile-segmented-progress-bar/index.ts +5 -0
- package/src/nile-segmented-progress-bar/nile-segmented-progress-bar.css.ts +254 -0
- package/src/nile-segmented-progress-bar/nile-segmented-progress-bar.test.ts +1298 -0
- package/src/nile-segmented-progress-bar/nile-segmented-progress-bar.ts +437 -0
- package/src/nile-timestamp-builder/index.ts +1 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder-utils.ts +321 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder.css.ts +204 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder.test.ts +1089 -0
- package/src/nile-timestamp-builder/nile-timestamp-builder.ts +625 -0
- package/src/nile-timestamp-builder/timezones.ts +356 -0
- package/vscode-html-custom-data.json +205 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { css } from 'lit';
|
|
8
|
+
export const styles = css `
|
|
9
|
+
:host {
|
|
10
|
+
display: block;
|
|
11
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
12
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:host([disabled]) {
|
|
16
|
+
pointer-events: none;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:host([disabled]) .tsb__collapsed,
|
|
20
|
+
:host([disabled]) .tsb__expanded {
|
|
21
|
+
background: var(
|
|
22
|
+
--nile-colors-neutral-100,
|
|
23
|
+
var(--ng-colors-bg-disabled-subtle)
|
|
24
|
+
);
|
|
25
|
+
border-color: var(
|
|
26
|
+
--nile-colors-neutral-500,
|
|
27
|
+
var(--ng-colors-border-disabled-subtle)
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:host([disabled]) .tsb__label,
|
|
32
|
+
:host([disabled]) .tsb__value,
|
|
33
|
+
:host([disabled]) .tsb__tz {
|
|
34
|
+
color: var(--nile-colors-text-disabled, var(--ng-colors-text-disabled));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.tsb {
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-direction: column;
|
|
40
|
+
gap: var(--nile-spacing-md, var(--ng-spacing-md));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.tsb__label {
|
|
44
|
+
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
|
|
45
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));
|
|
46
|
+
line-height: var(--nile-line-height-small, var(--ng-line-height-text-sm));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Collapsed view */
|
|
50
|
+
.tsb__collapsed {
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
flex-wrap: wrap;
|
|
54
|
+
gap: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
55
|
+
padding: var(--nile-spacing-lg, var(--ng-spacing-lg))
|
|
56
|
+
var(--nile-spacing-xl, var(--ng-spacing-xl));
|
|
57
|
+
border: var(--nile-border-width-1, var(--ng-border-width-1)) solid
|
|
58
|
+
var(--nile-colors-gray-300, var(--ng-colors-border-primary));
|
|
59
|
+
border-radius: var(--nile-radius-md, var(--ng-radius-md));
|
|
60
|
+
background: var(--nile-colors-white, var(--ng-colors-bg-primary));
|
|
61
|
+
min-height: var(--nile-height-28px, var(--ng-height-28px));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.tsb__collapsed .tsb__actions nile-button::part(base) {
|
|
65
|
+
height: var(--nile-height-28px, var(--ng-height-28px));
|
|
66
|
+
padding-block: var(--nile-spacing-none, var(--ng-spacing-none));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.tsb__display {
|
|
70
|
+
display: flex;
|
|
71
|
+
align-items: baseline;
|
|
72
|
+
flex-wrap: wrap;
|
|
73
|
+
gap: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
74
|
+
flex: 1 1 var(--nile-width-208px, var(--ng-width-56));
|
|
75
|
+
min-width: 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.tsb__display--editable {
|
|
79
|
+
cursor: pointer;
|
|
80
|
+
user-select: none;
|
|
81
|
+
-webkit-user-select: none;
|
|
82
|
+
touch-action: manipulation;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.tsb__display:focus-visible {
|
|
86
|
+
outline: var(--nile-border-width-2, var(--ng-border-width-2)) solid
|
|
87
|
+
var(--nile-colors-border-field-focused, var(--ng-colors-border-brand));
|
|
88
|
+
outline-offset: var(--nile-spacing-xxs, var(--ng-spacing-xxs));
|
|
89
|
+
border-radius: var(--nile-radius-sm, var(--ng-radius-sm));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.tsb__value {
|
|
93
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
94
|
+
font-variant-numeric: tabular-nums;
|
|
95
|
+
font-size: var(--nile-type-scale-4, var(--ng-font-size-text-md));
|
|
96
|
+
font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-medium));
|
|
97
|
+
letter-spacing: 0.01em;
|
|
98
|
+
overflow-wrap: normal;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.tsb__value--empty {
|
|
102
|
+
color: var(--nile-colors-gray-400, var(--ng-colors-text-placeholder));
|
|
103
|
+
font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.tsb__tz {
|
|
107
|
+
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
|
|
108
|
+
color: var(--nile-colors-gray-500, var(--ng-colors-text-tertiary-600));
|
|
109
|
+
white-space: nowrap;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.tsb__actions {
|
|
113
|
+
display: flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: var(--nile-spacing-md, var(--ng-spacing-md));
|
|
116
|
+
flex-wrap: wrap;
|
|
117
|
+
justify-content: flex-end;
|
|
118
|
+
margin-left: auto;
|
|
119
|
+
flex: 0 0 auto;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* Expanded view */
|
|
123
|
+
.tsb__expanded {
|
|
124
|
+
display: flex;
|
|
125
|
+
flex-direction: column;
|
|
126
|
+
gap: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
127
|
+
padding: var(--nile-spacing-xl, var(--ng-spacing-xl));
|
|
128
|
+
border: var(--nile-border-width-1, var(--ng-border-width-1)) solid
|
|
129
|
+
var(--nile-colors-gray-300, var(--ng-colors-border-primary));
|
|
130
|
+
border-radius: var(--nile-radius-md, var(--ng-radius-md));
|
|
131
|
+
background: var(--nile-colors-white, var(--ng-colors-bg-primary));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.tsb__fields {
|
|
135
|
+
display: grid;
|
|
136
|
+
grid-template-columns: repeat(
|
|
137
|
+
auto-fit,
|
|
138
|
+
minmax(var(--nile-width-99px, var(--ng-width-24)), 1fr)
|
|
139
|
+
);
|
|
140
|
+
gap: var(--nile-spacing-md, var(--ng-spacing-md));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.tsb__field {
|
|
144
|
+
display: flex;
|
|
145
|
+
flex-direction: column;
|
|
146
|
+
min-width: 0;
|
|
147
|
+
width: 100%;
|
|
148
|
+
max-width: var(--nile-width-110px, var(--ng-width-108));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.tsb__field nile-input::part(input) {
|
|
152
|
+
padding-inline: var(--nile-spacing-sm, var(--ng-spacing-sm));
|
|
153
|
+
text-align: center;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.tsb__field nile-input::part(form-control-label) {
|
|
157
|
+
display: block;
|
|
158
|
+
overflow: hidden;
|
|
159
|
+
text-overflow: ellipsis;
|
|
160
|
+
white-space: nowrap;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.tsb__timezone {
|
|
164
|
+
display: flex;
|
|
165
|
+
flex-direction: column;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@media (max-width: 480px) {
|
|
169
|
+
.tsb__collapsed,
|
|
170
|
+
.tsb__expanded {
|
|
171
|
+
padding: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
.tsb__actions {
|
|
176
|
+
width: 100%;
|
|
177
|
+
margin-left: 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
[part='editor-actions'] nile-button {
|
|
182
|
+
flex: 1 1 var(--nile-width-130px, var(--ng-width-32));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
[part='editor-actions'] nile-button::part(base) {
|
|
186
|
+
width: 100%;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/* Visually-hidden hidden input used for form participation / validity. */
|
|
191
|
+
.value-input {
|
|
192
|
+
position: absolute;
|
|
193
|
+
width: 1px;
|
|
194
|
+
height: 1px;
|
|
195
|
+
padding: 0;
|
|
196
|
+
margin: -1px;
|
|
197
|
+
overflow: hidden;
|
|
198
|
+
clip: rect(0, 0, 0, 0);
|
|
199
|
+
white-space: nowrap;
|
|
200
|
+
border: 0;
|
|
201
|
+
}
|
|
202
|
+
`;
|
|
203
|
+
//# sourceMappingURL=nile-timestamp-builder.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-timestamp-builder.css.js","sourceRoot":"","sources":["../../../src/nile-timestamp-builder/nile-timestamp-builder.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMxB,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2026\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\nexport const styles = css`\n :host {\n display: block;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n :host([disabled]) {\n pointer-events: none;\n }\n\n :host([disabled]) .tsb__collapsed,\n :host([disabled]) .tsb__expanded {\n background: var(\n --nile-colors-neutral-100,\n var(--ng-colors-bg-disabled-subtle)\n );\n border-color: var(\n --nile-colors-neutral-500,\n var(--ng-colors-border-disabled-subtle)\n );\n }\n\n :host([disabled]) .tsb__label,\n :host([disabled]) .tsb__value,\n :host([disabled]) .tsb__tz {\n color: var(--nile-colors-text-disabled, var(--ng-colors-text-disabled));\n }\n\n .tsb {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .tsb__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n line-height: var(--nile-line-height-small, var(--ng-line-height-text-sm));\n }\n\n /* Collapsed view */\n .tsb__collapsed {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg))\n var(--nile-spacing-xl, var(--ng-spacing-xl));\n border: var(--nile-border-width-1, var(--ng-border-width-1)) solid\n var(--nile-colors-gray-300, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-md, var(--ng-radius-md));\n background: var(--nile-colors-white, var(--ng-colors-bg-primary));\n min-height: var(--nile-height-28px, var(--ng-height-28px));\n }\n\n .tsb__collapsed .tsb__actions nile-button::part(base) {\n height: var(--nile-height-28px, var(--ng-height-28px));\n padding-block: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n .tsb__display {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n flex: 1 1 var(--nile-width-208px, var(--ng-width-56));\n min-width: 0;\n }\n\n .tsb__display--editable {\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n }\n\n .tsb__display:focus-visible {\n outline: var(--nile-border-width-2, var(--ng-border-width-2)) solid\n var(--nile-colors-border-field-focused, var(--ng-colors-border-brand));\n outline-offset: var(--nile-spacing-xxs, var(--ng-spacing-xxs));\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n .tsb__value {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-variant-numeric: tabular-nums;\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-medium));\n letter-spacing: 0.01em;\n overflow-wrap: normal;\n }\n\n .tsb__value--empty {\n color: var(--nile-colors-gray-400, var(--ng-colors-text-placeholder));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n }\n\n .tsb__tz {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-gray-500, var(--ng-colors-text-tertiary-600));\n white-space: nowrap;\n }\n\n .tsb__actions {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n flex-wrap: wrap;\n justify-content: flex-end;\n margin-left: auto;\n flex: 0 0 auto;\n }\n\n /* Expanded view */\n .tsb__expanded {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n border: var(--nile-border-width-1, var(--ng-border-width-1)) solid\n var(--nile-colors-gray-300, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-md, var(--ng-radius-md));\n background: var(--nile-colors-white, var(--ng-colors-bg-primary));\n }\n\n .tsb__fields {\n display: grid;\n grid-template-columns: repeat(\n auto-fit,\n minmax(var(--nile-width-99px, var(--ng-width-24)), 1fr)\n );\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .tsb__field {\n display: flex;\n flex-direction: column;\n min-width: 0;\n width: 100%;\n max-width: var(--nile-width-110px, var(--ng-width-108));\n }\n\n .tsb__field nile-input::part(input) {\n padding-inline: var(--nile-spacing-sm, var(--ng-spacing-sm));\n text-align: center;\n }\n\n .tsb__field nile-input::part(form-control-label) {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .tsb__timezone {\n display: flex;\n flex-direction: column;\n }\n\n @media (max-width: 480px) {\n .tsb__collapsed,\n .tsb__expanded {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n\n .tsb__actions {\n width: 100%;\n margin-left: 0;\n }\n\n\n [part='editor-actions'] nile-button {\n flex: 1 1 var(--nile-width-130px, var(--ng-width-32));\n }\n\n [part='editor-actions'] nile-button::part(base) {\n width: 100%;\n }\n }\n\n /* Visually-hidden hidden input used for form participation / validity. */\n .value-input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n`;\n"]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2026
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import NileElement from '../internal/nile-element';
|
|
8
|
+
import type { CSSResultGroup, PropertyValues } from 'lit';
|
|
9
|
+
import type { NileFormControl } from '../internal/nile-element';
|
|
10
|
+
import { WallClock } from './nile-timestamp-builder-utils';
|
|
11
|
+
/**
|
|
12
|
+
* @event nile-init - Emitted when the component is added to the DOM.
|
|
13
|
+
* @event nile-destroy - Emitted when the component is removed from the DOM.
|
|
14
|
+
* @event nile-change - Emitted when the value is committed.
|
|
15
|
+
* @event nile-input - Emitted as fields change, before the value is committed.
|
|
16
|
+
* @event nile-expand - Emitted when the editor opens.
|
|
17
|
+
* @event nile-collapse - Emitted when the editor closes.
|
|
18
|
+
* @event nile-copy - Emitted after the value is written to the clipboard.
|
|
19
|
+
* @event nile-copy-error - Emitted when the clipboard write is refused.
|
|
20
|
+
*/
|
|
21
|
+
export declare class NileTimestampBuilder extends NileElement implements NileFormControl {
|
|
22
|
+
static get styles(): CSSResultGroup;
|
|
23
|
+
private formControlController;
|
|
24
|
+
private internalValueUpdate;
|
|
25
|
+
private internalTimezoneUpdate;
|
|
26
|
+
valueInput: HTMLInputElement;
|
|
27
|
+
private _value;
|
|
28
|
+
get value(): Date | null;
|
|
29
|
+
set value(input: Date | number | string | null);
|
|
30
|
+
defaultValue: Date | null;
|
|
31
|
+
timezone: string;
|
|
32
|
+
name: string;
|
|
33
|
+
disabled: boolean;
|
|
34
|
+
required: boolean;
|
|
35
|
+
readonly: boolean;
|
|
36
|
+
copyable: boolean;
|
|
37
|
+
form: string;
|
|
38
|
+
open: boolean;
|
|
39
|
+
label: string;
|
|
40
|
+
minYear: number;
|
|
41
|
+
maxYear: number;
|
|
42
|
+
wallClock: WallClock;
|
|
43
|
+
timezoneList: string[];
|
|
44
|
+
hasValue: boolean;
|
|
45
|
+
justCopied: boolean;
|
|
46
|
+
get validity(): ValidityState;
|
|
47
|
+
get validationMessage(): string;
|
|
48
|
+
connectedCallback(): void;
|
|
49
|
+
disconnectedCallback(): void;
|
|
50
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
51
|
+
protected updated(changedProperties: PropertyValues): void;
|
|
52
|
+
private isTimezoneReassigned;
|
|
53
|
+
private syncValueToTimezone;
|
|
54
|
+
private valueString;
|
|
55
|
+
private syncHiddenInput;
|
|
56
|
+
private changeDetail;
|
|
57
|
+
private liveDetail;
|
|
58
|
+
private commit;
|
|
59
|
+
private onFieldChange;
|
|
60
|
+
private onTimezoneChange;
|
|
61
|
+
private handleSetNow;
|
|
62
|
+
/** Copies the canonical zoned value */
|
|
63
|
+
private handleCopy;
|
|
64
|
+
private handleStageNow;
|
|
65
|
+
private handleUseLocalTz;
|
|
66
|
+
private handleUseUtc;
|
|
67
|
+
/** Touch input has no reliable `dblclick`, so double-taps are timed by hand. */
|
|
68
|
+
private static readonly DOUBLE_TAP_MS;
|
|
69
|
+
private static readonly COPIED_FEEDBACK_MS;
|
|
70
|
+
private lastTapAt;
|
|
71
|
+
private copiedTimer;
|
|
72
|
+
private handleDisplayDoubleClick;
|
|
73
|
+
private handleDisplayPointerUp;
|
|
74
|
+
/** Keyboard equivalent of the double-click/double-tap edit affordance. */
|
|
75
|
+
private handleDisplayKeyDown;
|
|
76
|
+
private handleEdit;
|
|
77
|
+
private handleDone;
|
|
78
|
+
checkValidity(): boolean;
|
|
79
|
+
reportValidity(): boolean;
|
|
80
|
+
setCustomValidity(message: string): void;
|
|
81
|
+
getForm(): HTMLFormElement | null;
|
|
82
|
+
private renderField;
|
|
83
|
+
private renderCollapsed;
|
|
84
|
+
private renderEditActions;
|
|
85
|
+
private renderCopyAction;
|
|
86
|
+
private renderExpanded;
|
|
87
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
88
|
+
}
|
|
89
|
+
export default NileTimestampBuilder;
|
|
90
|
+
declare global {
|
|
91
|
+
interface HTMLElementTagNameMap {
|
|
92
|
+
'nile-timestamp-builder': NileTimestampBuilder;
|
|
93
|
+
}
|
|
94
|
+
}
|