@k2b/ui 0.21.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (610) hide show
  1. package/dist/browser/actions/ContextMenu.js +3 -1
  2. package/dist/browser/actions/ContextMenu.js.map +1 -1
  3. package/dist/browser/actions/FilterChip.js +3 -1
  4. package/dist/browser/actions/FilterChip.js.map +1 -1
  5. package/dist/browser/actions/SpotlightSearch.js +3 -1
  6. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  7. package/dist/browser/actions/filter-messages.js +20 -0
  8. package/dist/browser/actions/filter-messages.js.map +1 -0
  9. package/dist/browser/actions/spotlight-messages.js +16 -0
  10. package/dist/browser/actions/spotlight-messages.js.map +1 -0
  11. package/dist/browser/chat/ChatComposer.js +47 -41
  12. package/dist/browser/chat/ChatComposer.js.map +1 -1
  13. package/dist/browser/chat/ChatPrimitives.js +25 -23
  14. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  15. package/dist/browser/chat/ChatRoot.js +3 -3
  16. package/dist/browser/chat/ChatRoot.js.map +1 -1
  17. package/dist/browser/chat/ChatTimeline.js +12 -12
  18. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  19. package/dist/browser/chat/chat-messages.js +236 -0
  20. package/dist/browser/chat/chat-messages.js.map +1 -0
  21. package/dist/browser/content/Calendar.js +1096 -1060
  22. package/dist/browser/content/Calendar.js.map +1 -1
  23. package/dist/browser/content/CalendarDayView.js +1187 -0
  24. package/dist/browser/content/CalendarDayView.js.map +1 -0
  25. package/dist/browser/content/CalendarWeekView.js +1571 -0
  26. package/dist/browser/content/CalendarWeekView.js.map +1 -0
  27. package/dist/browser/content/Chart.js +15 -8
  28. package/dist/browser/content/Chart.js.map +1 -1
  29. package/dist/browser/content/ChartExplorer.js +185 -85
  30. package/dist/browser/content/ChartExplorer.js.map +1 -1
  31. package/dist/browser/content/ChartExplorerControls.js +9 -7
  32. package/dist/browser/content/ChartExplorerControls.js.map +1 -1
  33. package/dist/browser/content/ChartFilterControls.js +93 -34
  34. package/dist/browser/content/ChartFilterControls.js.map +1 -1
  35. package/dist/browser/content/ChartSnapshotView.js +3 -3
  36. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  37. package/dist/browser/content/DataTable.js +238 -201
  38. package/dist/browser/content/DataTable.js.map +1 -1
  39. package/dist/browser/content/Docs.js +3 -1
  40. package/dist/browser/content/Docs.js.map +1 -1
  41. package/dist/browser/content/FileBrowser.js +30 -26
  42. package/dist/browser/content/FileBrowser.js.map +1 -1
  43. package/dist/browser/content/FileTree.js +9 -7
  44. package/dist/browser/content/FileTree.js.map +1 -1
  45. package/dist/browser/content/FileView.js +37 -28
  46. package/dist/browser/content/FileView.js.map +1 -1
  47. package/dist/browser/content/Lightbox.js +9 -7
  48. package/dist/browser/content/Lightbox.js.map +1 -1
  49. package/dist/browser/content/LogEntriesTable.js +3 -3
  50. package/dist/browser/content/LogEntriesTable.js.map +1 -1
  51. package/dist/browser/content/MessageRow.js +24 -22
  52. package/dist/browser/content/MessageRow.js.map +1 -1
  53. package/dist/browser/content/Pagination.js +7 -7
  54. package/dist/browser/content/Pagination.js.map +1 -1
  55. package/dist/browser/content/PdfPreview.js +15 -13
  56. package/dist/browser/content/PdfPreview.js.map +1 -1
  57. package/dist/browser/content/RangePicker.js +3 -1
  58. package/dist/browser/content/RangePicker.js.map +1 -1
  59. package/dist/browser/content/StructuredDataPreview.js +3 -1
  60. package/dist/browser/content/StructuredDataPreview.js.map +1 -1
  61. package/dist/browser/content/Timeline.js +13 -11
  62. package/dist/browser/content/Timeline.js.map +1 -1
  63. package/dist/browser/content/VideoPlayer.js +5 -5
  64. package/dist/browser/content/VideoPlayer.js.map +1 -1
  65. package/dist/browser/content/VirtualFeed.js +6 -4
  66. package/dist/browser/content/VirtualFeed.js.map +1 -1
  67. package/dist/browser/content/ZoomPanViewport.js +10 -7
  68. package/dist/browser/content/ZoomPanViewport.js.map +1 -1
  69. package/dist/browser/content/calendar-day-scroll.js +98 -0
  70. package/dist/browser/content/calendar-day-scroll.js.map +1 -0
  71. package/dist/browser/content/calendar-days.js +408 -0
  72. package/dist/browser/content/calendar-days.js.map +1 -0
  73. package/dist/browser/content/calendar-dialogs.js +236 -0
  74. package/dist/browser/content/calendar-dialogs.js.map +1 -0
  75. package/dist/browser/content/calendar-messages.js +249 -3
  76. package/dist/browser/content/calendar-messages.js.map +1 -1
  77. package/dist/browser/content/calendar-pointer.js +19 -6
  78. package/dist/browser/content/calendar-pointer.js.map +1 -1
  79. package/dist/browser/content/calendar-shared.js +328 -0
  80. package/dist/browser/content/calendar-shared.js.map +1 -0
  81. package/dist/browser/content/calendar-time-view.js +1649 -0
  82. package/dist/browser/content/calendar-time-view.js.map +1 -0
  83. package/dist/browser/content/chart-messages.js +146 -0
  84. package/dist/browser/content/chart-messages.js.map +1 -0
  85. package/dist/browser/content/collection-selection.js +2 -0
  86. package/dist/browser/content/collection-selection.js.map +1 -1
  87. package/dist/browser/content/data-table-messages.js +24 -0
  88. package/dist/browser/content/data-table-messages.js.map +1 -0
  89. package/dist/browser/content/docs-messages.js +24 -0
  90. package/dist/browser/content/docs-messages.js.map +1 -0
  91. package/dist/browser/content/feed-messages.js +34 -0
  92. package/dist/browser/content/feed-messages.js.map +1 -0
  93. package/dist/browser/content/file-browser-messages.js +69 -0
  94. package/dist/browser/content/file-browser-messages.js.map +1 -0
  95. package/dist/browser/content/file-view-messages.js +64 -0
  96. package/dist/browser/content/file-view-messages.js.map +1 -0
  97. package/dist/browser/content/index.js.map +1 -1
  98. package/dist/browser/content/lightbox-messages.js +36 -0
  99. package/dist/browser/content/lightbox-messages.js.map +1 -0
  100. package/dist/browser/content/log-entries-messages.js +20 -0
  101. package/dist/browser/content/log-entries-messages.js.map +1 -0
  102. package/dist/browser/content/markdown-info-block-messages.js +24 -0
  103. package/dist/browser/content/markdown-info-block-messages.js.map +1 -0
  104. package/dist/browser/content/markdown-info-blocks.js +3 -3
  105. package/dist/browser/content/markdown-info-blocks.js.map +1 -1
  106. package/dist/browser/content/markdown-links.js +2 -2
  107. package/dist/browser/content/markdown-links.js.map +1 -1
  108. package/dist/browser/content/markdown-reference-messages.js +30 -0
  109. package/dist/browser/content/markdown-reference-messages.js.map +1 -0
  110. package/dist/browser/content/pagination-messages.js +38 -0
  111. package/dist/browser/content/pagination-messages.js.map +1 -0
  112. package/dist/browser/content/pdf-messages.js +43 -0
  113. package/dist/browser/content/pdf-messages.js.map +1 -0
  114. package/dist/browser/content/range-picker-messages.js +20 -0
  115. package/dist/browser/content/range-picker-messages.js.map +1 -0
  116. package/dist/browser/content/structured-data-messages.js +22 -0
  117. package/dist/browser/content/structured-data-messages.js.map +1 -0
  118. package/dist/browser/content/timeline-messages.js +62 -0
  119. package/dist/browser/content/timeline-messages.js.map +1 -0
  120. package/dist/browser/content/video-messages.js +24 -0
  121. package/dist/browser/content/video-messages.js.map +1 -0
  122. package/dist/browser/content/viewport-messages.js +28 -0
  123. package/dist/browser/content/viewport-messages.js.map +1 -0
  124. package/dist/browser/feedback/HoverPreview.js +34 -6
  125. package/dist/browser/feedback/HoverPreview.js.map +1 -1
  126. package/dist/browser/feedback/InstallGuide.js +18 -18
  127. package/dist/browser/feedback/InstallGuide.js.map +1 -1
  128. package/dist/browser/feedback/install-messages.js +104 -0
  129. package/dist/browser/feedback/install-messages.js.map +1 -0
  130. package/dist/browser/feedback/prompt-messages.js +65 -0
  131. package/dist/browser/feedback/prompt-messages.js.map +1 -0
  132. package/dist/browser/feedback/prompts.js +14 -11
  133. package/dist/browser/feedback/prompts.js.map +1 -1
  134. package/dist/browser/feedback/toast-messages.js +18 -0
  135. package/dist/browser/feedback/toast-messages.js.map +1 -0
  136. package/dist/browser/feedback/toast.js +4 -3
  137. package/dist/browser/feedback/toast.js.map +1 -1
  138. package/dist/browser/index.js +1 -1
  139. package/dist/browser/index.js.map +1 -1
  140. package/dist/browser/inputs/AutocompleteEditor.js +6 -4
  141. package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
  142. package/dist/browser/inputs/AutocompleteSelect.js +10 -8
  143. package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
  144. package/dist/browser/inputs/ChoiceGroups.js +4 -0
  145. package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
  146. package/dist/browser/inputs/ChoiceInputs.js +5 -5
  147. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  148. package/dist/browser/inputs/Combobox.js +3 -2
  149. package/dist/browser/inputs/Combobox.js.map +1 -1
  150. package/dist/browser/inputs/FileDropTarget.js +6 -6
  151. package/dist/browser/inputs/FileDropTarget.js.map +1 -1
  152. package/dist/browser/inputs/FileInputs.js +30 -21
  153. package/dist/browser/inputs/FileInputs.js.map +1 -1
  154. package/dist/browser/inputs/MultiSelectInput.js +7 -5
  155. package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
  156. package/dist/browser/inputs/NumberInput.js +4 -2
  157. package/dist/browser/inputs/NumberInput.js.map +1 -1
  158. package/dist/browser/inputs/QrScanner.js +5 -5
  159. package/dist/browser/inputs/QrScanner.js.map +1 -1
  160. package/dist/browser/inputs/Select.js +7 -5
  161. package/dist/browser/inputs/Select.js.map +1 -1
  162. package/dist/browser/inputs/SelectChip.js +3 -3
  163. package/dist/browser/inputs/SelectChip.js.map +1 -1
  164. package/dist/browser/inputs/SignatureInput.js +9 -3
  165. package/dist/browser/inputs/SignatureInput.js.map +1 -1
  166. package/dist/browser/inputs/SpecialInputs.js +4 -2
  167. package/dist/browser/inputs/SpecialInputs.js.map +1 -1
  168. package/dist/browser/inputs/TagEditor.js +8 -6
  169. package/dist/browser/inputs/TagEditor.js.map +1 -1
  170. package/dist/browser/inputs/TagsInput.js +5 -5
  171. package/dist/browser/inputs/TagsInput.js.map +1 -1
  172. package/dist/browser/inputs/TemplateEditor.js +5 -5
  173. package/dist/browser/inputs/TemplateEditor.js.map +1 -1
  174. package/dist/browser/inputs/TextInput.js +3 -1
  175. package/dist/browser/inputs/TextInput.js.map +1 -1
  176. package/dist/browser/inputs/completion-messages.js +24 -0
  177. package/dist/browser/inputs/completion-messages.js.map +1 -0
  178. package/dist/browser/inputs/file-drop-messages.js +63 -0
  179. package/dist/browser/inputs/file-drop-messages.js.map +1 -0
  180. package/dist/browser/inputs/file-drop.js.map +1 -1
  181. package/dist/browser/inputs/file-input-messages.js +60 -0
  182. package/dist/browser/inputs/file-input-messages.js.map +1 -0
  183. package/dist/browser/inputs/icon-messages.js +22 -0
  184. package/dist/browser/inputs/icon-messages.js.map +1 -0
  185. package/dist/browser/inputs/input-messages.js +38 -0
  186. package/dist/browser/inputs/input-messages.js.map +1 -0
  187. package/dist/browser/inputs/markdown/MarkdownEditor.js +10 -6
  188. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  189. package/dist/browser/inputs/markdown/Toolbar.js +13 -13
  190. package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
  191. package/dist/browser/inputs/markdown/editor-messages.js +43 -0
  192. package/dist/browser/inputs/markdown/editor-messages.js.map +1 -0
  193. package/dist/browser/inputs/markdown/toolbar-messages.js +40 -0
  194. package/dist/browser/inputs/markdown/toolbar-messages.js.map +1 -0
  195. package/dist/browser/inputs/qr-messages.js +26 -0
  196. package/dist/browser/inputs/qr-messages.js.map +1 -0
  197. package/dist/browser/inputs/select-messages.js +63 -0
  198. package/dist/browser/inputs/select-messages.js.map +1 -0
  199. package/dist/browser/inputs/tag-messages.js +44 -0
  200. package/dist/browser/inputs/tag-messages.js.map +1 -0
  201. package/dist/browser/inputs/template-messages.js +22 -0
  202. package/dist/browser/inputs/template-messages.js.map +1 -0
  203. package/dist/browser/internal/render-error-messages.js +20 -0
  204. package/dist/browser/internal/render-error-messages.js.map +1 -0
  205. package/dist/browser/internal/render-error.js +3 -1
  206. package/dist/browser/internal/render-error.js.map +1 -1
  207. package/dist/browser/internal/text-selection.js +101 -0
  208. package/dist/browser/internal/text-selection.js.map +1 -0
  209. package/dist/browser/intl/messages.js +6 -1155
  210. package/dist/browser/intl/messages.js.map +1 -1
  211. package/dist/browser/layout/AppWorkspace.js +594 -425
  212. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  213. package/dist/browser/layout/BottomSheet.js +6 -1
  214. package/dist/browser/layout/BottomSheet.js.map +1 -1
  215. package/dist/browser/layout/Discussion.js +8 -5
  216. package/dist/browser/layout/Discussion.js.map +1 -1
  217. package/dist/browser/layout/FloatingWindow.js +8 -5
  218. package/dist/browser/layout/FloatingWindow.js.map +1 -1
  219. package/dist/browser/layout/Navigation.js +7 -6
  220. package/dist/browser/layout/Navigation.js.map +1 -1
  221. package/dist/browser/layout/PageTitle.js +373 -0
  222. package/dist/browser/layout/PageTitle.js.map +1 -0
  223. package/dist/browser/layout/PanelDialog.js +8 -6
  224. package/dist/browser/layout/PanelDialog.js.map +1 -1
  225. package/dist/browser/layout/Panes.js +23 -15
  226. package/dist/browser/layout/Panes.js.map +1 -1
  227. package/dist/browser/layout/PullToRefresh.js +13 -4
  228. package/dist/browser/layout/PullToRefresh.js.map +1 -1
  229. package/dist/browser/layout/Settings.js +14 -12
  230. package/dist/browser/layout/Settings.js.map +1 -1
  231. package/dist/browser/layout/SettingsCollection.js +6 -5
  232. package/dist/browser/layout/SettingsCollection.js.map +1 -1
  233. package/dist/browser/layout/SettingsModal.js +3 -1
  234. package/dist/browser/layout/SettingsModal.js.map +1 -1
  235. package/dist/browser/layout/app-workspace-controller.js +821 -12
  236. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  237. package/dist/browser/layout/app-workspace-state.js +3 -2
  238. package/dist/browser/layout/app-workspace-state.js.map +1 -1
  239. package/dist/browser/layout/floating-window-messages.js +28 -0
  240. package/dist/browser/layout/floating-window-messages.js.map +1 -0
  241. package/dist/browser/layout/index.js +2 -0
  242. package/dist/browser/layout/index.js.map +1 -1
  243. package/dist/browser/layout/navigation-model.js.map +1 -1
  244. package/dist/browser/layout/page-title-controller.js +169 -0
  245. package/dist/browser/layout/page-title-controller.js.map +1 -0
  246. package/dist/browser/layout/panel-dialog-messages.js +20 -0
  247. package/dist/browser/layout/panel-dialog-messages.js.map +1 -0
  248. package/dist/browser/layout/panes-messages.js +48 -0
  249. package/dist/browser/layout/panes-messages.js.map +1 -0
  250. package/dist/browser/layout/refresh-messages.js +20 -0
  251. package/dist/browser/layout/refresh-messages.js.map +1 -0
  252. package/dist/browser/layout/settings-messages.js +54 -0
  253. package/dist/browser/layout/settings-messages.js.map +1 -0
  254. package/dist/browser/layout/workspace-messages.js +56 -0
  255. package/dist/browser/layout/workspace-messages.js.map +1 -0
  256. package/dist/browser/surfaces/Avatar.js +5 -5
  257. package/dist/browser/surfaces/Avatar.js.map +1 -1
  258. package/dist/browser/surfaces/ResourceCard.js +4 -2
  259. package/dist/browser/surfaces/ResourceCard.js.map +1 -1
  260. package/dist/browser/surfaces/StatCell.js +18 -6
  261. package/dist/browser/surfaces/StatCell.js.map +1 -1
  262. package/dist/browser/surfaces/Tag.js +3 -3
  263. package/dist/browser/surfaces/Tag.js.map +1 -1
  264. package/dist/browser/surfaces/avatar-messages.js +26 -0
  265. package/dist/browser/surfaces/avatar-messages.js.map +1 -0
  266. package/dist/browser/surfaces/resource-messages.js +26 -0
  267. package/dist/browser/surfaces/resource-messages.js.map +1 -0
  268. package/dist/browser/widgets/Widget.js +6 -0
  269. package/dist/browser/widgets/Widget.js.map +1 -1
  270. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  271. package/dist/ssr/actions/FilterChip.js +3 -1
  272. package/dist/ssr/actions/FilterChip.js.map +1 -1
  273. package/dist/ssr/actions/SpotlightSearch.js +3 -1
  274. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  275. package/dist/ssr/actions/filter-messages.js +20 -0
  276. package/dist/ssr/actions/filter-messages.js.map +1 -0
  277. package/dist/ssr/actions/spotlight-messages.js +16 -0
  278. package/dist/ssr/actions/spotlight-messages.js.map +1 -0
  279. package/dist/ssr/chat/ChatComposer.js +47 -41
  280. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  281. package/dist/ssr/chat/ChatPrimitives.js +23 -21
  282. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  283. package/dist/ssr/chat/ChatRoot.js +3 -3
  284. package/dist/ssr/chat/ChatRoot.js.map +1 -1
  285. package/dist/ssr/chat/ChatTimeline.js +11 -11
  286. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  287. package/dist/ssr/chat/chat-messages.js +236 -0
  288. package/dist/ssr/chat/chat-messages.js.map +1 -0
  289. package/dist/ssr/content/Calendar.js +534 -346
  290. package/dist/ssr/content/Calendar.js.map +1 -1
  291. package/dist/ssr/content/CalendarDayView.js +800 -0
  292. package/dist/ssr/content/CalendarDayView.js.map +1 -0
  293. package/dist/ssr/content/CalendarWeekView.js +1069 -0
  294. package/dist/ssr/content/CalendarWeekView.js.map +1 -0
  295. package/dist/ssr/content/Chart.js +12 -5
  296. package/dist/ssr/content/Chart.js.map +1 -1
  297. package/dist/ssr/content/ChartExplorer.js +98 -37
  298. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  299. package/dist/ssr/content/ChartExplorerControls.js +9 -7
  300. package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
  301. package/dist/ssr/content/ChartFilterControls.js +52 -8
  302. package/dist/ssr/content/ChartFilterControls.js.map +1 -1
  303. package/dist/ssr/content/ChartSnapshotView.js +3 -3
  304. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  305. package/dist/ssr/content/DataTable.js +77 -53
  306. package/dist/ssr/content/DataTable.js.map +1 -1
  307. package/dist/ssr/content/Docs.js +3 -1
  308. package/dist/ssr/content/Docs.js.map +1 -1
  309. package/dist/ssr/content/FileBrowser.js +30 -26
  310. package/dist/ssr/content/FileBrowser.js.map +1 -1
  311. package/dist/ssr/content/FileTree.js +9 -7
  312. package/dist/ssr/content/FileTree.js.map +1 -1
  313. package/dist/ssr/content/FileView.js +37 -28
  314. package/dist/ssr/content/FileView.js.map +1 -1
  315. package/dist/ssr/content/Lightbox.js +8 -6
  316. package/dist/ssr/content/Lightbox.js.map +1 -1
  317. package/dist/ssr/content/LogEntriesTable.js +3 -3
  318. package/dist/ssr/content/LogEntriesTable.js.map +1 -1
  319. package/dist/ssr/content/MessageRow.js +24 -22
  320. package/dist/ssr/content/MessageRow.js.map +1 -1
  321. package/dist/ssr/content/Pagination.js +6 -6
  322. package/dist/ssr/content/Pagination.js.map +1 -1
  323. package/dist/ssr/content/PdfPreview.js +15 -13
  324. package/dist/ssr/content/PdfPreview.js.map +1 -1
  325. package/dist/ssr/content/RangePicker.js +3 -1
  326. package/dist/ssr/content/RangePicker.js.map +1 -1
  327. package/dist/ssr/content/StructuredDataPreview.js +3 -1
  328. package/dist/ssr/content/StructuredDataPreview.js.map +1 -1
  329. package/dist/ssr/content/Timeline.js +13 -11
  330. package/dist/ssr/content/Timeline.js.map +1 -1
  331. package/dist/ssr/content/VideoPlayer.js +5 -5
  332. package/dist/ssr/content/VideoPlayer.js.map +1 -1
  333. package/dist/ssr/content/VirtualFeed.js +6 -4
  334. package/dist/ssr/content/VirtualFeed.js.map +1 -1
  335. package/dist/ssr/content/ZoomPanViewport.js +7 -4
  336. package/dist/ssr/content/ZoomPanViewport.js.map +1 -1
  337. package/dist/ssr/content/calendar-day-scroll.js +98 -0
  338. package/dist/ssr/content/calendar-day-scroll.js.map +1 -0
  339. package/dist/ssr/content/calendar-days.js +408 -0
  340. package/dist/ssr/content/calendar-days.js.map +1 -0
  341. package/dist/ssr/content/calendar-dialogs.js +159 -0
  342. package/dist/ssr/content/calendar-dialogs.js.map +1 -0
  343. package/dist/ssr/content/calendar-messages.js +249 -3
  344. package/dist/ssr/content/calendar-messages.js.map +1 -1
  345. package/dist/ssr/content/calendar-pointer.js +19 -6
  346. package/dist/ssr/content/calendar-pointer.js.map +1 -1
  347. package/dist/ssr/content/calendar-shared.js +261 -0
  348. package/dist/ssr/content/calendar-shared.js.map +1 -0
  349. package/dist/ssr/content/calendar-time-view.js +1306 -0
  350. package/dist/ssr/content/calendar-time-view.js.map +1 -0
  351. package/dist/ssr/content/chart-messages.js +146 -0
  352. package/dist/ssr/content/chart-messages.js.map +1 -0
  353. package/dist/ssr/content/collection-selection.js +2 -0
  354. package/dist/ssr/content/collection-selection.js.map +1 -1
  355. package/dist/ssr/content/data-table-messages.js +24 -0
  356. package/dist/ssr/content/data-table-messages.js.map +1 -0
  357. package/dist/ssr/content/docs-messages.js +24 -0
  358. package/dist/ssr/content/docs-messages.js.map +1 -0
  359. package/dist/ssr/content/feed-messages.js +34 -0
  360. package/dist/ssr/content/feed-messages.js.map +1 -0
  361. package/dist/ssr/content/file-browser-messages.js +69 -0
  362. package/dist/ssr/content/file-browser-messages.js.map +1 -0
  363. package/dist/ssr/content/file-view-messages.js +64 -0
  364. package/dist/ssr/content/file-view-messages.js.map +1 -0
  365. package/dist/ssr/content/index.js.map +1 -1
  366. package/dist/ssr/content/lightbox-messages.js +36 -0
  367. package/dist/ssr/content/lightbox-messages.js.map +1 -0
  368. package/dist/ssr/content/log-entries-messages.js +20 -0
  369. package/dist/ssr/content/log-entries-messages.js.map +1 -0
  370. package/dist/ssr/content/markdown-info-block-messages.js +24 -0
  371. package/dist/ssr/content/markdown-info-block-messages.js.map +1 -0
  372. package/dist/ssr/content/markdown-info-blocks.js +3 -3
  373. package/dist/ssr/content/markdown-info-blocks.js.map +1 -1
  374. package/dist/ssr/content/markdown-links.js +2 -2
  375. package/dist/ssr/content/markdown-links.js.map +1 -1
  376. package/dist/ssr/content/markdown-reference-messages.js +30 -0
  377. package/dist/ssr/content/markdown-reference-messages.js.map +1 -0
  378. package/dist/ssr/content/pagination-messages.js +38 -0
  379. package/dist/ssr/content/pagination-messages.js.map +1 -0
  380. package/dist/ssr/content/pdf-messages.js +43 -0
  381. package/dist/ssr/content/pdf-messages.js.map +1 -0
  382. package/dist/ssr/content/range-picker-messages.js +20 -0
  383. package/dist/ssr/content/range-picker-messages.js.map +1 -0
  384. package/dist/ssr/content/structured-data-messages.js +22 -0
  385. package/dist/ssr/content/structured-data-messages.js.map +1 -0
  386. package/dist/ssr/content/timeline-messages.js +62 -0
  387. package/dist/ssr/content/timeline-messages.js.map +1 -0
  388. package/dist/ssr/content/video-messages.js +24 -0
  389. package/dist/ssr/content/video-messages.js.map +1 -0
  390. package/dist/ssr/content/viewport-messages.js +28 -0
  391. package/dist/ssr/content/viewport-messages.js.map +1 -0
  392. package/dist/ssr/feedback/HoverPreview.js +34 -6
  393. package/dist/ssr/feedback/HoverPreview.js.map +1 -1
  394. package/dist/ssr/feedback/InstallGuide.js +18 -18
  395. package/dist/ssr/feedback/InstallGuide.js.map +1 -1
  396. package/dist/ssr/feedback/install-messages.js +104 -0
  397. package/dist/ssr/feedback/install-messages.js.map +1 -0
  398. package/dist/ssr/feedback/prompt-messages.js +65 -0
  399. package/dist/ssr/feedback/prompt-messages.js.map +1 -0
  400. package/dist/ssr/feedback/prompts.js +14 -11
  401. package/dist/ssr/feedback/prompts.js.map +1 -1
  402. package/dist/ssr/feedback/toast-messages.js +18 -0
  403. package/dist/ssr/feedback/toast-messages.js.map +1 -0
  404. package/dist/ssr/feedback/toast.js +4 -3
  405. package/dist/ssr/feedback/toast.js.map +1 -1
  406. package/dist/ssr/index.js +1 -1
  407. package/dist/ssr/index.js.map +1 -1
  408. package/dist/ssr/inputs/AutocompleteEditor.js +5 -3
  409. package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
  410. package/dist/ssr/inputs/AutocompleteSelect.js +10 -8
  411. package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
  412. package/dist/ssr/inputs/ChoiceGroups.js +4 -0
  413. package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
  414. package/dist/ssr/inputs/ChoiceInputs.js +5 -5
  415. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  416. package/dist/ssr/inputs/Combobox.js +3 -1
  417. package/dist/ssr/inputs/Combobox.js.map +1 -1
  418. package/dist/ssr/inputs/FileDropTarget.js +6 -6
  419. package/dist/ssr/inputs/FileDropTarget.js.map +1 -1
  420. package/dist/ssr/inputs/FileInputs.js +29 -20
  421. package/dist/ssr/inputs/FileInputs.js.map +1 -1
  422. package/dist/ssr/inputs/MultiSelectInput.js +7 -5
  423. package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
  424. package/dist/ssr/inputs/NumberInput.js +4 -2
  425. package/dist/ssr/inputs/NumberInput.js.map +1 -1
  426. package/dist/ssr/inputs/QrScanner.js +4 -4
  427. package/dist/ssr/inputs/QrScanner.js.map +1 -1
  428. package/dist/ssr/inputs/Select.js +7 -5
  429. package/dist/ssr/inputs/Select.js.map +1 -1
  430. package/dist/ssr/inputs/SelectChip.js +3 -3
  431. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  432. package/dist/ssr/inputs/SignatureInput.js +9 -3
  433. package/dist/ssr/inputs/SignatureInput.js.map +1 -1
  434. package/dist/ssr/inputs/SpecialInputs.js +4 -2
  435. package/dist/ssr/inputs/SpecialInputs.js.map +1 -1
  436. package/dist/ssr/inputs/TagEditor.js +8 -6
  437. package/dist/ssr/inputs/TagEditor.js.map +1 -1
  438. package/dist/ssr/inputs/TagsInput.js +5 -5
  439. package/dist/ssr/inputs/TagsInput.js.map +1 -1
  440. package/dist/ssr/inputs/TemplateEditor.js +5 -5
  441. package/dist/ssr/inputs/TemplateEditor.js.map +1 -1
  442. package/dist/ssr/inputs/TextInput.js +3 -1
  443. package/dist/ssr/inputs/TextInput.js.map +1 -1
  444. package/dist/ssr/inputs/completion-messages.js +24 -0
  445. package/dist/ssr/inputs/completion-messages.js.map +1 -0
  446. package/dist/ssr/inputs/file-drop-messages.js +63 -0
  447. package/dist/ssr/inputs/file-drop-messages.js.map +1 -0
  448. package/dist/ssr/inputs/file-drop.js.map +1 -1
  449. package/dist/ssr/inputs/file-input-messages.js +60 -0
  450. package/dist/ssr/inputs/file-input-messages.js.map +1 -0
  451. package/dist/ssr/inputs/icon-messages.js +22 -0
  452. package/dist/ssr/inputs/icon-messages.js.map +1 -0
  453. package/dist/ssr/inputs/input-messages.js +38 -0
  454. package/dist/ssr/inputs/input-messages.js.map +1 -0
  455. package/dist/ssr/inputs/markdown/MarkdownEditor.js +9 -5
  456. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  457. package/dist/ssr/inputs/markdown/Toolbar.js +13 -13
  458. package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
  459. package/dist/ssr/inputs/markdown/editor-messages.js +43 -0
  460. package/dist/ssr/inputs/markdown/editor-messages.js.map +1 -0
  461. package/dist/ssr/inputs/markdown/toolbar-messages.js +40 -0
  462. package/dist/ssr/inputs/markdown/toolbar-messages.js.map +1 -0
  463. package/dist/ssr/inputs/qr-messages.js +26 -0
  464. package/dist/ssr/inputs/qr-messages.js.map +1 -0
  465. package/dist/ssr/inputs/select-messages.js +63 -0
  466. package/dist/ssr/inputs/select-messages.js.map +1 -0
  467. package/dist/ssr/inputs/tag-messages.js +44 -0
  468. package/dist/ssr/inputs/tag-messages.js.map +1 -0
  469. package/dist/ssr/inputs/template-messages.js +22 -0
  470. package/dist/ssr/inputs/template-messages.js.map +1 -0
  471. package/dist/ssr/internal/render-error-messages.js +20 -0
  472. package/dist/ssr/internal/render-error-messages.js.map +1 -0
  473. package/dist/ssr/internal/render-error.js +3 -1
  474. package/dist/ssr/internal/render-error.js.map +1 -1
  475. package/dist/ssr/internal/text-selection.js +101 -0
  476. package/dist/ssr/internal/text-selection.js.map +1 -0
  477. package/dist/ssr/intl/messages.js +6 -1155
  478. package/dist/ssr/intl/messages.js.map +1 -1
  479. package/dist/ssr/layout/AppWorkspace.js +219 -103
  480. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  481. package/dist/ssr/layout/BottomSheet.js +1 -0
  482. package/dist/ssr/layout/BottomSheet.js.map +1 -1
  483. package/dist/ssr/layout/Discussion.js +8 -5
  484. package/dist/ssr/layout/Discussion.js.map +1 -1
  485. package/dist/ssr/layout/FloatingWindow.js +8 -5
  486. package/dist/ssr/layout/FloatingWindow.js.map +1 -1
  487. package/dist/ssr/layout/Navigation.js +6 -5
  488. package/dist/ssr/layout/Navigation.js.map +1 -1
  489. package/dist/ssr/layout/PageTitle.js +256 -0
  490. package/dist/ssr/layout/PageTitle.js.map +1 -0
  491. package/dist/ssr/layout/PanelDialog.js +8 -6
  492. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  493. package/dist/ssr/layout/Panes.js +22 -14
  494. package/dist/ssr/layout/Panes.js.map +1 -1
  495. package/dist/ssr/layout/PullToRefresh.js +13 -4
  496. package/dist/ssr/layout/PullToRefresh.js.map +1 -1
  497. package/dist/ssr/layout/Settings.js +14 -12
  498. package/dist/ssr/layout/Settings.js.map +1 -1
  499. package/dist/ssr/layout/SettingsCollection.js +6 -5
  500. package/dist/ssr/layout/SettingsCollection.js.map +1 -1
  501. package/dist/ssr/layout/SettingsModal.js +3 -1
  502. package/dist/ssr/layout/SettingsModal.js.map +1 -1
  503. package/dist/ssr/layout/app-workspace-controller.js +821 -12
  504. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  505. package/dist/ssr/layout/app-workspace-state.js +3 -2
  506. package/dist/ssr/layout/app-workspace-state.js.map +1 -1
  507. package/dist/ssr/layout/floating-window-messages.js +28 -0
  508. package/dist/ssr/layout/floating-window-messages.js.map +1 -0
  509. package/dist/ssr/layout/index.js +2 -0
  510. package/dist/ssr/layout/index.js.map +1 -1
  511. package/dist/ssr/layout/navigation-model.js.map +1 -1
  512. package/dist/ssr/layout/page-title-controller.js +169 -0
  513. package/dist/ssr/layout/page-title-controller.js.map +1 -0
  514. package/dist/ssr/layout/panel-dialog-messages.js +20 -0
  515. package/dist/ssr/layout/panel-dialog-messages.js.map +1 -0
  516. package/dist/ssr/layout/panes-messages.js +48 -0
  517. package/dist/ssr/layout/panes-messages.js.map +1 -0
  518. package/dist/ssr/layout/refresh-messages.js +20 -0
  519. package/dist/ssr/layout/refresh-messages.js.map +1 -0
  520. package/dist/ssr/layout/settings-messages.js +54 -0
  521. package/dist/ssr/layout/settings-messages.js.map +1 -0
  522. package/dist/ssr/layout/workspace-messages.js +56 -0
  523. package/dist/ssr/layout/workspace-messages.js.map +1 -0
  524. package/dist/ssr/surfaces/Avatar.js +5 -5
  525. package/dist/ssr/surfaces/Avatar.js.map +1 -1
  526. package/dist/ssr/surfaces/ResourceCard.js +4 -2
  527. package/dist/ssr/surfaces/ResourceCard.js.map +1 -1
  528. package/dist/ssr/surfaces/StatCell.js +2 -2
  529. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  530. package/dist/ssr/surfaces/Tag.js +3 -3
  531. package/dist/ssr/surfaces/Tag.js.map +1 -1
  532. package/dist/ssr/surfaces/avatar-messages.js +26 -0
  533. package/dist/ssr/surfaces/avatar-messages.js.map +1 -0
  534. package/dist/ssr/surfaces/resource-messages.js +26 -0
  535. package/dist/ssr/surfaces/resource-messages.js.map +1 -0
  536. package/dist/ssr/widgets/Widget.js +6 -0
  537. package/dist/ssr/widgets/Widget.js.map +1 -1
  538. package/dist/styles.css +1 -1
  539. package/dist/types/actions/filter-messages.d.ts +8 -0
  540. package/dist/types/actions/spotlight-messages.d.ts +8 -0
  541. package/dist/types/chat/chat-messages.d.ts +116 -0
  542. package/dist/types/content/Calendar.d.ts +91 -0
  543. package/dist/types/content/CalendarDayView.d.ts +7 -0
  544. package/dist/types/content/CalendarWeekView.d.ts +7 -0
  545. package/dist/types/content/ChartExplorer.d.ts +36 -1
  546. package/dist/types/content/ChartFilterControls.d.ts +6 -1
  547. package/dist/types/content/DataTable.d.ts +7 -0
  548. package/dist/types/content/FileView.d.ts +0 -10
  549. package/dist/types/content/calendar-day-scroll.d.ts +42 -0
  550. package/dist/types/content/calendar-days.d.ts +192 -0
  551. package/dist/types/content/calendar-dialogs.d.ts +22 -0
  552. package/dist/types/content/calendar-messages.d.ts +119 -1
  553. package/dist/types/content/calendar-pointer.d.ts +9 -0
  554. package/dist/types/content/calendar-shared.d.ts +69 -0
  555. package/dist/types/content/calendar-time-view.d.ts +252 -0
  556. package/dist/types/content/chart-messages.d.ts +37 -0
  557. package/dist/types/content/data-table-messages.d.ts +10 -0
  558. package/dist/types/content/docs-messages.d.ts +10 -0
  559. package/dist/types/content/feed-messages.d.ts +15 -0
  560. package/dist/types/content/file-browser-messages.d.ts +33 -0
  561. package/dist/types/content/file-view-messages.d.ts +30 -0
  562. package/dist/types/content/index.d.ts +2 -2
  563. package/dist/types/content/lightbox-messages.d.ts +16 -0
  564. package/dist/types/content/log-entries-messages.d.ts +8 -0
  565. package/dist/types/content/markdown-info-block-messages.d.ts +12 -0
  566. package/dist/types/content/markdown-reference-messages.d.ts +15 -0
  567. package/dist/types/content/pagination-messages.d.ts +17 -0
  568. package/dist/types/content/pdf-messages.d.ts +20 -0
  569. package/dist/types/content/range-picker-messages.d.ts +8 -0
  570. package/dist/types/content/structured-data-messages.d.ts +9 -0
  571. package/dist/types/content/timeline-messages.d.ts +29 -0
  572. package/dist/types/content/video-messages.d.ts +10 -0
  573. package/dist/types/content/viewport-messages.d.ts +12 -0
  574. package/dist/types/feedback/install-messages.d.ts +50 -0
  575. package/dist/types/feedback/prompt-messages.d.ts +31 -0
  576. package/dist/types/feedback/toast-messages.d.ts +9 -0
  577. package/dist/types/index.d.ts +1 -0
  578. package/dist/types/inputs/completion-messages.d.ts +10 -0
  579. package/dist/types/inputs/file-drop-messages.d.ts +30 -0
  580. package/dist/types/inputs/file-drop.d.ts +3 -3
  581. package/dist/types/inputs/file-input-messages.d.ts +28 -0
  582. package/dist/types/inputs/icon-messages.d.ts +9 -0
  583. package/dist/types/inputs/input-messages.d.ts +17 -0
  584. package/dist/types/inputs/markdown/editor-messages.d.ts +20 -0
  585. package/dist/types/inputs/markdown/toolbar-messages.d.ts +18 -0
  586. package/dist/types/inputs/qr-messages.d.ts +11 -0
  587. package/dist/types/inputs/select-messages.d.ts +30 -0
  588. package/dist/types/inputs/tag-messages.d.ts +20 -0
  589. package/dist/types/inputs/template-messages.d.ts +9 -0
  590. package/dist/types/internal/render-error-messages.d.ts +8 -0
  591. package/dist/types/internal/text-selection.d.ts +18 -0
  592. package/dist/types/intl/messages.d.ts +3 -544
  593. package/dist/types/layout/AppWorkspace.d.ts +42 -5
  594. package/dist/types/layout/PageTitle.d.ts +65 -0
  595. package/dist/types/layout/app-workspace-controller.d.ts +12 -0
  596. package/dist/types/layout/app-workspace-state.d.ts +3 -2
  597. package/dist/types/layout/floating-window-messages.d.ts +12 -0
  598. package/dist/types/layout/index.d.ts +3 -0
  599. package/dist/types/layout/navigation-model.d.ts +7 -0
  600. package/dist/types/layout/page-title-controller.d.ts +13 -0
  601. package/dist/types/layout/panel-dialog-messages.d.ts +8 -0
  602. package/dist/types/layout/panes-messages.d.ts +22 -0
  603. package/dist/types/layout/refresh-messages.d.ts +8 -0
  604. package/dist/types/layout/settings-messages.d.ts +25 -0
  605. package/dist/types/layout/workspace-messages.d.ts +26 -0
  606. package/dist/types/surfaces/StatCell.d.ts +5 -0
  607. package/dist/types/surfaces/avatar-messages.d.ts +11 -0
  608. package/dist/types/surfaces/resource-messages.d.ts +11 -0
  609. package/dist/types/widgets/Widget.d.ts +5 -1
  610. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["surfaces/ResourceCard.tsx"],"sourcesContent":["import { type JSX, Match, Show, Switch } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\n\n/**\n * What a card can show of the element it stands for: the element itself, a placeholder while it is being looked up, or\n * why it cannot be shown.\n */\nexport type ResourceCardState = \"ok\" | \"loading\" | \"no_access\" | \"deleted\" | \"unavailable\";\n\nexport type ResourceCardProps = {\n /** Defaults to `\"ok\"`. Every state has the same size, so a card that changes state moves nothing around it. */\n state?: ResourceCardState;\n /** The element's name. Shown only in state `\"ok\"`, as \"Untitled\" when blank, so a card that opens always has a name. */\n title?: string;\n /** Icon class of the element's kind, for example `ti ti-notebook`. Shown only in state `\"ok\"`. */\n icon?: string;\n /** What the element belongs to, for example the application or service. Shown only in state `\"ok\"`. */\n source?: string;\n /** Where the element lives within its source, for example a folder or a project. Shown only in state `\"ok\"`. */\n location?: string;\n /** One line of plain text from the element. Shown only in state `\"ok\"`. */\n preview?: string;\n /** Opens the element, for example in a panel. Takes precedence over `href`. Only in state `\"ok\"`. */\n onOpen?: () => void;\n /** Opens the element. Absolute `https` or `http`, or relative. Only in state `\"ok\"`. */\n href?: string;\n class?: string;\n};\n\nconst DEFAULT_ICON = \"ti ti-file\";\nconst LINK_PROTOCOLS = new Set([\"https:\", \"http:\"]);\nconst STATE_ICONS = { no_access: \"ti ti-lock\", deleted: \"ti ti-trash\", unavailable: \"ti ti-cloud-off\" } as const;\n\n/** A link the card may open: absolute with an allowed scheme, or relative to the page. */\nconst linkUrl = (href: string | undefined): string | undefined => {\n if (!href) return undefined;\n try {\n return LINK_PROTOCOLS.has(new URL(href, \"https://relative.invalid/\").protocol) ? href : undefined;\n } catch {\n return undefined;\n }\n};\n\n/**\n * A card for an element that something refers to, such as a task or a document, with the same size in every state.\n * Outside state `\"ok\"`, it shows none of the element's fields and opens nothing, whatever the caller passes.\n */\nexport function ResourceCard(props: ResourceCardProps): JSX.Element {\n const messages = useUiMessages();\n const state = () => props.state ?? \"ok\";\n const ok = () => state() === \"ok\";\n const title = () => (props.title?.trim() ? props.title : messages().resourceUntitled);\n const meta = () => [props.source, props.location].filter((part) => part?.trim()).join(\" · \");\n /** Why the element cannot be shown, outside `\"ok\"` and `\"loading\"`. */\n const reason = (): Exclude<ResourceCardState, \"ok\" | \"loading\"> | undefined => {\n const current = state();\n return current === \"ok\" || current === \"loading\" ? undefined : current;\n };\n const className = () => `k2b-resource-card${props.class ? ` ${props.class}` : \"\"}`;\n\n const content = () => (\n <Switch>\n <Match when={ok()}>\n <span class=\"k2b-resource-card__icon\" aria-hidden=\"true\">\n <i class={props.icon ?? DEFAULT_ICON} />\n </span>\n <span class=\"k2b-resource-card__copy\">\n <span class=\"k2b-resource-card__title\">{title()}</span>\n <Show when={meta()}>\n <span class=\"k2b-resource-card__meta\">{meta()}</span>\n </Show>\n <Show when={props.preview?.trim()}>\n <span class=\"k2b-resource-card__preview\">{props.preview}</span>\n </Show>\n </span>\n </Match>\n <Match when={state() === \"loading\"}>\n <span class=\"k2b-resource-card__icon\" aria-hidden=\"true\" />\n <span class=\"k2b-resource-card__copy\">\n <span class=\"k2b-resource-card__bar\" aria-hidden=\"true\" />\n <span class=\"k2b-resource-card__bar\" aria-hidden=\"true\" />\n <span class=\"k2b-sr-only\">{messages().loading}</span>\n </span>\n </Match>\n <Match when={reason()}>\n {(reason) => (\n <>\n <span class=\"k2b-resource-card__icon\" aria-hidden=\"true\">\n <i class={STATE_ICONS[reason()]} />\n </span>\n <span class=\"k2b-resource-card__copy\">\n <span class=\"k2b-resource-card__label\">\n {reason() === \"no_access\"\n ? messages().resourceNoAccess\n : reason() === \"deleted\"\n ? messages().resourceDeleted\n : messages().resourceUnavailable}\n </span>\n </span>\n </>\n )}\n </Match>\n </Switch>\n );\n\n return (\n <Show\n when={ok() && props.onOpen}\n fallback={\n <Show\n when={ok() && linkUrl(props.href)}\n fallback={\n <div class={className()} data-state={state()} aria-busy={state() === \"loading\" ? \"true\" : undefined}>\n {content()}\n </div>\n }\n >\n {(href) => (\n <a class={className()} data-state={state()} href={href()}>\n {content()}\n </a>\n )}\n </Show>\n }\n >\n {(open) => (\n <button type=\"button\" class={className()} data-state={state()} onClick={() => open()()}>\n {content()}\n </button>\n )}\n </Show>\n );\n}\n\nexport default ResourceCard;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["surfaces/ResourceCard.tsx"],"sourcesContent":["import { type JSX, Match, Show, Switch } from \"solid-js\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { useResourceMessages } from \"./resource-messages\";\n\n/**\n * What a card can show of the element it stands for: the element itself, a placeholder while it is being looked up, or\n * why it cannot be shown.\n */\nexport type ResourceCardState = \"ok\" | \"loading\" | \"no_access\" | \"deleted\" | \"unavailable\";\n\nexport type ResourceCardProps = {\n /** Defaults to `\"ok\"`. Every state has the same size, so a card that changes state moves nothing around it. */\n state?: ResourceCardState;\n /** The element's name. Shown only in state `\"ok\"`, as \"Untitled\" when blank, so a card that opens always has a name. */\n title?: string;\n /** Icon class of the element's kind, for example `ti ti-notebook`. Shown only in state `\"ok\"`. */\n icon?: string;\n /** What the element belongs to, for example the application or service. Shown only in state `\"ok\"`. */\n source?: string;\n /** Where the element lives within its source, for example a folder or a project. Shown only in state `\"ok\"`. */\n location?: string;\n /** One line of plain text from the element. Shown only in state `\"ok\"`. */\n preview?: string;\n /** Opens the element, for example in a panel. Takes precedence over `href`. Only in state `\"ok\"`. */\n onOpen?: () => void;\n /** Opens the element. Absolute `https` or `http`, or relative. Only in state `\"ok\"`. */\n href?: string;\n class?: string;\n};\n\nconst DEFAULT_ICON = \"ti ti-file\";\nconst LINK_PROTOCOLS = new Set([\"https:\", \"http:\"]);\nconst STATE_ICONS = { no_access: \"ti ti-lock\", deleted: \"ti ti-trash\", unavailable: \"ti ti-cloud-off\" } as const;\n\n/** A link the card may open: absolute with an allowed scheme, or relative to the page. */\nconst linkUrl = (href: string | undefined): string | undefined => {\n if (!href) return undefined;\n try {\n return LINK_PROTOCOLS.has(new URL(href, \"https://relative.invalid/\").protocol) ? href : undefined;\n } catch {\n return undefined;\n }\n};\n\n/**\n * A card for an element that something refers to, such as a task or a document, with the same size in every state.\n * Outside state `\"ok\"`, it shows none of the element's fields and opens nothing, whatever the caller passes.\n */\nexport function ResourceCard(props: ResourceCardProps): JSX.Element {\n const messages = useUiMessages();\n const resourceMessages = useResourceMessages();\n const state = () => props.state ?? \"ok\";\n const ok = () => state() === \"ok\";\n const title = () => (props.title?.trim() ? props.title : resourceMessages().resourceUntitled);\n const meta = () => [props.source, props.location].filter((part) => part?.trim()).join(\" · \");\n /** Why the element cannot be shown, outside `\"ok\"` and `\"loading\"`. */\n const reason = (): Exclude<ResourceCardState, \"ok\" | \"loading\"> | undefined => {\n const current = state();\n return current === \"ok\" || current === \"loading\" ? undefined : current;\n };\n const className = () => `k2b-resource-card${props.class ? ` ${props.class}` : \"\"}`;\n\n const content = () => (\n <Switch>\n <Match when={ok()}>\n <span class=\"k2b-resource-card__icon\" aria-hidden=\"true\">\n <i class={props.icon ?? DEFAULT_ICON} />\n </span>\n <span class=\"k2b-resource-card__copy\">\n <span class=\"k2b-resource-card__title\">{title()}</span>\n <Show when={meta()}>\n <span class=\"k2b-resource-card__meta\">{meta()}</span>\n </Show>\n <Show when={props.preview?.trim()}>\n <span class=\"k2b-resource-card__preview\">{props.preview}</span>\n </Show>\n </span>\n </Match>\n <Match when={state() === \"loading\"}>\n <span class=\"k2b-resource-card__icon\" aria-hidden=\"true\" />\n <span class=\"k2b-resource-card__copy\">\n <span class=\"k2b-resource-card__bar\" aria-hidden=\"true\" />\n <span class=\"k2b-resource-card__bar\" aria-hidden=\"true\" />\n <span class=\"k2b-sr-only\">{messages().loading}</span>\n </span>\n </Match>\n <Match when={reason()}>\n {(reason) => (\n <>\n <span class=\"k2b-resource-card__icon\" aria-hidden=\"true\">\n <i class={STATE_ICONS[reason()]} />\n </span>\n <span class=\"k2b-resource-card__copy\">\n <span class=\"k2b-resource-card__label\">\n {reason() === \"no_access\"\n ? resourceMessages().resourceNoAccess\n : reason() === \"deleted\"\n ? resourceMessages().resourceDeleted\n : resourceMessages().resourceUnavailable}\n </span>\n </span>\n </>\n )}\n </Match>\n </Switch>\n );\n\n return (\n <Show\n when={ok() && props.onOpen}\n fallback={\n <Show\n when={ok() && linkUrl(props.href)}\n fallback={\n <div class={className()} data-state={state()} aria-busy={state() === \"loading\" ? \"true\" : undefined}>\n {content()}\n </div>\n }\n >\n {(href) => (\n <a class={className()} data-state={state()} href={href()}>\n {content()}\n </a>\n )}\n </Show>\n }\n >\n {(open) => (\n <button type=\"button\" class={className()} data-state={state()} onClick={() => open()()}>\n {content()}\n </button>\n )}\n </Show>\n );\n}\n\nexport default ResourceCard;\n"],"mappings":"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","ignoreList":[]}
@@ -72,9 +72,9 @@ export function StatCell(props) {
72
72
  return props.href;
73
73
  },
74
74
  get fallback() {
75
- return _$ssr(_tmpl$7, _$ssrAttribute("data-size", _$escape(size(), true), false) + _$ssrAttribute("data-surface", _$escape(surface, true), false), _$escape(_$createComponent(Body, props)));
75
+ return _$ssr(_tmpl$7, _$ssrAttribute("data-size", _$escape(size(), true), false) + _$ssrAttribute("data-surface", _$escape(surface, true), false) + _$ssrAttribute("data-wrap", _$escape(props.wrap || undefined, true), false), _$escape(_$createComponent(Body, props)));
76
76
  },
77
- children: href => _$ssr(_tmpl$8, _$ssrAttribute("href", _$escape(href(), true), false), _$ssrAttribute("data-size", _$escape(size(), true), false) + _$ssrAttribute("data-surface", _$escape(surface, true), false), _$escape(_$createComponent(Body, props)))
77
+ children: href => _$ssr(_tmpl$8, _$ssrAttribute("href", _$escape(href(), true), false), _$ssrAttribute("data-size", _$escape(size(), true), false) + _$ssrAttribute("data-surface", _$escape(surface, true), false) + _$ssrAttribute("data-wrap", _$escape(props.wrap || undefined, true), false), _$escape(_$createComponent(Body, props)))
78
78
  });
79
79
  }
80
80
  export default StatCell;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["surfaces/StatCell.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport Chart from \"../content/Chart\";\nimport type { AccentColor } from \"../semantics\";\nimport { type StatGridSize, useStatGridSize, useStatGridSurface } from \"./StatGrid\";\n\nexport type StatCellTone = AccentColor;\n\nexport type StatCellAccent = {\n tone: StatCellTone;\n icon: string;\n text?: string;\n};\n\nexport type StatCellProps = {\n label: string;\n value: string | number | JSX.Element;\n sub?: string;\n valueClass?: string;\n accent?: StatCellAccent;\n href?: string;\n title?: string;\n trend?: readonly number[];\n size?: StatGridSize;\n};\n\nfunction Body(props: StatCellProps): JSX.Element {\n const gridSize = useStatGridSize();\n const size = () => props.size ?? gridSize;\n const accent = () => props.accent;\n return (\n <>\n <span class=\"k2b-stat-cell__label\" data-size={size()}>\n {props.label}\n </span>\n <span class={`k2b-stat-cell__value ${props.valueClass ?? \"\"}`} data-size={size()} title={props.title}>\n {props.value}\n </span>\n <Show when={props.trend && props.trend.length > 1}>\n <Chart\n kind=\"sparkline\"\n class=\"k2b-stat-cell__trend\"\n style={{ height: \"32px\" }}\n data={Array.from(props.trend ?? [])}\n showLast\n showMinMax\n />\n </Show>\n <Show when={props.sub || accent()}>\n <div class=\"k2b-stat-cell__support\">\n <Show when={props.sub}>{(sub) => <span class=\"k2b-stat-cell__sub\">{sub()}</span>}</Show>\n <Show when={accent()}>\n {(value) => (\n <Show\n when={value().text}\n fallback={<i class={`${value().icon} k2b-stat-cell__accent-icon`} data-tone={value().tone} aria-hidden=\"true\" />}\n >\n {(text) => (\n <span class=\"k2b-stat-cell__accent\" data-tone={value().tone}>\n <i class={value().icon} aria-hidden=\"true\" />\n {text()}\n </span>\n )}\n </Show>\n )}\n </Show>\n </div>\n </Show>\n </>\n );\n}\n\nexport function StatCell(props: StatCellProps): JSX.Element {\n const gridSize = useStatGridSize();\n const size = () => props.size ?? gridSize;\n const surface = useStatGridSurface();\n return (\n <Show\n when={props.href}\n fallback={\n <div class=\"k2b-stat-cell\" data-size={size()} data-surface={surface}>\n <Body {...props} />\n </div>\n }\n >\n {(href) => (\n <a href={href()} class=\"k2b-stat-cell k2b-stat-cell--link\" data-size={size()} data-surface={surface}>\n <i class=\"ti ti-external-link k2b-stat-cell__link-icon\" aria-hidden=\"true\" />\n <Body {...props} />\n </a>\n )}\n </Show>\n );\n}\n\nexport default StatCell;\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,OAAO,KAAK,MAAM,kBAAkB;AAEpC,SAA4B,eAAe,EAAE,kBAAkB,QAAQ,YAAY;AAsBnF,SAAS,IAAI,CAAC,KAAoB,EAAe;EAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC;EAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,IAAI,QAAQ;EACzC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM;EACjC,2DAEkD,IAAI,CAAC,CAAC,0BACjD,KAAK,CAAC,KAAK,mBAED,iCAAwB,KAAK,CAAC,UAAU,IAAI,EAAE,SAAE,uCAAa,IAAI,CAAC,CAAC,mDAAS,KAAK,CAAC,KAAK,0BACjG,KAAK,CAAC,KAAK,sBAEb,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,oBAAK,CAAC,KAAK,OAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;IAAA;IAAA;MAAA,yBAC9C,KAAK;QACJ,IAAI;QAAA;QAEJ,KAAK,EAAE;UAAE,MAAM,EAAE;QAAO,CAAC;QAAA,IACzB,IAAI;UAAA,OAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAAA;QACnC,QAAQ;QACR,UAAU;MAAA;IAAA;EAAA,sBAGb,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;IAAA;IAAA;MAAA,iDAE5B,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,KAAK,CAAC,GAAG;QAAA;QAAA,UAAI,GAAG,4BAAuC,GAAG,CAAC,CAAC;MAAQ,gCAC/E,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,MAAM,CAAC,CAAC;QAAA;QAAA,UAChB,KAAK,sBACJ,IAAI;UAAA,IACH,IAAI;YAAA,OAAE,KAAK,CAAC,CAAC,CAAC,IAAI;UAAA;UAAA,IAClB,QAAQ;YAAA,sBAAY,YAAG,KAAK,CAAC,CAAC,CAAC,IAAI,oCAA6B,uCAAa,KAAK,CAAC,CAAC,CAAC,IAAI;UAAA;UAAA,UAEvF,IAAI,wDAC2C,KAAK,CAAC,CAAC,CAAC,IAAI,kDAC/C,KAAK,CAAC,CAAC,CAAC,IAAI,0BACrB,IAAI,CAAC,CAAC;QAEV;MAEJ;IAAA;EAAA;AAMb;AAEA,OAAO,SAAS,QAAQ,CAAC,KAAoB,EAAe;EAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC;EAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,IAAI,QAAQ;EACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC;EACpC,yBACG,IAAI;IAAA,IACH,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA,IAChB,QAAQ;MAAA,2DACgC,IAAI,CAAC,CAAC,0DAAgB,OAAO,4CAChE,IAAI,EAAK,KAAK;IAAA;IAAA,UAIjB,IAAI,mDACK,IAAI,CAAC,CAAC,sDAAuD,IAAI,CAAC,CAAC,0DAAgB,OAAO,4CAEhG,IAAI,EAAK,KAAK;EAElB;AAGP;AAEA,eAAe,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["surfaces/StatCell.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport Chart from \"../content/Chart\";\nimport type { AccentColor } from \"../semantics\";\nimport { type StatGridSize, useStatGridSize, useStatGridSurface } from \"./StatGrid\";\n\nexport type StatCellTone = AccentColor;\n\nexport type StatCellAccent = {\n tone: StatCellTone;\n icon: string;\n text?: string;\n};\n\nexport type StatCellProps = {\n label: string;\n value: string | number | JSX.Element;\n sub?: string;\n valueClass?: string;\n accent?: StatCellAccent;\n href?: string;\n title?: string;\n trend?: readonly number[];\n size?: StatGridSize;\n /**\n * Wraps the label, value and support line instead of truncating them. Use it for a cell whose height nothing\n * reserves, such as one figure on its own; cells compared in a row keep one line each.\n */\n wrap?: boolean;\n};\n\nfunction Body(props: StatCellProps): JSX.Element {\n const gridSize = useStatGridSize();\n const size = () => props.size ?? gridSize;\n const accent = () => props.accent;\n return (\n <>\n <span class=\"k2b-stat-cell__label\" data-size={size()}>\n {props.label}\n </span>\n <span class={`k2b-stat-cell__value ${props.valueClass ?? \"\"}`} data-size={size()} title={props.title}>\n {props.value}\n </span>\n <Show when={props.trend && props.trend.length > 1}>\n <Chart\n kind=\"sparkline\"\n class=\"k2b-stat-cell__trend\"\n style={{ height: \"32px\" }}\n data={Array.from(props.trend ?? [])}\n showLast\n showMinMax\n />\n </Show>\n <Show when={props.sub || accent()}>\n <div class=\"k2b-stat-cell__support\">\n <Show when={props.sub}>{(sub) => <span class=\"k2b-stat-cell__sub\">{sub()}</span>}</Show>\n <Show when={accent()}>\n {(value) => (\n <Show\n when={value().text}\n fallback={<i class={`${value().icon} k2b-stat-cell__accent-icon`} data-tone={value().tone} aria-hidden=\"true\" />}\n >\n {(text) => (\n <span class=\"k2b-stat-cell__accent\" data-tone={value().tone}>\n <i class={value().icon} aria-hidden=\"true\" />\n {text()}\n </span>\n )}\n </Show>\n )}\n </Show>\n </div>\n </Show>\n </>\n );\n}\n\nexport function StatCell(props: StatCellProps): JSX.Element {\n const gridSize = useStatGridSize();\n const size = () => props.size ?? gridSize;\n const surface = useStatGridSurface();\n return (\n <Show\n when={props.href}\n fallback={\n <div class=\"k2b-stat-cell\" data-size={size()} data-surface={surface} data-wrap={props.wrap || undefined}>\n <Body {...props} />\n </div>\n }\n >\n {(href) => (\n <a\n href={href()}\n class=\"k2b-stat-cell k2b-stat-cell--link\"\n data-size={size()}\n data-surface={surface}\n data-wrap={props.wrap || undefined}\n >\n <i class=\"ti ti-external-link k2b-stat-cell__link-icon\" aria-hidden=\"true\" />\n <Body {...props} />\n </a>\n )}\n </Show>\n );\n}\n\nexport default StatCell;\n"],"mappings":";;;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,OAAO,KAAK,MAAM,kBAAkB;AAEpC,SAA4B,eAAe,EAAE,kBAAkB,QAAQ,YAAY;AA2BnF,SAAS,IAAI,CAAC,KAAoB,EAAe;EAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC;EAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,IAAI,QAAQ;EACzC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM;EACjC,2DAEkD,IAAI,CAAC,CAAC,0BACjD,KAAK,CAAC,KAAK,mBAED,iCAAwB,KAAK,CAAC,UAAU,IAAI,EAAE,SAAE,uCAAa,IAAI,CAAC,CAAC,mDAAS,KAAK,CAAC,KAAK,0BACjG,KAAK,CAAC,KAAK,sBAEb,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,oBAAK,CAAC,KAAK,OAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;IAAA;IAAA;MAAA,yBAC9C,KAAK;QACJ,IAAI;QAAA;QAEJ,KAAK,EAAE;UAAE,MAAM,EAAE;QAAO,CAAC;QAAA,IACzB,IAAI;UAAA,OAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAAA;QACnC,QAAQ;QACR,UAAU;MAAA;IAAA;EAAA,sBAGb,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;IAAA;IAAA;MAAA,iDAE5B,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,KAAK,CAAC,GAAG;QAAA;QAAA,UAAI,GAAG,4BAAuC,GAAG,CAAC,CAAC;MAAQ,gCAC/E,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,MAAM,CAAC,CAAC;QAAA;QAAA,UAChB,KAAK,sBACJ,IAAI;UAAA,IACH,IAAI;YAAA,OAAE,KAAK,CAAC,CAAC,CAAC,IAAI;UAAA;UAAA,IAClB,QAAQ;YAAA,sBAAY,YAAG,KAAK,CAAC,CAAC,CAAC,IAAI,oCAA6B,uCAAa,KAAK,CAAC,CAAC,CAAC,IAAI;UAAA;UAAA,UAEvF,IAAI,wDAC2C,KAAK,CAAC,CAAC,CAAC,IAAI,kDAC/C,KAAK,CAAC,CAAC,CAAC,IAAI,0BACrB,IAAI,CAAC,CAAC;QAEV;MAEJ;IAAA;EAAA;AAMb;AAEA,OAAO,SAAS,QAAQ,CAAC,KAAoB,EAAe;EAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC;EAClC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,IAAI,QAAQ;EACzC,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC;EACpC,yBACG,IAAI;IAAA,IACH,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA,IAChB,QAAQ;MAAA,2DACgC,IAAI,CAAC,CAAC,0DAAgB,OAAO,uDAAa,KAAK,CAAC,IAAI,IAAI,SAAS,4CACpG,IAAI,EAAK,KAAK;IAAA;IAAA,UAIjB,IAAI,mDAEI,IAAI,CAAC,CAAC,sDAED,IAAI,CAAC,CAAC,0DACH,OAAO,uDACV,KAAK,CAAC,IAAI,IAAI,SAAS,4CAGjC,IAAI,EAAK,KAAK;EAElB;AAGP;AAEA,eAAe,QAAQ","ignoreList":[]}
@@ -7,11 +7,11 @@ var _tmpl$ = ["<i class=\"", "\"", " aria-hidden=\"true\"></i>"],
7
7
  _tmpl$2 = ["<span class=\"", "\"", " style=\"", "\">", "<span class=\"k2b-tag__label\">", "</span>", "</span>"],
8
8
  _tmpl$3 = ["<button type=\"button\" class=\"k2b-tag__remove\"", "", "><i class=\"ti ti-x\" aria-hidden=\"true\"></i></button>"];
9
9
  import { Show } from "solid-js";
10
+ import { useTagMessages } from "../inputs/tag-messages";
10
11
  import { colorTintStyle } from "../internal/color";
11
- import { useUiMessages } from "../intl/messages";
12
12
  /** Compact label presentation with optional color, icon, and remove action. */
13
13
  export function Tag(props) {
14
- const messages = useUiMessages();
14
+ const tagMessages = useTagMessages();
15
15
  const hasIconSlot = () => props.selected !== undefined || Boolean(props.icon);
16
16
  const icon = () => props.selected ? "ti ti-check" : props.icon ?? "ti ti-check";
17
17
  return _$ssr(_tmpl$2, `k2b-tag ${_$escape(props.class ?? "", true)}`, _$ssrAttribute("data-size", _$escape(props.size ?? "md", true), false) + _$ssrAttribute("data-selected", props.selected ? "true" : _$escape(undefined, true), false), _$ssrStyle(colorTintStyle(props.color)), _$escape(_$createComponent(Show, {
@@ -25,7 +25,7 @@ export function Tag(props) {
25
25
  get when() {
26
26
  return props.onRemove;
27
27
  },
28
- children: remove => _$ssr(_tmpl$3, _$ssrAttribute("aria-label", _$escape(props.removeLabel ?? messages().removeTag, true), false), _$ssrAttribute("disabled", props.disabled, true))
28
+ children: remove => _$ssr(_tmpl$3, _$ssrAttribute("aria-label", _$escape(props.removeLabel ?? tagMessages().removeTag, true), false), _$ssrAttribute("disabled", props.disabled, true))
29
29
  })));
30
30
  }
31
31
  export default Tag;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["surfaces/Tag.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport { colorTintStyle } from \"../internal/color\";\nimport { useUiMessages } from \"../intl/messages\";\n\nexport type TagSize = \"sm\" | \"md\" | \"lg\";\n\nexport type TagProps = {\n children: JSX.Element;\n color?: string | null;\n icon?: string;\n size?: TagSize;\n selected?: boolean;\n onRemove?: () => void;\n removeLabel?: string;\n disabled?: boolean;\n class?: string;\n};\n\n/** Compact label presentation with optional color, icon, and remove action. */\nexport function Tag(props: TagProps): JSX.Element {\n const messages = useUiMessages();\n const hasIconSlot = () => props.selected !== undefined || Boolean(props.icon);\n const icon = () => (props.selected ? \"ti ti-check\" : (props.icon ?? \"ti ti-check\"));\n\n return (\n <span\n class={`k2b-tag ${props.class ?? \"\"}`}\n data-size={props.size ?? \"md\"}\n data-selected={props.selected ? \"true\" : undefined}\n style={colorTintStyle(props.color)}\n >\n <Show when={hasIconSlot()}>\n <i class={`${icon()} k2b-tag__icon`} data-placeholder={!props.selected && !props.icon ? \"true\" : undefined} aria-hidden=\"true\" />\n </Show>\n <span class=\"k2b-tag__label\">{props.children}</span>\n <Show when={props.onRemove}>\n {(remove) => (\n <button\n type=\"button\"\n class=\"k2b-tag__remove\"\n aria-label={props.removeLabel ?? messages().removeTag}\n disabled={props.disabled}\n onClick={remove()}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n )}\n </Show>\n </span>\n );\n}\n\nexport default Tag;\n"],"mappings":";;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,SAAS,cAAc,QAAQ,mBAAmB;AAClD,SAAS,aAAa,QAAQ,kBAAkB;AAgBhD;AACA,OAAO,SAAS,GAAG,CAAC,KAAe,EAAe;EAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC;EAChC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;EAC7E,MAAM,IAAI,GAAG,MAAO,KAAK,CAAC,QAAQ,GAAG,aAAa,GAAI,KAAK,CAAC,IAAI,IAAI,aAAe;EAEnF,sBAEW,oBAAW,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,uCAC1B,KAAK,CAAC,IAAI,IAAI,IAAI,kDACd,KAAK,CAAC,QAAQ,GAAG,MAAM,YAAG,SAAS,4BAC3C,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,8BAEjC,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,WAAW,CAAC,CAAC;IAAA;IAAA;MAAA,qBACb,YAAG,IAAI,CAAC,CAAC,uBAAgB,qCAAoB,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,YAAG,SAAS;IAAA;EAAA,cAE9E,KAAK,CAAC,QAAQ,8BAC3C,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,QAAQ;IAAA;IAAA,UACtB,MAAM,yDAIQ,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,4CAC3C,KAAK,CAAC,QAAQ;EAK3B;AAIT;AAEA,eAAe,GAAG","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["surfaces/Tag.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport { useTagMessages } from \"../inputs/tag-messages\";\nimport { colorTintStyle } from \"../internal/color\";\n\nexport type TagSize = \"sm\" | \"md\" | \"lg\";\n\nexport type TagProps = {\n children: JSX.Element;\n color?: string | null;\n icon?: string;\n size?: TagSize;\n selected?: boolean;\n onRemove?: () => void;\n removeLabel?: string;\n disabled?: boolean;\n class?: string;\n};\n\n/** Compact label presentation with optional color, icon, and remove action. */\nexport function Tag(props: TagProps): JSX.Element {\n const tagMessages = useTagMessages();\n const hasIconSlot = () => props.selected !== undefined || Boolean(props.icon);\n const icon = () => (props.selected ? \"ti ti-check\" : (props.icon ?? \"ti ti-check\"));\n\n return (\n <span\n class={`k2b-tag ${props.class ?? \"\"}`}\n data-size={props.size ?? \"md\"}\n data-selected={props.selected ? \"true\" : undefined}\n style={colorTintStyle(props.color)}\n >\n <Show when={hasIconSlot()}>\n <i class={`${icon()} k2b-tag__icon`} data-placeholder={!props.selected && !props.icon ? \"true\" : undefined} aria-hidden=\"true\" />\n </Show>\n <span class=\"k2b-tag__label\">{props.children}</span>\n <Show when={props.onRemove}>\n {(remove) => (\n <button\n type=\"button\"\n class=\"k2b-tag__remove\"\n aria-label={props.removeLabel ?? tagMessages().removeTag}\n disabled={props.disabled}\n onClick={remove()}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n )}\n </Show>\n </span>\n );\n}\n\nexport default Tag;\n"],"mappings":";;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,SAAS,cAAc,QAAQ,wBAAwB;AACvD,SAAS,cAAc,QAAQ,mBAAmB;AAgBlD;AACA,OAAO,SAAS,GAAG,CAAC,KAAe,EAAe;EAChD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC;EACpC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;EAC7E,MAAM,IAAI,GAAG,MAAO,KAAK,CAAC,QAAQ,GAAG,aAAa,GAAI,KAAK,CAAC,IAAI,IAAI,aAAe;EAEnF,sBAEW,oBAAW,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE,uCAC1B,KAAK,CAAC,IAAI,IAAI,IAAI,kDACd,KAAK,CAAC,QAAQ,GAAG,MAAM,YAAG,SAAS,4BAC3C,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,8BAEjC,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,WAAW,CAAC,CAAC;IAAA;IAAA;MAAA,qBACb,YAAG,IAAI,CAAC,CAAC,uBAAgB,qCAAoB,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,YAAG,SAAS;IAAA;EAAA,cAE9E,KAAK,CAAC,QAAQ,8BAC3C,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,QAAQ;IAAA;IAAA,UACtB,MAAM,yDAIQ,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,4CAC9C,KAAK,CAAC,QAAQ;EAK3B;AAIT;AAEA,eAAe,GAAG","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import { i18n } from "@k2b/stdlib";
2
+ import { useLocale } from "../intl/locale";
3
+ const avatarMessages = i18n.define({
4
+ baseLocale: "en",
5
+ messages: {
6
+ en: {
7
+ avatarLabel: ({
8
+ name
9
+ }) => `${name} avatar`,
10
+ unknownUser: "Unknown user"
11
+ },
12
+ de: {
13
+ avatarLabel: ({
14
+ name
15
+ }) => `Avatar von ${name}`,
16
+ unknownUser: "Unbekannte Person"
17
+ }
18
+ }
19
+ });
20
+ /** Resolved from the inherited render locale. */
21
+ export const useAvatarMessages = () => {
22
+ const locale = useLocale();
23
+ return () => avatarMessages.resolve([locale()]).t;
24
+ };
25
+ export const checkAvatarMessages = () => avatarMessages.check();
26
+ //# sourceMappingURL=avatar-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["surfaces/avatar-messages.ts"],"sourcesContent":["import { i18n } from \"@k2b/stdlib\";\nimport { useLocale } from \"../intl/locale\";\n\nconst avatarMessages = i18n.define({\n baseLocale: \"en\",\n messages: {\n en: {\n avatarLabel: ({ name }: { name: string }) => `${name} avatar`,\n unknownUser: \"Unknown user\",\n },\n de: {\n avatarLabel: ({ name }) => `Avatar von ${name}`,\n unknownUser: \"Unbekannte Person\",\n },\n },\n});\n\nexport type AvatarMessages = ReturnType<(typeof avatarMessages)[\"resolve\"]>[\"t\"];\n\n/** Resolved from the inherited render locale. */\nexport const useAvatarMessages = (): (() => AvatarMessages) => {\n const locale = useLocale();\n return () => avatarMessages.resolve([locale()]).t;\n};\n\nexport const checkAvatarMessages = () => avatarMessages.check();\n"],"mappings":"AAAA,SAAS,IAAI,QAAQ,aAAa;AAClC,SAAS,SAAS,QAAQ,gBAAgB;AAE1C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;EACjC,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE;IACR,EAAE,EAAE;MACF,WAAW,EAAE,CAAC;QAAE;MAAuB,CAAC,KAAK,GAAG,IAAI,SAAS;MAC7D,WAAW,EAAE;IACf,CAAC;IACD,EAAE,EAAE;MACF,WAAW,EAAE,CAAC;QAAE;MAAK,CAAC,KAAK,cAAc,IAAI,EAAE;MAC/C,WAAW,EAAE;IACf;EACF;AACF,CAAC,CAAC;AAIF;AACA,OAAO,MAAM,iBAAiB,GAAG,MAA8B;EAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;EAC1B,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,OAAO,MAAM,mBAAmB,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import { i18n } from "@k2b/stdlib";
2
+ import { useLocale } from "../intl/locale";
3
+ const resourceMessages = i18n.define({
4
+ baseLocale: "en",
5
+ messages: {
6
+ en: {
7
+ resourceUntitled: "Untitled",
8
+ resourceNoAccess: "No access",
9
+ resourceDeleted: "Item deleted",
10
+ resourceUnavailable: "Not available right now"
11
+ },
12
+ de: {
13
+ resourceUntitled: "Ohne Titel",
14
+ resourceNoAccess: "Kein Zugriff",
15
+ resourceDeleted: "Element gelöscht",
16
+ resourceUnavailable: "Gerade nicht verfügbar"
17
+ }
18
+ }
19
+ });
20
+ /** Resolved from the inherited render locale. */
21
+ export const useResourceMessages = () => {
22
+ const locale = useLocale();
23
+ return () => resourceMessages.resolve([locale()]).t;
24
+ };
25
+ export const checkResourceMessages = () => resourceMessages.check();
26
+ //# sourceMappingURL=resource-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["surfaces/resource-messages.ts"],"sourcesContent":["import { i18n } from \"@k2b/stdlib\";\nimport { useLocale } from \"../intl/locale\";\n\nconst resourceMessages = i18n.define({\n baseLocale: \"en\",\n messages: {\n en: {\n resourceUntitled: \"Untitled\",\n resourceNoAccess: \"No access\",\n resourceDeleted: \"Item deleted\",\n resourceUnavailable: \"Not available right now\",\n },\n de: {\n resourceUntitled: \"Ohne Titel\",\n resourceNoAccess: \"Kein Zugriff\",\n resourceDeleted: \"Element gelöscht\",\n resourceUnavailable: \"Gerade nicht verfügbar\",\n },\n },\n});\n\nexport type ResourceMessages = ReturnType<(typeof resourceMessages)[\"resolve\"]>[\"t\"];\n\n/** Resolved from the inherited render locale. */\nexport const useResourceMessages = (): (() => ResourceMessages) => {\n const locale = useLocale();\n return () => resourceMessages.resolve([locale()]).t;\n};\n\nexport const checkResourceMessages = () => resourceMessages.check();\n"],"mappings":"AAAA,SAAS,IAAI,QAAQ,aAAa;AAClC,SAAS,SAAS,QAAQ,gBAAgB;AAE1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;EACnC,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE;IACR,EAAE,EAAE;MACF,gBAAgB,EAAE,UAAU;MAC5B,gBAAgB,EAAE,WAAW;MAC7B,eAAe,EAAE,cAAc;MAC/B,mBAAmB,EAAE;IACvB,CAAC;IACD,EAAE,EAAE;MACF,gBAAgB,EAAE,YAAY;MAC9B,gBAAgB,EAAE,cAAc;MAChC,eAAe,EAAE,kBAAkB;MACnC,mBAAmB,EAAE;IACvB;EACF;AACF,CAAC,CAAC;AAIF;AACA,OAAO,MAAM,mBAAmB,GAAG,MAAgC;EACjE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;EAC1B,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,OAAO,MAAM,qBAAqB,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC","ignoreList":[]}
@@ -12,6 +12,12 @@ var _tmpl$ = ["<span class=\"k2b-widget__heading\"><span class=\"k2b-widget__tit
12
12
  _tmpl$7 = ["<a", " class=\"k2b-widget__header\">", "</a>"];
13
13
  import { Show } from "solid-js";
14
14
  import { Paper } from "../surfaces/Paper";
15
+
16
+ /**
17
+ * `standard` is 25rem high and `compact` 14rem; `fill` takes the height its container gives it, such as a grid cell,
18
+ * and `content` has no fixed height. Every size except `content` scrolls body content taller than itself.
19
+ */
20
+
15
21
  function Header(props) {
16
22
  return [_$createComponent(Show, {
17
23
  get when() {
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["widgets/Widget.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport { Paper } from \"../surfaces/Paper\";\n\nexport type WidgetSize = \"content\" | \"compact\" | \"standard\";\n\nexport type WidgetProps = {\n title: string;\n icon?: string;\n href?: string;\n meta?: string;\n size?: WidgetSize;\n children: JSX.Element;\n};\n\nfunction Header(props: WidgetProps): JSX.Element {\n return (\n <>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-widget__icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <span class=\"k2b-widget__heading\">\n <span class=\"k2b-widget__title\">{props.title}</span>\n <Show when={props.meta}>{(meta) => <span class=\"k2b-widget__meta\">{meta()}</span>}</Show>\n </span>\n <Show when={props.href}>\n <i class=\"ti ti-chevron-right k2b-widget__chevron\" aria-hidden=\"true\" />\n </Show>\n </>\n );\n}\n\nexport function Widget(props: WidgetProps): JSX.Element {\n return (\n <Paper class=\"k2b-widget\" data-size={props.size ?? \"standard\"}>\n <Show\n when={props.href}\n fallback={\n <div class=\"k2b-widget__header\">\n <Header {...props} />\n </div>\n }\n >\n {(href) => (\n <a href={href()} class=\"k2b-widget__header\">\n <Header {...props} />\n </a>\n )}\n </Show>\n <div class=\"k2b-widget__body\">{props.children}</div>\n </Paper>\n );\n}\n\nexport default Widget;\n"],"mappings":";;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,SAAS,KAAK,QAAQ,mBAAmB;AAazC,SAAS,MAAM,CAAC,KAAkB,EAAe;EAC/C,0BAEK,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA,UAClB,IAAI,oDAEQ,IAAI,CAAC,CAAC;EAEnB,2BAGgC,KAAK,CAAC,KAAK,8BAC3C,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA,UAAI,IAAI,4BAAqC,IAAI,CAAC,CAAC;EAAQ,wBAElF,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA;MAAA;IAAA;EAAA;AAK5B;AAEA,OAAO,SAAS,MAAM,CAAC,KAAkB,EAAe;EACtD,yBACG,KAAK;IAAA;IAAA;MAAA,OAA+B,KAAK,CAAC,IAAI,IAAI,UAAU;IAAA;IAAA;MAAA,0BAC1D,IAAI;QAAA,IACH,IAAI;UAAA,OAAE,KAAK,CAAC,IAAI;QAAA;QAAA,IAChB,QAAQ;UAAA,iDAEH,MAAM,EAAK,KAAK;QAAA;QAAA,UAInB,IAAI,mDACK,IAAI,CAAC,CAAC,4CACZ,MAAM,EAAK,KAAK;MAEpB,4BAE4B,KAAK,CAAC,QAAQ;IAAA;EAAA;AAGnD;AAEA,eAAe,MAAM","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["widgets/Widget.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport { Paper } from \"../surfaces/Paper\";\n\n/**\n * `standard` is 25rem high and `compact` 14rem; `fill` takes the height its container gives it, such as a grid cell,\n * and `content` has no fixed height. Every size except `content` scrolls body content taller than itself.\n */\nexport type WidgetSize = \"content\" | \"compact\" | \"standard\" | \"fill\";\n\nexport type WidgetProps = {\n title: string;\n icon?: string;\n href?: string;\n meta?: string;\n size?: WidgetSize;\n children: JSX.Element;\n};\n\nfunction Header(props: WidgetProps): JSX.Element {\n return (\n <>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-widget__icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <span class=\"k2b-widget__heading\">\n <span class=\"k2b-widget__title\">{props.title}</span>\n <Show when={props.meta}>{(meta) => <span class=\"k2b-widget__meta\">{meta()}</span>}</Show>\n </span>\n <Show when={props.href}>\n <i class=\"ti ti-chevron-right k2b-widget__chevron\" aria-hidden=\"true\" />\n </Show>\n </>\n );\n}\n\nexport function Widget(props: WidgetProps): JSX.Element {\n return (\n <Paper class=\"k2b-widget\" data-size={props.size ?? \"standard\"}>\n <Show\n when={props.href}\n fallback={\n <div class=\"k2b-widget__header\">\n <Header {...props} />\n </div>\n }\n >\n {(href) => (\n <a href={href()} class=\"k2b-widget__header\">\n <Header {...props} />\n </a>\n )}\n </Show>\n <div class=\"k2b-widget__body\">{props.children}</div>\n </Paper>\n );\n}\n\nexport default Widget;\n"],"mappings":";;;;;;;;;;;;AAAA,SAAmB,IAAI,QAAQ,UAAU;AACzC,SAAS,KAAK,QAAQ,mBAAmB;;AAEzC;AACA;AACA;AACA;;AAYA,SAAS,MAAM,CAAC,KAAkB,EAAe;EAC/C,0BAEK,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA,UAClB,IAAI,oDAEQ,IAAI,CAAC,CAAC;EAEnB,2BAGgC,KAAK,CAAC,KAAK,8BAC3C,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA,UAAI,IAAI,4BAAqC,IAAI,CAAC,CAAC;EAAQ,wBAElF,IAAI;IAAA,IAAC,IAAI;MAAA,OAAE,KAAK,CAAC,IAAI;IAAA;IAAA;MAAA;IAAA;EAAA;AAK5B;AAEA,OAAO,SAAS,MAAM,CAAC,KAAkB,EAAe;EACtD,yBACG,KAAK;IAAA;IAAA;MAAA,OAA+B,KAAK,CAAC,IAAI,IAAI,UAAU;IAAA;IAAA;MAAA,0BAC1D,IAAI;QAAA,IACH,IAAI;UAAA,OAAE,KAAK,CAAC,IAAI;QAAA;QAAA,IAChB,QAAQ;UAAA,iDAEH,MAAM,EAAK,KAAK;QAAA;QAAA,UAInB,IAAI,mDACK,IAAI,CAAC,CAAC,4CACZ,MAAM,EAAK,KAAK;MAEpB,4BAE4B,KAAK,CAAC,QAAQ;IAAA;EAAA;AAGnD;AAEA,eAAe,MAAM","ignoreList":[]}