@joewinke/jatui 0.1.24 → 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,69 @@
1
+ /**
2
+ * Phone number formatting utilities
3
+ *
4
+ * Provides consistent phone number formatting as (xxx) xxx-xxxx
5
+ * Limits input to 10 digits and handles formatting as user types
6
+ */
7
+ /**
8
+ * Strips all non-numeric characters from a phone number
9
+ */
10
+ export function stripPhoneNumber(value) {
11
+ return value.replace(/\D/g, '');
12
+ }
13
+ /**
14
+ * Formats a phone number to (xxx) xxx-xxxx format
15
+ */
16
+ export function formatPhoneNumber(value) {
17
+ var digits = stripPhoneNumber(value);
18
+ var limitedDigits = digits.slice(0, 10);
19
+ if (limitedDigits.length === 0) {
20
+ return '';
21
+ }
22
+ else if (limitedDigits.length <= 3) {
23
+ return "(".concat(limitedDigits);
24
+ }
25
+ else if (limitedDigits.length <= 6) {
26
+ return "(".concat(limitedDigits.slice(0, 3), ") ").concat(limitedDigits.slice(3));
27
+ }
28
+ else {
29
+ return "(".concat(limitedDigits.slice(0, 3), ") ").concat(limitedDigits.slice(3, 6), "-").concat(limitedDigits.slice(6));
30
+ }
31
+ }
32
+ /**
33
+ * Checks if a phone number has exactly 10 digits
34
+ */
35
+ export function isCompletePhoneNumber(value) {
36
+ return stripPhoneNumber(value).length === 10;
37
+ }
38
+ /**
39
+ * Validates phone number format (exactly 10 digits)
40
+ */
41
+ export function isValidPhoneNumber(value) {
42
+ return isCompletePhoneNumber(value);
43
+ }
44
+ /**
45
+ * Handles input formatting with cursor position preservation
46
+ */
47
+ export function updatePhoneInput(input, newValue, oldValue) {
48
+ var cursorPosition = input.selectionStart || 0;
49
+ var oldLength = oldValue.length;
50
+ var newLength = newValue.length;
51
+ input.value = newValue;
52
+ var newCursorPosition = cursorPosition;
53
+ if (newLength > oldLength) {
54
+ newCursorPosition = cursorPosition + (newLength - oldLength);
55
+ }
56
+ else if (newLength < oldLength) {
57
+ newCursorPosition = Math.max(0, cursorPosition - (oldLength - newLength));
58
+ }
59
+ if (newCursorPosition === 1 && newValue.startsWith('(')) {
60
+ newCursorPosition = 1;
61
+ }
62
+ else if (newCursorPosition === 4 && newValue.includes(') ')) {
63
+ newCursorPosition = 6;
64
+ }
65
+ else if (newCursorPosition === 9 && newValue.includes('-')) {
66
+ newCursorPosition = 10;
67
+ }
68
+ input.setSelectionRange(newCursorPosition, newCursorPosition);
69
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shared helpers for project_tasks UI.
3
+ * Used across all JST-based projects on tasks/feedback pages.
4
+ */
5
+ /**
6
+ * DaisyUI badge class for a task status value.
7
+ * Usage: <span class="badge {statusColor(task.status)}">...</span>
8
+ *
9
+ * Aligned to the canonical JAT TASK_STATUS palette
10
+ * (jat/ide/src/lib/config/statusColors.ts → TASK_STATUS_VISUALS) and the
11
+ * committed JST portal palette (jst/src/lib/components/portal/portalStatus.ts
12
+ * → TASK_BADGE) so a task renders the same semantics in JAT-style admin
13
+ * surfaces, the JST portal, and the JAT IDE:
14
+ * open=ghost(neutral) · in_progress=info(blue) · blocked=warning(amber) ·
15
+ * closed=success(green). Paused / mid-flight states (waiting, review) and
16
+ * post-completion states (submitted, accepted, deployed) use the outline
17
+ * variants JAT applies. Where JAT and JST agree (open/in_progress/closed/
18
+ * waiting), this matches both; JAT's statusColors.ts is canonical otherwise.
19
+ */
20
+ export declare function statusColor(status: string): string;
21
+ /**
22
+ * Tailwind text class for a task priority value.
23
+ * Usage: <span class={priorityColor(task.priority)}>...</span>
24
+ */
25
+ export declare function priorityColor(priority: string | null | undefined): string;
26
+ /**
27
+ * @deprecated Prefer the `<TaskTypeIcon type={…} />` component — it renders a
28
+ * stroke SVG that inherits `currentColor`, scales precisely, and avoids
29
+ * cross-OS emoji rendering drift. Kept only for backwards compatibility.
30
+ * Usage: {typeIcon(task.issue_type)} {task.title}
31
+ */
32
+ export declare function typeIcon(type: string): string;
33
+ /**
34
+ * Human-readable label for a task status value.
35
+ * "in_progress" → "In Progress"
36
+ */
37
+ export declare function statusLabel(status: string): string;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Shared helpers for project_tasks UI.
3
+ * Used across all JST-based projects on tasks/feedback pages.
4
+ */
5
+ /**
6
+ * DaisyUI badge class for a task status value.
7
+ * Usage: <span class="badge {statusColor(task.status)}">...</span>
8
+ *
9
+ * Aligned to the canonical JAT TASK_STATUS palette
10
+ * (jat/ide/src/lib/config/statusColors.ts → TASK_STATUS_VISUALS) and the
11
+ * committed JST portal palette (jst/src/lib/components/portal/portalStatus.ts
12
+ * → TASK_BADGE) so a task renders the same semantics in JAT-style admin
13
+ * surfaces, the JST portal, and the JAT IDE:
14
+ * open=ghost(neutral) · in_progress=info(blue) · blocked=warning(amber) ·
15
+ * closed=success(green). Paused / mid-flight states (waiting, review) and
16
+ * post-completion states (submitted, accepted, deployed) use the outline
17
+ * variants JAT applies. Where JAT and JST agree (open/in_progress/closed/
18
+ * waiting), this matches both; JAT's statusColors.ts is canonical otherwise.
19
+ */
20
+ export function statusColor(status) {
21
+ switch (status) {
22
+ case 'open': return 'badge-ghost';
23
+ case 'in_progress': return 'badge-info';
24
+ case 'waiting': return 'badge-info badge-outline';
25
+ case 'review': return 'badge-info badge-outline';
26
+ case 'blocked': return 'badge-warning';
27
+ case 'submitted': return 'badge-secondary badge-outline';
28
+ case 'accepted': return 'badge-success badge-outline';
29
+ case 'deployed': return 'badge-primary badge-outline';
30
+ case 'rejected': return 'badge-warning badge-outline';
31
+ case 'reopened': return 'badge-warning badge-outline';
32
+ case 'closed': return 'badge-success';
33
+ case 'dev': return 'badge-ghost badge-outline';
34
+ default: return 'badge-ghost';
35
+ }
36
+ }
37
+ /**
38
+ * Tailwind text class for a task priority value.
39
+ * Usage: <span class={priorityColor(task.priority)}>...</span>
40
+ */
41
+ export function priorityColor(priority) {
42
+ switch (priority) {
43
+ case 'critical': return 'text-error font-bold';
44
+ case 'high': return 'text-warning font-semibold';
45
+ case 'medium': return 'text-info';
46
+ case 'low': return 'text-base-content/60';
47
+ default: return '';
48
+ }
49
+ }
50
+ /**
51
+ * @deprecated Prefer the `<TaskTypeIcon type={…} />` component — it renders a
52
+ * stroke SVG that inherits `currentColor`, scales precisely, and avoids
53
+ * cross-OS emoji rendering drift. Kept only for backwards compatibility.
54
+ * Usage: {typeIcon(task.issue_type)} {task.title}
55
+ */
56
+ export function typeIcon(type) {
57
+ switch (type) {
58
+ case 'bug': return '🐛';
59
+ case 'feature': return '✨';
60
+ case 'task': return '📋';
61
+ case 'epic': return '🏔️';
62
+ default: return '📄';
63
+ }
64
+ }
65
+ /**
66
+ * Human-readable label for a task status value.
67
+ * "in_progress" → "In Progress"
68
+ */
69
+ export function statusLabel(status) {
70
+ return status.replace(/_/g, ' ').replace(/\b\w/g, function (c) { return c.toUpperCase(); });
71
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joewinke/jatui",
3
- "version": "0.1.24",
3
+ "version": "0.1.26",
4
4
  "private": false,
5
5
  "description": "Shared Svelte 5 component library for JAT projects",
6
6
  "type": "module",
@@ -23,7 +23,8 @@
23
23
  "dev": "vite dev --port 5180",
24
24
  "build": "vite build",
25
25
  "preview": "vite preview",
26
- "package": "svelte-package --input src/lib --output dist"
26
+ "package": "svelte-package --input src/lib --output dist",
27
+ "prepublishOnly": "npm run package"
27
28
  },
28
29
  "peerDependencies": {
29
30
  "d3": "^7.0.0",