@joewinke/jatui 0.1.25 → 0.1.26

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 (242) hide show
  1. package/dist/actions/collapse.d.ts +80 -0
  2. package/dist/actions/collapse.js +134 -0
  3. package/dist/actions/railNav.d.ts +167 -0
  4. package/dist/actions/railNav.js +351 -0
  5. package/dist/components/AnnotationLayer.svelte +108 -0
  6. package/dist/components/AnnotationLayer.svelte.d.ts +12 -0
  7. package/dist/components/AnnotationPanel.svelte +319 -0
  8. package/dist/components/AnnotationPanel.svelte.d.ts +13 -0
  9. package/dist/components/AudioWaveform.svelte +701 -0
  10. package/dist/components/AudioWaveform.svelte.d.ts +19 -0
  11. package/dist/components/AvailabilityModal.svelte +177 -0
  12. package/dist/components/AvailabilityModal.svelte.d.ts +14 -0
  13. package/dist/components/AvatarUpload.svelte +234 -0
  14. package/dist/components/AvatarUpload.svelte.d.ts +23 -0
  15. package/dist/components/Badge.svelte +38 -0
  16. package/dist/components/Badge.svelte.d.ts +14 -0
  17. package/dist/components/BookingForm.svelte +278 -0
  18. package/dist/components/BookingForm.svelte.d.ts +37 -0
  19. package/dist/components/BurndownChart.svelte +778 -0
  20. package/dist/components/BurndownChart.svelte.d.ts +17 -0
  21. package/dist/components/Button.svelte +81 -0
  22. package/dist/components/Button.svelte.d.ts +21 -0
  23. package/dist/components/CalendarPicker.svelte +284 -0
  24. package/dist/components/CalendarPicker.svelte.d.ts +22 -0
  25. package/dist/components/Card.svelte +67 -0
  26. package/dist/components/Card.svelte.d.ts +17 -0
  27. package/dist/components/CharacterCounter.svelte +82 -0
  28. package/dist/components/CharacterCounter.svelte.d.ts +10 -0
  29. package/dist/components/ChipInput.svelte +609 -0
  30. package/dist/components/ChipInput.svelte.d.ts +55 -0
  31. package/dist/components/Collapse.svelte +91 -0
  32. package/dist/components/Collapse.svelte.d.ts +18 -0
  33. package/dist/components/ColorSelector.svelte +167 -0
  34. package/dist/components/ColorSelector.svelte.d.ts +9 -0
  35. package/dist/components/CommentThread.svelte +773 -0
  36. package/dist/components/CommentThread.svelte.d.ts +32 -0
  37. package/dist/components/ConfirmDialog.svelte +348 -0
  38. package/dist/components/ConfirmDialog.svelte.d.ts +3 -0
  39. package/dist/components/ConfirmModal.svelte +142 -0
  40. package/dist/components/ConfirmModal.svelte.d.ts +15 -0
  41. package/dist/components/ContextMenu.svelte +188 -0
  42. package/dist/components/ContextMenu.svelte.d.ts +31 -0
  43. package/dist/components/CountdownTimer.svelte +94 -0
  44. package/dist/components/CountdownTimer.svelte.d.ts +10 -0
  45. package/dist/components/DateRangePicker.svelte +194 -0
  46. package/dist/components/DateRangePicker.svelte.d.ts +10 -0
  47. package/dist/components/Drawer.svelte +143 -0
  48. package/dist/components/Drawer.svelte.d.ts +33 -0
  49. package/dist/components/EmojiPicker.svelte +159 -0
  50. package/dist/components/EmojiPicker.svelte.d.ts +8 -0
  51. package/dist/components/EntityPreviewCard.svelte +104 -0
  52. package/dist/components/EntityPreviewCard.svelte.d.ts +9 -0
  53. package/dist/components/FileDropzone.svelte +493 -0
  54. package/dist/components/FileDropzone.svelte.d.ts +40 -0
  55. package/dist/components/FilePicker.svelte +488 -0
  56. package/dist/components/FilePicker.svelte.d.ts +20 -0
  57. package/dist/components/FileThumbnail.svelte +80 -0
  58. package/dist/components/FileThumbnail.svelte.d.ts +12 -0
  59. package/dist/components/FilterDropdown.svelte +203 -0
  60. package/dist/components/FilterDropdown.svelte.d.ts +48 -0
  61. package/dist/components/FloatingActionBar.svelte +354 -0
  62. package/dist/components/FloatingActionBar.svelte.d.ts +51 -0
  63. package/dist/components/GPSTracker.svelte +202 -0
  64. package/dist/components/GPSTracker.svelte.d.ts +34 -0
  65. package/dist/components/HunkDiffView.svelte +348 -0
  66. package/dist/components/HunkDiffView.svelte.d.ts +9 -0
  67. package/dist/components/ImageLightbox.svelte +274 -0
  68. package/dist/components/ImageLightbox.svelte.d.ts +25 -0
  69. package/dist/components/ImageUpload.svelte +147 -0
  70. package/dist/components/ImageUpload.svelte.d.ts +10 -0
  71. package/dist/components/InlineEdit.svelte +291 -0
  72. package/dist/components/InlineEdit.svelte.d.ts +45 -0
  73. package/dist/components/InputDialog.svelte +327 -0
  74. package/dist/components/InputDialog.svelte.d.ts +3 -0
  75. package/dist/components/KeyboardShortcutsOverlay.svelte +296 -0
  76. package/dist/components/KeyboardShortcutsOverlay.svelte.d.ts +42 -0
  77. package/dist/components/LazyImage.svelte +123 -0
  78. package/dist/components/LazyImage.svelte.d.ts +14 -0
  79. package/dist/components/LinkShortener.svelte +274 -0
  80. package/dist/components/LinkShortener.svelte.d.ts +27 -0
  81. package/dist/components/LoadingSpinner.svelte +106 -0
  82. package/dist/components/LoadingSpinner.svelte.d.ts +21 -0
  83. package/dist/components/LocationMap.svelte +186 -0
  84. package/dist/components/LocationMap.svelte.d.ts +11 -0
  85. package/dist/components/MapView.svelte +341 -0
  86. package/dist/components/MapView.svelte.d.ts +20 -0
  87. package/dist/components/MarkupEditor.svelte +485 -0
  88. package/dist/components/MarkupEditor.svelte.d.ts +10 -0
  89. package/dist/components/MarkupOverlay.svelte +55 -0
  90. package/dist/components/MarkupOverlay.svelte.d.ts +8 -0
  91. package/dist/components/MediaWorkbench.svelte +871 -0
  92. package/dist/components/MediaWorkbench.svelte.d.ts +9 -0
  93. package/dist/components/MilestoneCard.svelte +98 -0
  94. package/dist/components/MilestoneCard.svelte.d.ts +16 -0
  95. package/dist/components/MilestoneTimeline.svelte +91 -0
  96. package/dist/components/MilestoneTimeline.svelte.d.ts +15 -0
  97. package/dist/components/Modal.svelte +244 -0
  98. package/dist/components/Modal.svelte.d.ts +35 -0
  99. package/dist/components/PDFViewer.svelte +105 -0
  100. package/dist/components/PDFViewer.svelte.d.ts +9 -0
  101. package/dist/components/PdfThumbnail.svelte +63 -0
  102. package/dist/components/PdfThumbnail.svelte.d.ts +9 -0
  103. package/dist/components/PhoneInput.svelte +212 -0
  104. package/dist/components/PhoneInput.svelte.d.ts +25 -0
  105. package/dist/components/ResizableDivider.svelte +307 -0
  106. package/dist/components/ResizableDivider.svelte.d.ts +26 -0
  107. package/dist/components/ResizablePanel.svelte +305 -0
  108. package/dist/components/ResizablePanel.svelte.d.ts +18 -0
  109. package/dist/components/SearchDropdown.svelte +421 -0
  110. package/dist/components/SearchDropdown.svelte.d.ts +24 -0
  111. package/dist/components/SelectInput.svelte +237 -0
  112. package/dist/components/SelectInput.svelte.d.ts +26 -0
  113. package/dist/components/SidebarUserFooter.svelte +34 -0
  114. package/dist/components/SidebarUserFooter.svelte.d.ts +16 -0
  115. package/dist/components/SignaturePad.svelte +175 -0
  116. package/dist/components/SignaturePad.svelte.d.ts +17 -0
  117. package/dist/components/SmartImageEditor.svelte +720 -0
  118. package/dist/components/SmartImageEditor.svelte.d.ts +24 -0
  119. package/dist/components/SortDropdown.svelte +156 -0
  120. package/dist/components/SortDropdown.svelte.d.ts +40 -0
  121. package/dist/components/Sparkline.svelte +116 -0
  122. package/dist/components/Sparkline.svelte.d.ts +12 -0
  123. package/dist/components/SpeechForm.svelte +114 -0
  124. package/dist/components/SpeechForm.svelte.d.ts +17 -0
  125. package/dist/components/StatusBadge.svelte +157 -0
  126. package/dist/components/StatusBadge.svelte.d.ts +24 -0
  127. package/dist/components/TaskTypeIcon.svelte +54 -0
  128. package/dist/components/TaskTypeIcon.svelte.d.ts +17 -0
  129. package/dist/components/TextArea.svelte +162 -0
  130. package/dist/components/TextArea.svelte.d.ts +30 -0
  131. package/dist/components/TextInput.svelte +131 -0
  132. package/dist/components/TextInput.svelte.d.ts +29 -0
  133. package/dist/components/ThemeSelector.svelte +206 -0
  134. package/dist/components/ThemeSelector.svelte.d.ts +14 -0
  135. package/dist/components/TimeSlotPicker.svelte +162 -0
  136. package/dist/components/TimeSlotPicker.svelte.d.ts +18 -0
  137. package/dist/components/UserAvatar.svelte +72 -0
  138. package/dist/components/UserAvatar.svelte.d.ts +11 -0
  139. package/dist/components/VariablePicker.svelte +170 -0
  140. package/dist/components/VariablePicker.svelte.d.ts +40 -0
  141. package/dist/components/VoicePlayer.svelte +422 -0
  142. package/dist/components/VoicePlayer.svelte.d.ts +18 -0
  143. package/dist/components/linked-columns/LinkedColumns.svelte +526 -0
  144. package/dist/components/linked-columns/LinkedColumns.svelte.d.ts +130 -0
  145. package/dist/components/markup.d.ts +47 -0
  146. package/dist/components/markup.js +201 -0
  147. package/dist/components/messaging/Avatar.svelte +81 -0
  148. package/dist/components/messaging/Avatar.svelte.d.ts +11 -0
  149. package/dist/components/messaging/ChannelInfoModal.svelte +163 -0
  150. package/dist/components/messaging/ChannelInfoModal.svelte.d.ts +18 -0
  151. package/dist/components/messaging/ChannelList.svelte +107 -0
  152. package/dist/components/messaging/ChannelList.svelte.d.ts +11 -0
  153. package/dist/components/messaging/ChannelMemberAvatarStack.svelte +69 -0
  154. package/dist/components/messaging/ChannelMemberAvatarStack.svelte.d.ts +11 -0
  155. package/dist/components/messaging/ChannelMembersModal.svelte +182 -0
  156. package/dist/components/messaging/ChannelMembersModal.svelte.d.ts +16 -0
  157. package/dist/components/messaging/CreateChannelModal.svelte +190 -0
  158. package/dist/components/messaging/CreateChannelModal.svelte.d.ts +14 -0
  159. package/dist/components/messaging/DirectMessageList.svelte +145 -0
  160. package/dist/components/messaging/DirectMessageList.svelte.d.ts +12 -0
  161. package/dist/components/messaging/EmojiSelector.svelte +261 -0
  162. package/dist/components/messaging/EmojiSelector.svelte.d.ts +19 -0
  163. package/dist/components/messaging/MentionAutocomplete.svelte +193 -0
  164. package/dist/components/messaging/MentionAutocomplete.svelte.d.ts +17 -0
  165. package/dist/components/messaging/MessageAttachment.svelte +273 -0
  166. package/dist/components/messaging/MessageAttachment.svelte.d.ts +13 -0
  167. package/dist/components/messaging/MessageAttachmentUpload.svelte +243 -0
  168. package/dist/components/messaging/MessageAttachmentUpload.svelte.d.ts +19 -0
  169. package/dist/components/messaging/MessageInput.svelte +452 -0
  170. package/dist/components/messaging/MessageInput.svelte.d.ts +28 -0
  171. package/dist/components/messaging/MessageItem.svelte +341 -0
  172. package/dist/components/messaging/MessageItem.svelte.d.ts +41 -0
  173. package/dist/components/messaging/MessageThread.svelte +306 -0
  174. package/dist/components/messaging/MessageThread.svelte.d.ts +30 -0
  175. package/dist/components/messaging/NotificationSettingsModal.svelte +234 -0
  176. package/dist/components/messaging/NotificationSettingsModal.svelte.d.ts +13 -0
  177. package/dist/components/messaging/QuotedMessageDisplay.svelte +123 -0
  178. package/dist/components/messaging/QuotedMessageDisplay.svelte.d.ts +10 -0
  179. package/dist/components/messaging/StartDMModal.svelte +100 -0
  180. package/dist/components/messaging/StartDMModal.svelte.d.ts +14 -0
  181. package/dist/components/messaging/ThreadPanel.svelte +153 -0
  182. package/dist/components/messaging/ThreadPanel.svelte.d.ts +16 -0
  183. package/dist/components/pipeline/DESIGN.md +361 -0
  184. package/dist/components/pipeline/Pipeline.svelte +391 -0
  185. package/dist/components/pipeline/Pipeline.svelte.d.ts +28 -0
  186. package/dist/components/pipeline/PipelineCard.svelte +94 -0
  187. package/dist/components/pipeline/PipelineCard.svelte.d.ts +13 -0
  188. package/dist/components/pipeline/PipelineColumn.svelte +163 -0
  189. package/dist/components/pipeline/PipelineColumn.svelte.d.ts +30 -0
  190. package/dist/components/replay/ChapterTimeline.svelte +326 -0
  191. package/dist/components/replay/ChapterTimeline.svelte.d.ts +39 -0
  192. package/dist/components/session-nav/transcriptModel.d.ts +132 -0
  193. package/dist/components/session-nav/transcriptModel.js +285 -0
  194. package/dist/data/emojis.d.ts +18 -0
  195. package/dist/data/emojis.js +1196 -0
  196. package/dist/index.d.ts +142 -0
  197. package/dist/index.js +142 -0
  198. package/dist/stores/confirmDialog.svelte.d.ts +21 -0
  199. package/dist/stores/confirmDialog.svelte.js +31 -0
  200. package/dist/stores/inputDialog.svelte.d.ts +24 -0
  201. package/dist/stores/inputDialog.svelte.js +32 -0
  202. package/dist/styles/rail.css +63 -0
  203. package/dist/types/annotation.d.ts +32 -0
  204. package/dist/types/annotation.js +3 -0
  205. package/dist/types/booking.d.ts +115 -0
  206. package/dist/types/booking.js +24 -0
  207. package/dist/types/comments.d.ts +65 -0
  208. package/dist/types/comments.js +22 -0
  209. package/dist/types/entityPreview.d.ts +42 -0
  210. package/dist/types/entityPreview.js +10 -0
  211. package/dist/types/filePicker.d.ts +15 -0
  212. package/dist/types/filePicker.js +1 -0
  213. package/dist/types/googleMaps.d.ts +51 -0
  214. package/dist/types/maps.d.ts +43 -0
  215. package/dist/types/maps.js +4 -0
  216. package/dist/types/messaging.d.ts +282 -0
  217. package/dist/types/messaging.js +100 -0
  218. package/dist/types/milestone.d.ts +20 -0
  219. package/dist/types/milestone.js +7 -0
  220. package/dist/types/pipeline.d.ts +115 -0
  221. package/dist/types/pipeline.js +15 -0
  222. package/dist/types/smartImageEditor.d.ts +42 -0
  223. package/dist/types/smartImageEditor.js +1 -0
  224. package/dist/types/templateVars.d.ts +34 -0
  225. package/dist/types/templateVars.js +12 -0
  226. package/dist/utils/currency.d.ts +8 -0
  227. package/dist/utils/currency.js +17 -0
  228. package/dist/utils/daisyuiColors.d.ts +37 -0
  229. package/dist/utils/daisyuiColors.js +152 -0
  230. package/dist/utils/dateFormatters.d.ts +69 -0
  231. package/dist/utils/dateFormatters.js +199 -0
  232. package/dist/utils/googleMapsLoader.d.ts +19 -0
  233. package/dist/utils/googleMapsLoader.js +121 -0
  234. package/dist/utils/mentionParser.d.ts +67 -0
  235. package/dist/utils/mentionParser.js +132 -0
  236. package/dist/utils/phone.d.ts +13 -0
  237. package/dist/utils/phone.js +67 -0
  238. package/dist/utils/phoneFormat.d.ts +26 -0
  239. package/dist/utils/phoneFormat.js +69 -0
  240. package/dist/utils/taskUtils.d.ts +37 -0
  241. package/dist/utils/taskUtils.js +71 -0
  242. package/package.json +3 -2
@@ -0,0 +1,142 @@
1
+ export { railNav, createRailNav, cycle } from './actions/railNav';
2
+ export type { RailNavOptions, RailNavController } from './actions/railNav';
3
+ export { collapse } from './actions/collapse';
4
+ export type { CollapseOptions } from './actions/collapse';
5
+ export { default as Collapse } from './components/Collapse.svelte';
6
+ export { default as LinkedColumns } from './components/linked-columns/LinkedColumns.svelte';
7
+ export type { ColumnLink } from './components/linked-columns/LinkedColumns.svelte';
8
+ export { default as ChapterTimeline } from './components/replay/ChapterTimeline.svelte';
9
+ export type { ChapterBlock } from './components/replay/ChapterTimeline.svelte';
10
+ export { buildLinkedSession, buildLinkedSessionFromWork, rawTypeToState, sampleLinkedSession, SAMPLE_TRANSCRIPT_LINES, } from './components/session-nav/transcriptModel';
11
+ export type { ItemKind, TranscriptItem, FileTouchedEntry, SignalNode, LinkedSession, WorkBlockClient, WorkTranscriptItemClient, } from './components/session-nav/transcriptModel';
12
+ export { default as UserAvatar } from './components/UserAvatar.svelte';
13
+ export { default as SidebarUserFooter } from './components/SidebarUserFooter.svelte';
14
+ export { default as TaskTypeIcon } from './components/TaskTypeIcon.svelte';
15
+ export { default as ConfirmDialog } from './components/ConfirmDialog.svelte';
16
+ export { showConfirm, confirmDialog, cancelDialog, getPending } from './stores/confirmDialog.svelte';
17
+ export type { ConfirmOptions } from './stores/confirmDialog.svelte';
18
+ export { default as InputDialog } from './components/InputDialog.svelte';
19
+ export { showInput, submitInput, cancelInput, getPendingInput } from './stores/inputDialog.svelte';
20
+ export type { InputOptions } from './stores/inputDialog.svelte';
21
+ export { default as SearchDropdown } from './components/SearchDropdown.svelte';
22
+ export { default as FilterDropdown } from './components/FilterDropdown.svelte';
23
+ export { default as ContextMenu } from './components/ContextMenu.svelte';
24
+ export { default as ChipInput } from './components/ChipInput.svelte';
25
+ export { default as ResizableDivider } from './components/ResizableDivider.svelte';
26
+ export { default as DateRangePicker } from './components/DateRangePicker.svelte';
27
+ export { default as SortDropdown } from './components/SortDropdown.svelte';
28
+ export { default as InlineEdit } from './components/InlineEdit.svelte';
29
+ export { default as FloatingActionBar } from './components/FloatingActionBar.svelte';
30
+ export { default as HunkDiffView } from './components/HunkDiffView.svelte';
31
+ export { default as Button } from './components/Button.svelte';
32
+ export { default as Badge } from './components/Badge.svelte';
33
+ export { default as Card } from './components/Card.svelte';
34
+ export { default as Drawer } from './components/Drawer.svelte';
35
+ export { default as Modal } from './components/Modal.svelte';
36
+ export { default as LoadingSpinner } from './components/LoadingSpinner.svelte';
37
+ export { default as StatusBadge } from './components/StatusBadge.svelte';
38
+ export { default as TextInput } from './components/TextInput.svelte';
39
+ export { default as TextArea } from './components/TextArea.svelte';
40
+ export { default as SelectInput } from './components/SelectInput.svelte';
41
+ export { default as PhoneInput } from './components/PhoneInput.svelte';
42
+ export { default as AudioWaveform } from './components/AudioWaveform.svelte';
43
+ export { default as CharacterCounter } from './components/CharacterCounter.svelte';
44
+ export { default as ColorSelector } from './components/ColorSelector.svelte';
45
+ export { default as ConfirmModal } from './components/ConfirmModal.svelte';
46
+ export { default as CountdownTimer } from './components/CountdownTimer.svelte';
47
+ export { default as ImageUpload } from './components/ImageUpload.svelte';
48
+ export { default as SmartImageEditor } from './components/SmartImageEditor.svelte';
49
+ export { default as LazyImage } from './components/LazyImage.svelte';
50
+ export { default as ResizablePanel } from './components/ResizablePanel.svelte';
51
+ export { default as VoicePlayer } from './components/VoicePlayer.svelte';
52
+ export { default as SpeechForm } from './components/SpeechForm.svelte';
53
+ export { default as ThemeSelector } from './components/ThemeSelector.svelte';
54
+ export { default as Sparkline } from './components/Sparkline.svelte';
55
+ export { default as BurndownChart } from './components/BurndownChart.svelte';
56
+ export { default as AvatarUpload } from './components/AvatarUpload.svelte';
57
+ export { default as PdfThumbnail } from './components/PdfThumbnail.svelte';
58
+ export { default as FilePicker } from './components/FilePicker.svelte';
59
+ export { default as FileDropzone } from './components/FileDropzone.svelte';
60
+ export { default as FileThumbnail } from './components/FileThumbnail.svelte';
61
+ export { default as EntityPreviewCard } from './components/EntityPreviewCard.svelte';
62
+ export type { EntityPreviewData, EntityPreviewStat, EntityPreviewBadge } from './types/entityPreview';
63
+ export type { FilePickerFile, FilePickerSelection } from './types/filePicker';
64
+ export type { FileDropzoneFile } from './components/FileDropzone.svelte';
65
+ export { default as VariablePicker } from './components/VariablePicker.svelte';
66
+ export type { TemplateVar, TemplateVarGroup } from './types/templateVars';
67
+ export { default as EmojiPicker } from './components/EmojiPicker.svelte';
68
+ export { EMOJI_DATA, ALL_EMOJIS, searchEmojis } from './data/emojis';
69
+ export type { EmojiEntry, EmojiGroup } from './data/emojis';
70
+ export { default as LinkShortener } from './components/LinkShortener.svelte';
71
+ export { default as MediaWorkbench } from './components/MediaWorkbench.svelte';
72
+ export { default as SignaturePad } from './components/SignaturePad.svelte';
73
+ export { default as MilestoneCard } from './components/MilestoneCard.svelte';
74
+ export { default as MilestoneTimeline } from './components/MilestoneTimeline.svelte';
75
+ export { default as TimeSlotPicker } from './components/TimeSlotPicker.svelte';
76
+ export { default as CalendarPicker } from './components/CalendarPicker.svelte';
77
+ export { default as AvailabilityModal } from './components/AvailabilityModal.svelte';
78
+ export { default as BookingForm } from './components/BookingForm.svelte';
79
+ export type { ShortenedLink } from './components/LinkShortener.svelte';
80
+ export type { SearchDropdownOption, SearchDropdownGroup } from './components/SearchDropdown.svelte';
81
+ export type { ChipSuggestion, SuggestionGroup, ChipInfo } from './components/ChipInput.svelte';
82
+ export type { SortOption } from './components/SortDropdown.svelte';
83
+ export type { ContextMenuItem } from './components/ContextMenu.svelte';
84
+ export type { DisplaySegment } from './components/InlineEdit.svelte';
85
+ export type { ActionButton, ActionDropdown, DropdownItem } from './components/FloatingActionBar.svelte';
86
+ export type { SelectOption } from './components/SelectInput.svelte';
87
+ export type { StatusValue } from './components/StatusBadge.svelte';
88
+ export type { Milestone, MilestoneStatus } from './types/milestone';
89
+ export type { LocationType, BookingStatus, OverrideType, Host, EventType, WeeklyAvailability, DateOverride, Booking, BookingAttendee, TimeSlot, BookingFormData, AvailabilityCounts } from './types/booking';
90
+ export { DAYS_OF_WEEK, DAYS_SHORT, LOCATION_LABELS, LOCATION_ICONS } from './types/booking';
91
+ export type { ImageVariantSpec, ImageProcessingSpec, VariantResult, VariantState, } from './types/smartImageEditor';
92
+ export { normalizeTimestamp, parseTimestamp, formatRelativeTime, formatFullDate, formatShortDate, formatLastActivity, formatDate, getTimeSinceMs, getTimeSinceMinutes, isWithinMinutes, formatDateTime, taskAge, } from './utils/dateFormatters';
93
+ export { statusColor, priorityColor, typeIcon, statusLabel, } from './utils/taskUtils';
94
+ export { stripPhoneNumber, formatPhoneNumber, isCompletePhoneNumber, isValidPhoneNumber, updatePhoneInput } from './utils/phoneFormat';
95
+ export { toE164, formatPhoneForDisplay, isValidPhone, listCountries, DEFAULT_COUNTRY, PRIORITY_COUNTRIES, type CountryOption, } from './utils/phone';
96
+ export { formatCurrency } from './utils/currency';
97
+ export { getDaisyUIColor, lightenColor, darkenColor, watchThemeChanges, isDarkTheme, getCurrentTheme, clearColorCache } from './utils/daisyuiColors';
98
+ export { default as Avatar } from './components/messaging/Avatar.svelte';
99
+ export { default as ChannelList } from './components/messaging/ChannelList.svelte';
100
+ export { default as ChannelMemberAvatarStack } from './components/messaging/ChannelMemberAvatarStack.svelte';
101
+ export { default as DirectMessageList } from './components/messaging/DirectMessageList.svelte';
102
+ export { default as EmojiSelector } from './components/messaging/EmojiSelector.svelte';
103
+ export { default as MentionAutocomplete } from './components/messaging/MentionAutocomplete.svelte';
104
+ export { default as MessageAttachment } from './components/messaging/MessageAttachment.svelte';
105
+ export { default as MessageAttachmentUpload } from './components/messaging/MessageAttachmentUpload.svelte';
106
+ export { default as MessageInput } from './components/messaging/MessageInput.svelte';
107
+ export { default as MessageItem } from './components/messaging/MessageItem.svelte';
108
+ export { default as MessageThread } from './components/messaging/MessageThread.svelte';
109
+ export { default as QuotedMessageDisplay } from './components/messaging/QuotedMessageDisplay.svelte';
110
+ export { default as ThreadPanel } from './components/messaging/ThreadPanel.svelte';
111
+ export { default as CreateChannelModal } from './components/messaging/CreateChannelModal.svelte';
112
+ export { default as StartDMModal } from './components/messaging/StartDMModal.svelte';
113
+ export { default as ChannelInfoModal } from './components/messaging/ChannelInfoModal.svelte';
114
+ export { default as ChannelMembersModal } from './components/messaging/ChannelMembersModal.svelte';
115
+ export { default as NotificationSettingsModal } from './components/messaging/NotificationSettingsModal.svelte';
116
+ export type { Message, QuotedMessage, MessageAttachment as MessageAttachmentType, PendingAttachment, Channel, ChannelMember, DirectConversation, OrgMember, EmojiCategory, SkinTone, StandardEmoji, CustomEmoji, EmojiReaction, ReactionSummary, EmojiSelection, EmojiPreferences, EmojiCategoryInfo, SkinToneInfo, MentionItem, NotificationPreferences, PresenceState, MessageCallbacks, ReactionCallbacks, AttachmentCallbacks, MentionCallbacks, EmojiCallbacks, ChannelCallbacks, ThreadCallbacks, NotificationCallbacks } from './types/messaging';
117
+ export { EMOJI_CATEGORIES, SKIN_TONES, DEFAULT_QUICK_REACTIONS } from './types/messaging';
118
+ export { default as Pipeline } from './components/pipeline/Pipeline.svelte';
119
+ export { default as PipelineColumn } from './components/pipeline/PipelineColumn.svelte';
120
+ export { default as PipelineCard } from './components/pipeline/PipelineCard.svelte';
121
+ export type { PipelineStage, StageColors, PipelineItem, PipelineMetric, StageMetrics, PipelineViewMode, PipelineTableColumn, PipelineDragConfig, PipelineConfig, PipelineStageChangeEvent, PipelineItemClickEvent } from './types/pipeline';
122
+ export { DEFAULT_DRAG_CONFIG, DEFAULT_PIPELINE_CONFIG } from './types/pipeline';
123
+ export { parseMentions, renderMentionsAsHTML, createMentionString, extractPlainText, findMentionAtCursor, findPartialMention, replaceMentionInContent, escapeHTML, countMentions, setMentionUrlGenerator } from './utils/mentionParser';
124
+ export { default as CommentThread } from './components/CommentThread.svelte';
125
+ export type { Comment, CommentEntityType, CommentVisibility, CommentCreateInput, CommentCallbacks } from './types/comments';
126
+ export { COMMENT_ENTITY_TYPES, COMMENT_VISIBILITIES } from './types/comments';
127
+ export { default as PDFViewer } from './components/PDFViewer.svelte';
128
+ export { default as MarkupEditor } from './components/MarkupEditor.svelte';
129
+ export { default as MarkupOverlay } from './components/MarkupOverlay.svelte';
130
+ export { default as ImageLightbox } from './components/ImageLightbox.svelte';
131
+ export { default as AnnotationLayer } from './components/AnnotationLayer.svelte';
132
+ export { default as AnnotationPanel } from './components/AnnotationPanel.svelte';
133
+ export { MARKUP_COLORS, DEFAULT_STROKE_WIDTH, renderShape, renderAllShapes, nextShapeId, } from './components/markup';
134
+ export type { MarkupTool, Point, MarkupShape, ArrowShape, RectangleShape, EllipseShape, CloudShape, FreehandShape, TextShape, } from './components/markup';
135
+ export type { Annotation, AnnotationProfile, AnnotationThread, AnnotationCallbacks, } from './types/annotation';
136
+ export { default as KeyboardShortcutsOverlay } from './components/KeyboardShortcutsOverlay.svelte';
137
+ export type { KeyboardShortcut, SectionEntry as KeyboardShortcutSectionEntry, ShortcutSection as KeyboardShortcutSection, } from './components/KeyboardShortcutsOverlay.svelte';
138
+ export { default as MapView } from './components/MapView.svelte';
139
+ export { default as LocationMap } from './components/LocationMap.svelte';
140
+ export { default as GPSTracker } from './components/GPSTracker.svelte';
141
+ export type { MapJob, MapAgent } from './types/maps';
142
+ export { loadGoogleMapsAPI, isGoogleMapsLoaded, isPlacesLoaded, isGeometryLoaded, } from './utils/googleMapsLoader';
package/dist/index.js ADDED
@@ -0,0 +1,142 @@
1
+ // Actions
2
+ export { railNav, createRailNav, cycle } from './actions/railNav';
3
+ export { collapse } from './actions/collapse';
4
+ export { default as Collapse } from './components/Collapse.svelte';
5
+ // Components — Session primitives (from JAT IDE, jat-jj79f.16 G1)
6
+ export { default as LinkedColumns } from './components/linked-columns/LinkedColumns.svelte';
7
+ export { default as ChapterTimeline } from './components/replay/ChapterTimeline.svelte';
8
+ // Data models — Session transcript (from JAT IDE, jat-jj79f.16 G1)
9
+ export { buildLinkedSession, buildLinkedSessionFromWork, rawTypeToState, sampleLinkedSession, SAMPLE_TRANSCRIPT_LINES, } from './components/session-nav/transcriptModel';
10
+ // Components — Universal
11
+ export { default as UserAvatar } from './components/UserAvatar.svelte';
12
+ export { default as SidebarUserFooter } from './components/SidebarUserFooter.svelte';
13
+ export { default as TaskTypeIcon } from './components/TaskTypeIcon.svelte';
14
+ // Components — from JAT IDE
15
+ export { default as ConfirmDialog } from './components/ConfirmDialog.svelte';
16
+ export { showConfirm, confirmDialog, cancelDialog, getPending } from './stores/confirmDialog.svelte';
17
+ export { default as InputDialog } from './components/InputDialog.svelte';
18
+ export { showInput, submitInput, cancelInput, getPendingInput } from './stores/inputDialog.svelte';
19
+ export { default as SearchDropdown } from './components/SearchDropdown.svelte';
20
+ export { default as FilterDropdown } from './components/FilterDropdown.svelte';
21
+ export { default as ContextMenu } from './components/ContextMenu.svelte';
22
+ export { default as ChipInput } from './components/ChipInput.svelte';
23
+ export { default as ResizableDivider } from './components/ResizableDivider.svelte';
24
+ export { default as DateRangePicker } from './components/DateRangePicker.svelte';
25
+ export { default as SortDropdown } from './components/SortDropdown.svelte';
26
+ export { default as InlineEdit } from './components/InlineEdit.svelte';
27
+ export { default as FloatingActionBar } from './components/FloatingActionBar.svelte';
28
+ export { default as HunkDiffView } from './components/HunkDiffView.svelte';
29
+ // Components — from Flush
30
+ export { default as Button } from './components/Button.svelte';
31
+ export { default as Badge } from './components/Badge.svelte';
32
+ export { default as Card } from './components/Card.svelte';
33
+ export { default as Drawer } from './components/Drawer.svelte';
34
+ export { default as Modal } from './components/Modal.svelte';
35
+ export { default as LoadingSpinner } from './components/LoadingSpinner.svelte';
36
+ export { default as StatusBadge } from './components/StatusBadge.svelte';
37
+ export { default as TextInput } from './components/TextInput.svelte';
38
+ export { default as TextArea } from './components/TextArea.svelte';
39
+ export { default as SelectInput } from './components/SelectInput.svelte';
40
+ export { default as PhoneInput } from './components/PhoneInput.svelte';
41
+ // Components — from Chimaro
42
+ export { default as AudioWaveform } from './components/AudioWaveform.svelte';
43
+ export { default as CharacterCounter } from './components/CharacterCounter.svelte';
44
+ export { default as ColorSelector } from './components/ColorSelector.svelte';
45
+ export { default as ConfirmModal } from './components/ConfirmModal.svelte';
46
+ export { default as CountdownTimer } from './components/CountdownTimer.svelte';
47
+ export { default as ImageUpload } from './components/ImageUpload.svelte';
48
+ export { default as SmartImageEditor } from './components/SmartImageEditor.svelte';
49
+ export { default as LazyImage } from './components/LazyImage.svelte';
50
+ export { default as ResizablePanel } from './components/ResizablePanel.svelte';
51
+ export { default as VoicePlayer } from './components/VoicePlayer.svelte';
52
+ export { default as SpeechForm } from './components/SpeechForm.svelte';
53
+ // Components — from Headcount
54
+ export { default as ThemeSelector } from './components/ThemeSelector.svelte';
55
+ export { default as Sparkline } from './components/Sparkline.svelte';
56
+ export { default as BurndownChart } from './components/BurndownChart.svelte';
57
+ // Components — from JST
58
+ export { default as AvatarUpload } from './components/AvatarUpload.svelte';
59
+ export { default as PdfThumbnail } from './components/PdfThumbnail.svelte';
60
+ export { default as FilePicker } from './components/FilePicker.svelte';
61
+ export { default as FileDropzone } from './components/FileDropzone.svelte';
62
+ export { default as FileThumbnail } from './components/FileThumbnail.svelte';
63
+ export { default as EntityPreviewCard } from './components/EntityPreviewCard.svelte';
64
+ // Components — Document Templates (JST)
65
+ export { default as VariablePicker } from './components/VariablePicker.svelte';
66
+ // Components — Emoji
67
+ export { default as EmojiPicker } from './components/EmojiPicker.svelte';
68
+ // Emoji data
69
+ export { EMOJI_DATA, ALL_EMOJIS, searchEmojis } from './data/emojis';
70
+ // Components — from Meadow
71
+ export { default as LinkShortener } from './components/LinkShortener.svelte';
72
+ // Components — Media
73
+ export { default as MediaWorkbench } from './components/MediaWorkbench.svelte';
74
+ // Components — from Marduk
75
+ export { default as SignaturePad } from './components/SignaturePad.svelte';
76
+ export { default as MilestoneCard } from './components/MilestoneCard.svelte';
77
+ export { default as MilestoneTimeline } from './components/MilestoneTimeline.svelte';
78
+ export { default as TimeSlotPicker } from './components/TimeSlotPicker.svelte';
79
+ export { default as CalendarPicker } from './components/CalendarPicker.svelte';
80
+ export { default as AvailabilityModal } from './components/AvailabilityModal.svelte';
81
+ export { default as BookingForm } from './components/BookingForm.svelte';
82
+ export { DAYS_OF_WEEK, DAYS_SHORT, LOCATION_LABELS, LOCATION_ICONS } from './types/booking';
83
+ // Utilities — date formatting
84
+ export { normalizeTimestamp, parseTimestamp, formatRelativeTime, formatFullDate, formatShortDate, formatLastActivity, formatDate, getTimeSinceMs, getTimeSinceMinutes, isWithinMinutes, formatDateTime, taskAge, } from './utils/dateFormatters';
85
+ // Utilities — task display helpers
86
+ export { statusColor, priorityColor, typeIcon, statusLabel, } from './utils/taskUtils';
87
+ // Utilities — phone formatting (legacy US-only)
88
+ export { stripPhoneNumber, formatPhoneNumber, isCompletePhoneNumber, isValidPhoneNumber, updatePhoneInput } from './utils/phoneFormat';
89
+ // Utilities — international phone (E.164) — pairs with PhoneInput
90
+ export { toE164, formatPhoneForDisplay, isValidPhone, listCountries, DEFAULT_COUNTRY, PRIORITY_COUNTRIES, } from './utils/phone';
91
+ // Utilities — currency
92
+ export { formatCurrency } from './utils/currency';
93
+ // Utilities — DaisyUI colors (Canvas/JS contexts)
94
+ export { getDaisyUIColor, lightenColor, darkenColor, watchThemeChanges, isDarkTheme, getCurrentTheme, clearColorCache } from './utils/daisyuiColors';
95
+ // Components — Messaging (from Flush)
96
+ export { default as Avatar } from './components/messaging/Avatar.svelte';
97
+ export { default as ChannelList } from './components/messaging/ChannelList.svelte';
98
+ export { default as ChannelMemberAvatarStack } from './components/messaging/ChannelMemberAvatarStack.svelte';
99
+ export { default as DirectMessageList } from './components/messaging/DirectMessageList.svelte';
100
+ export { default as EmojiSelector } from './components/messaging/EmojiSelector.svelte';
101
+ export { default as MentionAutocomplete } from './components/messaging/MentionAutocomplete.svelte';
102
+ export { default as MessageAttachment } from './components/messaging/MessageAttachment.svelte';
103
+ export { default as MessageAttachmentUpload } from './components/messaging/MessageAttachmentUpload.svelte';
104
+ export { default as MessageInput } from './components/messaging/MessageInput.svelte';
105
+ export { default as MessageItem } from './components/messaging/MessageItem.svelte';
106
+ export { default as MessageThread } from './components/messaging/MessageThread.svelte';
107
+ export { default as QuotedMessageDisplay } from './components/messaging/QuotedMessageDisplay.svelte';
108
+ export { default as ThreadPanel } from './components/messaging/ThreadPanel.svelte';
109
+ export { default as CreateChannelModal } from './components/messaging/CreateChannelModal.svelte';
110
+ export { default as StartDMModal } from './components/messaging/StartDMModal.svelte';
111
+ export { default as ChannelInfoModal } from './components/messaging/ChannelInfoModal.svelte';
112
+ export { default as ChannelMembersModal } from './components/messaging/ChannelMembersModal.svelte';
113
+ export { default as NotificationSettingsModal } from './components/messaging/NotificationSettingsModal.svelte';
114
+ export { EMOJI_CATEGORIES, SKIN_TONES, DEFAULT_QUICK_REACTIONS } from './types/messaging';
115
+ // Components — Pipeline
116
+ export { default as Pipeline } from './components/pipeline/Pipeline.svelte';
117
+ export { default as PipelineColumn } from './components/pipeline/PipelineColumn.svelte';
118
+ export { default as PipelineCard } from './components/pipeline/PipelineCard.svelte';
119
+ export { DEFAULT_DRAG_CONFIG, DEFAULT_PIPELINE_CONFIG } from './types/pipeline';
120
+ // Utilities — mention parsing
121
+ export { parseMentions, renderMentionsAsHTML, createMentionString, extractPlainText, findMentionAtCursor, findPartialMention, replaceMentionInContent, escapeHTML, countMentions, setMentionUrlGenerator } from './utils/mentionParser';
122
+ // Components — Comments (universal threaded comments)
123
+ export { default as CommentThread } from './components/CommentThread.svelte';
124
+ export { COMMENT_ENTITY_TYPES, COMMENT_VISIBILITIES } from './types/comments';
125
+ // Components — PDF Viewer (server-side PDFium WASM rendering, no client pdf.js)
126
+ export { default as PDFViewer } from './components/PDFViewer.svelte';
127
+ // Components — Document annotation suite (from Steelbridge FileManager)
128
+ export { default as MarkupEditor } from './components/MarkupEditor.svelte';
129
+ export { default as MarkupOverlay } from './components/MarkupOverlay.svelte';
130
+ export { default as ImageLightbox } from './components/ImageLightbox.svelte';
131
+ export { default as AnnotationLayer } from './components/AnnotationLayer.svelte';
132
+ export { default as AnnotationPanel } from './components/AnnotationPanel.svelte';
133
+ // Markup drawing utilities
134
+ export { MARKUP_COLORS, DEFAULT_STROKE_WIDTH, renderShape, renderAllShapes, nextShapeId, } from './components/markup';
135
+ // Components — Keyboard Navigation
136
+ export { default as KeyboardShortcutsOverlay } from './components/KeyboardShortcutsOverlay.svelte';
137
+ // Components — Google Maps (DispatchMap fork + location primitives)
138
+ export { default as MapView } from './components/MapView.svelte';
139
+ export { default as LocationMap } from './components/LocationMap.svelte';
140
+ export { default as GPSTracker } from './components/GPSTracker.svelte';
141
+ // Utilities — Google Maps loader
142
+ export { loadGoogleMapsAPI, isGoogleMapsLoaded, isPlacesLoaded, isGeometryLoaded, } from './utils/googleMapsLoader';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Global promise-based confirm dialog.
3
+ * Usage: const ok = await showConfirm({ title: '...', body: '...' })
4
+ */
5
+ export type ConfirmOptions = {
6
+ title: string;
7
+ body?: string;
8
+ confirmLabel?: string;
9
+ cancelLabel?: string;
10
+ danger?: boolean;
11
+ timeoutMs?: number;
12
+ };
13
+ type Pending = {
14
+ options: ConfirmOptions;
15
+ resolve: (result: boolean) => void;
16
+ };
17
+ export declare function getPending(): Pending | null;
18
+ export declare function showConfirm(options: ConfirmOptions): Promise<boolean>;
19
+ export declare function confirmDialog(): void;
20
+ export declare function cancelDialog(): void;
21
+ export {};
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Global promise-based confirm dialog.
3
+ * Usage: const ok = await showConfirm({ title: '...', body: '...' })
4
+ */
5
+ var pending = $state(null);
6
+ export function getPending() {
7
+ return pending;
8
+ }
9
+ export function showConfirm(options) {
10
+ // If a dialog is already open, cancel it first.
11
+ if (pending) {
12
+ pending.resolve(false);
13
+ }
14
+ return new Promise(function (resolve) {
15
+ pending = { options: options, resolve: resolve };
16
+ });
17
+ }
18
+ export function confirmDialog() {
19
+ if (!pending)
20
+ return;
21
+ var p = pending;
22
+ pending = null;
23
+ p.resolve(true);
24
+ }
25
+ export function cancelDialog() {
26
+ if (!pending)
27
+ return;
28
+ var p = pending;
29
+ pending = null;
30
+ p.resolve(false);
31
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Global promise-based input dialog.
3
+ * Usage: const value = await showInput({ title: '...', placeholder: '...' })
4
+ * Returns the typed string if confirmed, null if cancelled.
5
+ */
6
+ export type InputOptions = {
7
+ title: string;
8
+ body?: string;
9
+ placeholder?: string;
10
+ confirmLabel?: string;
11
+ cancelLabel?: string;
12
+ timeoutMs?: number;
13
+ validate?: (value: string) => string | null;
14
+ maxLength?: number;
15
+ };
16
+ type Pending = {
17
+ options: InputOptions;
18
+ resolve: (result: string | null) => void;
19
+ };
20
+ export declare function getPendingInput(): Pending | null;
21
+ export declare function showInput(options: InputOptions): Promise<string | null>;
22
+ export declare function submitInput(value: string): void;
23
+ export declare function cancelInput(): void;
24
+ export {};
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Global promise-based input dialog.
3
+ * Usage: const value = await showInput({ title: '...', placeholder: '...' })
4
+ * Returns the typed string if confirmed, null if cancelled.
5
+ */
6
+ var pending = $state(null);
7
+ export function getPendingInput() {
8
+ return pending;
9
+ }
10
+ export function showInput(options) {
11
+ // If a dialog is already open, cancel it first.
12
+ if (pending) {
13
+ pending.resolve(null);
14
+ }
15
+ return new Promise(function (resolve) {
16
+ pending = { options: options, resolve: resolve };
17
+ });
18
+ }
19
+ export function submitInput(value) {
20
+ if (!pending)
21
+ return;
22
+ var p = pending;
23
+ pending = null;
24
+ p.resolve(value);
25
+ }
26
+ export function cancelInput() {
27
+ if (!pending)
28
+ return;
29
+ var p = pending;
30
+ pending = null;
31
+ p.resolve(null);
32
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * rail.css — keyboard rail-navigation primitives
3
+ *
4
+ * Provides focus-ring and value-change-pulse treatments for rail-nav
5
+ * components (vertical or horizontal keyboard-navigable lists where each
6
+ * rung carries a [data-rail-id] attribute).
7
+ *
8
+ * Usage: import once in your app's root layout or global stylesheet:
9
+ * @import '@joewinke/jatui/src/lib/styles/rail.css';
10
+ *
11
+ * Token: var(--color-primary) — DaisyUI v5 primary (resolves to the
12
+ * consuming app's active theme primary hue).
13
+ *
14
+ * Naming contract (must match the companion railNav Svelte action):
15
+ * - Active-rung focus treatment: [data-rail-id]:focus-visible selector
16
+ * AND .rail-focus utility class (both route to the same ring + tint).
17
+ * - Value-change one-shot pulse: .rail-cycled (added by the action,
18
+ * removed after the animation fires).
19
+ *
20
+ * Design rules enforced:
21
+ * - Ring + tint only — NO colored side-stripe (§6 Don't: border-l/r > 1px).
22
+ * - No box-shadow at rest; shadow only during the pulse keyframe.
23
+ * - Respects prefers-reduced-motion.
24
+ */
25
+
26
+ /* ─── Active-rung focus ring ───────────────────────────────────────────────
27
+ Applied via :focus-visible on the rung element (attribute-based, works
28
+ without adding a class) AND via .rail-focus (explicit class, same visual).
29
+ The ring is primary-tinted at 65% opacity; border-radius matches DaisyUI's
30
+ field radius token (falls back to 0.25rem). No side-stripe. No shadow at
31
+ rest (Flat-by-Default rule). ─────────────────────────────────────────── */
32
+
33
+ [data-rail-id]:focus-visible,
34
+ [data-rail-id]:has(:focus-visible),
35
+ .rail-focus {
36
+ outline: 2px solid color-mix(in oklch, var(--color-primary) 65%, transparent);
37
+ outline-offset: 2px;
38
+ border-radius: var(--radius-field, 0.25rem);
39
+ }
40
+
41
+ /* ─── Value-change pulse ────────────────────────────────────────────────────
42
+ One-shot animation applied by the railNav action when the rung's bound
43
+ value changes. Scales up 2.5% and blooms a brief primary-hued glow ring,
44
+ then returns to rest. Duration 260ms — fast enough to feel snappy,
45
+ long enough to register as intentional feedback.
46
+ Box-shadow (not outline) is used here so it can animate smoothly;
47
+ outline transitions are not interpolated by CSS. ─────────────────────── */
48
+
49
+ @keyframes rail-cycled {
50
+ 0% { transform: scale(1); box-shadow: 0 0 0 0 color-mix(in oklch, var(--color-primary) 0%, transparent); }
51
+ 35% { transform: scale(1.025); box-shadow: 0 0 0 3px color-mix(in oklch, var(--color-primary) 32%, transparent); }
52
+ 100% { transform: scale(1); box-shadow: 0 0 0 0 color-mix(in oklch, var(--color-primary) 0%, transparent); }
53
+ }
54
+
55
+ .rail-cycled {
56
+ animation: rail-cycled 0.26s cubic-bezier(0.22, 1, 0.36, 1);
57
+ }
58
+
59
+ @media (prefers-reduced-motion: reduce) {
60
+ .rail-cycled {
61
+ animation: none;
62
+ }
63
+ }
@@ -0,0 +1,32 @@
1
+ export interface Annotation {
2
+ id: string;
3
+ user_id: string;
4
+ x_percent: number;
5
+ y_percent: number;
6
+ content: string;
7
+ parent_annotation_id: string | null;
8
+ resolved: boolean;
9
+ resolved_by: string | null;
10
+ resolved_at: string | null;
11
+ created_at: string;
12
+ updated_at: string;
13
+ }
14
+ export interface AnnotationProfile {
15
+ full_name: string | null;
16
+ avatar_url: string | null;
17
+ }
18
+ export interface AnnotationThread {
19
+ root: Annotation;
20
+ replies: Annotation[];
21
+ }
22
+ /** Callbacks for AnnotationPanel async operations */
23
+ export interface AnnotationCallbacks {
24
+ /** Post a reply to a root annotation. Must return the new annotation or throw. */
25
+ onAddReply: (parentId: string, content: string) => Promise<void>;
26
+ /** Toggle resolved state. */
27
+ onResolve: (annotationId: string, resolved: boolean) => Promise<void>;
28
+ /** Delete an annotation (and its replies). */
29
+ onDelete: (annotationId: string) => Promise<void>;
30
+ /** Edit annotation content. */
31
+ onEdit: (annotationId: string, content: string) => Promise<void>;
32
+ }
@@ -0,0 +1,3 @@
1
+ // Annotation types for document/image annotation suite
2
+ // Used by AnnotationLayer, AnnotationPanel, ImageLightbox
3
+ export {};
@@ -0,0 +1,115 @@
1
+ export type LocationType = 'remote' | 'phone' | 'in_person';
2
+ export type BookingStatus = 'pending' | 'confirmed' | 'cancelled' | 'completed' | 'no_show';
3
+ export type OverrideType = 'unavailable' | 'custom_hours';
4
+ export interface Host {
5
+ id: string;
6
+ name: string;
7
+ email: string;
8
+ timezone: string;
9
+ avatar_url?: string;
10
+ bio?: string;
11
+ notify_on_new_booking?: boolean;
12
+ notify_on_cancellation?: boolean;
13
+ notify_on_reschedule?: boolean;
14
+ created_at: string;
15
+ updated_at: string;
16
+ }
17
+ export interface EventType {
18
+ id: string;
19
+ host_id: string;
20
+ title: string;
21
+ slug: string;
22
+ description?: string;
23
+ duration_minutes: number;
24
+ location_type: LocationType;
25
+ location_details?: string;
26
+ color: string;
27
+ is_active: boolean;
28
+ buffer_before_minutes: number;
29
+ buffer_after_minutes: number;
30
+ min_notice_hours: number;
31
+ max_days_in_advance: number;
32
+ confirmation_redirect_url?: string;
33
+ booking_instructions?: string;
34
+ created_at: string;
35
+ updated_at: string;
36
+ host?: Host;
37
+ }
38
+ export interface WeeklyAvailability {
39
+ id: string;
40
+ host_id: string;
41
+ day_of_week: number;
42
+ start_time: string;
43
+ end_time: string;
44
+ event_type_id?: string;
45
+ is_active: boolean;
46
+ created_at: string;
47
+ }
48
+ export interface DateOverride {
49
+ id: string;
50
+ host_id: string;
51
+ override_date: string;
52
+ override_type: OverrideType;
53
+ start_time?: string;
54
+ end_time?: string;
55
+ reason?: string;
56
+ created_at: string;
57
+ }
58
+ export interface Booking {
59
+ id: string;
60
+ event_type_id: string;
61
+ host_id: string;
62
+ guest_name: string;
63
+ guest_email: string;
64
+ guest_phone?: string;
65
+ guest_notes?: string;
66
+ start_time: string;
67
+ end_time: string;
68
+ timezone: string;
69
+ status: BookingStatus;
70
+ cancelled_at?: string;
71
+ cancellation_reason?: string;
72
+ meeting_url?: string;
73
+ location_details?: string;
74
+ confirmation_sent_at?: string;
75
+ reminder_sent_at?: string;
76
+ created_at: string;
77
+ updated_at: string;
78
+ event_type?: EventType;
79
+ host?: Host;
80
+ attendees?: BookingAttendee[];
81
+ }
82
+ export interface BookingAttendee {
83
+ id: string;
84
+ booking_id: string;
85
+ name: string;
86
+ email: string;
87
+ created_at: string;
88
+ }
89
+ export interface TimeSlot {
90
+ start: Date;
91
+ end: Date;
92
+ available: boolean;
93
+ }
94
+ export interface BookingFormData {
95
+ guest_name: string;
96
+ guest_email: string;
97
+ guest_phone?: string;
98
+ guest_notes?: string;
99
+ timezone: string;
100
+ start_time: string;
101
+ attendees?: {
102
+ name: string;
103
+ email: string;
104
+ }[];
105
+ }
106
+ export interface AvailabilityCounts {
107
+ [dateStr: string]: {
108
+ available: number;
109
+ total: number;
110
+ };
111
+ }
112
+ export declare const DAYS_OF_WEEK: readonly ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
113
+ export declare const DAYS_SHORT: readonly ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
114
+ export declare const LOCATION_LABELS: Record<LocationType, string>;
115
+ export declare const LOCATION_ICONS: Record<LocationType, string>;
@@ -0,0 +1,24 @@
1
+ // Booking System Types
2
+ // Generic types for scheduling/booking UI components
3
+ // Day of week helpers
4
+ export var DAYS_OF_WEEK = [
5
+ 'Sunday',
6
+ 'Monday',
7
+ 'Tuesday',
8
+ 'Wednesday',
9
+ 'Thursday',
10
+ 'Friday',
11
+ 'Saturday'
12
+ ];
13
+ export var DAYS_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
14
+ // Location type display
15
+ export var LOCATION_LABELS = {
16
+ remote: 'Video Call',
17
+ phone: 'Phone Call',
18
+ in_person: 'In Person'
19
+ };
20
+ export var LOCATION_ICONS = {
21
+ remote: 'video',
22
+ phone: 'phone',
23
+ in_person: 'map-pin'
24
+ };