@nylas/react 2.0.0 → 2.0.1

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.
Files changed (169) hide show
  1. package/dist/abstract-provider-efe136bd-2041bdce.js +187 -0
  2. package/dist/abstract-provider-efe136bd-b4663c02.cjs +1 -0
  3. package/dist/add-circle-icon_2.entry-5204c48a.cjs +1 -0
  4. package/dist/add-circle-icon_2.entry-ea1692a4.js +26 -0
  5. package/dist/archive-icon.entry-0b585dff.js +16 -0
  6. package/dist/archive-icon.entry-c2c66bca.cjs +1 -0
  7. package/dist/{arrow-icon.entry-9414299f.js → arrow-icon.entry-2e61394e.js} +5 -5
  8. package/dist/arrow-icon.entry-9d471162.cjs +1 -0
  9. package/dist/{bold-icon.entry-c781e9c1.cjs → bold-icon.entry-5c37622f.cjs} +1 -1
  10. package/dist/{bold-icon.entry-b72aed9f.js → bold-icon.entry-8ef1b653.js} +2 -2
  11. package/dist/{button-component_2.entry-73f76545.cjs → button-component_2.entry-8335ee1e.cjs} +1 -1
  12. package/dist/{button-component_2.entry-36e49459.js → button-component_2.entry-c906230f.js} +9 -9
  13. package/dist/calendar-agenda-fill-icon_36.entry-59c0a997.cjs +6 -0
  14. package/dist/{calendar-agenda-fill-icon_36.entry-efa7ad26.js → calendar-agenda-fill-icon_36.entry-5f184433.js} +900 -881
  15. package/dist/{calendar-cancel-icon.entry-01c388eb.cjs → calendar-cancel-icon.entry-65a4a34e.cjs} +1 -1
  16. package/dist/{calendar-cancel-icon.entry-0f739a8a.js → calendar-cancel-icon.entry-dd6ac4db.js} +5 -5
  17. package/dist/{calendar-check-icon_2.entry-5febbadf.cjs → calendar-check-icon_2.entry-ded15038.cjs} +1 -1
  18. package/dist/{calendar-check-icon_2.entry-dfb0036d.js → calendar-check-icon_2.entry-f9b50bb8.js} +3 -3
  19. package/dist/{calendar-icon.entry-f197396d.js → calendar-icon.entry-a2a1ddbc.js} +2 -2
  20. package/dist/{calendar-icon.entry-9743e0b7.cjs → calendar-icon.entry-ca512dd6.cjs} +1 -1
  21. package/dist/checkbox-component_2.entry-d6128246.js +115 -0
  22. package/dist/checkbox-component_2.entry-d79b5d1d.cjs +1 -0
  23. package/dist/checkbox-group_4.entry-2946c7ef.cjs +28 -0
  24. package/dist/{nylas-event-calendar_3.entry-9abd46c2.js → checkbox-group_4.entry-e5145451.js} +1038 -923
  25. package/dist/{checkmark-icon_15.entry-5c09cff5.js → checkmark-icon_15.entry-6e92e93e.js} +19 -19
  26. package/dist/{checkmark-icon_15.entry-35dd97b7.cjs → checkmark-icon_15.entry-a75a1825.cjs} +2 -2
  27. package/dist/{chevron-icon_3.entry-4a72f211.js → chevron-icon_3.entry-6eaa3513.js} +16 -16
  28. package/dist/{chevron-icon_3.entry-e0608b7c.cjs → chevron-icon_3.entry-9193a885.cjs} +1 -1
  29. package/dist/{clock-icon_4.entry-0afe79c2.js → clock-icon_4.entry-2c93270e.js} +8 -8
  30. package/dist/{clock-icon_4.entry-202ce025.cjs → clock-icon_4.entry-ae2272f4.cjs} +1 -1
  31. package/dist/{customParseFormat-d1de5ed0-c0ef002d.js → customParseFormat-edc38d83-b3722499.js} +1 -1
  32. package/dist/{customParseFormat-d1de5ed0-65a0bba3.cjs → customParseFormat-edc38d83-fa9c77d9.cjs} +1 -1
  33. package/dist/{delete-icon.entry-580bfcc9.js → delete-icon.entry-6684eba6.js} +2 -2
  34. package/dist/{delete-icon.entry-762ac892.cjs → delete-icon.entry-b9e4f2c7.cjs} +1 -1
  35. package/dist/{document-refresh-icon.entry-4e0f0c61.cjs → document-refresh-icon.entry-7afe6163.cjs} +1 -1
  36. package/dist/document-refresh-icon.entry-fba9f60b.js +16 -0
  37. package/dist/{feedbackSync-172f942c-42124493.js → feedbackSync-e4378c0b-23289195.js} +811 -798
  38. package/dist/{feedbackSync-172f942c-62f72bd2.cjs → feedbackSync-e4378c0b-7876d067.cjs} +26 -26
  39. package/dist/{folder-icon.entry-54c3cc66.js → folder-icon.entry-430c6b47.js} +4 -4
  40. package/dist/{folder-icon.entry-2694e253.cjs → folder-icon.entry-b1632bf3.cjs} +1 -1
  41. package/dist/{forward-icon.entry-5e540f05.js → forward-icon.entry-5e53da76.js} +2 -2
  42. package/dist/{forward-icon.entry-f07102d8.cjs → forward-icon.entry-7626dcca.cjs} +1 -1
  43. package/dist/{globe-icon_2.entry-aaceb196.js → globe-icon_2.entry-646eae41.js} +20 -20
  44. package/dist/{globe-icon_2.entry-14a4c168.cjs → globe-icon_2.entry-bbb0a6ce.cjs} +1 -1
  45. package/dist/{google-logo-icon_6.entry-00d40db2.js → google-logo-icon_6.entry-5951a546.js} +682 -488
  46. package/dist/google-logo-icon_6.entry-e39dd9cb.cjs +2 -0
  47. package/dist/{google-meet-icon_5.entry-f1f05903.js → google-meet-icon_5.entry-a54c83da.js} +14 -14
  48. package/dist/{google-meet-icon_5.entry-6c20e149.cjs → google-meet-icon_5.entry-c13e0738.cjs} +1 -1
  49. package/dist/inbox-icon.entry-7bee82b3.js +16 -0
  50. package/dist/inbox-icon.entry-911b047a.cjs +1 -0
  51. package/dist/index-71f61ea9.js +24544 -0
  52. package/dist/index-f769bc2a.cjs +118 -0
  53. package/dist/index.d.ts +1 -4
  54. package/dist/index.es-6a9d55cf-122c27e0.js +2724 -0
  55. package/dist/index.es-6a9d55cf-458ba0e0.cjs +7 -0
  56. package/dist/{info-icon_2.entry-bbcefb9a.cjs → info-icon_2.entry-471b836b.cjs} +1 -1
  57. package/dist/{info-icon_2.entry-b3b313ab.js → info-icon_2.entry-6ff2f004.js} +3 -3
  58. package/dist/{input-component.entry-401b9ba5.js → input-component.entry-781b584c.js} +12 -12
  59. package/dist/{input-component.entry-ec8e8e7c.cjs → input-component.entry-b6a9b4cb.cjs} +1 -1
  60. package/dist/{input-dropdown_2.entry-c37f392c.js → input-dropdown_2.entry-1feebcba.js} +3 -3
  61. package/dist/{input-dropdown_2.entry-8cb11601.cjs → input-dropdown_2.entry-c71d14ff.cjs} +1 -1
  62. package/dist/{italic-icon.entry-6675558a.cjs → italic-icon.entry-16debde5.cjs} +1 -1
  63. package/dist/italic-icon.entry-9ef7f4a2.js +16 -0
  64. package/dist/{elements → lib/elements}/index.d.ts +1 -1
  65. package/dist/lib/index.d.ts +5 -0
  66. package/dist/lib/main.d.ts +0 -0
  67. package/dist/lib/notetaker/CalendarSync/CalendarSync.d.ts +37 -0
  68. package/dist/lib/notetaker/CalendarSync/CalendarSync.spec.d.ts +0 -0
  69. package/dist/lib/notetaker/SendNotetaker/SendNotetaker.d.ts +31 -0
  70. package/dist/lib/notetaker/SendNotetaker/SendNotetaker.spec.d.ts +1 -0
  71. package/dist/lib/notetaker/Transcript/Transcript.d.ts +23 -0
  72. package/dist/lib/notetaker/Transcript/Transcript.spec.d.ts +0 -0
  73. package/dist/lib/notetaker/VideoPlayer/VideoPlayer.d.ts +22 -0
  74. package/dist/lib/notetaker/VideoPlayer/VideoPlayer.spec.d.ts +1 -0
  75. package/dist/lib/notetaker/index.d.ts +9 -0
  76. package/dist/lib/notetaker/lib/constants.d.ts +12 -0
  77. package/dist/lib/notetaker/lib/http-client.d.ts +2 -0
  78. package/dist/lib/notetaker/lib/primitives.d.ts +66 -0
  79. package/dist/lib/notetaker/lib/store.d.ts +7 -0
  80. package/dist/lib/notetaker/types.d.ts +42 -0
  81. package/dist/multi-select-dropdown.entry-0a6f9417.cjs +1 -0
  82. package/dist/multi-select-dropdown.entry-1b27c746.js +121 -0
  83. package/dist/nylas-booked-event-card_11.entry-74fba802.cjs +1 -0
  84. package/dist/{nylas-booked-event-card_12.entry-e7464ae7.js → nylas-booked-event-card_11.entry-802671ee.js} +469 -534
  85. package/dist/{nylas-form-card.entry-cbb00fba.cjs → nylas-form-card.entry-59a837c9.cjs} +1 -1
  86. package/dist/{nylas-form-card.entry-a3186807.js → nylas-form-card.entry-7da9a312.js} +3 -3
  87. package/dist/nylas-notification_2.entry-8f8bad34.cjs +1 -0
  88. package/dist/nylas-notification_2.entry-b16bb805.js +85 -0
  89. package/dist/{nylas-scheduler-editor.entry-7b188a38.js → nylas-scheduler-editor.entry-cbe3e1e3.js} +160 -136
  90. package/dist/nylas-scheduler-editor.entry-e33e11fb.cjs +2 -0
  91. package/dist/nylas-scheduling.entry-4223e50b.cjs +1 -0
  92. package/dist/{nylas-scheduling.entry-e9929b03.js → nylas-scheduling.entry-6fb094a8.js} +295 -295
  93. package/dist/{person-icon.entry-d2856f08.js → person-icon.entry-6232e6fd.js} +7 -7
  94. package/dist/{person-icon.entry-8998fdb8.cjs → person-icon.entry-beb26b48.cjs} +1 -1
  95. package/dist/play-icon.entry-16a1c1ac.js +16 -0
  96. package/dist/{play-icon.entry-99eb969b.cjs → play-icon.entry-9060d0d8.cjs} +1 -1
  97. package/dist/{radio-button-group.entry-bc3b12fd.js → radio-button-group.entry-5a3728cd.js} +2 -2
  98. package/dist/{radio-button-group.entry-d66edd04.cjs → radio-button-group.entry-6935c39d.cjs} +1 -1
  99. package/dist/react.cjs +1 -1
  100. package/dist/react.js +135 -126
  101. package/dist/{refresh-icon.entry-99d1982d.cjs → refresh-icon.entry-2411b2e1.cjs} +1 -1
  102. package/dist/{refresh-icon.entry-d6df8b1c.js → refresh-icon.entry-4f56e72b.js} +2 -2
  103. package/dist/{register-component-62d792d4-448b6a43.js → register-component-a1c3d7b4-774feacc.js} +1 -1
  104. package/dist/{register-component-62d792d4-c6e7d129.cjs → register-component-a1c3d7b4-97d7a6f5.cjs} +1 -1
  105. package/dist/{reply-all-icon.entry-d7c44139.cjs → reply-all-icon.entry-b4b6926b.cjs} +1 -1
  106. package/dist/{reply-all-icon.entry-7ebf01a0.js → reply-all-icon.entry-b4b917ec.js} +2 -2
  107. package/dist/{reply-icon.entry-d1622d85.js → reply-icon.entry-24f6f4c6.js} +5 -5
  108. package/dist/{reply-icon.entry-058c00e8.cjs → reply-icon.entry-454545ed.cjs} +1 -1
  109. package/dist/sent-icon.entry-d9a79336.cjs +1 -0
  110. package/dist/sent-icon.entry-fa59ce85.js +16 -0
  111. package/dist/spam-icon.entry-da39987e.cjs +1 -0
  112. package/dist/spam-icon.entry-fb18a08b.js +16 -0
  113. package/dist/{star-icon.entry-98b80645.js → star-icon.entry-406472c1.js} +4 -4
  114. package/dist/{star-icon.entry-4db13fdb.cjs → star-icon.entry-833f35a7.cjs} +1 -1
  115. package/dist/{stop-icon.entry-0290fd30.js → stop-icon.entry-1b6ae838.js} +2 -2
  116. package/dist/{stop-icon.entry-9d7b53fd.cjs → stop-icon.entry-3258db59.cjs} +1 -1
  117. package/dist/style.css +1 -0
  118. package/dist/test/vitest.setup.d.ts +0 -0
  119. package/dist/{textarea-component.entry-9b474ab5.cjs → textarea-component.entry-0ae18897.cjs} +1 -1
  120. package/dist/{textarea-component.entry-a62c257b.js → textarea-component.entry-569a281e.js} +2 -2
  121. package/dist/{toggle-switch.entry-5dbfcd48.cjs → toggle-switch.entry-60d75f16.cjs} +1 -1
  122. package/dist/{toggle-switch.entry-e423b793.js → toggle-switch.entry-dc3f796b.js} +4 -4
  123. package/dist/{translate-icon.entry-60c55a2e.js → translate-icon.entry-297cf20f.js} +4 -4
  124. package/dist/{translate-icon.entry-f82fa6fc.cjs → translate-icon.entry-c183ecb5.cjs} +1 -1
  125. package/dist/trash-fill-icon.entry-3d8a2e5e.js +16 -0
  126. package/dist/trash-fill-icon.entry-94d4f66c.cjs +1 -0
  127. package/dist/{underline-icon.entry-40028bc6.js → underline-icon.entry-4a9105c7.js} +2 -2
  128. package/dist/{underline-icon.entry-0807a43d.cjs → underline-icon.entry-50d1e766.cjs} +1 -1
  129. package/package.json +41 -17
  130. package/dist/add-circle-icon_2.entry-8a1c55bc.cjs +0 -1
  131. package/dist/add-circle-icon_2.entry-b4bbcfee.js +0 -26
  132. package/dist/archive-icon.entry-a2492cf3.js +0 -16
  133. package/dist/archive-icon.entry-e48d2356.cjs +0 -1
  134. package/dist/arrow-icon.entry-b1ecb2aa.cjs +0 -1
  135. package/dist/calendar-agenda-fill-icon_36.entry-e9b92e0e.cjs +0 -6
  136. package/dist/checkbox-component.entry-1aa5782f.cjs +0 -1
  137. package/dist/checkbox-component.entry-72a6aa72.js +0 -43
  138. package/dist/document-refresh-icon.entry-e500b4e3.js +0 -16
  139. package/dist/google-logo-icon_6.entry-fa76ffe3.cjs +0 -2
  140. package/dist/inbox-icon.entry-9a4628f2.cjs +0 -1
  141. package/dist/inbox-icon.entry-aa78ba8c.js +0 -16
  142. package/dist/index-1e75512f.cjs +0 -57
  143. package/dist/index-e8380973.js +0 -18492
  144. package/dist/index.es-fc8588de-034ead51.cjs +0 -7
  145. package/dist/index.es-fc8588de-c943eef6.js +0 -2908
  146. package/dist/italic-icon.entry-0e85d0d9.js +0 -16
  147. package/dist/multi-select-dropdown_2.entry-3eecf18a.js +0 -193
  148. package/dist/multi-select-dropdown_2.entry-e37c501d.cjs +0 -1
  149. package/dist/nylas-booked-event-card_12.entry-fddc9ab8.cjs +0 -1
  150. package/dist/nylas-event-calendar_3.entry-e6669bbf.cjs +0 -11
  151. package/dist/nylas-scheduler-editor.entry-5c92901a.cjs +0 -2
  152. package/dist/nylas-scheduling.entry-970240f6.cjs +0 -1
  153. package/dist/play-icon.entry-f949a80f.js +0 -16
  154. package/dist/sent-icon.entry-6c604512.cjs +0 -1
  155. package/dist/sent-icon.entry-fe12bc2f.js +0 -16
  156. package/dist/spam-icon.entry-45e5292e.cjs +0 -1
  157. package/dist/spam-icon.entry-b97c7709.js +0 -16
  158. package/dist/trash-fill-icon.entry-095caae3.cjs +0 -1
  159. package/dist/trash-fill-icon.entry-825055fd.js +0 -16
  160. package/dist/warning-icon.entry-24e37759.js +0 -16
  161. package/dist/warning-icon.entry-fce7c14f.cjs +0 -1
  162. /package/dist/{elements → lib/elements}/react-component-lib/createComponent.d.ts +0 -0
  163. /package/dist/{elements → lib/elements}/react-component-lib/createOverlayComponent.d.ts +0 -0
  164. /package/dist/{elements → lib/elements}/react-component-lib/index.d.ts +0 -0
  165. /package/dist/{elements → lib/elements}/react-component-lib/interfaces.d.ts +0 -0
  166. /package/dist/{elements → lib/elements}/react-component-lib/utils/attachProps.d.ts +0 -0
  167. /package/dist/{elements → lib/elements}/react-component-lib/utils/case.d.ts +0 -0
  168. /package/dist/{elements → lib/elements}/react-component-lib/utils/dev.d.ts +0 -0
  169. /package/dist/{elements → lib/elements}/react-component-lib/utils/index.d.ts +0 -0
@@ -0,0 +1,31 @@
1
+ import React from "react";
2
+ import { RecordingType, Notetaker } from "../types";
3
+ export interface SendNotetakerStore {
4
+ name: string;
5
+ setName: (name: string) => void;
6
+ meetingLink: string;
7
+ setMeetingLink: (meetingLink: string) => void;
8
+ date: string;
9
+ setDate: (date: string) => void;
10
+ time: string;
11
+ setTime: (time: string) => void;
12
+ advancedSettings: boolean;
13
+ setAdvancedSettings: (show: boolean) => void;
14
+ selectedRecordingTypes: RecordingType[];
15
+ setSelectedRecordingTypes: (types: RecordingType[]) => void;
16
+ toggleRecordingType: (type: RecordingType) => void;
17
+ isLoading: boolean;
18
+ setIsLoading: (isLoading: boolean) => void;
19
+ reset: () => void;
20
+ handleSubmit: (onSend?: (data: Notetaker, resetForm: () => void) => void, onError?: (error: any) => void) => void;
21
+ }
22
+ export declare const sendNotetakerStore: import("zustand").UseBoundStore<import("zustand").StoreApi<SendNotetakerStore>>;
23
+ export interface SendNotetakerProps {
24
+ notetakerName?: string;
25
+ showNameInput?: boolean;
26
+ showAdvancedSettings?: boolean;
27
+ className?: string;
28
+ onSend?: (data: Notetaker, resetForm: () => void) => void;
29
+ onError?: (error: any) => void;
30
+ }
31
+ export declare function SendNotetaker({ className, onSend, onError, notetakerName, }: SendNotetakerProps): React.JSX.Element;
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ export interface TranscriptProps {
3
+ transcript: TranscriptItem[];
4
+ autoscroll?: boolean;
5
+ toolbar?: boolean;
6
+ emptyState?: React.ReactNode;
7
+ showSpeaker?: boolean;
8
+ showTimestamps?: boolean;
9
+ resumeAutoscrollLabel?: string;
10
+ onTimestampClick?: (timestamp: number) => void;
11
+ transcriptComponent?: React.ComponentType<{
12
+ text: string;
13
+ highlight: string | null;
14
+ }>;
15
+ }
16
+ export interface TranscriptItem {
17
+ speaker: string;
18
+ start: number;
19
+ end: number;
20
+ text: string;
21
+ }
22
+ declare const Transcript: React.FC<TranscriptProps>;
23
+ export { Transcript };
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ interface VideoStore {
3
+ currentTime: number;
4
+ setCurrentTime: (time: number) => void;
5
+ }
6
+ export declare const videoPlayerStore: import("zustand").UseBoundStore<import("zustand").StoreApi<VideoStore>>;
7
+ export interface VideoPlayerProps {
8
+ videoUrl: string;
9
+ className?: string;
10
+ poster?: string;
11
+ autoPlay?: boolean;
12
+ muted?: boolean;
13
+ loop?: boolean;
14
+ videoType?: string;
15
+ onTimeUpdate?: (currentTime: number) => void;
16
+ onSeek?: (newTime: number) => void;
17
+ onPlay?: () => void;
18
+ onPause?: () => void;
19
+ onEnded?: () => void;
20
+ }
21
+ export declare const VideoPlayer: React.FC<VideoPlayerProps>;
22
+ export {};
@@ -0,0 +1,9 @@
1
+ export { Transcript } from "./Transcript/Transcript";
2
+ export { VideoPlayer } from "./VideoPlayer/VideoPlayer";
3
+ export { CalendarSync } from "./CalendarSync/CalendarSync";
4
+ export { SendNotetaker } from "./SendNotetaker/SendNotetaker";
5
+ export { provider } from "./lib/store";
6
+ export { calendarSyncStore } from "./CalendarSync/CalendarSync";
7
+ export { sendNotetakerStore } from "./SendNotetaker/SendNotetaker";
8
+ export { videoPlayerStore } from "./VideoPlayer/VideoPlayer";
9
+ export type { Transcript as TranscriptType, TranscriptItem, } from "./Transcript/Transcript";
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { MeetingFilter, RecordingType } from "../types";
3
+ export declare const DEFAULT_RECORDING_TYPES: RecordingType[];
4
+ export declare const RECORDING_TYPES: {
5
+ value: RecordingType;
6
+ label: string;
7
+ icon: React.ElementType;
8
+ }[];
9
+ export declare const MEETING_TYPES: {
10
+ value: MeetingFilter;
11
+ label: string;
12
+ }[];
@@ -0,0 +1,2 @@
1
+ declare const client: import("axios").AxiosInstance;
2
+ export default client;
@@ -0,0 +1,66 @@
1
+ export declare const label: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, string[], unknown, unknown, undefined>>;
2
+ export declare const button: import("tailwind-variants").TVReturnType<{
3
+ size: {
4
+ small: ("ny:text-sm" | "ny:h-8")[];
5
+ };
6
+ variant: {
7
+ primary: ("ny:outline-none" | "ny:bg-primary-500" | "ny:text-white" | "ny:border-primary-500" | "ny:hover:bg-primary-600" | "ny:hover:text-white" | "ny:shadow-md" | "ny:shadow-primary-100")[];
8
+ link: ("ny:cursor-pointer" | "ny:bg-transparent" | "ny:text-primary-500" | "ny:hover:text-primary-600" | "ny:border-none" | "ny:font-medium")[];
9
+ };
10
+ color: {
11
+ danger: ("ny:text-red-500" | "ny:hover:text-red-600")[];
12
+ };
13
+ active: {
14
+ true: ("ny:border-primary-500" | "ny:shadow-md" | "ny:shadow-primary-100" | "ny:text-primary-500" | "ny:bg-primary-50" | "ny:hover:bg-primary-100")[];
15
+ };
16
+ disabled: {
17
+ true: ("ny:hover:bg-gray-100" | "ny:border-gray-100" | "ny:text-gray-400" | "ny:bg-gray-100" | "ny:shadow-none" | "ny:cursor-not-allowed")[];
18
+ };
19
+ }, undefined, ("ny:text-sm" | "ny:border" | "ny:rounded-lg" | "ny:px-4" | "ny:border-gray-200" | "ny:text-gray-700" | "ny:hover:bg-gray-50" | "ny:transition-all" | "ny:duration-200" | "ny:transition-colors" | "ny:h-10" | "ny:flex" | "ny:items-center" | "ny:space-x-1" | "ny:hover:text-gray-900" | "ny:hover:bg-gray-100" | "ny:outline-none" | "ny:cursor-pointer")[], {
20
+ size: {
21
+ small: ("ny:text-sm" | "ny:h-8")[];
22
+ };
23
+ variant: {
24
+ primary: ("ny:outline-none" | "ny:bg-primary-500" | "ny:text-white" | "ny:border-primary-500" | "ny:hover:bg-primary-600" | "ny:hover:text-white" | "ny:shadow-md" | "ny:shadow-primary-100")[];
25
+ link: ("ny:cursor-pointer" | "ny:bg-transparent" | "ny:text-primary-500" | "ny:hover:text-primary-600" | "ny:border-none" | "ny:font-medium")[];
26
+ };
27
+ color: {
28
+ danger: ("ny:text-red-500" | "ny:hover:text-red-600")[];
29
+ };
30
+ active: {
31
+ true: ("ny:border-primary-500" | "ny:shadow-md" | "ny:shadow-primary-100" | "ny:text-primary-500" | "ny:bg-primary-50" | "ny:hover:bg-primary-100")[];
32
+ };
33
+ disabled: {
34
+ true: ("ny:hover:bg-gray-100" | "ny:border-gray-100" | "ny:text-gray-400" | "ny:bg-gray-100" | "ny:shadow-none" | "ny:cursor-not-allowed")[];
35
+ };
36
+ }, undefined, import("tailwind-variants").TVReturnType<{
37
+ size: {
38
+ small: ("ny:text-sm" | "ny:h-8")[];
39
+ };
40
+ variant: {
41
+ primary: ("ny:outline-none" | "ny:bg-primary-500" | "ny:text-white" | "ny:border-primary-500" | "ny:hover:bg-primary-600" | "ny:hover:text-white" | "ny:shadow-md" | "ny:shadow-primary-100")[];
42
+ link: ("ny:cursor-pointer" | "ny:bg-transparent" | "ny:text-primary-500" | "ny:hover:text-primary-600" | "ny:border-none" | "ny:font-medium")[];
43
+ };
44
+ color: {
45
+ danger: ("ny:text-red-500" | "ny:hover:text-red-600")[];
46
+ };
47
+ active: {
48
+ true: ("ny:border-primary-500" | "ny:shadow-md" | "ny:shadow-primary-100" | "ny:text-primary-500" | "ny:bg-primary-50" | "ny:hover:bg-primary-100")[];
49
+ };
50
+ disabled: {
51
+ true: ("ny:hover:bg-gray-100" | "ny:border-gray-100" | "ny:text-gray-400" | "ny:bg-gray-100" | "ny:shadow-none" | "ny:cursor-not-allowed")[];
52
+ };
53
+ }, undefined, ("ny:text-sm" | "ny:border" | "ny:rounded-lg" | "ny:px-4" | "ny:border-gray-200" | "ny:text-gray-700" | "ny:hover:bg-gray-50" | "ny:transition-all" | "ny:duration-200" | "ny:transition-colors" | "ny:h-10" | "ny:flex" | "ny:items-center" | "ny:space-x-1" | "ny:hover:text-gray-900" | "ny:hover:bg-gray-100" | "ny:outline-none" | "ny:cursor-pointer")[], unknown, unknown, undefined>>;
54
+ export declare const input: import("tailwind-variants").TVReturnType<{
55
+ disabled: {
56
+ true: ("ny:border-gray-200" | "ny:text-gray-400" | "ny:bg-gray-100" | "ny:cursor-not-allowed")[];
57
+ };
58
+ }, undefined, ("ny:text-sm" | "ny:block" | "ny:border" | "ny:rounded-lg" | "ny:px-4" | "ny:border-gray-200" | "ny:h-8" | "ny:focus:outline-primary-500" | "ny:w-full" | "ny:text-gray-900" | "ny:py-1")[], {
59
+ disabled: {
60
+ true: ("ny:border-gray-200" | "ny:text-gray-400" | "ny:bg-gray-100" | "ny:cursor-not-allowed")[];
61
+ };
62
+ }, undefined, import("tailwind-variants").TVReturnType<{
63
+ disabled: {
64
+ true: ("ny:border-gray-200" | "ny:text-gray-400" | "ny:bg-gray-100" | "ny:cursor-not-allowed")[];
65
+ };
66
+ }, undefined, ("ny:text-sm" | "ny:block" | "ny:border" | "ny:rounded-lg" | "ny:px-4" | "ny:border-gray-200" | "ny:h-8" | "ny:focus:outline-primary-500" | "ny:w-full" | "ny:text-gray-900" | "ny:py-1")[], unknown, unknown, undefined>>;
@@ -0,0 +1,7 @@
1
+ export interface ProviderStore {
2
+ apiUrl: string;
3
+ setApiUrl: (url: string) => void;
4
+ accessToken: string;
5
+ setAccessToken: (token: string) => void;
6
+ }
7
+ export declare const provider: import("zustand").UseBoundStore<import("zustand").StoreApi<ProviderStore>>;
@@ -0,0 +1,42 @@
1
+ export declare enum RecordingType {
2
+ Video = "video",
3
+ Audio = "audio",
4
+ Transcript = "transcript"
5
+ }
6
+ export declare enum MeetingFilter {
7
+ All = "all",
8
+ Internal = "internal",
9
+ External = "external",
10
+ MyMeetings = "my_meetings",
11
+ Participant = "participant"
12
+ }
13
+ export interface Notetaker {
14
+ id: string;
15
+ name: string;
16
+ meeting_link: string;
17
+ join_time: number;
18
+ meeting_settings: {
19
+ video_recording: boolean;
20
+ audio_recording: boolean;
21
+ transcription: boolean;
22
+ };
23
+ }
24
+ interface CalendarNotetaker extends Partial<Notetaker> {
25
+ rules?: {
26
+ event_selection?: MeetingFilter[];
27
+ };
28
+ }
29
+ export interface Calendar {
30
+ name: string;
31
+ timezone: string;
32
+ hex_color?: string;
33
+ hex_foreground_color?: string;
34
+ grant_id: string;
35
+ id: string;
36
+ object: "calendar";
37
+ is_primary: boolean;
38
+ read_only: boolean;
39
+ is_owned_by_user: boolean;
40
+ notetaker: CalendarNotetaker;
41
+ }
42
+ export {};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./index-f769bc2a.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-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:transparent;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:transparent}.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;background:var(--nylas-base-0)}.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.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)}componentDidLoad(){l.debug("multi-select-dropdown","componentDidLoad"),this.options&&(this.availableOptions=this.options)}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="Please select at least one option"),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:"d0b2dba51e53ebd85e26eb55798f868e78353c9b"},l.h("div",{key:"734ddac426729d6428ba7876b4fce2af038c8693",class:"dropdown",part:"msd_dropdown"},l.h("label",{key:"f59ac5c52d91b4f3c1250e2294517e543e04e2e3",class:"dropdown-label",part:"msd_dropdown-label"},l.h("p",{key:"35d11a9d8a07e6e6dc47a3be18687a2296ec3364"},l.h("span",{key:"6a5f3510cff852df33adea9dadf138f7bea6c5c8",class:"label"},this.label),this.required&&l.h("span",{class:"required"},"*")),l.h("slot",{key:"7e2547b4767fe67f752cae7ffd0ba5e776455c8c",name:"label-icon","aria-hidden":"true"})),l.h("button",{key:"24579f516264491ac90cf72d32f256107000c0b7",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:"e50db39a7e6d2e31605ce2377f99c36da5e847b5",name:"select-icon","aria-hidden":"true"}),l.h("span",{key:"a7f18b098f7bc573e91ef9e5b2348ff8de95c13a",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:"f2b00f9e55299d48161910627a7d6f5a646f5a44",class:this.isOpen?"open":"closed","aria-hidden":"true"},l.h("chevron-icon",{key:"6d1a184975ac00bbbe79632eda290590a2f2744d",width:"16",height:"16"}))),this.error?l.h("span",{class:"error",part:"msd_dropdown_error"},this.error):null,l.h("div",{key:"34cfb8ded6c549a7d8b0ce38c0093cc94a7aa2a3",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"]}}};i.style=c;exports.multi_select_dropdown=i;
@@ -0,0 +1,121 @@
1
+ import { r as d, a as c, b as i, h as s, H as p, g as b } from "./index-71f61ea9.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-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:transparent;border:1px solid var(--nylas-base-200);border-radius:var(--nylas-border-radius-2x)}.dropbtn.focus{background:transparent}.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;background:var(--nylas-base-0)}.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)}', y = f, h = 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.availableOptions = this.options, this.isOpen = !1, this.ariaActivedescendant = "", this.shouldFocusFirstOption = !1;
8
+ }
9
+ areOptionsEqual(e, l) {
10
+ if (e.length !== l.length)
11
+ return !1;
12
+ const a = [...e].sort((o, n) => o.label.localeCompare(n.label) || o.value.localeCompare(n.value)), t = [...l].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
+ componentDidLoad() {
22
+ i("multi-select-dropdown", "componentDidLoad"), this.options && (this.availableOptions = this.options);
23
+ }
24
+ componentDidRender() {
25
+ var e;
26
+ 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);
27
+ }
28
+ handleOutsideClick(e) {
29
+ !e.composedPath().includes(this.el) && this.isOpen && (this.isOpen = !1);
30
+ }
31
+ handleBookingFormSubmitted(e) {
32
+ const l = this.availableOptions.filter((a) => a.selected).map((a) => a.value);
33
+ this.required && (!l || l.length <= 0) && (this.error = "Please select at least one option"), this.error && e.preventDefault();
34
+ }
35
+ selectOption(e) {
36
+ this.availableOptions = this.availableOptions.map((a) => (a.value === e.value && (a.selected = !e.selected, a.selected && (this.error = "")), a));
37
+ const l = this.availableOptions.filter((a) => a.selected).map((a) => a.value);
38
+ this.selectedOptionsChanged.emit({
39
+ value: l,
40
+ name: this.name
41
+ });
42
+ }
43
+ toggleDropdown() {
44
+ this.isOpen = !this.isOpen, this.isOpen ? this.shouldFocusFirstOption = !0 : this.ariaActivedescendant = "";
45
+ }
46
+ handleSelectButtonKeyDown(e) {
47
+ switch (e.key) {
48
+ case "ArrowDown":
49
+ case "Enter":
50
+ e.preventDefault(), this.isOpen || this.toggleDropdown();
51
+ break;
52
+ case "Escape":
53
+ this.isOpen = !1;
54
+ break;
55
+ }
56
+ }
57
+ handleListboxKeydown(e) {
58
+ const l = this.availableOptions, a = l.findIndex((t) => t.value === this.ariaActivedescendant);
59
+ switch (e.key) {
60
+ case "ArrowDown":
61
+ case "Tab": {
62
+ if (e.shiftKey) {
63
+ e.preventDefault();
64
+ const t = a - 1 >= 0 ? a - 1 : l.length - 1;
65
+ this.ariaActivedescendant = l[t].value, this.focusOption(t);
66
+ } else {
67
+ e.preventDefault();
68
+ const t = a + 1 < l.length ? a + 1 : 0;
69
+ this.ariaActivedescendant = l[t].value, this.focusOption(t);
70
+ }
71
+ break;
72
+ }
73
+ case "ArrowUp": {
74
+ e.preventDefault();
75
+ const t = a - 1 >= 0 ? a - 1 : l.length - 1;
76
+ this.ariaActivedescendant = l[t].value, this.focusOption(t);
77
+ break;
78
+ }
79
+ case "Enter": {
80
+ e.preventDefault(), this.ariaActivedescendant && this.selectOption(l[a]);
81
+ break;
82
+ }
83
+ case "Escape": {
84
+ this.isOpen = !1;
85
+ break;
86
+ }
87
+ }
88
+ }
89
+ focusOption(e) {
90
+ var o;
91
+ const l = this.availableOptions[e];
92
+ if (!l)
93
+ return;
94
+ const a = l.value, t = (o = this.el.shadowRoot) == null ? void 0 : o.getElementById(a);
95
+ t && (t.focus(), t.scrollIntoView({ behavior: "smooth", block: "nearest" }));
96
+ }
97
+ getSelectedOptions() {
98
+ return this.availableOptions.filter((e) => e.selected);
99
+ }
100
+ renderOption(e) {
101
+ return s("li", { key: e.value, id: e.value, role: "option", tabindex: "0", "aria-selected": e.selected ? "true" : "false", onClick: (l) => {
102
+ l.stopImmediatePropagation(), e != null && e.disabled || this.selectOption(e);
103
+ }, class: { selected: !!e.selected, disabled: !!e.disabled } }, s("label", { htmlFor: e.value }, s("input", { "aria-hidden": "true", id: e.value, type: "checkbox", checked: e.selected, disabled: !!(e != null && e.disabled) }), s("span", null, e.label)));
104
+ }
105
+ render() {
106
+ var e, l;
107
+ return s(p, { key: "d0b2dba51e53ebd85e26eb55798f868e78353c9b" }, s("div", { key: "734ddac426729d6428ba7876b4fce2af038c8693", class: "dropdown", part: "msd_dropdown" }, s("label", { key: "f59ac5c52d91b4f3c1250e2294517e543e04e2e3", class: "dropdown-label", part: "msd_dropdown-label" }, s("p", { key: "35d11a9d8a07e6e6dc47a3be18687a2296ec3364" }, s("span", { key: "6a5f3510cff852df33adea9dadf138f7bea6c5c8", class: "label" }, this.label), this.required && s("span", { class: "required" }, "*")), s("slot", { key: "7e2547b4767fe67f752cae7ffd0ba5e776455c8c", name: "label-icon", "aria-hidden": "true" })), s("button", { key: "24579f516264491ac90cf72d32f256107000c0b7", 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) }, s("slot", { key: "e50db39a7e6d2e31605ce2377f99c36da5e847b5", name: "select-icon", "aria-hidden": "true" }), s("span", { key: "a7f18b098f7bc573e91ef9e5b2348ff8de95c13a", 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 ?? ((l = this.availableOptions[0]) == null ? void 0 : l.label)), s("span", { key: "f2b00f9e55299d48161910627a7d6f5a646f5a44", class: this.isOpen ? "open" : "closed", "aria-hidden": "true" }, s("chevron-icon", { key: "6d1a184975ac00bbbe79632eda290590a2f2744d", width: "16", height: "16" }))), this.error ? s("span", { class: "error", part: "msd_dropdown_error" }, this.error) : null, s("div", { key: "34cfb8ded6c549a7d8b0ce38c0093cc94a7aa2a3", class: "selected-options" }, this.getSelectedOptions().map((a) => s("span", { class: "selected-option" }, a.label, s("button", { disabled: this.readOnly || !!(a != null && a.disabled), key: a.label, onClick: () => this.selectOption(a) }, s("close-icon", null))))), this.isOpen ? s("div", { class: "dropdown-content", part: "msd_dropdown-content" }, s("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));
108
+ }
109
+ get el() {
110
+ return b(this);
111
+ }
112
+ static get watchers() {
113
+ return {
114
+ options: ["optionsChangedHandler"]
115
+ };
116
+ }
117
+ };
118
+ h.style = y;
119
+ export {
120
+ h as multi_select_dropdown
121
+ };