@dubai-design-system/components-js 5.3.2 → 5.3.4
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/CHANGELOG.md +33 -0
- package/MIGRATION.md +3 -3
- package/dist/cjs/dda-accordion.cjs.entry.js +3 -3
- package/dist/cjs/dda-alert.cjs.entry.js +3 -3
- package/dist/cjs/dda-attach-file.cjs.entry.js +4 -4
- package/dist/cjs/dda-avatar.cjs.entry.js +10 -8
- package/dist/cjs/dda-banner-card.cjs.entry.js +5 -5
- package/dist/cjs/dda-banner.cjs.entry.js +3 -3
- package/dist/cjs/dda-breadcrumb.cjs.entry.js +3 -3
- package/dist/cjs/dda-button.cjs.entry.js +3 -3
- package/dist/cjs/dda-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/dda-chip.cjs.entry.js +3 -3
- package/dist/cjs/dda-credit-card.cjs.entry.js +3 -3
- package/dist/cjs/dda-creditcard-field.cjs.entry.js +4 -4
- package/dist/cjs/dda-dropdown.cjs.entry.js +4 -4
- package/dist/cjs/dda-footer.cjs.entry.js +3 -3
- package/dist/cjs/dda-header.cjs.entry.js +12 -6
- package/dist/cjs/dda-home-banner.cjs.entry.js +9 -8
- package/dist/cjs/dda-home-carousel.cjs.entry.js +2 -2
- package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +3 -3
- package/dist/cjs/dda-input.cjs.entry.js +4 -4
- package/dist/cjs/dda-link-button_2.cjs.entry.js +6 -6
- package/dist/cjs/dda-number-field.cjs.entry.js +4 -4
- package/dist/cjs/dda-pagination.cjs.entry.js +3 -3
- package/dist/cjs/dda-phonefield.cjs.entry.js +4 -4
- package/dist/cjs/dda-progressbar.cjs.entry.js +3 -3
- package/dist/cjs/dda-range-slider.cjs.entry.js +3 -3
- package/dist/cjs/dda-scroll-icon.cjs.entry.js +2 -2
- package/dist/cjs/dda-search-input.cjs.entry.js +4 -4
- package/dist/cjs/dda-segmented-tabs.cjs.entry.js +3 -3
- package/dist/cjs/dda-select.cjs.entry.js +13 -5
- package/dist/cjs/dda-sticky-footer.cjs.entry.js +2 -2
- package/dist/cjs/dda-tabs.cjs.entry.js +4 -4
- package/dist/cjs/dda-textarea.cjs.entry.js +36 -5
- package/dist/cjs/dda-toggle.cjs.entry.js +3 -3
- package/dist/cjs/dda-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/dda-ui-card.cjs.entry.js +2 -2
- package/dist/cjs/dda-vertical-stepper.cjs.entry.js +2 -2
- package/dist/cjs/dda.cjs.js +2 -2
- package/dist/cjs/{index-dmQf0qrn.js → index-CWTTBPrA.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/dda-accordion/dda-accordion.js +1 -1
- package/dist/collection/components/dda-alert/dda-alert.js +1 -1
- package/dist/collection/components/dda-attach-file/dda-attach-file.js +1 -1
- package/dist/collection/components/dda-avatar/dda-avatar.js +27 -5
- package/dist/collection/components/dda-avatar/dda-avatar.stories.js +3 -1
- package/dist/collection/components/dda-banner/dda-banner.js +1 -1
- package/dist/collection/components/dda-banner-card/dda-banner-card.js +3 -3
- package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.js +2 -2
- package/dist/collection/components/dda-button/dda-button.js +1 -1
- package/dist/collection/components/dda-checkbox/dda-checkbox.js +1 -1
- package/dist/collection/components/dda-chip/dda-chip.js +1 -1
- package/dist/collection/components/dda-credit-card/dda-credit-card.js +1 -1
- package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js +1 -1
- package/dist/collection/components/dda-dropdown/dda-dropdown.js +1 -1
- package/dist/collection/components/dda-footer/dda-footer.js +1 -1
- package/dist/collection/components/dda-header/dda-header.js +12 -6
- package/dist/collection/components/dda-header/dda-header.stories.js +5 -0
- package/dist/collection/components/dda-home-banner/dda-home-banner.js +6 -5
- package/dist/collection/components/dda-home-banner/dda-home-banner.stories.js +6 -6
- package/dist/collection/components/dda-home-banner/home-banner.css +2 -1
- package/dist/collection/components/dda-home-carousel/dda-home-carousel.js +2 -2
- package/dist/collection/components/dda-input/dda-input.js +1 -1
- package/dist/collection/components/dda-link-button/dda-link-button.js +2 -2
- package/dist/collection/components/dda-number-field/dda-number-field.js +1 -1
- package/dist/collection/components/dda-pagination/dda-pagination.js +1 -1
- package/dist/collection/components/dda-phonefield/dda-phonefield.js +1 -1
- package/dist/collection/components/dda-progressbar/dda-progressbar.js +1 -1
- package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +3 -0
- package/dist/collection/components/dda-radiobutton/dda-radiobutton.js +1 -1
- package/dist/collection/components/dda-range-slider/dda-range-slider.js +2 -2
- package/dist/collection/components/dda-scroll-icon/dda-scroll-icon.js +1 -1
- package/dist/collection/components/dda-search-input/dda-search-input.js +1 -1
- package/dist/collection/components/dda-select/dda-select.js +12 -4
- package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +2 -2
- package/dist/collection/components/dda-tabs/dda-tabs.css +2 -1
- package/dist/collection/components/dda-tabs/dda-tabs.js +1 -1
- package/dist/collection/components/dda-textarea/dda-textarea.js +66 -2
- package/dist/collection/components/dda-toggle/dda-toggle.js +1 -1
- package/dist/collection/components/dda-tooltip/dda-tooltip.js +1 -1
- package/dist/collection/components/dda-ui-card/dda-ui-card.js +1 -1
- package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +1 -1
- package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +1 -1
- package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +1 -1
- package/dist/collection/global/global.css +3 -0
- package/dist/collection/global/input.css +6 -1
- package/dist/components/dda-accordion.js +1 -1
- package/dist/components/dda-alert.js +1 -1
- package/dist/components/dda-attach-file.js +1 -1
- package/dist/components/dda-avatar.js +1 -1
- package/dist/components/dda-banner-card.js +1 -1
- package/dist/components/dda-banner.js +1 -1
- package/dist/components/dda-breadcrumb.js +1 -1
- package/dist/components/dda-button.js +1 -1
- package/dist/components/dda-checkbox.js +1 -1
- package/dist/components/dda-chip.js +1 -1
- package/dist/components/dda-credit-card.js +1 -1
- package/dist/components/dda-creditcard-field.js +1 -1
- package/dist/components/dda-dropdown.js +1 -1
- package/dist/components/dda-footer.js +1 -1
- package/dist/components/dda-header.js +1 -1
- package/dist/components/dda-home-banner.js +1 -1
- package/dist/components/dda-home-carousel.js +1 -1
- package/dist/components/dda-horizontal-stepper.js +1 -1
- package/dist/components/dda-input.js +1 -1
- package/dist/components/dda-link-button.js +1 -1
- package/dist/components/dda-number-field.js +1 -1
- package/dist/components/dda-pagination.js +1 -1
- package/dist/components/dda-phonefield.js +1 -1
- package/dist/components/dda-progressbar.js +1 -1
- package/dist/components/dda-radiobutton.js +1 -1
- package/dist/components/dda-range-slider.js +1 -1
- package/dist/components/dda-scroll-icon.js +1 -1
- package/dist/components/dda-search-input.js +1 -1
- package/dist/components/dda-segmented-tabs.js +1 -1
- package/dist/components/dda-select.js +1 -1
- package/dist/components/dda-sticky-footer.js +1 -1
- package/dist/components/dda-tabs.js +1 -1
- package/dist/components/dda-textarea.js +1 -1
- package/dist/components/dda-toggle.js +1 -1
- package/dist/components/dda-tooltip.js +1 -1
- package/dist/components/dda-ui-card.js +1 -1
- package/dist/components/dda-vertical-stepper.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-B01Ha-9H.js +1 -0
- package/dist/components/p-BSlBVw7U.js +1 -0
- package/dist/components/{p-BoRFp_3l.js → p-BzPIJvgU.js} +1 -1
- package/dist/components/p-C0pvesa1.js +1 -0
- package/dist/components/p-C8iszVhm.js +1 -0
- package/dist/components/p-COTKNBq5.js +1 -0
- package/dist/components/{p-BsuxUhYp.js → p-DuIeGeBw.js} +1 -1
- package/dist/dda/dda.css +2 -2
- package/dist/dda/dda.esm.js +1 -1
- package/dist/dda/p-06dc031e.entry.js +1 -0
- package/dist/dda/p-098d94ef.entry.js +1 -0
- package/dist/dda/p-1561e85b.entry.js +1 -0
- package/dist/dda/{p-024607f9.entry.js → p-1c480e0d.entry.js} +1 -1
- package/dist/dda/{p-b3af8eec.entry.js → p-31ac1764.entry.js} +1 -1
- package/dist/dda/{p-1ae9ad19.entry.js → p-32bdfc20.entry.js} +1 -1
- package/dist/dda/p-3a933cb2.entry.js +1 -0
- package/dist/dda/p-4547c481.entry.js +1 -0
- package/dist/dda/p-4a711cd7.entry.js +1 -0
- package/dist/dda/p-5107960a.entry.js +1 -0
- package/dist/dda/{p-af5d9ca7.entry.js → p-55b5b891.entry.js} +1 -1
- package/dist/dda/{p-c0f0d5e5.entry.js → p-6862b4f1.entry.js} +1 -1
- package/dist/dda/{p-8c1f5a63.entry.js → p-6a7a7e83.entry.js} +1 -1
- package/dist/dda/p-6e6d62fc.entry.js +1 -0
- package/dist/dda/p-6ead859f.entry.js +1 -0
- package/dist/dda/p-7865b362.entry.js +1 -0
- package/dist/{components/p-DW6Q9LDq.js → dda/p-7873b63a.entry.js} +1 -1
- package/dist/dda/p-7f3989d3.entry.js +1 -0
- package/dist/dda/p-905bfedc.entry.js +1 -0
- package/dist/dda/p-COp8L6Bb.js +2 -0
- package/dist/dda/{p-96080710.entry.js → p-a114cc2d.entry.js} +1 -1
- package/dist/dda/{p-e545b6ff.entry.js → p-a1629ffb.entry.js} +1 -1
- package/dist/dda/{p-7df6794e.entry.js → p-a268f2cb.entry.js} +1 -1
- package/dist/dda/p-a378b6c0.entry.js +1 -0
- package/dist/dda/p-a3a1509e.entry.js +1 -0
- package/dist/dda/{p-854fd7d4.entry.js → p-a420b7d0.entry.js} +1 -1
- package/dist/dda/p-b77c22f3.entry.js +1 -0
- package/dist/dda/{p-60a61479.entry.js → p-b8658797.entry.js} +1 -1
- package/dist/dda/p-c385762a.entry.js +1 -0
- package/dist/dda/{p-3220de7f.entry.js → p-ce8edb4a.entry.js} +1 -1
- package/dist/dda/p-d5fc98bf.entry.js +1 -0
- package/dist/dda/p-d6f20809.entry.js +1 -0
- package/dist/dda/p-de6ffe9a.entry.js +1 -0
- package/dist/dda/{p-92d77aa7.entry.js → p-df67e5b1.entry.js} +1 -1
- package/dist/dda/p-eb43cb1e.entry.js +1 -0
- package/dist/dda/p-f7931be0.entry.js +1 -0
- package/dist/dda/p-f7dbbc21.entry.js +1 -0
- package/dist/esm/dda-accordion.entry.js +3 -3
- package/dist/esm/dda-alert.entry.js +3 -3
- package/dist/esm/dda-attach-file.entry.js +4 -4
- package/dist/esm/dda-avatar.entry.js +10 -8
- package/dist/esm/dda-banner-card.entry.js +5 -5
- package/dist/esm/dda-banner.entry.js +3 -3
- package/dist/esm/dda-breadcrumb.entry.js +3 -3
- package/dist/esm/dda-button.entry.js +3 -3
- package/dist/esm/dda-checkbox.entry.js +3 -3
- package/dist/esm/dda-chip.entry.js +3 -3
- package/dist/esm/dda-credit-card.entry.js +3 -3
- package/dist/esm/dda-creditcard-field.entry.js +4 -4
- package/dist/esm/dda-dropdown.entry.js +4 -4
- package/dist/esm/dda-footer.entry.js +3 -3
- package/dist/esm/dda-header.entry.js +12 -6
- package/dist/esm/dda-home-banner.entry.js +9 -8
- package/dist/esm/dda-home-carousel.entry.js +2 -2
- package/dist/esm/dda-horizontal-stepper.entry.js +3 -3
- package/dist/esm/dda-input.entry.js +4 -4
- package/dist/esm/dda-link-button_2.entry.js +6 -6
- package/dist/esm/dda-number-field.entry.js +4 -4
- package/dist/esm/dda-pagination.entry.js +3 -3
- package/dist/esm/dda-phonefield.entry.js +4 -4
- package/dist/esm/dda-progressbar.entry.js +3 -3
- package/dist/esm/dda-range-slider.entry.js +3 -3
- package/dist/esm/dda-scroll-icon.entry.js +2 -2
- package/dist/esm/dda-search-input.entry.js +4 -4
- package/dist/esm/dda-segmented-tabs.entry.js +3 -3
- package/dist/esm/dda-select.entry.js +13 -5
- package/dist/esm/dda-sticky-footer.entry.js +2 -2
- package/dist/esm/dda-tabs.entry.js +4 -4
- package/dist/esm/dda-textarea.entry.js +36 -5
- package/dist/esm/dda-toggle.entry.js +3 -3
- package/dist/esm/dda-tooltip.entry.js +3 -3
- package/dist/esm/dda-ui-card.entry.js +2 -2
- package/dist/esm/dda-vertical-stepper.entry.js +2 -2
- package/dist/esm/dda.js +3 -3
- package/dist/esm/{index-BJtZ8AZm.js → index-COp8L6Bb.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/dda-avatar/dda-avatar.d.ts +2 -0
- package/dist/types/components/dda-avatar/dda-avatar.stories.d.ts +4 -0
- package/dist/types/components/dda-header/dda-header.d.ts +1 -0
- package/dist/types/components/dda-textarea/dda-textarea.d.ts +4 -0
- package/dist/types/components.d.ts +22 -0
- package/package.json +1 -1
- package/dist/components/p-515Iolds.js +0 -1
- package/dist/components/p-CdwbDBBx.js +0 -1
- package/dist/components/p-D6rCOerj.js +0 -1
- package/dist/components/p-DCJtRqay.js +0 -1
- package/dist/dda/p-08e196c8.entry.js +0 -1
- package/dist/dda/p-11264464.entry.js +0 -1
- package/dist/dda/p-1d7eadd0.entry.js +0 -1
- package/dist/dda/p-29d227c2.entry.js +0 -1
- package/dist/dda/p-3a130316.entry.js +0 -1
- package/dist/dda/p-4d16c67a.entry.js +0 -1
- package/dist/dda/p-55033258.entry.js +0 -1
- package/dist/dda/p-5fe4825e.entry.js +0 -1
- package/dist/dda/p-67ce47e5.entry.js +0 -1
- package/dist/dda/p-6cb8fead.entry.js +0 -1
- package/dist/dda/p-6d1699c0.entry.js +0 -1
- package/dist/dda/p-6f2aebb1.entry.js +0 -1
- package/dist/dda/p-8d7f6793.entry.js +0 -1
- package/dist/dda/p-9062f90c.entry.js +0 -1
- package/dist/dda/p-91f8c78c.entry.js +0 -1
- package/dist/dda/p-BJtZ8AZm.js +0 -2
- package/dist/dda/p-abae3f8a.entry.js +0 -1
- package/dist/dda/p-b0eaaa1a.entry.js +0 -1
- package/dist/dda/p-b29a3530.entry.js +0 -1
- package/dist/dda/p-b367e773.entry.js +0 -1
- package/dist/dda/p-b6c5c050.entry.js +0 -1
- package/dist/dda/p-bf1cd0fd.entry.js +0 -1
- package/dist/dda/p-cfffa1b4.entry.js +0 -1
- package/dist/dda/p-f649bd48.entry.js +0 -1
|
@@ -93,9 +93,9 @@ export class DdaHomeBanner {
|
|
|
93
93
|
this.startAutoplay();
|
|
94
94
|
}
|
|
95
95
|
componentDidLoad() {
|
|
96
|
-
//
|
|
96
|
+
// Other children are ignored, which otherwise looks like a blank banner.
|
|
97
97
|
if (!this.slides.length) {
|
|
98
|
-
console.warn('dda-home-banner: no
|
|
98
|
+
console.warn('dda-home-banner: no slides found. Each slide must be a <div class="dda-slide"> (or a <slide>) element; other children are not shown.');
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
disconnectedCallback() {
|
|
@@ -157,7 +157,8 @@ export class DdaHomeBanner {
|
|
|
157
157
|
return this.slide_status_label.replace('{current}', String(current)).replace('{total}', String(total));
|
|
158
158
|
}
|
|
159
159
|
updateSlides() {
|
|
160
|
-
|
|
160
|
+
// <div class="dda-slide"> is the valid-HTML form; <slide> still works for existing pages.
|
|
161
|
+
const slides = Array.from(this.el.querySelectorAll('slide, .dda-slide'));
|
|
161
162
|
// The observer watches this.el, which also contains the nav this component renders,
|
|
162
163
|
// so every re-render re-triggers it. Bail unless the slide list actually changed,
|
|
163
164
|
// otherwise assigning to @State here would loop forever.
|
|
@@ -186,10 +187,10 @@ export class DdaHomeBanner {
|
|
|
186
187
|
render() {
|
|
187
188
|
const total = this.slides.length;
|
|
188
189
|
const showAutoplayToggle = this.autoplay && !this.reducedMotion;
|
|
189
|
-
return (h(Host, { key: '
|
|
190
|
+
return (h(Host, { key: '815169560a0c33d7f7cfc541aac3374d0446b5ba', class: "home-slider", role: "region", "aria-roledescription": "carousel", "aria-label": this.aria_label }, h("div", { key: '207061e0670505a6124ea5db823929dcfe123ce3', class: "dda-slider-container" }, h("div", { key: '4493a1548bdf83287fee4e863b196c6cca8a0a25', class: "dda-slides", style: { width: total * 100 + 'vw', left: this.currentSlide * -100 + '%' } }, h("slot", { key: 'ad2e1eb748d294fb6df20bcac8f2f69f7f0a3c0e' })), h("div", { key: '46f8c37a3b8811573f79ebdefb3959243284c01e', class: 'slider-nav' }, showAutoplayToggle && (h("button", { key: 'f5402a5a33e511d3cd517422aac473fb46c6b89e', class: "pause", type: "button", "aria-label": this.isPaused ? this.play_button_label : this.pause_button_label, onClick: this.togglePause }, h("i", { key: '4ead6617484bc37d5faf327f286e31b6f4f8a6cf', class: "material-icons", "aria-hidden": "true" }, this.isPaused ? 'play_arrow' : 'pause'))), h("button", { key: '969aa18028bc698d9896288f08b3533fb97125ce', class: "prev", type: "button", "aria-label": this.previous_button_label, onClick: () => this.prevSlide() }, h("i", { key: '6d1440e810b10a3a6b4666415e71bb7bbc443a0a', class: "material-icons", "aria-hidden": "true" }, "chevron_left")), h("ul", { key: '07c487998d6c1034451213adedddc4e5d35b1df0' }, this.slides.map((_, index) => {
|
|
190
191
|
const isCurrent = this.currentSlide === index;
|
|
191
192
|
return (h("li", null, h("button", { type: "button", class: isCurrent ? 'dots active' : 'dots', "aria-label": `${this.slide_button_label} ${index + 1}`, "aria-current": isCurrent ? 'true' : null, onClick: () => this.setSlide(index) })));
|
|
192
|
-
})), h("button", { key: '
|
|
193
|
+
})), h("button", { key: '8e8a335ea31cdd3a624d50282a9ed949a01ed237', class: "next", type: "button", "aria-label": this.next_button_label, onClick: () => this.nextSlide() }, h("i", { key: '46f171571dc118cf94251c6c20a343801b2501e1', class: "material-icons", "aria-hidden": "true" }, "chevron_right")), this.show_scroll_icon && (h("div", { key: '518d015c6244698ee64e2bb93f57ded68e733cd8', class: { 'dda-mouse-scroll': true, 'dda-mouse-scroll-mobile': this.show_scroll_icon_mobile }, "aria-hidden": "true" }, h("dda-scroll-icon", { key: '837c41cd84c3198cdcc2d9ced1cb7e542ad0b258', scroll_icon_size: "sm", scroll_icon_color: "white" })))), h("div", { key: 'b5ada2285c3b0fba897e372bd477604645039b38', class: "visually-hidden", role: "status", "aria-live": this.isRotating ? 'off' : 'polite' }, total ? this.statusText(this.currentSlide + 1, total) : ''))));
|
|
193
194
|
}
|
|
194
195
|
static get is() { return "dda-home-banner"; }
|
|
195
196
|
static get originalStyleUrls() {
|
|
@@ -2,7 +2,7 @@ const IMG_1 = 'https://images.pexels.com/photos/3680912/pexels-photo-3680912.jpe
|
|
|
2
2
|
const IMG_2 = 'https://images.pexels.com/photos/1470405/pexels-photo-1470405.jpeg';
|
|
3
3
|
const IMG_3 = 'https://images.pexels.com/photos/162031/dubai-tower-arab-emirates-162031.jpeg';
|
|
4
4
|
const slide = (src, alt, title, subtitle) => `
|
|
5
|
-
<slide>
|
|
5
|
+
<div class="dda-slide">
|
|
6
6
|
<img src="${src}" alt="${alt}" />
|
|
7
7
|
<div class="slide-wrap">
|
|
8
8
|
<div class="slide-content">
|
|
@@ -11,7 +11,7 @@ const slide = (src, alt, title, subtitle) => `
|
|
|
11
11
|
<dda-button button_color="default-primary" size="lg">Call to action</dda-button>
|
|
12
12
|
</div>
|
|
13
13
|
</div>
|
|
14
|
-
</
|
|
14
|
+
</div>`;
|
|
15
15
|
export default {
|
|
16
16
|
title: 'Components/Home Banner',
|
|
17
17
|
component: 'dda-home-banner',
|
|
@@ -31,12 +31,12 @@ export default {
|
|
|
31
31
|
docs: {
|
|
32
32
|
description: {
|
|
33
33
|
component: `
|
|
34
|
-
The banner is **slotted** — each slide must be a \`<slide
|
|
35
|
-
|
|
34
|
+
The banner is **slotted** — each slide must be a \`<div class="dda-slide">\`. Other children
|
|
35
|
+
are ignored. The older \`<slide>\` element still works, but HTML checkers reject it.
|
|
36
36
|
|
|
37
37
|
\`\`\`html
|
|
38
38
|
<dda-home-banner autoplay="true" interval="5000">
|
|
39
|
-
<slide>
|
|
39
|
+
<div class="dda-slide">
|
|
40
40
|
<img src="assets/img/home-banner.jpg" alt="Aerial view of Dubai at sunset" />
|
|
41
41
|
<div class="slide-wrap">
|
|
42
42
|
<div class="slide-content">
|
|
@@ -44,7 +44,7 @@ collects slides with \`querySelectorAll('slide')\`, so \`<div>\` children are ig
|
|
|
44
44
|
<p>Pioneering and accelerating the pace of digital transformation in the city</p>
|
|
45
45
|
</div>
|
|
46
46
|
</div>
|
|
47
|
-
</
|
|
47
|
+
</div>
|
|
48
48
|
</dda-home-banner>
|
|
49
49
|
\`\`\`
|
|
50
50
|
|
|
@@ -40,7 +40,7 @@ export class DdaHomeCarousel {
|
|
|
40
40
|
"references": {
|
|
41
41
|
"BannerCardItem": {
|
|
42
42
|
"location": "local",
|
|
43
|
-
"path": "/
|
|
43
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-home-carousel/dda-home-carousel.tsx",
|
|
44
44
|
"id": "src/components/dda-home-carousel/dda-home-carousel.tsx::BannerCardItem"
|
|
45
45
|
}
|
|
46
46
|
}
|
|
@@ -154,7 +154,7 @@ export class DdaHomeCarousel {
|
|
|
154
154
|
"references": {
|
|
155
155
|
"BannerCardItem": {
|
|
156
156
|
"location": "local",
|
|
157
|
-
"path": "/
|
|
157
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-home-carousel/dda-home-carousel.tsx",
|
|
158
158
|
"id": "src/components/dda-home-carousel/dda-home-carousel.tsx::BannerCardItem"
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -42,7 +42,7 @@ export class DdaInput {
|
|
|
42
42
|
this.input_name,
|
|
43
43
|
].filter(Boolean).join(' ');
|
|
44
44
|
const id = this.inputId;
|
|
45
|
-
return (h(Host, { key: '
|
|
45
|
+
return (h(Host, { key: '2460c075d792faea6cb855ee9d28185a33b250b7' }, h("div", { key: '221bdd52cc2e6c74539e649b3dba7e8925c41917', class: inputClass }, this.label && h("label", { key: '6872e3b69b05329e53b8eb1df062a3de7c3f9831', htmlFor: id, class: "dda-input-label" }, this.label), h("input", { key: 'e65c8fbb0110a6e00c339f7275ecf29b2caa0f79', "aria-label": this.aria_label, id: id, name: this.input_name, type: this.type, autocomplete: this.autocomplete, placeholder: this.placeholder, value: this.value, onInput: (event) => this.handleInput(event), class: "dda-input-field dda-input-text", "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined }), this.helper_text && h("span", { key: '51e9cc7b8419a8f8a19f7cd57eb4e26134a279fe', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: '93494c9c3ae51d135e1c3d1ce7c7902a132a7905', id: this.errorId, class: "dda-error-message" }, this.error_message))));
|
|
46
46
|
}
|
|
47
47
|
static get is() { return "dda-input"; }
|
|
48
48
|
static get originalStyleUrls() {
|
|
@@ -33,9 +33,9 @@ export class DdaLinkButton {
|
|
|
33
33
|
this.custom_class, // Include custom class
|
|
34
34
|
this.component_mode,
|
|
35
35
|
].filter(Boolean).join(' ');
|
|
36
|
-
return (h(Host, { key: '
|
|
36
|
+
return (h(Host, { key: '856cc218a6b0ce2579f832c9f62e30c0c200c153' }, h("a", { key: '26490371647ede0bfef4d926aba6e492882ff1f4',
|
|
37
37
|
// type={this.type}
|
|
38
|
-
id: this.button_id, href: this.href, class: linkbuttonClass, "aria-label": this.aria_label }, this.start_icon && h("i", { key: '
|
|
38
|
+
id: this.button_id, href: this.href, class: linkbuttonClass, "aria-label": this.aria_label }, this.start_icon && h("i", { key: '9140bea1916d0d152ffe1e04e7d64a10da061981', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, this.start_icon), h("slot", { key: '7791fcea22490f0d7fd4cfe50cfe79773696a3d0' }), this.end_icon && h("i", { key: 'a19d4636251e1227bb17724f805b28b8e427dcfa', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, this.end_icon))));
|
|
39
39
|
}
|
|
40
40
|
static get is() { return "dda-link-button"; }
|
|
41
41
|
static get originalStyleUrls() {
|
|
@@ -72,7 +72,7 @@ export class DdaNumberField {
|
|
|
72
72
|
this.component_mode,
|
|
73
73
|
].filter(Boolean).join(' ');
|
|
74
74
|
const id = this.inputId;
|
|
75
|
-
return (h(Host, { key: '
|
|
75
|
+
return (h(Host, { key: 'fd3a5c8ce325ddd251bdefd1d2043564a81d9cd4' }, h("div", { key: '0935badd7ce102a681a83b374dc4af9a118302d9', class: containerClass }, this.label && h("label", { key: 'c5d45dd841313617c7d1576de6f8777e31847b39', htmlFor: id, class: "dda-input-label" }, this.label), h("div", { key: 'a8f571d9fdaa4eb4d965f256c80bb53dfadbf75d', class: "dda-input-field-group dda-number-field" }, h("input", { key: '0f63cf601b4c004bd738e10d283f3be0b927d83b', id: id, name: this.input_name, "aria-label": this.aria_label, type: "text", placeholder: this.placeholder, value: this.value, pattern: "[0-9]*", onInput: event => this.handleInput(event), onFocus: this.handleFocus.bind(this), onBlur: this.handleBlur.bind(this), class: "dda-field-group-input", "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined }), h("div", { key: 'ee20f566f935ec284ff537063b2845cc98787a3a', class: "dda-input-dropdown-btn" }, h("button", { key: '812343d65233cbacb844041557b2cdb96815dc19', name: this.toggle_button_name, type: "button", class: "dda-dropdown-select", "aria-label": this.toggle_button_label ? `${this.toggle_button_label}: ${this.selected_currency}` : undefined, "aria-expanded": this.isCurrencyDropdownOpen ? 'true' : 'false', onClick: () => this.toggleCurrencyDropdown() }, this.selected_currency, " ", h("i", { key: '24cfa3737af0b61c085eef16c08f7abdefa96fd4', class: `material-icons`, "aria-hidden": "true" }, this.isCurrencyDropdownOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.isCurrencyDropdownOpen && (h("div", { key: '62a81017715790ba221f89d859c8d401dba8af62', class: "dda-input-dropdown-list" }, this.parsedCurrencies.length > 0 ? (this.parsedCurrencies.map(option => (h("button", { name: this.currency_button_name, type: "button", class: `dda-input-dropdown-item ${this.selected_currency === option ? 'selected' : ''}`, onClick: () => this.selectCurrency(option) }, option)))) : (h("div", { class: "dda-input-dropdown-item" }, "No options available")))))), this.helper_text && h("span", { key: '866410624fe6593f1d8bd26d83697c9651172854', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: '97a63ee6e714d3c68bef679f1cddf9db2719b4a0', id: this.errorId, class: "dda-error-message" }, this.error_message))));
|
|
76
76
|
}
|
|
77
77
|
static get is() { return "dda-number-field"; }
|
|
78
78
|
static get originalStyleUrls() {
|
|
@@ -63,7 +63,7 @@ export class DdaPagination {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
render() {
|
|
66
|
-
return (h(Host, { key: '
|
|
66
|
+
return (h(Host, { key: '0f40ad0977ba2b432dc8c35710fdbb837baab840' }, h("div", { key: 'b0547a0b3a83292ff9714650b21acebc7051e9fa', class: `dda-pagination-container` }, this.renderPagination())));
|
|
67
67
|
}
|
|
68
68
|
static get is() { return "dda-pagination"; }
|
|
69
69
|
static get originalStyleUrls() {
|
|
@@ -78,7 +78,7 @@ export class DdaPhoneField {
|
|
|
78
78
|
render() {
|
|
79
79
|
const inputClass = `${this.component_mode} ${this.size ? `dda-input-size-${this.size}` : ''} ${this.error_message ? `dda-error-message` : ''} ${this.validation_type ? `dda-validation-${this.validation_type}` : ''} ${this.is_focused ? 'dda-input-focus' : ''} ${this.phone_number ? 'dda-input-focus-filled' : ''}`;
|
|
80
80
|
const id = this.inputId;
|
|
81
|
-
return (h(Host, { key: '
|
|
81
|
+
return (h(Host, { key: '5043945b23408f4e1effb64806f975c783dadd20' }, h("div", { key: '7093a63abae8052aa1b6a4f948b0c5a5c35b1822', class: `dda-input-container ${inputClass} ${this.custom_class} ${this.disabled ? 'dda-input-disabled' : ''}` }, this.label && h("label", { key: '185bb40c54056b1961de3bb77d9d6539c531afe0', htmlFor: id, class: "dda-input-label" }, this.label), h("div", { key: '8e77837e576191326b80b35e38265baa852f245e', class: `dda-input-field-group dda-phone-field` }, h("div", { key: '7e0baea30d88cee6b0f7a5b6981d75dbf170a2c9', class: "dda-input-dropdown-btn" }, h("button", { key: 'ecd5d9e4b44ce197ecf9cf7d7a1f7ac34dca8593', type: "button", name: this.toggle_button_name, class: "dda-dropdown-select", "aria-label": this.toggle_button_label ? `${this.toggle_button_label}: ${this.country_code}` : undefined, "aria-expanded": this.dropdown_open ? 'true' : 'false', onClick: () => this.toggleDropdown() }, h("img", { key: 'a743d23d0bf63f69ddfe5bb78b4dcd4c103a6125', src: this.country_flag, alt: "", width: "20" }), " ", this.country_code, " ", h("i", { key: '7f6c2eee4498e22f4d7df127234c7180777c944e', class: `material-icons`, "aria-hidden": "true" }, this.dropdown_open ? 'keyboard_arrow_down' : 'keyboard_arrow_down')), this.dropdown_open && (h("div", { key: 'df0117881992e8a9d0bd4064ec39ecc0fe0b2f50', class: "dda-input-dropdown-list" }, this.countries.map((country, index) => (h("button", { id: `${this.button_id || `${id}-country`}-${index}`, name: this.country_select_button_name, "aria-label": this.button_aria_label, type: "button", class: "dda-input-dropdown-item", onClick: () => this.selectCountry(country) }, h("img", { src: country.flag, alt: "", width: "20" }), " ", country.code)))))), h("input", { key: '5c8e93e6ae085972291be6456408b572b667e0dc', id: id, name: this.phone_input_name, "aria-label": this.aria_label, type: "tel", class: `dda-field-group-input`, placeholder: this.placeholder, inputmode: 'tel', pattern: "[0-9]*", autocomplete: this.autocomplete, value: this.phone_number, onInput: this.handlephonenumberChange.bind(this), onFocus: this.handleFocus.bind(this), onBlur: this.handleBlur.bind(this), disabled: this.disabled, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined })), this.helper_text && !this.validation_type && h("span", { key: 'b21621486003f85d17f2b52e1f8d89e6eab9c18b', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: 'ac02fc5bc3a77aafba1adc8e0f55dd1590333fd6', id: this.errorId, class: "dda-error-message" }, this.error_message))));
|
|
82
82
|
}
|
|
83
83
|
static get is() { return "dda-phonefield"; }
|
|
84
84
|
static get originalStyleUrls() {
|
|
@@ -16,7 +16,7 @@ export class DdaProgressBar {
|
|
|
16
16
|
const progressStyle = {
|
|
17
17
|
width: `${this.progress}%`,
|
|
18
18
|
};
|
|
19
|
-
return (h(Host, { key: '
|
|
19
|
+
return (h(Host, { key: '51da2ad9e461a0d6b3590e7ff38eba3afefe66da' }, h("div", { key: '47a1f39a072aa07df8642c7d253c1d8bc65e3df4', class: `dda-progress-bar-container ${this.custom_class} ${this.component_mode}` }, h("div", { key: '6fc4007b05d3a7574324babd728e2a8651fefb1e', class: "dda-progress-bar", role: "progressbar", "aria-label": this.aria_label, "aria-valuenow": `${this.progress}`, "aria-valuemin": "0", "aria-valuemax": "100" }, h("div", { key: '1a41f45ad4227f542abc05038af334a0f20715ed', class: "dda-progress-value", style: progressStyle }, this.tooltip && (h("div", { key: '3c340125c472bd9db640d48c00bbc99ae360cefe', class: `dda-tooltip tooltip-${this.tooltip_position}` }, this.progress, "%")))), this.show_percentage_text && (h("span", { key: 'f8be04a27d969dffd59cf9bad3bd9bbc9ddeb1d3', class: "dda-percentage-text" }, this.progress, "%")))));
|
|
20
20
|
}
|
|
21
21
|
static get is() { return "dda-progressbar"; }
|
|
22
22
|
static get originalStyleUrls() {
|
|
@@ -560,6 +560,7 @@
|
|
|
560
560
|
--dda-neutral-variant-99: #F4FEFD;
|
|
561
561
|
--dda-neutral-variant-100: #FFFFFF;
|
|
562
562
|
|
|
563
|
+
--dda-surface-variant-94: var(--dda-neutral-variant-94);
|
|
563
564
|
--dda-surface-variant-90: var(--dda-neutral-variant-90);
|
|
564
565
|
--dda-surface-variant-87: var(--dda-neutral-variant-87);
|
|
565
566
|
--dda-surface-variant-80: var(--dda-neutral-variant-80);
|
|
@@ -574,6 +575,8 @@
|
|
|
574
575
|
|
|
575
576
|
:root[data-theme='dark'] {
|
|
576
577
|
|
|
578
|
+
/* Behind --dda-color-primary-40 text (the active tab): #21BEBA on #293232 is 5.72:1. */
|
|
579
|
+
--dda-surface-variant-94: var(--dda-neutral-variant-20);
|
|
577
580
|
--dda-surface-variant-90: var(--dda-neutral-variant-30);
|
|
578
581
|
--dda-surface-variant-87: var(--dda-neutral-variant-25);
|
|
579
582
|
--dda-surface-variant-80: var(--dda-neutral-variant-22);
|
|
@@ -13,7 +13,7 @@ export class DdaRadiobutton {
|
|
|
13
13
|
this.radio_status ? `dda-radio-${this.radio_status}` : '',
|
|
14
14
|
this.component_mode,
|
|
15
15
|
].filter(Boolean).join(' ');
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: 'e2b714010721763412b10b5c942d90a02900f483' }, h("div", { key: '45e011c3a6658be0d1b5f857625f6a1a14e824b7', class: radiobuttonClass }, h("input", { key: '7ec2a40ac7a39a7711e53cba5719d697d2cd832b', "aria-label": this.aria_label, type: "radio", id: this.input_id, name: this.group_name, checked: this.checked }), h("label", { key: '67c873f4c22db01922aadde0ccc52ad32395ec4b', htmlFor: this.input_id }, h("span", { key: 'adc29f2a518e645159d887613897b2a7e1cf7032', class: "radio-circle" }), h("p", { key: '25383395e12add6f5c045e47574a89f9b0b475bc' }, h("span", { key: '39b49370a6f7170339f0d85944d72928e75c9ca6', class: "radio-title" }, this.title_text), this.supporting && h("span", { key: '37558c3fce9ce30ddbebff307f6dac78cada545b', class: "radio-supporting" }, this.supporting))))));
|
|
17
17
|
}
|
|
18
18
|
static get is() { return "dda-radiobutton"; }
|
|
19
19
|
static get originalStyleUrls() {
|
|
@@ -40,10 +40,10 @@ export class DdaRangeSlider {
|
|
|
40
40
|
render() {
|
|
41
41
|
const leftId = this.left_input_id || `${this.fallbackId}-min`;
|
|
42
42
|
const rightId = this.right_input_id || `${this.fallbackId}-max`;
|
|
43
|
-
return (h(Host, { key: '
|
|
43
|
+
return (h(Host, { key: 'dbbcf690cb26511ffecd349d7c11127c8e5a28eb' }, h("div", { key: '33c73dc0c1b1a23f47e760f5f2cba5b1b34b9233', class: `dda-range-slider-container dda-tooltip-${this.tooltip_position} ${this.custom_class} ${this.component_mode}` }, h("div", { key: 'ae070c0cab2b805dda2444aa3d60034021f12b11', class: "dda-range-slider" }, h("div", { key: '33a2c9bfd7754596cc55241f41806c1c889e8612', class: "dda-range-slider-track", style: {
|
|
44
44
|
left: `${this.getPercentage(this.min_value)}%`,
|
|
45
45
|
right: `${100 - this.getPercentage(this.max_value)}%`,
|
|
46
|
-
} }, h("span", { key: '
|
|
46
|
+
} }, h("span", { key: '0f5646d1f4c1c687fa2c03f3987f05ab835cd2d2', class: "min-label" }, this.min_value, "%"), h("span", { key: '780d90954b54b13315bfb980c1d4354809fbcb7a', class: "max-label" }, this.max_value, "%")), h("span", { key: '7f35dd25e57bf986e6387e30ed6b7a64e3beaf71' }, h("input", { key: 'acd00fa0cebef44206275daac58aefd1ff750fd9', id: leftId, name: this.left_input_name, "aria-label": this.left_aria_label || 'Minimum', type: "range", min: this.min, max: this.max, step: this.step, value: this.min_value, onInput: (event) => this.handleMinChange(event), class: "dda-range-slider-input", style: { zIndex: `${this.min_value > this.max - this.min_value ? 5 : 3}` } })), h("span", { key: '361ab7ee406082480999de056ecb26351f0240cc' }, h("input", { key: 'b6fb092f55dcd7df96d5e8c86a9ea63d55da802d', id: rightId, name: this.right_input_name, "aria-label": this.right_aria_label || 'Maximum', type: "range", min: this.min, max: this.max, step: this.step, value: this.max_value, onInput: (event) => this.handleMaxChange(event), class: "dda-range-slider-input", style: { zIndex: `${this.max_value < this.max - this.min_value ? 5 : 3}` } }))))));
|
|
47
47
|
}
|
|
48
48
|
static get is() { return "dda-range-slider"; }
|
|
49
49
|
static get originalStyleUrls() {
|
|
@@ -21,7 +21,7 @@ export class DdaScrollIcon {
|
|
|
21
21
|
]
|
|
22
22
|
.filter(Boolean)
|
|
23
23
|
.join(' ');
|
|
24
|
-
return (h(Host, { key: '
|
|
24
|
+
return (h(Host, { key: '4502467781b3847811fb612eb57f6d49a40182e5', "aria-hidden": "true" }, h("div", { key: '09e4decec6065cf0e5167b064951a60a7a5739c6', class: className }, h("div", { key: '18d6edd0c698dfc23239e445b3ec468e0e66624e', class: "dda-scroll-icon-scroll-dot" }))));
|
|
25
25
|
}
|
|
26
26
|
static get is() { return "dda-scroll-icon"; }
|
|
27
27
|
static get originalStyleUrls() {
|
|
@@ -46,7 +46,7 @@ export class DdaSearchInput {
|
|
|
46
46
|
}
|
|
47
47
|
render() {
|
|
48
48
|
const id = this.inputId;
|
|
49
|
-
return (h(Host, { key: '
|
|
49
|
+
return (h(Host, { key: '1f3191966d43f2b236fd11459101c769a0927436' }, h("div", { key: '7dd31c429d569ebfff446d78b7c88787bb89108d', class: `dda-input-container dda-input-size-${this.size} ${this.component_mode} ${this.custom_class} ${this.input_status ? `dda-input-${this.input_status}` : ''} ${this.has_error ? 'dda-validation-error' : ''}` }, this.label && h("label", { key: 'c0b9f0a432de51598797da4734c9147decaf9ba1', htmlFor: id, class: "dda-input-label" }, this.label), h("div", { key: 'ec94b09e36f446cf5d08cd1406374e3a71330f45', class: "dda-search-area dda-search-action" }, h("i", { key: '6a5c297727c0783f204346a09eb479320c98a287', class: "material-icons icon-left", "aria-hidden": "true" }, "search"), h("input", { key: '581437d9d6cda370e2bcafd5f1704cc0fec6ed08', name: this.search_input_name, "aria-label": this.aria_label, id: id, type: "text", class: "dda-input-field dda-search-field", placeholder: this.placeholder, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined }), h("div", { key: 'a8b99cc30487d302ac2c40717ed1d15ca9b862c9', class: "dda-search-btngroup" }, h("button", { key: 'ebdc39f8411eb8fb54feed4c22543d0076708cc6', name: this.close_button_name, "aria-label": this.button_aria_label || this.clear_button_label, id: this.button_id, type: "button", class: "icon-close", onClick: () => this.clearInput() }, h("i", { key: '991884ec48eb496ec35d95368d8763bcf7fb4f07', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "close")), this.show_button && (h("button", { key: '9a825cfb95a6fbfc82d34d5014d44cab59193f06', name: this.search_button_name, type: "button", class: "dda-btn btn-color-default-primary dda-btn-sm" }, "Search")))), this.helper_text && h("span", { key: '656c31b9a6a2d9a61d26277821e1fdd47cabc01a', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: 'c796e3b1dc99f60c34009c8bfb4598683d0d0e09', id: this.errorId, class: "dda-error-message" }, this.error_message))));
|
|
50
50
|
}
|
|
51
51
|
static get is() { return "dda-search-input"; }
|
|
52
52
|
static get originalStyleUrls() {
|
|
@@ -233,10 +233,18 @@ export class Ddaselect {
|
|
|
233
233
|
// Computed once here (not per option below) to keep the list render O(n) instead of O(n^2).
|
|
234
234
|
const activeIndex = current ? options.indexOf(current) : 0;
|
|
235
235
|
const validation = this.error || this.validation_type;
|
|
236
|
-
return (h(Host, { key: '79b4f368bdab0911dde6303d33ab79c8ea093399' }, h("div", { key: '
|
|
236
|
+
return (h(Host, { key: '79b4f368bdab0911dde6303d33ab79c8ea093399' }, h("div", { key: 'b0aebe236abfcbd53ede46e0c684fa7353962fe8', class: {
|
|
237
|
+
'dda-input-container': true,
|
|
238
|
+
[this.custom_class]: !!this.custom_class,
|
|
239
|
+
[this.component_mode]: !!this.component_mode,
|
|
240
|
+
'dda-input-disabled': this.disabled,
|
|
241
|
+
'dda-select-open': this.is_open,
|
|
242
|
+
[`dda-input-size-${this.size}`]: !!this.size,
|
|
243
|
+
[`dda-validation-${validation}`]: !!validation,
|
|
244
|
+
} }, this.label && h("label", { key: '87491d828a562c97475241da38308faa32e35fb0', id: this.labelId, class: "dda-input-label" }, this.label), h("div", { key: '385d35415beb1104eea5329427c6db616954c0da', class: "dda-dropdown-container" }, h("button", { key: 'd86507f9a4ebc1a7cc66e94d2126d3bd80030b19', name: this.toggle_button_name, "aria-label": this.triggerLabel, "aria-labelledby": this.label && !this.triggerLabel ? `${this.labelId} ${id}` : undefined, id: id, type: "button", class: "dda-input-field dda-select-header", "aria-haspopup": "listbox", "aria-expanded": this.is_open ? 'true' : 'false', "aria-controls": this.is_open ? this.listboxId : undefined, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined, onClick: () => { this.toggleSelect(); }, onKeyDown: this.onTriggerKeyDown, onBlur: this.onTriggerBlur }, current ? current.text : ((_a = this.placeholder) !== null && _a !== void 0 ? _a : 'Select an option'), h("i", { key: '672144adba927f8c64a18d01569021f5184dd85b', class: `material-icons`, "aria-hidden": "true" }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: 'ee31ed5dc81d441998320aff4c700328dd74cb18', id: this.listboxId, role: "listbox", "aria-label": this.triggerLabel || this.label, class: "dda-input-dropdown-list dda-select-list" }, options.length > 0 ? (options.map((option, index) => {
|
|
237
245
|
const isCurrent = current !== undefined && String(current.id) === String(option.id);
|
|
238
246
|
return (h("button", { name: this.option_select_button_name, type: "button", role: "option", "aria-selected": isCurrent ? 'true' : 'false', tabIndex: index === activeIndex ? 0 : -1, class: `dda-input-dropdown-item ${isCurrent ? 'selected' : ''}`, onClick: () => this.selectOption(option), onKeyDown: (event) => this.onOptionKeyDown(event, option), key: `${index}-${option.id}` }, option.text));
|
|
239
|
-
})) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.helper_text && h("span", { key: '
|
|
247
|
+
})) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.helper_text && h("span", { key: '96cafd84643b25aaf08b0d6984f8690688f0093d', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: '0d4c0493b85c32972a7852d9008a1c8cebf81660', id: this.errorId, class: "dda-error-message" }, this.error_message))));
|
|
240
248
|
}
|
|
241
249
|
static get is() { return "dda-select"; }
|
|
242
250
|
static get originalStyleUrls() {
|
|
@@ -283,7 +291,7 @@ export class Ddaselect {
|
|
|
283
291
|
},
|
|
284
292
|
"SelectOption": {
|
|
285
293
|
"location": "local",
|
|
286
|
-
"path": "/
|
|
294
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-select/dda-select.tsx",
|
|
287
295
|
"id": "src/components/dda-select/dda-select.tsx::SelectOption"
|
|
288
296
|
}
|
|
289
297
|
}
|
|
@@ -644,7 +652,7 @@ export class Ddaselect {
|
|
|
644
652
|
"references": {
|
|
645
653
|
"SelectOption": {
|
|
646
654
|
"location": "local",
|
|
647
|
-
"path": "/
|
|
655
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-select/dda-select.tsx",
|
|
648
656
|
"id": "src/components/dda-select/dda-select.tsx::SelectOption"
|
|
649
657
|
}
|
|
650
658
|
}
|
|
@@ -696,7 +696,7 @@ export class DdaStickyFooter {
|
|
|
696
696
|
"references": {
|
|
697
697
|
"MiddleLinkItem": {
|
|
698
698
|
"location": "local",
|
|
699
|
-
"path": "/
|
|
699
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-sticky-footer/dda-sticky-footer.tsx",
|
|
700
700
|
"id": "src/components/dda-sticky-footer/dda-sticky-footer.tsx::MiddleLinkItem"
|
|
701
701
|
}
|
|
702
702
|
}
|
|
@@ -1101,7 +1101,7 @@ export class DdaStickyFooter {
|
|
|
1101
1101
|
"references": {
|
|
1102
1102
|
"RightLinkItem": {
|
|
1103
1103
|
"location": "local",
|
|
1104
|
-
"path": "/
|
|
1104
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-sticky-footer/dda-sticky-footer.tsx",
|
|
1105
1105
|
"id": "src/components/dda-sticky-footer/dda-sticky-footer.tsx::RightLinkItem"
|
|
1106
1106
|
}
|
|
1107
1107
|
}
|
|
@@ -33,12 +33,13 @@
|
|
|
33
33
|
|
|
34
34
|
.dda-tab-default .dda-tab-item.active,
|
|
35
35
|
.dda-tab-default .dda-tab-item:hover {
|
|
36
|
-
background: var(--dda-
|
|
36
|
+
background: var(--dda-surface-variant-94);
|
|
37
37
|
color: var(--dda-color-primary-40);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.light-mode.dda-tab-default .dda-tab-item.active,
|
|
41
41
|
.light-mode.dda-tab-default .dda-tab-item:hover {
|
|
42
|
+
background: var(--dda-neutral-variant-94);
|
|
42
43
|
color: var(--dda-primary-40);
|
|
43
44
|
}
|
|
44
45
|
|
|
@@ -44,7 +44,7 @@ export class DdaTabs {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
render() {
|
|
47
|
-
return (h(Host, { key: '
|
|
47
|
+
return (h(Host, { key: '30474ea86c4c1c8fff84f5c09606e1c8a5b88a84' }, h("div", { key: '47bee1548f4f93e7b09b7cb8f28e61d5ddf91f50', role: "group", "aria-label": this.aria_label, class: `dda-tabs-container ${this.hover_style} ${this.custom_class} ${this.component_mode}` }, this.parsedTabs.map((title, index) => (h("button", { id: this.button_id, name: this.button_name, type: "button", "aria-pressed": this.active_tab === index ? 'true' : 'false', class: `dda-tab-item ${this.active_tab === index ? 'active' : ''}`, onClick: () => this.setActiveTab(index) }, this.type === 'text-icon' && h("i", { class: `material-icons`, "aria-hidden": "true" }, this.parsedIcons[index] || ""), h("span", null, title)))))));
|
|
48
48
|
}
|
|
49
49
|
static get is() { return "dda-tabs"; }
|
|
50
50
|
static get originalStyleUrls() {
|
|
@@ -2,6 +2,14 @@ import { h, Host } from "@stencil/core";
|
|
|
2
2
|
import Quill from "quill";
|
|
3
3
|
import "quill/dist/quill.snow.css";
|
|
4
4
|
import { uniqueId } from "../../utils/unique-id";
|
|
5
|
+
// English names of the rich editor's toolbar dropdowns; toolbar_labels overrides them.
|
|
6
|
+
const DEFAULT_PICKER_LABELS = {
|
|
7
|
+
header: 'Heading',
|
|
8
|
+
color: 'Text colour',
|
|
9
|
+
background: 'Highlight colour',
|
|
10
|
+
font: 'Font',
|
|
11
|
+
align: 'Alignment',
|
|
12
|
+
};
|
|
5
13
|
export class DdaTextarea {
|
|
6
14
|
constructor() {
|
|
7
15
|
/** Value of the textarea. Updates as the user types; in rich text mode it holds the editor HTML. */
|
|
@@ -68,6 +76,27 @@ export class DdaTextarea {
|
|
|
68
76
|
editorEl.removeAttribute('aria-invalid');
|
|
69
77
|
}
|
|
70
78
|
}
|
|
79
|
+
// Quill names its toolbar buttons but not its dropdowns ("pickers"): each picker's label is a
|
|
80
|
+
// <span role="button"> with no text, so screen readers announce an unnamed button (axe
|
|
81
|
+
// aria-command-name). Name each one from toolbar_labels, falling back to English.
|
|
82
|
+
labelToolbarPickers() {
|
|
83
|
+
let custom = {};
|
|
84
|
+
if (typeof this.toolbar_labels === 'string') {
|
|
85
|
+
try {
|
|
86
|
+
custom = JSON.parse(this.toolbar_labels);
|
|
87
|
+
}
|
|
88
|
+
catch (_a) {
|
|
89
|
+
custom = {};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else if (this.toolbar_labels) {
|
|
93
|
+
custom = this.toolbar_labels;
|
|
94
|
+
}
|
|
95
|
+
for (const picker of Object.keys(DEFAULT_PICKER_LABELS)) {
|
|
96
|
+
const label = this.el.querySelector(`.ql-toolbar .ql-picker.ql-${picker} .ql-picker-label`);
|
|
97
|
+
label === null || label === void 0 ? void 0 : label.setAttribute('aria-label', custom[picker] || DEFAULT_PICKER_LABELS[picker]);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
71
100
|
componentDidLoad() {
|
|
72
101
|
if (this.enable_rich_editor) {
|
|
73
102
|
// F-015: was `#editor` — the id is now the consumer-supplied
|
|
@@ -98,11 +127,13 @@ export class DdaTextarea {
|
|
|
98
127
|
this.characterCount = this.quill.getText().length - 1; // Update character count
|
|
99
128
|
});
|
|
100
129
|
this.syncRichEditorA11y();
|
|
130
|
+
this.labelToolbarPickers();
|
|
101
131
|
}
|
|
102
132
|
}
|
|
103
133
|
componentDidUpdate() {
|
|
104
134
|
if (this.enable_rich_editor) {
|
|
105
135
|
this.syncRichEditorA11y();
|
|
136
|
+
this.labelToolbarPickers();
|
|
106
137
|
}
|
|
107
138
|
}
|
|
108
139
|
handleInput(event) {
|
|
@@ -119,7 +150,7 @@ export class DdaTextarea {
|
|
|
119
150
|
this.custom_class, this.component_mode, this.textarea_name,
|
|
120
151
|
].filter(Boolean).join(' ');
|
|
121
152
|
const id = this.inputId;
|
|
122
|
-
return (h(Host, { key: '
|
|
153
|
+
return (h(Host, { key: '8f62ec35e00cc27385213d87a20ffb212c3d18a7' }, h("div", { key: '40b7431ed35401f0fd3eed435382c025b7315535', class: textareaClass }, this.label && h("label", { key: '8c24c541942306cca7ba1668ad916ce9d99f3b71', id: this.labelId, htmlFor: this.enable_rich_editor ? undefined : id, class: "dda-input-label" }, this.label), this.enable_rich_editor ? (
|
|
123
154
|
// F-015: previously a bare `<div id="editor">` — the visible
|
|
124
155
|
// label's `for` cannot target a non-labelable <div>, and even
|
|
125
156
|
// aria-labelledby here would be wrong: Quill turns this
|
|
@@ -127,7 +158,7 @@ export class DdaTextarea {
|
|
|
127
158
|
// as a child `.ql-editor`, which is what AT and Tab actually
|
|
128
159
|
// land on. The ARIA lives on quill.root (.ql-editor), applied
|
|
129
160
|
// imperatively in syncRichEditorA11y() after mount.
|
|
130
|
-
h("div", { id: id, class: "dda-richeditor-field" })) : (h("textarea", { id: id, name: this.textarea_name, "aria-label": this.aria_label, placeholder: this.placeholder, value: this.value, onInput: (event) => this.handleInput(event), class: "dda-input-field dda-input-textarea", maxLength: this.max_characters, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined })), this.helper_text && (h("div", { key: '
|
|
161
|
+
h("div", { id: id, class: "dda-richeditor-field" })) : (h("textarea", { id: id, name: this.textarea_name, "aria-label": this.aria_label, placeholder: this.placeholder, value: this.value, onInput: (event) => this.handleInput(event), class: "dda-input-field dda-input-textarea", maxLength: this.max_characters, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined })), this.helper_text && (h("div", { key: 'b71d5885604e71af4188d097727c875d7a69ef47', id: this.helperId, class: "dda-helper-text" }, h("span", { key: '497c95108fffd9e12adf08480e8877a9a3cf7ee9', class: "dda-flex dda-align-center dda-gap-2" }, h("i", { key: 'caa536f2039c9c85b922d34a5a2f8ee48beeb9f8', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info"), " ", this.helper_text), h("span", { key: '9bb54ec991d1b38f712974f37741b032056a7a5e', class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))), this.error_message && (h("div", { key: '24c199bd4481dc7f3061dd1d8f5c78c581be93dc', id: this.errorId, class: "dda-error-message" }, h("span", { key: 'bfa8ef3356a3407130cfb08499c2478b2a70572e', class: "dda-flex dda-align-center dda-gap-2" }, h("i", { key: '1fe75706036a93d63039822dbb8da1d1c659f379', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info"), " ", this.error_message), h("span", { key: '52001e0f2bdd24ac1d61f14b17e6a174e01ace11', class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))))));
|
|
131
162
|
}
|
|
132
163
|
static get is() { return "dda-textarea"; }
|
|
133
164
|
static get originalStyleUrls() {
|
|
@@ -314,6 +345,39 @@ export class DdaTextarea {
|
|
|
314
345
|
"reflect": false,
|
|
315
346
|
"attribute": "enable_rich_editor"
|
|
316
347
|
},
|
|
348
|
+
"toolbar_labels": {
|
|
349
|
+
"type": "string",
|
|
350
|
+
"mutable": false,
|
|
351
|
+
"complexType": {
|
|
352
|
+
"original": "string | Partial<Record<RichEditorPicker, string>>",
|
|
353
|
+
"resolved": "\"align\" | \"background\" | \"color\" | \"font\" | \"header\" | string",
|
|
354
|
+
"references": {
|
|
355
|
+
"Partial": {
|
|
356
|
+
"location": "global",
|
|
357
|
+
"id": "global::Partial"
|
|
358
|
+
},
|
|
359
|
+
"Record": {
|
|
360
|
+
"location": "global",
|
|
361
|
+
"id": "global::Record"
|
|
362
|
+
},
|
|
363
|
+
"RichEditorPicker": {
|
|
364
|
+
"location": "local",
|
|
365
|
+
"path": "/home/runner/work/dubai-design-system/dubai-design-system/packages/stencil/src/components/dda-textarea/dda-textarea.tsx",
|
|
366
|
+
"id": "src/components/dda-textarea/dda-textarea.tsx::RichEditorPicker"
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
"required": false,
|
|
371
|
+
"optional": true,
|
|
372
|
+
"docs": {
|
|
373
|
+
"tags": [],
|
|
374
|
+
"text": "Accessible names of the rich editor's toolbar dropdowns, as a JSON object or an object. Keys: `header`, `color`, `background`, `font`, `align`. A key that is not set keeps its English default."
|
|
375
|
+
},
|
|
376
|
+
"getter": false,
|
|
377
|
+
"setter": false,
|
|
378
|
+
"reflect": false,
|
|
379
|
+
"attribute": "toolbar_labels"
|
|
380
|
+
},
|
|
317
381
|
"max_characters": {
|
|
318
382
|
"type": "number",
|
|
319
383
|
"mutable": false,
|
|
@@ -11,7 +11,7 @@ export class DdaToggle {
|
|
|
11
11
|
this.custom_class ? `${this.custom_class}` : '',
|
|
12
12
|
this.component_mode,
|
|
13
13
|
].filter(Boolean).join(' ');
|
|
14
|
-
return (h(Host, { key: '
|
|
14
|
+
return (h(Host, { key: 'eac9f5ced9ca4d38f3efc55cbcf11fbf878d367b' }, h("label", { key: 'e384f0ca71eec7527d9134ea64e2dec08a665d09', class: toggleClass, htmlFor: this.input_id }, h("input", { key: 'c1f6818b50b9fac0cff146fedbfa13e5a266d0a3', "aria-label": this.aria_label, type: "checkbox", id: this.input_id, name: this.group_name, checked: this.checked }), h("span", { key: '313f1f6b8ca14d0b9c7b96f41ea483a2505486d9', class: "toggle" }), (this.title_text || this.supporting) && (h("p", { key: '463331817fa6376e309543dc94cf6e9a893a7076' }, this.title_text && h("span", { key: 'c2ba361c9e048d4283e9a59d9da510942c10a2af', class: "toggle-title" }, this.title_text), this.supporting && h("span", { key: 'a0b6512f2a6c1ace0aede3be49dff2579dd09482', class: "toggle-supporting" }, this.supporting))))));
|
|
15
15
|
}
|
|
16
16
|
static get is() { return "dda-toggle"; }
|
|
17
17
|
static get originalStyleUrls() {
|
|
@@ -31,7 +31,7 @@ export class DdaTooltip {
|
|
|
31
31
|
this.el.removeEventListener('mouseleave', this.resetDismissed);
|
|
32
32
|
}
|
|
33
33
|
render() {
|
|
34
|
-
return (h(Host, { key: '
|
|
34
|
+
return (h(Host, { key: 'f5622191d861ba0c36c89f17368fce0f570ef597' }, h("div", { key: '449e589306dc734ce2d381fc8e4cffaaba290330', class: `dda-tooltip-container ${this.custom_class} ${this.component_mode} ${this.dismissed ? 'dismissed' : ''}` }, h("slot", { key: 'd88db337e9f9a7bc321a33fc2a045a9b36f878e3' }), h("div", { key: '63c1bf1f0a515735fdfe546d8009f9c468ca7d95', class: `dda-tooltip-box ${this.position}` }, h("strong", { key: '4df5ed27d0aa958a1a8c4ae2d3921025329d1d3d' }, this.title_text), h("p", { key: '9f28802fff31d6ab171fb318117d438d8dd3be25' }, this.description)))));
|
|
35
35
|
}
|
|
36
36
|
static get is() { return "dda-tooltip"; }
|
|
37
37
|
static get originalStyleUrls() {
|
|
@@ -28,7 +28,7 @@ export class DdaUiCard {
|
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
30
|
const HeadingTag = this.headingTag;
|
|
31
|
-
return (h(Host, { key: '
|
|
31
|
+
return (h(Host, { key: 'adf18a25d016f46bc87b4a1e31241ca162b333e0' }, h("div", { key: '0737db71a77843ea82b477a2f53cf86edf49d8e9', class: 'dda-card' }, h("div", { key: '798f2db5233a36522d7f84d89119cad74d11a006', class: 'dda-card-body' }, this.type !== 'custom' && (h("div", { key: '8c6793c79377b6e5eb0e0ab9bd18a2c1ca4f253a' }, !!this.icon && (h("span", { key: '4570999010919bbf9842e3cd6d3fc4f55dec8c82', class: 'dda-card-icon' }, h("i", { key: 'e80483b0a3da315a7535ab1bda1a2885681152b3', class: 'material-icons', "aria-hidden": "true" }, this.icon))), !!this.image && (h("span", { key: 'b4185ea5c24a6675dc9d0eeef4d179e99130528f', class: 'dda-card-icon' }, h("img", { key: '56306706dce39081bd2cb26bedd0f40b0af6f03c', src: this.image, alt: this.maintitle }))), !!this.maintitle && h(HeadingTag, { key: '7c2a2790cd3115a1631a45c49abe98b5467c2e82', class: 'dda-card-title' }, this.maintitle), !!this.subtitle && h("p", { key: 'fd207fb19f40281ba00d9b0310ef8a744e9ad907', class: 'dda-card-text-muted' }, this.subtitle), !!this.link && (h("a", { key: 'ec7277518f56c8bc596cc1786b6bc950f1454965', href: this.link, class: 'dda-card-link', onClick: (event) => this.linkClick.emit(event) }, this.linktext, ' ', this.linkicon && (h("span", { key: '2191736e59506877a9a094eca2a8caa80056d9c4' }, h("i", { key: 'beb1f6805dc66f93a85c7e4f47eeab22c38bf6c5', class: 'material-icons', "aria-hidden": "true" }, this.linkicon))))))), h("slot", { key: 'bbaabacc33bc9bcacfbd20e54a38058339126169' })))));
|
|
32
32
|
}
|
|
33
33
|
static get is() { return "dda-ui-card"; }
|
|
34
34
|
static get originalStyleUrls() {
|
package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js
CHANGED
|
@@ -69,7 +69,7 @@ export class DdaSegmentedTabs {
|
|
|
69
69
|
this.segmentChange.emit(index);
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
return (h("div", { key: '
|
|
72
|
+
return (h("div", { key: '182bb79c4e5cc855c33642c649185c2f7da80884', role: "group", "aria-label": this.aria_label, class: `dda-segmented-group ${this.custom_class} ${this.radius_type} ${this.component_mode}` }, this.parsedItems.map((item, index) => {
|
|
73
73
|
const isSelected = index === this.active_index;
|
|
74
74
|
const className = `dda-segmented-item${isSelected ? ' active' : ''}`;
|
|
75
75
|
return item.startsWith('fo') ? (h("button", { name: this.button_name, type: "button", class: className, "aria-pressed": isSelected ? 'true' : 'false', "aria-label": this.iconLabel(item, index), onClick: () => this.selectSegment(index) }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, item))) : (h("button", { name: this.button_name, type: "button", class: className, "aria-pressed": isSelected ? 'true' : 'false', onClick: () => this.selectSegment(index) }, item));
|
|
@@ -20,7 +20,7 @@ export class DdaHorizontalStepper {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
render() {
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: 'c1434fd26373f59e991e22d9e1287b2c797a76e7' }, h("div", { key: '8f7bbcc7faefee327222fb192ecf12bd2c99ad06', class: `${this.custom_class} ${this.component_mode} h-stepper-container` }, this.parsedSteps.map((step, index) => (h("div", { class: `h-step ${index === this.current_step ? 'active' : ''} ${index < this.current_step ? 'completed' : ''}` }, h("div", { class: "h-step-indicator" }, h("div", { class: "circle" })), h("div", { class: "h-step-content" }, h("div", { class: "h-step-title" }, step.title), h("div", { class: "h-step-subtitle" }, step.subtitle), h("div", { class: "h-step-description" }, step.description))))))));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "dda-horizontal-stepper"; }
|
|
26
26
|
static get originalStyleUrls() {
|