tyrell-components 1.0.0-RC11 → 1.0.0-RC13
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 +1 -0
- package/css/tyrell-colors-static.css +316 -0
- package/css/tyrell-theme.css +1454 -0
- package/css/tyrell.css +112 -420
- package/dist/tyrell-colors-static.css +316 -0
- package/dist/tyrell-theme.css +1454 -0
- package/dist/tyrell.css +112 -420
- package/dist/tyrell.js +1 -1
- package/lib/base/ty-component.d.ts +7 -0
- package/lib/base/ty-component.d.ts.map +1 -1
- package/lib/base/ty-component.js +27 -0
- package/lib/base/ty-component.js.map +1 -1
- package/lib/components/button.d.ts +16 -1
- package/lib/components/button.d.ts.map +1 -1
- package/lib/components/button.js +34 -4
- package/lib/components/button.js.map +1 -1
- package/lib/components/calendar-month.d.ts +23 -0
- package/lib/components/calendar-month.d.ts.map +1 -1
- package/lib/components/calendar-month.js +168 -11
- package/lib/components/calendar-month.js.map +1 -1
- package/lib/components/calendar-navigation.d.ts +31 -5
- package/lib/components/calendar-navigation.d.ts.map +1 -1
- package/lib/components/calendar-navigation.js +71 -31
- package/lib/components/calendar-navigation.js.map +1 -1
- package/lib/components/calendar.d.ts +17 -2
- package/lib/components/calendar.d.ts.map +1 -1
- package/lib/components/calendar.js +83 -12
- package/lib/components/calendar.js.map +1 -1
- package/lib/components/checkbox.d.ts +14 -3
- package/lib/components/checkbox.d.ts.map +1 -1
- package/lib/components/checkbox.js +86 -57
- package/lib/components/checkbox.js.map +1 -1
- package/lib/components/copy.d.ts +14 -3
- package/lib/components/copy.d.ts.map +1 -1
- package/lib/components/copy.js +47 -25
- package/lib/components/copy.js.map +1 -1
- package/lib/components/date-picker.d.ts +26 -1
- package/lib/components/date-picker.d.ts.map +1 -1
- package/lib/components/date-picker.js +151 -32
- package/lib/components/date-picker.js.map +1 -1
- package/lib/components/input.d.ts +17 -2
- package/lib/components/input.d.ts.map +1 -1
- package/lib/components/input.js +104 -25
- package/lib/components/input.js.map +1 -1
- package/lib/components/modal.d.ts.map +1 -1
- package/lib/components/modal.js +28 -3
- package/lib/components/modal.js.map +1 -1
- package/lib/components/option.d.ts +0 -27
- package/lib/components/option.d.ts.map +1 -1
- package/lib/components/option.js +11 -102
- package/lib/components/option.js.map +1 -1
- package/lib/components/popup.d.ts.map +1 -1
- package/lib/components/popup.js +36 -2
- package/lib/components/popup.js.map +1 -1
- package/lib/components/radio.d.ts +6 -2
- package/lib/components/radio.d.ts.map +1 -1
- package/lib/components/radio.js +55 -13
- package/lib/components/radio.js.map +1 -1
- package/lib/components/scroll-container.d.ts +16 -0
- package/lib/components/scroll-container.d.ts.map +1 -1
- package/lib/components/scroll-container.js +105 -1
- package/lib/components/scroll-container.js.map +1 -1
- package/lib/components/select.d.ts +550 -0
- package/lib/components/select.d.ts.map +1 -0
- package/lib/components/select.js +2115 -0
- package/lib/components/select.js.map +1 -0
- package/lib/components/selected-tags.d.ts +93 -0
- package/lib/components/selected-tags.d.ts.map +1 -0
- package/lib/components/selected-tags.js +286 -0
- package/lib/components/selected-tags.js.map +1 -0
- package/lib/components/switch.d.ts +6 -3
- package/lib/components/switch.d.ts.map +1 -1
- package/lib/components/switch.js +54 -36
- package/lib/components/switch.js.map +1 -1
- package/lib/components/tabs.d.ts.map +1 -1
- package/lib/components/tabs.js +190 -25
- package/lib/components/tabs.js.map +1 -1
- package/lib/components/tag.d.ts +9 -1
- package/lib/components/tag.d.ts.map +1 -1
- package/lib/components/tag.js +41 -5
- package/lib/components/tag.js.map +1 -1
- package/lib/components/textarea.d.ts +3 -0
- package/lib/components/textarea.d.ts.map +1 -1
- package/lib/components/textarea.js +61 -6
- package/lib/components/textarea.js.map +1 -1
- package/lib/components/tooltip.d.ts +4 -2
- package/lib/components/tooltip.d.ts.map +1 -1
- package/lib/components/tooltip.js +109 -70
- package/lib/components/tooltip.js.map +1 -1
- package/lib/components/wizard.d.ts.map +1 -1
- package/lib/components/wizard.js +22 -3
- package/lib/components/wizard.js.map +1 -1
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -2
- package/lib/index.js.map +1 -1
- package/lib/styles/button.d.ts +41 -6
- package/lib/styles/button.d.ts.map +1 -1
- package/lib/styles/button.js +294 -254
- package/lib/styles/button.js.map +1 -1
- package/lib/styles/calendar-month.d.ts +3 -1
- package/lib/styles/calendar-month.d.ts.map +1 -1
- package/lib/styles/calendar-month.js +100 -67
- package/lib/styles/calendar-month.js.map +1 -1
- package/lib/styles/calendar-navigation.d.ts +1 -1
- package/lib/styles/calendar-navigation.d.ts.map +1 -1
- package/lib/styles/calendar-navigation.js +20 -28
- package/lib/styles/calendar-navigation.js.map +1 -1
- package/lib/styles/checkbox.d.ts +7 -5
- package/lib/styles/checkbox.d.ts.map +1 -1
- package/lib/styles/checkbox.js +125 -8
- package/lib/styles/checkbox.js.map +1 -1
- package/lib/styles/copy.d.ts +3 -1
- package/lib/styles/copy.d.ts.map +1 -1
- package/lib/styles/copy.js +61 -6
- package/lib/styles/copy.js.map +1 -1
- package/lib/styles/custom-scrollbar.d.ts +1 -1
- package/lib/styles/custom-scrollbar.d.ts.map +1 -1
- package/lib/styles/custom-scrollbar.js +2 -2
- package/lib/styles/date-picker.d.ts +3 -1
- package/lib/styles/date-picker.d.ts.map +1 -1
- package/lib/styles/date-picker.js +65 -103
- package/lib/styles/date-picker.js.map +1 -1
- package/lib/styles/file-upload.d.ts +1 -1
- package/lib/styles/file-upload.d.ts.map +1 -1
- package/lib/styles/file-upload.js +3 -3
- package/lib/styles/input.d.ts +3 -1
- package/lib/styles/input.d.ts.map +1 -1
- package/lib/styles/input.js +93 -419
- package/lib/styles/input.js.map +1 -1
- package/lib/styles/multiselect.d.ts +3 -1
- package/lib/styles/multiselect.d.ts.map +1 -1
- package/lib/styles/multiselect.js +26 -2
- package/lib/styles/multiselect.js.map +1 -1
- package/lib/styles/option.d.ts +1 -1
- package/lib/styles/option.d.ts.map +1 -1
- package/lib/styles/option.js +20 -47
- package/lib/styles/option.js.map +1 -1
- package/lib/styles/radio.d.ts +3 -1
- package/lib/styles/radio.d.ts.map +1 -1
- package/lib/styles/radio.js +24 -21
- package/lib/styles/radio.js.map +1 -1
- package/lib/styles/scroll-container.d.ts +1 -1
- package/lib/styles/scroll-container.d.ts.map +1 -1
- package/lib/styles/scroll-container.js +6 -0
- package/lib/styles/scroll-container.js.map +1 -1
- package/lib/styles/select-base.d.ts +9 -0
- package/lib/styles/select-base.d.ts.map +1 -0
- package/lib/styles/select-base.js +973 -0
- package/lib/styles/select-base.js.map +1 -0
- package/lib/styles/select.d.ts +12 -0
- package/lib/styles/select.d.ts.map +1 -0
- package/lib/styles/select.js +308 -0
- package/lib/styles/select.js.map +1 -0
- package/lib/styles/step.d.ts +1 -1
- package/lib/styles/step.d.ts.map +1 -1
- package/lib/styles/switch.d.ts +3 -1
- package/lib/styles/switch.d.ts.map +1 -1
- package/lib/styles/switch.js +25 -10
- package/lib/styles/switch.js.map +1 -1
- package/lib/styles/tab.d.ts +1 -1
- package/lib/styles/tab.d.ts.map +1 -1
- package/lib/styles/tabs.d.ts +1 -1
- package/lib/styles/tabs.d.ts.map +1 -1
- package/lib/styles/tabs.js +71 -1
- package/lib/styles/tabs.js.map +1 -1
- package/lib/styles/tag.d.ts +1 -1
- package/lib/styles/tag.d.ts.map +1 -1
- package/lib/styles/tag.js +40 -141
- package/lib/styles/tag.js.map +1 -1
- package/lib/styles/textarea.d.ts +1 -1
- package/lib/styles/textarea.d.ts.map +1 -1
- package/lib/styles/textarea.js +71 -37
- package/lib/styles/textarea.js.map +1 -1
- package/lib/styles/tooltip.d.ts +4 -2
- package/lib/styles/tooltip.d.ts.map +1 -1
- package/lib/styles/tooltip.js +4 -119
- package/lib/styles/tooltip.js.map +1 -1
- package/lib/styles/wizard.d.ts +1 -1
- package/lib/styles/wizard.d.ts.map +1 -1
- package/lib/styles/wizard.js +18 -6
- package/lib/styles/wizard.js.map +1 -1
- package/lib/types/common.d.ts +2 -1
- package/lib/types/common.d.ts.map +1 -1
- package/lib/types/common.js +15 -1
- package/lib/types/common.js.map +1 -1
- package/lib/utils/calendar-utils.d.ts +0 -48
- package/lib/utils/calendar-utils.d.ts.map +1 -1
- package/lib/utils/calendar-utils.js +0 -69
- package/lib/utils/calendar-utils.js.map +1 -1
- package/lib/utils/flavor-sheet.d.ts +32 -0
- package/lib/utils/flavor-sheet.d.ts.map +1 -0
- package/lib/utils/flavor-sheet.js +40 -0
- package/lib/utils/flavor-sheet.js.map +1 -0
- package/lib/utils/icon-registry.d.ts +0 -13
- package/lib/utils/icon-registry.d.ts.map +1 -1
- package/lib/utils/icon-registry.js +0 -35
- package/lib/utils/icon-registry.js.map +1 -1
- package/lib/utils/icons.d.ts +10 -0
- package/lib/utils/icons.d.ts.map +1 -0
- package/lib/utils/icons.js +10 -0
- package/lib/utils/icons.js.map +1 -0
- package/lib/utils/loader-registry.d.ts +2 -2
- package/lib/utils/loader-registry.js +2 -2
- package/lib/utils/locale.d.ts +0 -57
- package/lib/utils/locale.d.ts.map +1 -1
- package/lib/utils/locale.js +0 -89
- package/lib/utils/locale.js.map +1 -1
- package/lib/utils/number-format.d.ts +0 -21
- package/lib/utils/number-format.d.ts.map +1 -1
- package/lib/utils/number-format.js +0 -27
- package/lib/utils/number-format.js.map +1 -1
- package/lib/utils/positioning.d.ts +29 -22
- package/lib/utils/positioning.d.ts.map +1 -1
- package/lib/utils/positioning.js +23 -87
- package/lib/utils/positioning.js.map +1 -1
- package/lib/utils/scroll-lock.d.ts.map +1 -1
- package/lib/utils/scroll-lock.js +0 -1
- package/lib/utils/scroll-lock.js.map +1 -1
- package/lib/utils/styles.d.ts +0 -5
- package/lib/utils/styles.d.ts.map +1 -1
- package/lib/utils/styles.js +0 -7
- package/lib/utils/styles.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +22 -11
- package/css/tyrell-brand.css +0 -913
- package/dist/tyrell-brand.css +0 -913
- package/lib/components/dropdown.d.ts +0 -424
- package/lib/components/dropdown.d.ts.map +0 -1
- package/lib/components/dropdown.js +0 -1640
- package/lib/components/dropdown.js.map +0 -1
- package/lib/components/multiselect.d.ts +0 -397
- package/lib/components/multiselect.d.ts.map +0 -1
- package/lib/components/multiselect.js +0 -1595
- package/lib/components/multiselect.js.map +0 -1
- package/lib/styles/dropdown.d.ts +0 -12
- package/lib/styles/dropdown.d.ts.map +0 -1
- package/lib/styles/dropdown.js +0 -1081
- package/lib/styles/dropdown.js.map +0 -1
|
@@ -119,6 +119,13 @@ export declare abstract class TyComponent<T = any> extends HTMLElement {
|
|
|
119
119
|
* Get the form element this component is associated with
|
|
120
120
|
*/
|
|
121
121
|
get form(): HTMLFormElement | null;
|
|
122
|
+
/**
|
|
123
|
+
* a11y helper for components whose ARIA role lives on an inner shadow element
|
|
124
|
+
* (checkbox/switch/radio). A wrapping <label> names the form-associated HOST,
|
|
125
|
+
* not the inner role element — so mirror the host's associated label text onto
|
|
126
|
+
* the role element as aria-label, giving it an accessible name.
|
|
127
|
+
*/
|
|
128
|
+
protected applyLabelName(roleEl: HTMLElement): void;
|
|
122
129
|
/**
|
|
123
130
|
* Form reset callback - called when form.reset() is invoked
|
|
124
131
|
* Resets component to its default value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ty-component.d.ts","sourceRoot":"","sources":["../../src/base/ty-component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE9F;;GAEG;AACH,8BAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,WAAW;IAC5D,MAAM,CAAC,cAAc,UAAO;IAG5B,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAK;IAGhE,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IAGnC,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAA;IAGtC,SAAS,CAAC,UAAU,UAAQ;IAG5B,SAAS,CAAC,SAAS,UAAQ;;IAkB3B;;;;OAIG;IACH,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAYxC;IAED;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAYrD;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIxC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAmB9F;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAqBzB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAK5B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAkBhC;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAKjC;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIzD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEjC;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAK9D;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B;;OAEG;IACH,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAgBzB;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;CAI9B"}
|
|
1
|
+
{"version":3,"file":"ty-component.d.ts","sourceRoot":"","sources":["../../src/base/ty-component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE9F;;GAEG;AACH,8BAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,WAAW;IAC5D,MAAM,CAAC,cAAc,UAAO;IAG5B,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAK;IAGhE,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IAGnC,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAA;IAGtC,SAAS,CAAC,UAAU,UAAQ;IAG5B,SAAS,CAAC,SAAS,UAAQ;;IAkB3B;;;;OAIG;IACH,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAYxC;IAED;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAYrD;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG;IAIxC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAmB9F;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAqBzB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAK5B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAkBhC;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAKjC;;;;OAIG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,IAAI;IAIzD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEjC;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAK9D;;;OAGG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAI3B;;;OAGG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B;;OAEG;IACH,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAoBnD;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAgBzB;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;CAI9B"}
|
package/lib/base/ty-component.js
CHANGED
|
@@ -266,6 +266,33 @@ export class TyComponent extends HTMLElement {
|
|
|
266
266
|
get form() {
|
|
267
267
|
return this._internals.form;
|
|
268
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* a11y helper for components whose ARIA role lives on an inner shadow element
|
|
271
|
+
* (checkbox/switch/radio). A wrapping <label> names the form-associated HOST,
|
|
272
|
+
* not the inner role element — so mirror the host's associated label text onto
|
|
273
|
+
* the role element as aria-label, giving it an accessible name.
|
|
274
|
+
*/
|
|
275
|
+
applyLabelName(roleEl) {
|
|
276
|
+
let text = Array.from(this._internals.labels ?? [])
|
|
277
|
+
.map((l) => l.textContent?.trim())
|
|
278
|
+
.filter(Boolean)
|
|
279
|
+
.join(' ');
|
|
280
|
+
if (!text) {
|
|
281
|
+
// Non-form-associated controls (e.g. ty-radio) aren't labelable, so the
|
|
282
|
+
// wrapping <label> never appears in internals.labels — read it directly,
|
|
283
|
+
// stripping this element's own subtree from the text.
|
|
284
|
+
const lbl = this.closest('label');
|
|
285
|
+
if (lbl) {
|
|
286
|
+
const clone = lbl.cloneNode(true);
|
|
287
|
+
clone.querySelectorAll(this.tagName.toLowerCase()).forEach((n) => n.remove());
|
|
288
|
+
text = clone.textContent?.trim() ?? '';
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (text)
|
|
292
|
+
roleEl.setAttribute('aria-label', text);
|
|
293
|
+
else
|
|
294
|
+
roleEl.removeAttribute('aria-label');
|
|
295
|
+
}
|
|
269
296
|
/**
|
|
270
297
|
* Form reset callback - called when form.reset() is invoked
|
|
271
298
|
* Resets component to its default value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ty-component.js","sourceRoot":"","sources":["../../src/base/ty-component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ty-component.js","sourceRoot":"","sources":["../../src/base/ty-component.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,11 @@ export declare class TyButton extends TyComponent<ButtonState> implements TyButt
|
|
|
82
82
|
visual: boolean;
|
|
83
83
|
default: boolean;
|
|
84
84
|
};
|
|
85
|
+
muted: {
|
|
86
|
+
type: "boolean";
|
|
87
|
+
visual: boolean;
|
|
88
|
+
default: boolean;
|
|
89
|
+
};
|
|
85
90
|
wide: {
|
|
86
91
|
type: "boolean";
|
|
87
92
|
visual: boolean;
|
|
@@ -97,10 +102,18 @@ export declare class TyButton extends TyComponent<ButtonState> implements TyButt
|
|
|
97
102
|
};
|
|
98
103
|
};
|
|
99
104
|
private _structureInitialized;
|
|
105
|
+
private _customFlavorSheet;
|
|
100
106
|
constructor();
|
|
101
107
|
protected onConnect(): void;
|
|
102
108
|
protected onDisconnect(): void;
|
|
103
|
-
protected onPropertiesChanged(
|
|
109
|
+
protected onPropertiesChanged(changes: PropertyChange[]): void;
|
|
110
|
+
/**
|
|
111
|
+
* Custom flavors: adopt generated per-flavor rules pointed at the user's
|
|
112
|
+
* design tokens (--ty-solid-X / --ty-color-X / --ty-bg-X), falling back to
|
|
113
|
+
* neutral for any token the user didn't define. Tone (+/-) is handled by
|
|
114
|
+
* the tone-plus/tone-minus classes, so only the base flavor matters here.
|
|
115
|
+
*/
|
|
116
|
+
private _syncCustomFlavor;
|
|
104
117
|
get flavor(): Flavor;
|
|
105
118
|
set flavor(value: Flavor);
|
|
106
119
|
get size(): Size;
|
|
@@ -117,6 +130,8 @@ export declare class TyButton extends TyComponent<ButtonState> implements TyButt
|
|
|
117
130
|
set pill(value: boolean);
|
|
118
131
|
get action(): boolean;
|
|
119
132
|
set action(value: boolean);
|
|
133
|
+
get muted(): boolean;
|
|
134
|
+
set muted(value: boolean);
|
|
120
135
|
get wide(): boolean;
|
|
121
136
|
set wide(value: boolean);
|
|
122
137
|
get name(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"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"}
|
package/lib/components/button.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import { TyComponent } from "../base/ty-component.js";
|
|
12
12
|
import { ensureStyles, buildClassList } from "../utils/styles.js";
|
|
13
|
-
import { buttonStyles } from "../styles/button.js";
|
|
13
|
+
import { buttonStyles, buttonCustomFlavorCss } from "../styles/button.js";
|
|
14
|
+
import { syncCustomFlavorSheet } from "../utils/flavor-sheet.js";
|
|
14
15
|
import { getLoaderSvg } from "../utils/loader-registry.js";
|
|
15
16
|
/**
|
|
16
17
|
* Ty Button Component
|
|
@@ -26,11 +27,29 @@ export class TyButton extends TyComponent {
|
|
|
26
27
|
constructor() {
|
|
27
28
|
super();
|
|
28
29
|
this._structureInitialized = false;
|
|
30
|
+
// Adopted sheet with generated rules for a custom (non-built-in) flavor
|
|
31
|
+
this._customFlavorSheet = null;
|
|
29
32
|
ensureStyles(this.shadowRoot, { css: buttonStyles, id: "ty-button" });
|
|
30
33
|
}
|
|
31
|
-
onConnect() {
|
|
34
|
+
onConnect() {
|
|
35
|
+
this._syncCustomFlavor();
|
|
36
|
+
}
|
|
32
37
|
onDisconnect() { }
|
|
33
|
-
onPropertiesChanged(
|
|
38
|
+
onPropertiesChanged(changes) {
|
|
39
|
+
if (changes.some((c) => c.name === "flavor")) {
|
|
40
|
+
this._syncCustomFlavor();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Custom flavors: adopt generated per-flavor rules pointed at the user's
|
|
45
|
+
* design tokens (--ty-solid-X / --ty-color-X / --ty-bg-X), falling back to
|
|
46
|
+
* neutral for any token the user didn't define. Tone (+/-) is handled by
|
|
47
|
+
* the tone-plus/tone-minus classes, so only the base flavor matters here.
|
|
48
|
+
*/
|
|
49
|
+
_syncCustomFlavor() {
|
|
50
|
+
const { base } = this.parseFlavor();
|
|
51
|
+
this._customFlavorSheet = syncCustomFlavorSheet(this.shadowRoot, this._customFlavorSheet, base, () => buttonCustomFlavorCss(base));
|
|
52
|
+
}
|
|
34
53
|
// ============================================================================
|
|
35
54
|
// PROPERTY ACCESSORS
|
|
36
55
|
// ============================================================================
|
|
@@ -82,6 +101,12 @@ export class TyButton extends TyComponent {
|
|
|
82
101
|
set action(value) {
|
|
83
102
|
this.setProperty("action", value);
|
|
84
103
|
}
|
|
104
|
+
get muted() {
|
|
105
|
+
return this.getProperty("muted");
|
|
106
|
+
}
|
|
107
|
+
set muted(value) {
|
|
108
|
+
this.setProperty("muted", value);
|
|
109
|
+
}
|
|
85
110
|
get wide() {
|
|
86
111
|
return this.getProperty("wide");
|
|
87
112
|
}
|
|
@@ -114,7 +139,7 @@ export class TyButton extends TyComponent {
|
|
|
114
139
|
}
|
|
115
140
|
buildClasses() {
|
|
116
141
|
const { base, tone } = this.parseFlavor();
|
|
117
|
-
return buildClassList(base, this.size, this.appearance, this.pill && "pill", this.action && "action", tone === "+" && "tone-plus", tone === "-" && "tone-minus");
|
|
142
|
+
return buildClassList(base, this.size, this.appearance, this.pill && "pill", this.action && "action", this.muted && "muted", tone === "+" && "tone-plus", tone === "-" && "tone-minus");
|
|
118
143
|
}
|
|
119
144
|
handleFormAction() {
|
|
120
145
|
const form = this._internals.form;
|
|
@@ -257,6 +282,11 @@ TyButton.properties = {
|
|
|
257
282
|
visual: true,
|
|
258
283
|
default: false,
|
|
259
284
|
},
|
|
285
|
+
muted: {
|
|
286
|
+
type: "boolean",
|
|
287
|
+
visual: true,
|
|
288
|
+
default: false,
|
|
289
|
+
},
|
|
260
290
|
wide: {
|
|
261
291
|
type: "boolean",
|
|
262
292
|
visual: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/components/button.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,12 @@ export declare class TyCalendarMonth extends HTMLElement {
|
|
|
73
73
|
private _dayContentFn?;
|
|
74
74
|
private _customCSS?;
|
|
75
75
|
private _value?;
|
|
76
|
+
private _min?;
|
|
77
|
+
private _max?;
|
|
76
78
|
private _localeObserver?;
|
|
79
|
+
private _customFlavorSheet;
|
|
80
|
+
private _focusedIndex;
|
|
81
|
+
private _cellElements;
|
|
77
82
|
/**
|
|
78
83
|
* Observed attributes (minimal - mainly for debugging)
|
|
79
84
|
* Properties are the primary API
|
|
@@ -83,6 +88,12 @@ export declare class TyCalendarMonth extends HTMLElement {
|
|
|
83
88
|
connectedCallback(): void;
|
|
84
89
|
disconnectedCallback(): void;
|
|
85
90
|
attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
|
|
91
|
+
/**
|
|
92
|
+
* Custom (non-built-in) flavors — the `flavor` attribute itself drives
|
|
93
|
+
* built-in flavors directly via `:host([flavor="X"])` CSS, no JS needed.
|
|
94
|
+
* See utils/flavor-sheet.ts.
|
|
95
|
+
*/
|
|
96
|
+
private _syncCustomFlavor;
|
|
86
97
|
get displayYear(): number;
|
|
87
98
|
set displayYear(value: number);
|
|
88
99
|
get displayMonth(): number;
|
|
@@ -91,6 +102,8 @@ export declare class TyCalendarMonth extends HTMLElement {
|
|
|
91
102
|
set locale(value: string);
|
|
92
103
|
get size(): CalendarSize;
|
|
93
104
|
set size(value: CalendarSize);
|
|
105
|
+
get flavor(): string;
|
|
106
|
+
set flavor(value: string);
|
|
94
107
|
get width(): string | undefined;
|
|
95
108
|
set width(value: string | undefined);
|
|
96
109
|
get minWidth(): string | undefined;
|
|
@@ -101,6 +114,10 @@ export declare class TyCalendarMonth extends HTMLElement {
|
|
|
101
114
|
set dayContentFn(fn: DayContentFn | undefined);
|
|
102
115
|
get customCSS(): CSSStyleSheet | undefined;
|
|
103
116
|
set customCSS(sheet: CSSStyleSheet | undefined);
|
|
117
|
+
get min(): string | undefined;
|
|
118
|
+
set min(value: string | undefined);
|
|
119
|
+
get max(): string | undefined;
|
|
120
|
+
set max(value: string | undefined);
|
|
104
121
|
get value(): number | undefined;
|
|
105
122
|
set value(timestamp: number | null | undefined);
|
|
106
123
|
/**
|
|
@@ -123,6 +140,12 @@ export declare class TyCalendarMonth extends HTMLElement {
|
|
|
123
140
|
/**
|
|
124
141
|
* Render a single day cell
|
|
125
142
|
*/
|
|
143
|
+
/**
|
|
144
|
+
* WAI-ARIA grid pattern: gridcell + roving tabindex (exactly one cell in
|
|
145
|
+
* the whole grid is tabindex="0" at a time — the rest are -1, so Tab
|
|
146
|
+
* enters/exits the grid in one hop and arrow keys move focus inside it).
|
|
147
|
+
* Disabled days are excluded from the roving set entirely.
|
|
148
|
+
*/
|
|
126
149
|
private renderDayCell;
|
|
127
150
|
/**
|
|
128
151
|
* Main render function - property-based approach
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-month.d.ts","sourceRoot":"","sources":["../../src/components/calendar-month.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;
|
|
1
|
+
{"version":3,"file":"calendar-month.d.ts","sourceRoot":"","sources":["../../src/components/calendar-month.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AAOpC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,UAAU,KAAK,WAAW,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAsED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAE9C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,kBAAkB,CAA8B;IAQxD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,aAAa,CAAqB;IAE1C;;;OAGG;IACH,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;;IAiBD,iBAAiB;IAwCjB,oBAAoB;IAQpB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiBxF;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAazB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAM5B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAM7B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAKvB;IAED,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,YAAY,EAK3B;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAGvB;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKlC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKrC;IAED,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKrC;IAED,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,EAK5C;IAED,IAAI,SAAS,IAAI,aAAa,GAAG,SAAS,CAEzC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,EAK7C;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKhC;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAKhC;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAM7C;IAMD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;;OAGG;IACH,OAAO,IAAI,IAAI;IAQf;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA2DrB;;OAEG;IACH,OAAO,CAAC,MAAM;CA8If"}
|
|
@@ -36,8 +36,9 @@
|
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
38
|
import { ensureStyles } from '../utils/styles.js';
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
39
|
+
import { syncCustomFlavorSheet } from '../utils/flavor-sheet.js';
|
|
40
|
+
import { calendarMonthStyles, calendarMonthCustomFlavorCss } from '../styles/calendar-month.js';
|
|
41
|
+
import { getCalendarMonthDays, getLocalizedWeekdays, parseISODate } from '../utils/calendar-utils.js';
|
|
41
42
|
import { getEffectiveLocale, observeLocaleChanges } from '../utils/locale.js';
|
|
42
43
|
// ============================================================================
|
|
43
44
|
// Default Render Functions
|
|
@@ -72,6 +73,18 @@ function getDefaultDayClasses(dayContext) {
|
|
|
72
73
|
function isDOMElement(value) {
|
|
73
74
|
return value instanceof HTMLElement;
|
|
74
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* ISO date string ("YYYY-MM-DD") → UTC-midnight timestamp, matching
|
|
78
|
+
* DayContext.value semantics. null when unset/invalid.
|
|
79
|
+
*/
|
|
80
|
+
function isoToUTCTimestamp(iso) {
|
|
81
|
+
if (!iso)
|
|
82
|
+
return null;
|
|
83
|
+
const parsed = parseISODate(iso);
|
|
84
|
+
if (!parsed)
|
|
85
|
+
return null;
|
|
86
|
+
return Date.UTC(parsed.year, parsed.month - 1, parsed.day);
|
|
87
|
+
}
|
|
75
88
|
/**
|
|
76
89
|
* Normalize size value - add 'px' if just a number
|
|
77
90
|
*/
|
|
@@ -98,12 +111,21 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
98
111
|
* Properties are the primary API
|
|
99
112
|
*/
|
|
100
113
|
static get observedAttributes() {
|
|
101
|
-
return ['locale', 'size'];
|
|
114
|
+
return ['locale', 'size', 'min', 'max', 'flavor'];
|
|
102
115
|
}
|
|
103
116
|
constructor() {
|
|
104
117
|
super();
|
|
105
118
|
this._locale = 'en-US';
|
|
106
119
|
this._size = 'md';
|
|
120
|
+
this._customFlavorSheet = null;
|
|
121
|
+
// ARIA grid roving-tabindex state — index into the flat 42-day array.
|
|
122
|
+
// null means "not yet resolved"; render() picks a sensible default
|
|
123
|
+
// (selected day, else today, else the 1st rendered day) and persists it
|
|
124
|
+
// across re-renders so keyboard focus survives unrelated prop changes.
|
|
125
|
+
// Reset to null on month/year navigation (see the property setters below)
|
|
126
|
+
// so the new month gets a fresh default instead of a stale index.
|
|
127
|
+
this._focusedIndex = null;
|
|
128
|
+
this._cellElements = [];
|
|
107
129
|
// Initialize with current date
|
|
108
130
|
const today = new Date();
|
|
109
131
|
this._displayYear = today.getFullYear();
|
|
@@ -145,6 +167,7 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
145
167
|
this._localeObserver = observeLocaleChanges(this, () => {
|
|
146
168
|
this.render();
|
|
147
169
|
});
|
|
170
|
+
this._syncCustomFlavor();
|
|
148
171
|
this.render();
|
|
149
172
|
}
|
|
150
173
|
disconnectedCallback() {
|
|
@@ -165,6 +188,21 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
165
188
|
this.render();
|
|
166
189
|
}
|
|
167
190
|
}
|
|
191
|
+
else if (name === 'min' || name === 'max') {
|
|
192
|
+
this[name === 'min' ? '_min' : '_max'] = newValue ?? undefined;
|
|
193
|
+
this.render();
|
|
194
|
+
}
|
|
195
|
+
else if (name === 'flavor') {
|
|
196
|
+
this._syncCustomFlavor();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Custom (non-built-in) flavors — the `flavor` attribute itself drives
|
|
201
|
+
* built-in flavors directly via `:host([flavor="X"])` CSS, no JS needed.
|
|
202
|
+
* See utils/flavor-sheet.ts.
|
|
203
|
+
*/
|
|
204
|
+
_syncCustomFlavor() {
|
|
205
|
+
this._customFlavorSheet = syncCustomFlavorSheet(this.shadowRoot, this._customFlavorSheet, this.getAttribute('flavor'), ({ base }) => calendarMonthCustomFlavorCss(base));
|
|
168
206
|
}
|
|
169
207
|
// ==========================================================================
|
|
170
208
|
// Property Getters/Setters
|
|
@@ -175,6 +213,7 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
175
213
|
set displayYear(value) {
|
|
176
214
|
if (this._displayYear !== value) {
|
|
177
215
|
this._displayYear = value;
|
|
216
|
+
this._focusedIndex = null;
|
|
178
217
|
this.render();
|
|
179
218
|
}
|
|
180
219
|
}
|
|
@@ -184,6 +223,7 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
184
223
|
set displayMonth(value) {
|
|
185
224
|
if (this._displayMonth !== value) {
|
|
186
225
|
this._displayMonth = value;
|
|
226
|
+
this._focusedIndex = null;
|
|
187
227
|
this.render();
|
|
188
228
|
}
|
|
189
229
|
}
|
|
@@ -205,6 +245,15 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
205
245
|
this.render();
|
|
206
246
|
}
|
|
207
247
|
}
|
|
248
|
+
get flavor() {
|
|
249
|
+
return this.getAttribute('flavor') || 'primary';
|
|
250
|
+
}
|
|
251
|
+
set flavor(value) {
|
|
252
|
+
if (value)
|
|
253
|
+
this.setAttribute('flavor', value);
|
|
254
|
+
else
|
|
255
|
+
this.removeAttribute('flavor');
|
|
256
|
+
}
|
|
208
257
|
get width() {
|
|
209
258
|
return this._width;
|
|
210
259
|
}
|
|
@@ -250,6 +299,24 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
250
299
|
this.applyCustomCSS();
|
|
251
300
|
}
|
|
252
301
|
}
|
|
302
|
+
get min() {
|
|
303
|
+
return this._min;
|
|
304
|
+
}
|
|
305
|
+
set min(value) {
|
|
306
|
+
if (this._min !== value) {
|
|
307
|
+
this._min = value;
|
|
308
|
+
this.render();
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
get max() {
|
|
312
|
+
return this._max;
|
|
313
|
+
}
|
|
314
|
+
set max(value) {
|
|
315
|
+
if (this._max !== value) {
|
|
316
|
+
this._max = value;
|
|
317
|
+
this.render();
|
|
318
|
+
}
|
|
319
|
+
}
|
|
253
320
|
get value() {
|
|
254
321
|
return this._value;
|
|
255
322
|
}
|
|
@@ -316,7 +383,7 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
316
383
|
/**
|
|
317
384
|
* Dispatch day-click custom event with day context
|
|
318
385
|
*/
|
|
319
|
-
dispatchDayClick(dayContext,
|
|
386
|
+
dispatchDayClick(dayContext, _domEvent) {
|
|
320
387
|
const detail = {
|
|
321
388
|
dayContext,
|
|
322
389
|
value: dayContext.value,
|
|
@@ -344,7 +411,13 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
344
411
|
/**
|
|
345
412
|
* Render a single day cell
|
|
346
413
|
*/
|
|
347
|
-
|
|
414
|
+
/**
|
|
415
|
+
* WAI-ARIA grid pattern: gridcell + roving tabindex (exactly one cell in
|
|
416
|
+
* the whole grid is tabindex="0" at a time — the rest are -1, so Tab
|
|
417
|
+
* enters/exits the grid in one hop and arrow keys move focus inside it).
|
|
418
|
+
* Disabled days are excluded from the roving set entirely.
|
|
419
|
+
*/
|
|
420
|
+
renderDayCell(dayContext, disabled, isRoving) {
|
|
348
421
|
const dayElement = document.createElement('div');
|
|
349
422
|
// Get content using custom or default function
|
|
350
423
|
const content = this._dayContentFn
|
|
@@ -357,6 +430,8 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
357
430
|
}
|
|
358
431
|
// Apply default classes
|
|
359
432
|
const classes = getDefaultDayClasses(dayContext);
|
|
433
|
+
if (disabled)
|
|
434
|
+
classes.push('disabled');
|
|
360
435
|
dayElement.className = classes.join(' ');
|
|
361
436
|
// Set content
|
|
362
437
|
if (typeof content === 'string') {
|
|
@@ -365,11 +440,31 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
365
440
|
else if (isDOMElement(content)) {
|
|
366
441
|
dayElement.appendChild(content);
|
|
367
442
|
}
|
|
368
|
-
|
|
369
|
-
dayElement.
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
443
|
+
dayElement.setAttribute('role', 'gridcell');
|
|
444
|
+
dayElement.setAttribute('aria-label', new Intl.DateTimeFormat(this._locale, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })
|
|
445
|
+
.format(new Date(dayContext.localValue)));
|
|
446
|
+
dayElement.setAttribute('aria-selected', String(!!dayContext.isSelected));
|
|
447
|
+
if (dayContext.today)
|
|
448
|
+
dayElement.setAttribute('aria-current', 'date');
|
|
449
|
+
if (disabled) {
|
|
450
|
+
dayElement.setAttribute('aria-disabled', 'true');
|
|
451
|
+
dayElement.setAttribute('tabindex', '-1');
|
|
452
|
+
}
|
|
453
|
+
else {
|
|
454
|
+
dayElement.setAttribute('tabindex', isRoving ? '0' : '-1');
|
|
455
|
+
// Add click handler (disabled days don't emit)
|
|
456
|
+
dayElement.addEventListener('pointerdown', (event) => {
|
|
457
|
+
event.preventDefault();
|
|
458
|
+
this.dispatchDayClick(dayContext, event);
|
|
459
|
+
});
|
|
460
|
+
dayElement.addEventListener('keydown', (event) => {
|
|
461
|
+
const ke = event;
|
|
462
|
+
if (ke.key === 'Enter' || ke.key === ' ') {
|
|
463
|
+
ke.preventDefault();
|
|
464
|
+
this.dispatchDayClick(dayContext, event);
|
|
465
|
+
}
|
|
466
|
+
});
|
|
467
|
+
}
|
|
373
468
|
return dayElement;
|
|
374
469
|
}
|
|
375
470
|
/**
|
|
@@ -404,12 +499,17 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
404
499
|
// Create unified flex container
|
|
405
500
|
const calendarContainer = document.createElement('div');
|
|
406
501
|
calendarContainer.className = `calendar-flex-container calendar-size-${this._size}`;
|
|
502
|
+
calendarContainer.setAttribute('role', 'grid');
|
|
503
|
+
calendarContainer.setAttribute('aria-label', new Intl.DateTimeFormat(this._locale, { month: 'long', year: 'numeric' })
|
|
504
|
+
.format(new Date(this._displayYear, this._displayMonth - 1, 1)));
|
|
407
505
|
// Create header row with weekday names
|
|
408
506
|
const headerRow = document.createElement('div');
|
|
409
507
|
headerRow.className = 'calendar-row calendar-header-row';
|
|
508
|
+
headerRow.setAttribute('role', 'row');
|
|
410
509
|
weekdays.forEach(weekday => {
|
|
411
510
|
const headerCell = document.createElement('div');
|
|
412
511
|
headerCell.className = 'calendar-cell calendar-header-cell';
|
|
512
|
+
headerCell.setAttribute('role', 'columnheader');
|
|
413
513
|
headerCell.textContent = weekday;
|
|
414
514
|
headerRow.appendChild(headerCell);
|
|
415
515
|
});
|
|
@@ -419,17 +519,74 @@ export class TyCalendarMonth extends HTMLElement {
|
|
|
419
519
|
for (let i = 0; i < 42; i += 7) {
|
|
420
520
|
dayWeeks.push(days.slice(i, i + 7));
|
|
421
521
|
}
|
|
522
|
+
// Bounds for disabling days (UTC-midnight, same space as DayContext.value)
|
|
523
|
+
const minTs = isoToUTCTimestamp(this._min);
|
|
524
|
+
const maxTs = isoToUTCTimestamp(this._max);
|
|
525
|
+
// Roving-tabindex target: keep the persisted index if still valid and
|
|
526
|
+
// not disabled, else fall back to selected day, else today, else the
|
|
527
|
+
// first rendered day — always something focusable exists in the grid.
|
|
528
|
+
const disabledAt = (i) => {
|
|
529
|
+
const v = days[i].value;
|
|
530
|
+
return (minTs !== null && v < minTs) || (maxTs !== null && v > maxTs);
|
|
531
|
+
};
|
|
532
|
+
let defaultIndex = days.findIndex(d => d.isSelected);
|
|
533
|
+
if (defaultIndex === -1)
|
|
534
|
+
defaultIndex = days.findIndex(d => d.today);
|
|
535
|
+
if (defaultIndex === -1)
|
|
536
|
+
defaultIndex = 0;
|
|
537
|
+
if (this._focusedIndex === null ||
|
|
538
|
+
this._focusedIndex < 0 ||
|
|
539
|
+
this._focusedIndex > 41 ||
|
|
540
|
+
disabledAt(this._focusedIndex)) {
|
|
541
|
+
this._focusedIndex = defaultIndex;
|
|
542
|
+
}
|
|
543
|
+
this._cellElements = [];
|
|
544
|
+
let flatIndex = 0;
|
|
422
545
|
dayWeeks.forEach(week => {
|
|
423
546
|
const dayRow = document.createElement('div');
|
|
424
547
|
dayRow.className = 'calendar-row calendar-day-row';
|
|
548
|
+
dayRow.setAttribute('role', 'row');
|
|
425
549
|
week.forEach(dayContext => {
|
|
426
|
-
const
|
|
550
|
+
const disabled = (minTs !== null && dayContext.value < minTs) ||
|
|
551
|
+
(maxTs !== null && dayContext.value > maxTs);
|
|
552
|
+
const dayCell = this.renderDayCell(dayContext, disabled, flatIndex === this._focusedIndex);
|
|
427
553
|
// Add unified cell classes for flex layout
|
|
428
554
|
dayCell.className = `${dayCell.className} calendar-cell calendar-day-cell`;
|
|
429
555
|
dayRow.appendChild(dayCell);
|
|
556
|
+
this._cellElements[flatIndex] = dayCell;
|
|
557
|
+
flatIndex++;
|
|
430
558
|
});
|
|
431
559
|
calendarContainer.appendChild(dayRow);
|
|
432
560
|
});
|
|
561
|
+
// Arrow-key roving-tabindex navigation: Left/Right move a day,
|
|
562
|
+
// Up/Down move a week — pure index arithmetic works because `days` is a
|
|
563
|
+
// flat, chronologically-ordered 42-cell array (Monday-first weeks), so
|
|
564
|
+
// index+1 is always the next calendar day and index+7 the next week.
|
|
565
|
+
// Delegated on the grid (one listener, not 42) — this component is
|
|
566
|
+
// stateless about which month is shown, so moving past the rendered
|
|
567
|
+
// 42-day range just clamps at the edge rather than crossing months.
|
|
568
|
+
calendarContainer.addEventListener('keydown', (event) => {
|
|
569
|
+
const ke = event;
|
|
570
|
+
const delta = ke.key === 'ArrowLeft' ? -1 :
|
|
571
|
+
ke.key === 'ArrowRight' ? 1 :
|
|
572
|
+
ke.key === 'ArrowUp' ? -7 :
|
|
573
|
+
ke.key === 'ArrowDown' ? 7 :
|
|
574
|
+
0;
|
|
575
|
+
if (delta === 0)
|
|
576
|
+
return;
|
|
577
|
+
const currentIndex = this._focusedIndex ?? defaultIndex;
|
|
578
|
+
const nextIndex = currentIndex + delta;
|
|
579
|
+
if (nextIndex < 0 || nextIndex > 41 || disabledAt(nextIndex))
|
|
580
|
+
return;
|
|
581
|
+
ke.preventDefault();
|
|
582
|
+
this._cellElements[currentIndex]?.setAttribute('tabindex', '-1');
|
|
583
|
+
this._focusedIndex = nextIndex;
|
|
584
|
+
const nextCell = this._cellElements[nextIndex];
|
|
585
|
+
if (nextCell) {
|
|
586
|
+
nextCell.setAttribute('tabindex', '0');
|
|
587
|
+
nextCell.focus();
|
|
588
|
+
}
|
|
589
|
+
});
|
|
433
590
|
root.appendChild(calendarContainer);
|
|
434
591
|
}
|
|
435
592
|
}
|