@nylas/react 2.0.6 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/connect.js +1 -0
- package/dist/cjs/elements.js +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/notetaker.js +62 -0
- package/dist/cjs/utils.js +11 -0
- package/dist/connect.d.ts +1 -0
- package/dist/elements.d.ts +1 -0
- package/dist/es/connect.js +279 -0
- package/dist/es/elements.js +1319 -0
- package/dist/es/index.js +281 -0
- package/dist/es/notetaker.js +5784 -0
- package/dist/es/utils.js +12396 -0
- package/dist/lib/connect/index.d.ts +6 -0
- package/dist/lib/connect/types.d.ts +2 -0
- package/dist/lib/connect/useNylasConnect.d.ts +28 -0
- package/dist/lib/connect/useNylasConnect.test.d.ts +1 -0
- package/dist/lib/connect.d.ts +1 -0
- package/dist/lib/elements/components.d.ts +975 -0
- package/dist/lib/elements.d.ts +1 -0
- package/dist/lib/index.d.ts +3 -5
- package/dist/lib/notetaker.d.ts +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/notetaker.d.ts +1 -0
- package/dist/utils.d.ts +1 -0
- package/package.json +37 -16
- package/dist/abstract-provider-45ada3b4-31e3ed72.cjs +0 -1
- package/dist/abstract-provider-45ada3b4-abd3105d.js +0 -187
- package/dist/add-circle-icon_2.entry-48953f9c.cjs +0 -1
- package/dist/add-circle-icon_2.entry-f6f8b5e5.js +0 -26
- package/dist/archive-icon.entry-b3a76711.js +0 -16
- package/dist/archive-icon.entry-e2880dc7.cjs +0 -1
- package/dist/arrow-icon.entry-84d1e26c.cjs +0 -1
- package/dist/arrow-icon.entry-9b3441aa.js +0 -16
- package/dist/bold-icon.entry-0749a116.js +0 -16
- package/dist/bold-icon.entry-e1d8ab5e.cjs +0 -1
- package/dist/button-component_2.entry-1a817230.cjs +0 -1
- package/dist/button-component_2.entry-6eb55e97.js +0 -27
- package/dist/calendar-agenda-fill-icon_37.entry-0ca8b9f4.cjs +0 -6
- package/dist/calendar-agenda-fill-icon_37.entry-4adf73a2.js +0 -5231
- package/dist/calendar-cancel-icon.entry-2a29cb3f.js +0 -16
- package/dist/calendar-cancel-icon.entry-e0dee585.cjs +0 -1
- package/dist/calendar-check-icon.entry-7f96d456.cjs +0 -1
- package/dist/calendar-check-icon.entry-c12b63ea.js +0 -16
- package/dist/calendar-icon.entry-a2d19ff2.cjs +0 -1
- package/dist/calendar-icon.entry-e82a5169.js +0 -16
- package/dist/checkbox-component.entry-59612a67.js +0 -52
- package/dist/checkbox-component.entry-ddce70bc.cjs +0 -1
- package/dist/checkbox-group_4.entry-3311da64.cjs +0 -28
- package/dist/checkbox-group_4.entry-7df47ad4.js +0 -10011
- package/dist/checkmark-circle-icon.entry-677b0def.js +0 -16
- package/dist/checkmark-circle-icon.entry-67df713b.cjs +0 -1
- package/dist/checkmark-icon_15.entry-2121e1b7.cjs +0 -5
- package/dist/checkmark-icon_15.entry-9fd0ec58.js +0 -1412
- package/dist/chevron-icon_3.entry-1a42235c.cjs +0 -1
- package/dist/chevron-icon_3.entry-f0ad71d9.js +0 -157
- package/dist/clock-icon_4.entry-88822a84.cjs +0 -1
- package/dist/clock-icon_4.entry-e7472d5f.js +0 -46
- package/dist/constants-f51538ef-cd2a67c4.cjs +0 -1
- package/dist/constants-f51538ef-e0a5f026.js +0 -876
- package/dist/customParseFormat-eeec04f5-3ad26beb.js +0 -135
- package/dist/customParseFormat-eeec04f5-d5957784.cjs +0 -1
- package/dist/delete-icon.entry-3cb58910.cjs +0 -1
- package/dist/delete-icon.entry-813429d7.js +0 -16
- package/dist/document-refresh-icon.entry-ae361b0b.cjs +0 -1
- package/dist/document-refresh-icon.entry-c224c778.js +0 -16
- package/dist/feedbackSync-0ebd0eda-803c3ebe.js +0 -6048
- package/dist/feedbackSync-0ebd0eda-e12b00d5.cjs +0 -448
- package/dist/folder-icon.entry-107841af.cjs +0 -1
- package/dist/folder-icon.entry-9c1f7c41.js +0 -16
- package/dist/forward-icon.entry-4ac22c16.js +0 -16
- package/dist/forward-icon.entry-6cec1f94.cjs +0 -1
- package/dist/globe-icon.entry-7798c93b.js +0 -16
- package/dist/globe-icon.entry-909c1382.cjs +0 -1
- package/dist/google-logo-icon_6.entry-1f4ad364.cjs +0 -2
- package/dist/google-logo-icon_6.entry-b198c90a.js +0 -1762
- package/dist/google-meet-icon_5.entry-82d87e77.cjs +0 -1
- package/dist/google-meet-icon_5.entry-fa6dc1dc.js +0 -56
- package/dist/inbox-icon.entry-1b123e64.js +0 -16
- package/dist/inbox-icon.entry-84f96d31.cjs +0 -1
- package/dist/index-140eb219.js +0 -24953
- package/dist/index-d8a42c15.cjs +0 -118
- package/dist/index.es-57d4a08f-184cbc01.js +0 -2724
- package/dist/index.es-57d4a08f-b0a2ca19.cjs +0 -7
- package/dist/info-icon_2.entry-f09e7dae.cjs +0 -1
- package/dist/info-icon_2.entry-f8b72d08.js +0 -35
- package/dist/input-component.entry-44607977.js +0 -93
- package/dist/input-component.entry-fd38953d.cjs +0 -1
- package/dist/input-dropdown_2.entry-4c2e5e1a.cjs +0 -1
- package/dist/input-dropdown_2.entry-6898b420.js +0 -252
- package/dist/italic-icon.entry-16aa1ada.js +0 -16
- package/dist/italic-icon.entry-beef2254.cjs +0 -1
- package/dist/lib/elements/index.d.ts +0 -133
- package/dist/lib/elements/react-component-lib/createComponent.d.ts +0 -10
- package/dist/lib/elements/react-component-lib/createOverlayComponent.d.ts +0 -21
- package/dist/lib/elements/react-component-lib/index.d.ts +0 -2
- package/dist/lib/elements/react-component-lib/interfaces.d.ts +0 -29
- package/dist/lib/elements/react-component-lib/utils/attachProps.d.ts +0 -9
- package/dist/lib/elements/react-component-lib/utils/case.d.ts +0 -2
- package/dist/lib/elements/react-component-lib/utils/dev.d.ts +0 -2
- package/dist/lib/elements/react-component-lib/utils/index.d.ts +0 -10
- package/dist/multi-select-dropdown.entry-50133d29.js +0 -130
- package/dist/multi-select-dropdown.entry-c82cd6d4.cjs +0 -1
- package/dist/nylas-booked-event-card_11.entry-56768a09.js +0 -1407
- package/dist/nylas-booked-event-card_11.entry-eb4b3c5c.cjs +0 -1
- package/dist/nylas-date-component_2.entry-93f2f352.cjs +0 -1
- package/dist/nylas-date-component_2.entry-df957150.js +0 -307
- package/dist/nylas-form-card.entry-4d95a4ad.cjs +0 -1
- package/dist/nylas-form-card.entry-7724e61f.js +0 -72
- package/dist/nylas-notification_2.entry-448c2cb8.cjs +0 -1
- package/dist/nylas-notification_2.entry-af763b6c.js +0 -85
- package/dist/nylas-scheduler-editor.entry-0e4ba46d.js +0 -1796
- package/dist/nylas-scheduler-editor.entry-e36cdd9d.cjs +0 -2
- package/dist/nylas-scheduling.entry-1b207e91.js +0 -999
- package/dist/nylas-scheduling.entry-904dd10e.cjs +0 -1
- package/dist/person-icon.entry-70d46ca6.cjs +0 -1
- package/dist/person-icon.entry-f2979577.js +0 -16
- package/dist/play-icon.entry-c2cf0b12.cjs +0 -1
- package/dist/play-icon.entry-d387df5d.js +0 -16
- package/dist/radio-button-group.entry-45dbd2df.js +0 -56
- package/dist/radio-button-group.entry-94e06176.cjs +0 -1
- package/dist/react.cjs +0 -1
- package/dist/react.js +0 -149
- package/dist/refresh-icon.entry-5ab20f26.cjs +0 -1
- package/dist/refresh-icon.entry-777cff27.js +0 -16
- package/dist/register-component-0aad9e3d-b395364a.js +0 -109
- package/dist/register-component-0aad9e3d-d2f2e543.cjs +0 -1
- package/dist/reply-all-icon.entry-3c90510e.cjs +0 -1
- package/dist/reply-all-icon.entry-e2dd6da9.js +0 -16
- package/dist/reply-icon.entry-00a97d9f.js +0 -16
- package/dist/reply-icon.entry-d96478be.cjs +0 -1
- package/dist/sent-icon.entry-2d16da4e.cjs +0 -1
- package/dist/sent-icon.entry-949cf214.js +0 -16
- package/dist/spam-icon.entry-3baf9e79.js +0 -16
- package/dist/spam-icon.entry-7ee61730.cjs +0 -1
- package/dist/star-icon.entry-9fdb278b.js +0 -16
- package/dist/star-icon.entry-dc702d73.cjs +0 -1
- package/dist/stop-icon.entry-b5ae7e55.cjs +0 -1
- package/dist/stop-icon.entry-efa1ea66.js +0 -16
- package/dist/textarea-component.entry-247aca42.cjs +0 -1
- package/dist/textarea-component.entry-7c6fc4d8.js +0 -55
- package/dist/toggle-switch.entry-a0295d17.js +0 -49
- package/dist/toggle-switch.entry-d52b0338.cjs +0 -1
- package/dist/translate-icon.entry-219cab17.js +0 -16
- package/dist/translate-icon.entry-985b3b29.cjs +0 -1
- package/dist/trash-fill-icon.entry-03c90559.js +0 -16
- package/dist/trash-fill-icon.entry-4dfd7d24.cjs +0 -1
- package/dist/underline-icon.entry-58fa18b5.js +0 -16
- package/dist/underline-icon.entry-c60b77a6.cjs +0 -1
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { r as d, a as c, b as i, h as l, H as p, g as b } from "./index-140eb219.js";
|
|
2
|
-
import "react";
|
|
3
|
-
import "react/jsx-runtime";
|
|
4
|
-
import "react-dom";
|
|
5
|
-
const f = ':host{display:block;width:inherit;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.dropdown{display:inline-block;width:100%;position:relative}.dropdown .dropdown-label{display:flex;align-items:center;gap:0.25rem;color:var(--nylas-base-800)}.dropdown .dropdown-label p{margin:0}.dropdown .dropdown-label span.required{color:var(--nylas-error);padding:0 0.25rem}.dropdown span.error{color:var(--nylas-error);font-size:14px}.dropbtn{width:inherit;height:48px;color:var(--nylas-base-900);padding:0.5rem;font-size:16px;cursor:pointer;display:flex;gap:0.5rem;justify-content:space-between;align-items:center;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:var(--nylas-base-0)}.dropbtn.error{border:1px solid var(--nylas-error)}.dropbtn:hover,.dropbtn:active{border:1px solid var(--nylas-primary)}.dropbtn:active{outline:2px solid var(--nylas-primary)}.dropbtn:disabled{cursor:not-allowed;background:var(--nylas-base-100)}.dropbtn span.open{transform:rotate(90deg)}.dropbtn span.closed{transform:rotate(270deg)}.dropdown-content{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);width:100%;max-height:336px;overflow:auto;z-index:1;border-radius:4px;position:absolute;top:72px;box-shadow:0px 4px 6px -2px rgba(0, 0, 0, 0.0509803922);box-shadow:0px 10px 15px -3px rgba(0, 0, 0, 0.1019607843)}.dropdown-content ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.dropdown-content ul li{padding:16px, 12px, 16px, 12px;color:var(--nylas-base-900);padding:12px 16px;text-decoration:none;display:block;font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;text-align:left;cursor:pointer}.dropdown-content ul li:hover,.dropdown-content ul li:focus{background-color:var(--nylas-base-100)}.dropdown-content ul li label{display:flex;align-items:center;gap:0.5rem}.dropdown-content ul li label input{margin:0}.dropdown-content ul li.disabled{cursor:not-allowed;opacity:0.5}.dropdown-content ul li.disabled label{cursor:not-allowed}.dropdown-content ul li.disabled label input{cursor:not-allowed}.selected-options{display:flex;flex-wrap:wrap;gap:0.5rem;padding:0.5rem 0;margin-top:0.25rem}.selected-options .selected-option{display:flex;align-items:center;gap:0.5rem;padding:4px 8px;border-radius:var(--nylas-border-radius-2x);background:var(--nylas-base-100);color:var(--nylas-base-800);font-size:16px;font-weight:500;line-height:1.5rem;letter-spacing:0.5px}.selected-options .selected-option button{background:transparent;border:none;cursor:pointer;padding:0}.selected-options .selected-option button:hover{color:var(--nylas-primary)}.selected-options .selected-option button:disabled{cursor:not-allowed;background:var(--nylas-base-100)}', h = f, y = class {
|
|
6
|
-
constructor(e) {
|
|
7
|
-
d(this, e), this.selectedOptionsChanged = c(this, "selectedOptionsChanged", 7), this.name = void 0, this.label = void 0, this.options = [], this.error = "", this.required = !1, this.readOnly = !1, this.multipleOptionsSelectedLabel = "Multiple options selected", this.selectAtLeastOneOptionLabel = "Please select at least one option", this.themeConfig = void 0, this.errorMessage = "Please select at least one option.", this.availableOptions = this.options, this.isOpen = !1, this.ariaActivedescendant = "", this.shouldFocusFirstOption = !1;
|
|
8
|
-
}
|
|
9
|
-
areOptionsEqual(e, s) {
|
|
10
|
-
if (e.length !== s.length)
|
|
11
|
-
return !1;
|
|
12
|
-
const a = [...e].sort((o, n) => o.label.localeCompare(n.label) || o.value.localeCompare(n.value)), t = [...s].sort((o, n) => o.label.localeCompare(n.label) || o.value.localeCompare(n.value));
|
|
13
|
-
return a.every((o, n) => {
|
|
14
|
-
const r = t[n];
|
|
15
|
-
return o.label === r.label && o.value === r.value;
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
optionsChangedHandler(e) {
|
|
19
|
-
this.areOptionsEqual(e, this.availableOptions) || (this.availableOptions = e);
|
|
20
|
-
}
|
|
21
|
-
themeConfigChangedHandler(e, s) {
|
|
22
|
-
this.applyThemeConfig(e);
|
|
23
|
-
}
|
|
24
|
-
applyThemeConfig(e) {
|
|
25
|
-
if (e)
|
|
26
|
-
for (const [s, a] of Object.entries(e))
|
|
27
|
-
this.el.style.setProperty(`${s}`, a);
|
|
28
|
-
}
|
|
29
|
-
componentDidLoad() {
|
|
30
|
-
i("multi-select-dropdown", "componentDidLoad"), this.options && (this.availableOptions = this.options), this.applyThemeConfig(this.themeConfig);
|
|
31
|
-
}
|
|
32
|
-
componentDidRender() {
|
|
33
|
-
var e;
|
|
34
|
-
i("multi-select-dropdown", "componentDidRender"), this.isOpen && this.shouldFocusFirstOption && (this.ariaActivedescendant = (e = this.availableOptions[0]) == null ? void 0 : e.value, this.focusOption(0), this.shouldFocusFirstOption = !1);
|
|
35
|
-
}
|
|
36
|
-
handleOutsideClick(e) {
|
|
37
|
-
!e.composedPath().includes(this.el) && this.isOpen && (this.isOpen = !1);
|
|
38
|
-
}
|
|
39
|
-
handleBookingFormSubmitted(e) {
|
|
40
|
-
const s = this.availableOptions.filter((a) => a.selected).map((a) => a.value);
|
|
41
|
-
this.required && (!s || s.length <= 0) && (this.error = this.errorMessage || this.selectAtLeastOneOptionLabel), this.error && e.preventDefault();
|
|
42
|
-
}
|
|
43
|
-
selectOption(e) {
|
|
44
|
-
this.availableOptions = this.availableOptions.map((a) => (a.value === e.value && (a.selected = !e.selected, a.selected && (this.error = "")), a));
|
|
45
|
-
const s = this.availableOptions.filter((a) => a.selected).map((a) => a.value);
|
|
46
|
-
this.selectedOptionsChanged.emit({
|
|
47
|
-
value: s,
|
|
48
|
-
name: this.name
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
toggleDropdown() {
|
|
52
|
-
this.isOpen = !this.isOpen, this.isOpen ? this.shouldFocusFirstOption = !0 : this.ariaActivedescendant = "";
|
|
53
|
-
}
|
|
54
|
-
handleSelectButtonKeyDown(e) {
|
|
55
|
-
switch (e.key) {
|
|
56
|
-
case "ArrowDown":
|
|
57
|
-
case "Enter":
|
|
58
|
-
e.preventDefault(), this.isOpen || this.toggleDropdown();
|
|
59
|
-
break;
|
|
60
|
-
case "Escape":
|
|
61
|
-
this.isOpen = !1;
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
handleListboxKeydown(e) {
|
|
66
|
-
const s = this.availableOptions, a = s.findIndex((t) => t.value === this.ariaActivedescendant);
|
|
67
|
-
switch (e.key) {
|
|
68
|
-
case "ArrowDown":
|
|
69
|
-
case "Tab": {
|
|
70
|
-
if (e.shiftKey) {
|
|
71
|
-
e.preventDefault();
|
|
72
|
-
const t = a - 1 >= 0 ? a - 1 : s.length - 1;
|
|
73
|
-
this.ariaActivedescendant = s[t].value, this.focusOption(t);
|
|
74
|
-
} else {
|
|
75
|
-
e.preventDefault();
|
|
76
|
-
const t = a + 1 < s.length ? a + 1 : 0;
|
|
77
|
-
this.ariaActivedescendant = s[t].value, this.focusOption(t);
|
|
78
|
-
}
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
case "ArrowUp": {
|
|
82
|
-
e.preventDefault();
|
|
83
|
-
const t = a - 1 >= 0 ? a - 1 : s.length - 1;
|
|
84
|
-
this.ariaActivedescendant = s[t].value, this.focusOption(t);
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
case "Enter": {
|
|
88
|
-
e.preventDefault(), this.ariaActivedescendant && this.selectOption(s[a]);
|
|
89
|
-
break;
|
|
90
|
-
}
|
|
91
|
-
case "Escape": {
|
|
92
|
-
this.isOpen = !1;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
focusOption(e) {
|
|
98
|
-
var o;
|
|
99
|
-
const s = this.availableOptions[e];
|
|
100
|
-
if (!s)
|
|
101
|
-
return;
|
|
102
|
-
const a = s.value, t = (o = this.el.shadowRoot) == null ? void 0 : o.getElementById(a);
|
|
103
|
-
t && (t.focus(), t.scrollIntoView({ behavior: "smooth", block: "nearest" }));
|
|
104
|
-
}
|
|
105
|
-
getSelectedOptions() {
|
|
106
|
-
return this.availableOptions.filter((e) => e.selected);
|
|
107
|
-
}
|
|
108
|
-
renderOption(e) {
|
|
109
|
-
return l("li", { key: e.value, id: e.value, role: "option", tabindex: "0", "aria-selected": e.selected ? "true" : "false", onClick: (s) => {
|
|
110
|
-
s.stopImmediatePropagation(), e != null && e.disabled || this.selectOption(e);
|
|
111
|
-
}, class: { selected: !!e.selected, disabled: !!e.disabled } }, l("label", { htmlFor: e.value }, l("input", { "aria-hidden": "true", id: e.value, type: "checkbox", checked: e.selected, disabled: !!(e != null && e.disabled) }), l("span", null, e.label)));
|
|
112
|
-
}
|
|
113
|
-
render() {
|
|
114
|
-
var e, s;
|
|
115
|
-
return l(p, { key: "e4f66d6e4f3e49f65b722c076a0deffc120f5cb3" }, l("div", { key: "72968ead813ef5de4ee88e8fe5e80aad16316276", class: "dropdown", part: "msd_dropdown" }, l("label", { key: "38ccbcb168ae2b33937ee727924ab3254cbd2ace", class: "dropdown-label", part: "msd_dropdown-label" }, l("p", { key: "b199001842df7d90ef1c0d1b32a6df7e2190a4b3" }, l("span", { key: "bda03991df2c144888978078f0b47412375bc55e", class: "label" }, this.label), this.required && l("span", { class: "required" }, "*")), l("slot", { key: "fa8101533463adf2c59db98417935b10f8a4d1a6", name: "label-icon", "aria-hidden": "true" })), l("button", { key: "5c5562eb21673f5ac6c33871b718c78a38b7a5e3", name: this.name, part: `msd_dropdown-button ${this.error ? "msd_dropdown-button--error" : ""}`, class: { dropbtn: !0, open: this.isOpen, error: !!this.error }, onClick: () => this.toggleDropdown(), disabled: this.readOnly, title: this.readOnly ? "read-only field" : void 0, "aria-haspopup": "listbox", "aria-expanded": this.isOpen ? "true" : "false", "aria-label": this.name, onKeyDown: (a) => this.handleSelectButtonKeyDown(a) }, l("slot", { key: "af26de659dbee075636ce569e081178711156e67", name: "select-icon", "aria-hidden": "true" }), l("span", { key: "d007e56a574375c7693d2d54d74dd30d4a9318d6", class: "selected-option", part: "msd_dropdown-button-selected-label" }, this.getSelectedOptions().length > 1 ? this.multipleOptionsSelectedLabel : ((e = this.availableOptions.filter((a) => a.selected)[0]) == null ? void 0 : e.label) ?? this.selectAtLeastOneOptionLabel ?? ((s = this.availableOptions[0]) == null ? void 0 : s.label)), l("span", { key: "9934861780c8cee62383aa15894c294bca270754", class: this.isOpen ? "open" : "closed", "aria-hidden": "true" }, l("chevron-icon", { key: "20a893a1f92dd27484376cc406fd7a0232074dfe", width: "16", height: "16" }))), this.error ? l("span", { class: "error", part: "msd_dropdown_error" }, this.error) : null, l("div", { key: "bee6d2bad669e20f058a6fb9f02d5d9cc8c9ab6f", class: "selected-options" }, this.getSelectedOptions().map((a) => l("span", { class: "selected-option" }, a.label, l("button", { disabled: this.readOnly || !!(a != null && a.disabled), key: a.label, onClick: () => this.selectOption(a) }, l("close-icon", null))))), this.isOpen ? l("div", { class: "dropdown-content", part: "msd_dropdown-content" }, l("ul", { tabindex: "-1", role: "listbox", "aria-label": this.name, "aria-multiselectable": !0, "aria-activedescendant": this.ariaActivedescendant, onKeyDown: (a) => this.handleListboxKeydown(a) }, this.availableOptions.map((a) => this.renderOption(a)))) : null));
|
|
116
|
-
}
|
|
117
|
-
get el() {
|
|
118
|
-
return b(this);
|
|
119
|
-
}
|
|
120
|
-
static get watchers() {
|
|
121
|
-
return {
|
|
122
|
-
options: ["optionsChangedHandler"],
|
|
123
|
-
themeConfig: ["themeConfigChangedHandler"]
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
y.style = h;
|
|
128
|
-
export {
|
|
129
|
-
y as multi_select_dropdown
|
|
130
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-d8a42c15.cjs");require("react");require("react/jsx-runtime");require("react-dom");const d=':host{display:block;width:inherit;--nylas-primary:#2563eb;--nylas-error:#cc4841;--nylas-error-50:#ffeae8;--nylas-error-100:#ffc5bf;--nylas-error-200:#fecaca;--nylas-error-pressed:#992222;--nylas-wraning:#f06c00;--nylas-success:#16a392;--nylas-info:#2b8fc2;--nylas-base-0:#ffffff;--nylas-base-25:#fcfcfd;--nylas-base-50:#f8f9fc;--nylas-base-100:#eaecf5;--nylas-base-200:#d5d9eb;--nylas-base-300:#b3b8d8;--nylas-base-400:#717bbc;--nylas-base-500:#4e5ba6;--nylas-base-600:#3e4784;--nylas-base-700:#263f72;--nylas-base-800:#293056;--nylas-base-900:#101323;--nylas-base-950:#0e101b;--nylas-color-blue-100:#e0e6f9;--nylas-border-radius:0.25rem;--nylas-border-radius-2x:0.5rem;--nylas-border-radius-3x:0.75rem;--nylas-font-family:"Inter", sans-serif;--nylas-color-black:#000000;--nylas-color-grey-900:#2c2c2c;--nylas-color-grey-800:#4b4b4b;--nylas-color-grey-700:#6e6e6e;--nylas-color-grey-600:#8e8e8e;--nylas-color-grey-500:#b3b3b3;--nylas-color-grey-400:#cacaca;--nylas-color-grey-300:#e1e1e1;--nylas-color-grey-200:#eaeaea;--nylas-color-grey-100:#f5f5f5;--nylas-color-grey-50:#fbfcfe;--nylas-color-white:#ffffff;--nylas-color-red-900:#992222;--nylas-color-red-700:#cc4841;--nylas-color-red-500:#ff786a;--nylas-color-red-300:#ffa79e;--nylas-color-red-100:#ffc5bf;--nylas-color-red-50:#ffeae8;--nylas-color-blue-900:#213571;--nylas-color-blue-700:#314fa9;--nylas-color-blue-500:#4169e1;--nylas-color-blue-300:#bdccf9;--nylas-color-blue-100:#e0e6f9;--nylas-color-blue-50:#f6f8fd;--nylas-color-yellow-900:#7c6506;--nylas-color-yellow-700:#c29f09;--nylas-color-yellow-500:#f7c90b;--nylas-color-yellow-300:#f9de70;--nylas-color-yellow-100:#fceba9;--nylas-color-yellow-50:#fdf4ce;--nylas-color-green-900:#0e6b60;--nylas-color-green-700:#16a392;--nylas-color-green-500:#17c3b2;--nylas-color-green-300:#74dbd1;--nylas-color-green-100:#a2e7e0;--nylas-color-green-50:#d1f3f0;--nylas-color-purple-900:#643554;--nylas-color-purple-700:#954f7d;--nylas-color-purple-500:#c769a7;--nylas-color-purple-300:#dda5ca;--nylas-color-purple-100:#e0bdd6;--nylas-color-purple-50:#e9dde5;--nylas-color-sky-900:#20698f;--nylas-color-sky-700:#2b8fc2;--nylas-color-sky-500:#6dceff;--nylas-color-sky-300:#8fdaff;--nylas-color-sky-100:#b8e7ff;--nylas-color-sky-50:#d9f2ff}.dropdown{display:inline-block;width:100%;position:relative}.dropdown .dropdown-label{display:flex;align-items:center;gap:0.25rem;color:var(--nylas-base-800)}.dropdown .dropdown-label p{margin:0}.dropdown .dropdown-label span.required{color:var(--nylas-error);padding:0 0.25rem}.dropdown span.error{color:var(--nylas-error);font-size:14px}.dropbtn{width:inherit;height:48px;color:var(--nylas-base-900);padding:0.5rem;font-size:16px;cursor:pointer;display:flex;gap:0.5rem;justify-content:space-between;align-items:center;background:var(--nylas-base-0);border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:var(--nylas-base-0)}.dropbtn.error{border:1px solid var(--nylas-error)}.dropbtn:hover,.dropbtn:active{border:1px solid var(--nylas-primary)}.dropbtn:active{outline:2px solid var(--nylas-primary)}.dropbtn:disabled{cursor:not-allowed;background:var(--nylas-base-100)}.dropbtn span.open{transform:rotate(90deg)}.dropbtn span.closed{transform:rotate(270deg)}.dropdown-content{display:block;margin-top:0.5rem;background-color:var(--nylas-base-0);width:100%;max-height:336px;overflow:auto;z-index:1;border-radius:4px;position:absolute;top:72px;box-shadow:0px 4px 6px -2px rgba(0, 0, 0, 0.0509803922);box-shadow:0px 10px 15px -3px rgba(0, 0, 0, 0.1019607843)}.dropdown-content ul{padding:0;list-style-type:none;color:var(--nylas-base-900);max-height:336px}.dropdown-content ul li{padding:16px, 12px, 16px, 12px;color:var(--nylas-base-900);padding:12px 16px;text-decoration:none;display:block;font-family:inherit;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;text-align:left;cursor:pointer}.dropdown-content ul li:hover,.dropdown-content ul li:focus{background-color:var(--nylas-base-100)}.dropdown-content ul li label{display:flex;align-items:center;gap:0.5rem}.dropdown-content ul li label input{margin:0}.dropdown-content ul li.disabled{cursor:not-allowed;opacity:0.5}.dropdown-content ul li.disabled label{cursor:not-allowed}.dropdown-content ul li.disabled label input{cursor:not-allowed}.selected-options{display:flex;flex-wrap:wrap;gap:0.5rem;padding:0.5rem 0;margin-top:0.25rem}.selected-options .selected-option{display:flex;align-items:center;gap:0.5rem;padding:4px 8px;border-radius:var(--nylas-border-radius-2x);background:var(--nylas-base-100);color:var(--nylas-base-800);font-size:16px;font-weight:500;line-height:1.5rem;letter-spacing:0.5px}.selected-options .selected-option button{background:transparent;border:none;cursor:pointer;padding:0}.selected-options .selected-option button:hover{color:var(--nylas-primary)}.selected-options .selected-option button:disabled{cursor:not-allowed;background:var(--nylas-base-100)}',c=d,i=class{constructor(e){l.registerInstance(this,e),this.selectedOptionsChanged=l.createEvent(this,"selectedOptionsChanged",7),this.name=void 0,this.label=void 0,this.options=[],this.error="",this.required=!1,this.readOnly=!1,this.multipleOptionsSelectedLabel="Multiple options selected",this.selectAtLeastOneOptionLabel="Please select at least one option",this.themeConfig=void 0,this.errorMessage="Please select at least one option.",this.availableOptions=this.options,this.isOpen=!1,this.ariaActivedescendant="",this.shouldFocusFirstOption=!1}areOptionsEqual(e,s){if(e.length!==s.length)return!1;const a=[...e].sort((n,o)=>n.label.localeCompare(o.label)||n.value.localeCompare(o.value)),t=[...s].sort((n,o)=>n.label.localeCompare(o.label)||n.value.localeCompare(o.value));return a.every((n,o)=>{const r=t[o];return n.label===r.label&&n.value===r.value})}optionsChangedHandler(e){this.areOptionsEqual(e,this.availableOptions)||(this.availableOptions=e)}themeConfigChangedHandler(e,s){this.applyThemeConfig(e)}applyThemeConfig(e){if(e)for(const[s,a]of Object.entries(e))this.el.style.setProperty(`${s}`,a)}componentDidLoad(){l.debug("multi-select-dropdown","componentDidLoad"),this.options&&(this.availableOptions=this.options),this.applyThemeConfig(this.themeConfig)}componentDidRender(){var e;l.debug("multi-select-dropdown","componentDidRender"),this.isOpen&&this.shouldFocusFirstOption&&(this.ariaActivedescendant=(e=this.availableOptions[0])==null?void 0:e.value,this.focusOption(0),this.shouldFocusFirstOption=!1)}handleOutsideClick(e){!e.composedPath().includes(this.el)&&this.isOpen&&(this.isOpen=!1)}handleBookingFormSubmitted(e){const s=this.availableOptions.filter(a=>a.selected).map(a=>a.value);this.required&&(!s||s.length<=0)&&(this.error=this.errorMessage||this.selectAtLeastOneOptionLabel),this.error&&e.preventDefault()}selectOption(e){this.availableOptions=this.availableOptions.map(a=>(a.value===e.value&&(a.selected=!e.selected,a.selected&&(this.error="")),a));const s=this.availableOptions.filter(a=>a.selected).map(a=>a.value);this.selectedOptionsChanged.emit({value:s,name:this.name})}toggleDropdown(){this.isOpen=!this.isOpen,this.isOpen?this.shouldFocusFirstOption=!0:this.ariaActivedescendant=""}handleSelectButtonKeyDown(e){switch(e.key){case"ArrowDown":case"Enter":e.preventDefault(),this.isOpen||this.toggleDropdown();break;case"Escape":this.isOpen=!1;break}}handleListboxKeydown(e){const s=this.availableOptions,a=s.findIndex(t=>t.value===this.ariaActivedescendant);switch(e.key){case"ArrowDown":case"Tab":{if(e.shiftKey){e.preventDefault();const t=a-1>=0?a-1:s.length-1;this.ariaActivedescendant=s[t].value,this.focusOption(t)}else{e.preventDefault();const t=a+1<s.length?a+1:0;this.ariaActivedescendant=s[t].value,this.focusOption(t)}break}case"ArrowUp":{e.preventDefault();const t=a-1>=0?a-1:s.length-1;this.ariaActivedescendant=s[t].value,this.focusOption(t);break}case"Enter":{e.preventDefault(),this.ariaActivedescendant&&this.selectOption(s[a]);break}case"Escape":{this.isOpen=!1;break}}}focusOption(e){var n;const s=this.availableOptions[e];if(!s)return;const a=s.value,t=(n=this.el.shadowRoot)==null?void 0:n.getElementById(a);t&&(t.focus(),t.scrollIntoView({behavior:"smooth",block:"nearest"}))}getSelectedOptions(){return this.availableOptions.filter(e=>e.selected)}renderOption(e){return l.h("li",{key:e.value,id:e.value,role:"option",tabindex:"0","aria-selected":e.selected?"true":"false",onClick:s=>{s.stopImmediatePropagation(),e!=null&&e.disabled||this.selectOption(e)},class:{selected:!!e.selected,disabled:!!e.disabled}},l.h("label",{htmlFor:e.value},l.h("input",{"aria-hidden":"true",id:e.value,type:"checkbox",checked:e.selected,disabled:!!(e!=null&&e.disabled)}),l.h("span",null,e.label)))}render(){var e,s;return l.h(l.Host,{key:"e4f66d6e4f3e49f65b722c076a0deffc120f5cb3"},l.h("div",{key:"72968ead813ef5de4ee88e8fe5e80aad16316276",class:"dropdown",part:"msd_dropdown"},l.h("label",{key:"38ccbcb168ae2b33937ee727924ab3254cbd2ace",class:"dropdown-label",part:"msd_dropdown-label"},l.h("p",{key:"b199001842df7d90ef1c0d1b32a6df7e2190a4b3"},l.h("span",{key:"bda03991df2c144888978078f0b47412375bc55e",class:"label"},this.label),this.required&&l.h("span",{class:"required"},"*")),l.h("slot",{key:"fa8101533463adf2c59db98417935b10f8a4d1a6",name:"label-icon","aria-hidden":"true"})),l.h("button",{key:"5c5562eb21673f5ac6c33871b718c78a38b7a5e3",name:this.name,part:`msd_dropdown-button ${this.error?"msd_dropdown-button--error":""}`,class:{dropbtn:!0,open:this.isOpen,error:!!this.error},onClick:()=>this.toggleDropdown(),disabled:this.readOnly,title:this.readOnly?"read-only field":void 0,"aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false","aria-label":this.name,onKeyDown:a=>this.handleSelectButtonKeyDown(a)},l.h("slot",{key:"af26de659dbee075636ce569e081178711156e67",name:"select-icon","aria-hidden":"true"}),l.h("span",{key:"d007e56a574375c7693d2d54d74dd30d4a9318d6",class:"selected-option",part:"msd_dropdown-button-selected-label"},this.getSelectedOptions().length>1?this.multipleOptionsSelectedLabel:((e=this.availableOptions.filter(a=>a.selected)[0])==null?void 0:e.label)??this.selectAtLeastOneOptionLabel??((s=this.availableOptions[0])==null?void 0:s.label)),l.h("span",{key:"9934861780c8cee62383aa15894c294bca270754",class:this.isOpen?"open":"closed","aria-hidden":"true"},l.h("chevron-icon",{key:"20a893a1f92dd27484376cc406fd7a0232074dfe",width:"16",height:"16"}))),this.error?l.h("span",{class:"error",part:"msd_dropdown_error"},this.error):null,l.h("div",{key:"bee6d2bad669e20f058a6fb9f02d5d9cc8c9ab6f",class:"selected-options"},this.getSelectedOptions().map(a=>l.h("span",{class:"selected-option"},a.label,l.h("button",{disabled:this.readOnly||!!(a!=null&&a.disabled),key:a.label,onClick:()=>this.selectOption(a)},l.h("close-icon",null))))),this.isOpen?l.h("div",{class:"dropdown-content",part:"msd_dropdown-content"},l.h("ul",{tabindex:"-1",role:"listbox","aria-label":this.name,"aria-multiselectable":!0,"aria-activedescendant":this.ariaActivedescendant,onKeyDown:a=>this.handleListboxKeydown(a)},this.availableOptions.map(a=>this.renderOption(a)))):null))}get el(){return l.getElement(this)}static get watchers(){return{options:["optionsChangedHandler"],themeConfig:["themeConfigChangedHandler"]}}};i.style=c;exports.multi_select_dropdown=i;
|