@k2b/ui 0.1.1 → 0.3.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 (386) hide show
  1. package/dist/browser/actions/Button.js +11 -2
  2. package/dist/browser/actions/Button.js.map +1 -1
  3. package/dist/browser/actions/Disclosure.js +11 -8
  4. package/dist/browser/actions/Disclosure.js.map +1 -1
  5. package/dist/browser/actions/Dropdown.js +10 -4
  6. package/dist/browser/actions/Dropdown.js.map +1 -1
  7. package/dist/browser/actions/FilterChip.js +16 -2
  8. package/dist/browser/actions/FilterChip.js.map +1 -1
  9. package/dist/browser/actions/SplitButton.js +69 -22
  10. package/dist/browser/actions/SplitButton.js.map +1 -1
  11. package/dist/browser/actions/SpotlightSearch.js +3 -7
  12. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  13. package/dist/browser/actions/Tabs.js +132 -47
  14. package/dist/browser/actions/Tabs.js.map +1 -1
  15. package/dist/browser/actions/index.js +1 -1
  16. package/dist/browser/actions/index.js.map +1 -1
  17. package/dist/browser/chat/ChatComposer.js +751 -423
  18. package/dist/browser/chat/ChatComposer.js.map +1 -1
  19. package/dist/browser/chat/ChatContextPopup.js +123 -0
  20. package/dist/browser/chat/ChatContextPopup.js.map +1 -0
  21. package/dist/browser/chat/ChatPrimitives.js +143 -77
  22. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  23. package/dist/browser/chat/ChatTasks.js +112 -0
  24. package/dist/browser/chat/ChatTasks.js.map +1 -0
  25. package/dist/browser/chat/ChatTimeline.js +34 -15
  26. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  27. package/dist/browser/chat/chat-behavior.js +0 -5
  28. package/dist/browser/chat/chat-behavior.js.map +1 -1
  29. package/dist/browser/chat/composer-document.js +55 -0
  30. package/dist/browser/chat/composer-document.js.map +1 -0
  31. package/dist/browser/chat/index.js +6 -1
  32. package/dist/browser/chat/index.js.map +1 -1
  33. package/dist/browser/chat/types.js.map +1 -1
  34. package/dist/browser/content/Chart.js +148 -239
  35. package/dist/browser/content/Chart.js.map +1 -1
  36. package/dist/browser/content/ChartExplorer.js +324 -0
  37. package/dist/browser/content/ChartExplorer.js.map +1 -0
  38. package/dist/browser/content/ChartExplorerControls.js +153 -0
  39. package/dist/browser/content/ChartExplorerControls.js.map +1 -0
  40. package/dist/browser/content/ChartFilterControls.js +200 -0
  41. package/dist/browser/content/ChartFilterControls.js.map +1 -0
  42. package/dist/browser/content/ChartSnapshotView.js +113 -0
  43. package/dist/browser/content/ChartSnapshotView.js.map +1 -0
  44. package/dist/browser/content/DataTable.js +48 -32
  45. package/dist/browser/content/DataTable.js.map +1 -1
  46. package/dist/browser/content/FileBrowser.js +3 -0
  47. package/dist/browser/content/FileBrowser.js.map +1 -1
  48. package/dist/browser/content/FileGrid.js +93 -0
  49. package/dist/browser/content/FileGrid.js.map +1 -0
  50. package/dist/browser/content/FileTree.js +2 -2
  51. package/dist/browser/content/FileTree.js.map +1 -1
  52. package/dist/browser/content/FileView.js +507 -162
  53. package/dist/browser/content/FileView.js.map +1 -1
  54. package/dist/browser/content/MarkdownView.js +20 -3
  55. package/dist/browser/content/MarkdownView.js.map +1 -1
  56. package/dist/browser/content/PdfPreview.js +107 -90
  57. package/dist/browser/content/PdfPreview.js.map +1 -1
  58. package/dist/browser/content/chart-cursor.js +33 -0
  59. package/dist/browser/content/chart-cursor.js.map +1 -0
  60. package/dist/browser/content/chart-explorer.js +147 -0
  61. package/dist/browser/content/chart-explorer.js.map +1 -0
  62. package/dist/browser/content/chart-inspection.js +447 -0
  63. package/dist/browser/content/chart-inspection.js.map +1 -0
  64. package/dist/browser/content/chart-line-gaps.js +53 -0
  65. package/dist/browser/content/chart-line-gaps.js.map +1 -0
  66. package/dist/browser/content/chart-map-viewport.js +5 -1
  67. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  68. package/dist/browser/content/chart-snapshot.js +63 -0
  69. package/dist/browser/content/chart-snapshot.js.map +1 -0
  70. package/dist/browser/content/chart-state-timeline.js +32 -4
  71. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  72. package/dist/browser/content/chart-svg.js +54 -0
  73. package/dist/browser/content/chart-svg.js.map +1 -0
  74. package/dist/browser/content/collection-selection.js +109 -0
  75. package/dist/browser/content/collection-selection.js.map +1 -0
  76. package/dist/browser/content/delimited-preferences.js +21 -0
  77. package/dist/browser/content/delimited-preferences.js.map +1 -0
  78. package/dist/browser/content/file-tree.js.map +1 -1
  79. package/dist/browser/content/file-view-preview.js +11 -7
  80. package/dist/browser/content/file-view-preview.js.map +1 -1
  81. package/dist/browser/content/index.js +9 -0
  82. package/dist/browser/content/index.js.map +1 -1
  83. package/dist/browser/feedback/InlineGuidance.js +17 -3
  84. package/dist/browser/feedback/InlineGuidance.js.map +1 -1
  85. package/dist/browser/feedback/Tooltip.js +6 -2
  86. package/dist/browser/feedback/Tooltip.js.map +1 -1
  87. package/dist/browser/feedback/dialog-core.js +102 -9
  88. package/dist/browser/feedback/dialog-core.js.map +1 -1
  89. package/dist/browser/feedback/prompts.js +6 -0
  90. package/dist/browser/feedback/prompts.js.map +1 -1
  91. package/dist/browser/feedback/toast.js +29 -6
  92. package/dist/browser/feedback/toast.js.map +1 -1
  93. package/dist/browser/feedback/tooltip-position.js +15 -0
  94. package/dist/browser/feedback/tooltip-position.js.map +1 -1
  95. package/dist/browser/inputs/ChoiceInputs.js +47 -38
  96. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  97. package/dist/browser/inputs/SelectChip.js +3 -2
  98. package/dist/browser/inputs/SelectChip.js.map +1 -1
  99. package/dist/browser/inputs/TextInput.js +7 -1
  100. package/dist/browser/inputs/TextInput.js.map +1 -1
  101. package/dist/browser/inputs/markdown/MarkdownEditor.js +61 -37
  102. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  103. package/dist/browser/internal/portal.js +1 -1
  104. package/dist/browser/internal/portal.js.map +1 -1
  105. package/dist/browser/intl/Format.js +89 -16
  106. package/dist/browser/intl/Format.js.map +1 -1
  107. package/dist/browser/intl/index.js.map +1 -1
  108. package/dist/browser/intl/messages.js +130 -2
  109. package/dist/browser/intl/messages.js.map +1 -1
  110. package/dist/browser/layout/AppWorkspace.js +712 -624
  111. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  112. package/dist/browser/layout/BottomSheet.js +95 -0
  113. package/dist/browser/layout/BottomSheet.js.map +1 -0
  114. package/dist/browser/layout/DetailPanel.js +232 -107
  115. package/dist/browser/layout/DetailPanel.js.map +1 -1
  116. package/dist/browser/layout/Navigation.js +278 -0
  117. package/dist/browser/layout/Navigation.js.map +1 -0
  118. package/dist/browser/layout/PanelDialog.js +229 -72
  119. package/dist/browser/layout/PanelDialog.js.map +1 -1
  120. package/dist/browser/layout/ScrollArea.js +21 -1
  121. package/dist/browser/layout/ScrollArea.js.map +1 -1
  122. package/dist/browser/layout/Settings.js.map +1 -1
  123. package/dist/browser/layout/SidebarItemPreview.js +183 -0
  124. package/dist/browser/layout/SidebarItemPreview.js.map +1 -0
  125. package/dist/browser/layout/app-workspace-controller.js +3 -0
  126. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  127. package/dist/browser/layout/index.js +3 -0
  128. package/dist/browser/layout/index.js.map +1 -1
  129. package/dist/browser/layout/navigation-model.js +23 -0
  130. package/dist/browser/layout/navigation-model.js.map +1 -0
  131. package/dist/browser/layout/scroll-fade.js +100 -0
  132. package/dist/browser/layout/scroll-fade.js.map +1 -0
  133. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  134. package/dist/browser/surfaces/StatusBadge.js +2 -1
  135. package/dist/browser/surfaces/StatusBadge.js.map +1 -1
  136. package/dist/fonts/ibm-plex-mono-cyrillic-400-italic-4aded3f2f2a7d27d.woff2 +0 -0
  137. package/dist/fonts/ibm-plex-mono-cyrillic-400-normal-7635422bd10ddbbc.woff2 +0 -0
  138. package/dist/fonts/ibm-plex-mono-cyrillic-500-normal-1d89462e86cb8e87.woff2 +0 -0
  139. package/dist/fonts/ibm-plex-mono-cyrillic-600-normal-2b05a8695c7f9f4a.woff2 +0 -0
  140. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-italic-a0b3b8cbe5a516e7.woff2 +0 -0
  141. package/dist/fonts/ibm-plex-mono-cyrillic-ext-400-normal-f8c22ec1804bd696.woff2 +0 -0
  142. package/dist/fonts/ibm-plex-mono-cyrillic-ext-500-normal-3febe5c7f22e4b07.woff2 +0 -0
  143. package/dist/fonts/ibm-plex-mono-cyrillic-ext-600-normal-83109cdd4f8665b4.woff2 +0 -0
  144. package/dist/fonts/ibm-plex-mono-latin-400-italic-0840095faae86403.woff2 +0 -0
  145. package/dist/fonts/ibm-plex-mono-latin-400-normal-08949f728dc52d52.woff2 +0 -0
  146. package/dist/fonts/ibm-plex-mono-latin-500-normal-01d285447409c8a5.woff2 +0 -0
  147. package/dist/fonts/ibm-plex-mono-latin-600-normal-0d1f0b8d0722224e.woff2 +0 -0
  148. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic-1b07eee6df7d26b3.woff2 +0 -0
  149. package/dist/fonts/ibm-plex-mono-latin-ext-400-normal-6bc0f226a5b7884a.woff2 +0 -0
  150. package/dist/fonts/ibm-plex-mono-latin-ext-500-normal-6bb06407c97584b0.woff2 +0 -0
  151. package/dist/fonts/ibm-plex-mono-latin-ext-600-normal-32057cf50dd14bdb.woff2 +0 -0
  152. package/dist/fonts/ibm-plex-mono-vietnamese-400-italic-a6bab38af4f9c761.woff2 +0 -0
  153. package/dist/fonts/ibm-plex-mono-vietnamese-400-normal-62632b6375305e70.woff2 +0 -0
  154. package/dist/fonts/ibm-plex-mono-vietnamese-500-normal-781633d95de88040.woff2 +0 -0
  155. package/dist/fonts/ibm-plex-mono-vietnamese-600-normal-51b74d53e106ba8a.woff2 +0 -0
  156. package/dist/fonts/ibm-plex-sans-cyrillic-400-italic-e8731a7e2b00fc4f.woff2 +0 -0
  157. package/dist/fonts/ibm-plex-sans-cyrillic-400-normal-69afad88a0740b6e.woff2 +0 -0
  158. package/dist/fonts/ibm-plex-sans-cyrillic-500-normal-200be3a2a6b1789f.woff2 +0 -0
  159. package/dist/fonts/ibm-plex-sans-cyrillic-600-normal-730becc6f005c18c.woff2 +0 -0
  160. package/dist/fonts/ibm-plex-sans-cyrillic-700-normal-40540598b4c9eb2c.woff2 +0 -0
  161. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-italic-4ffb25726a7ce4cc.woff2 +0 -0
  162. package/dist/fonts/ibm-plex-sans-cyrillic-ext-400-normal-e2580ad78906551e.woff2 +0 -0
  163. package/dist/fonts/ibm-plex-sans-cyrillic-ext-500-normal-08578d906af6d986.woff2 +0 -0
  164. package/dist/fonts/ibm-plex-sans-cyrillic-ext-600-normal-d60d3d0b182753d5.woff2 +0 -0
  165. package/dist/fonts/ibm-plex-sans-cyrillic-ext-700-normal-d07dd53642480097.woff2 +0 -0
  166. package/dist/fonts/ibm-plex-sans-greek-400-italic-1bc10b01688ba9fa.woff2 +0 -0
  167. package/dist/fonts/ibm-plex-sans-greek-400-normal-02296067bc904d2a.woff2 +0 -0
  168. package/dist/fonts/ibm-plex-sans-greek-500-normal-8cb6e20b4dbbaa5f.woff2 +0 -0
  169. package/dist/fonts/ibm-plex-sans-greek-600-normal-0a9ebd9019415ee9.woff2 +0 -0
  170. package/dist/fonts/ibm-plex-sans-greek-700-normal-c949641d10a3bebc.woff2 +0 -0
  171. package/dist/fonts/ibm-plex-sans-latin-400-italic-6de912e531b6c980.woff2 +0 -0
  172. package/dist/fonts/ibm-plex-sans-latin-400-normal-3b646991d30055a9.woff2 +0 -0
  173. package/dist/fonts/ibm-plex-sans-latin-500-normal-0717336fb31fcdcd.woff2 +0 -0
  174. package/dist/fonts/ibm-plex-sans-latin-600-normal-8960851d691c054e.woff2 +0 -0
  175. package/dist/fonts/ibm-plex-sans-latin-700-normal-42e7b0c143c19df9.woff2 +0 -0
  176. package/dist/fonts/ibm-plex-sans-latin-ext-400-italic-c5c00e8a32022dfe.woff2 +0 -0
  177. package/dist/fonts/ibm-plex-sans-latin-ext-400-normal-c93d2a12aaa280f6.woff2 +0 -0
  178. package/dist/fonts/ibm-plex-sans-latin-ext-500-normal-2846035d85100f84.woff2 +0 -0
  179. package/dist/fonts/ibm-plex-sans-latin-ext-600-normal-b25dfd4f979e442a.woff2 +0 -0
  180. package/dist/fonts/ibm-plex-sans-latin-ext-700-normal-92f0392bd74fa395.woff2 +0 -0
  181. package/dist/fonts/ibm-plex-sans-vietnamese-400-italic-675d4bace127bffb.woff2 +0 -0
  182. package/dist/fonts/ibm-plex-sans-vietnamese-400-normal-771538f7f26551bd.woff2 +0 -0
  183. package/dist/fonts/ibm-plex-sans-vietnamese-500-normal-85ba3d9c2488a813.woff2 +0 -0
  184. package/dist/fonts/ibm-plex-sans-vietnamese-600-normal-5d34b803637befe3.woff2 +0 -0
  185. package/dist/fonts/ibm-plex-sans-vietnamese-700-normal-b79d0c4b68b85007.woff2 +0 -0
  186. package/dist/plex.css +1 -1
  187. package/dist/ssr/actions/Button.js +11 -2
  188. package/dist/ssr/actions/Button.js.map +1 -1
  189. package/dist/ssr/actions/Disclosure.js +2 -2
  190. package/dist/ssr/actions/Disclosure.js.map +1 -1
  191. package/dist/ssr/actions/Dropdown.js +5 -2
  192. package/dist/ssr/actions/Dropdown.js.map +1 -1
  193. package/dist/ssr/actions/FilterChip.js +16 -2
  194. package/dist/ssr/actions/FilterChip.js.map +1 -1
  195. package/dist/ssr/actions/SplitButton.js +69 -22
  196. package/dist/ssr/actions/SplitButton.js.map +1 -1
  197. package/dist/ssr/actions/SpotlightSearch.js +3 -7
  198. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  199. package/dist/ssr/actions/Tabs.js +58 -11
  200. package/dist/ssr/actions/Tabs.js.map +1 -1
  201. package/dist/ssr/actions/index.js +1 -1
  202. package/dist/ssr/actions/index.js.map +1 -1
  203. package/dist/ssr/chat/ChatComposer.js +366 -134
  204. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  205. package/dist/ssr/chat/ChatContextPopup.js +86 -0
  206. package/dist/ssr/chat/ChatContextPopup.js.map +1 -0
  207. package/dist/ssr/chat/ChatPrimitives.js +50 -12
  208. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  209. package/dist/ssr/chat/ChatTasks.js +48 -0
  210. package/dist/ssr/chat/ChatTasks.js.map +1 -0
  211. package/dist/ssr/chat/ChatTimeline.js +16 -4
  212. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  213. package/dist/ssr/chat/chat-behavior.js +0 -5
  214. package/dist/ssr/chat/chat-behavior.js.map +1 -1
  215. package/dist/ssr/chat/composer-document.js +55 -0
  216. package/dist/ssr/chat/composer-document.js.map +1 -0
  217. package/dist/ssr/chat/index.js +6 -1
  218. package/dist/ssr/chat/index.js.map +1 -1
  219. package/dist/ssr/chat/types.js.map +1 -1
  220. package/dist/ssr/content/Chart.js +121 -219
  221. package/dist/ssr/content/Chart.js.map +1 -1
  222. package/dist/ssr/content/ChartExplorer.js +257 -0
  223. package/dist/ssr/content/ChartExplorer.js.map +1 -0
  224. package/dist/ssr/content/ChartExplorerControls.js +105 -0
  225. package/dist/ssr/content/ChartExplorerControls.js.map +1 -0
  226. package/dist/ssr/content/ChartFilterControls.js +139 -0
  227. package/dist/ssr/content/ChartFilterControls.js.map +1 -0
  228. package/dist/ssr/content/ChartSnapshotView.js +57 -0
  229. package/dist/ssr/content/ChartSnapshotView.js.map +1 -0
  230. package/dist/ssr/content/DataTable.js +13 -9
  231. package/dist/ssr/content/DataTable.js.map +1 -1
  232. package/dist/ssr/content/FileBrowser.js +3 -0
  233. package/dist/ssr/content/FileBrowser.js.map +1 -1
  234. package/dist/ssr/content/FileGrid.js +38 -0
  235. package/dist/ssr/content/FileGrid.js.map +1 -0
  236. package/dist/ssr/content/FileTree.js +2 -2
  237. package/dist/ssr/content/FileTree.js.map +1 -1
  238. package/dist/ssr/content/FileView.js +352 -75
  239. package/dist/ssr/content/FileView.js.map +1 -1
  240. package/dist/ssr/content/MarkdownView.js +20 -3
  241. package/dist/ssr/content/MarkdownView.js.map +1 -1
  242. package/dist/ssr/content/PdfPreview.js +37 -24
  243. package/dist/ssr/content/PdfPreview.js.map +1 -1
  244. package/dist/ssr/content/chart-cursor.js +33 -0
  245. package/dist/ssr/content/chart-cursor.js.map +1 -0
  246. package/dist/ssr/content/chart-explorer.js +147 -0
  247. package/dist/ssr/content/chart-explorer.js.map +1 -0
  248. package/dist/ssr/content/chart-inspection.js +447 -0
  249. package/dist/ssr/content/chart-inspection.js.map +1 -0
  250. package/dist/ssr/content/chart-line-gaps.js +53 -0
  251. package/dist/ssr/content/chart-line-gaps.js.map +1 -0
  252. package/dist/ssr/content/chart-map-viewport.js +5 -1
  253. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  254. package/dist/ssr/content/chart-snapshot.js +63 -0
  255. package/dist/ssr/content/chart-snapshot.js.map +1 -0
  256. package/dist/ssr/content/chart-state-timeline.js +32 -4
  257. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  258. package/dist/ssr/content/chart-svg.js +54 -0
  259. package/dist/ssr/content/chart-svg.js.map +1 -0
  260. package/dist/ssr/content/collection-selection.js +109 -0
  261. package/dist/ssr/content/collection-selection.js.map +1 -0
  262. package/dist/ssr/content/delimited-preferences.js +21 -0
  263. package/dist/ssr/content/delimited-preferences.js.map +1 -0
  264. package/dist/ssr/content/file-tree.js.map +1 -1
  265. package/dist/ssr/content/file-view-preview.js +11 -7
  266. package/dist/ssr/content/file-view-preview.js.map +1 -1
  267. package/dist/ssr/content/index.js +9 -0
  268. package/dist/ssr/content/index.js.map +1 -1
  269. package/dist/ssr/feedback/InlineGuidance.js +17 -3
  270. package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
  271. package/dist/ssr/feedback/Tooltip.js +6 -4
  272. package/dist/ssr/feedback/Tooltip.js.map +1 -1
  273. package/dist/ssr/feedback/dialog-core.js +102 -9
  274. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  275. package/dist/ssr/feedback/prompts.js +6 -0
  276. package/dist/ssr/feedback/prompts.js.map +1 -1
  277. package/dist/ssr/feedback/toast.js +29 -6
  278. package/dist/ssr/feedback/toast.js.map +1 -1
  279. package/dist/ssr/feedback/tooltip-position.js +15 -0
  280. package/dist/ssr/feedback/tooltip-position.js.map +1 -1
  281. package/dist/ssr/inputs/ChoiceInputs.js +9 -6
  282. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  283. package/dist/ssr/inputs/SelectChip.js +3 -3
  284. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  285. package/dist/ssr/inputs/TextInput.js.map +1 -1
  286. package/dist/ssr/inputs/markdown/MarkdownEditor.js +19 -11
  287. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  288. package/dist/ssr/internal/portal.js +1 -1
  289. package/dist/ssr/internal/portal.js.map +1 -1
  290. package/dist/ssr/intl/Format.js +61 -0
  291. package/dist/ssr/intl/Format.js.map +1 -1
  292. package/dist/ssr/intl/index.js.map +1 -1
  293. package/dist/ssr/intl/messages.js +130 -2
  294. package/dist/ssr/intl/messages.js.map +1 -1
  295. package/dist/ssr/layout/AppWorkspace.js +368 -275
  296. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  297. package/dist/ssr/layout/BottomSheet.js +43 -0
  298. package/dist/ssr/layout/BottomSheet.js.map +1 -0
  299. package/dist/ssr/layout/DetailPanel.js +95 -17
  300. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  301. package/dist/ssr/layout/Navigation.js +181 -0
  302. package/dist/ssr/layout/Navigation.js.map +1 -0
  303. package/dist/ssr/layout/PanelDialog.js +112 -27
  304. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  305. package/dist/ssr/layout/ScrollArea.js +16 -1
  306. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  307. package/dist/ssr/layout/Settings.js.map +1 -1
  308. package/dist/ssr/layout/SidebarItemPreview.js +133 -0
  309. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -0
  310. package/dist/ssr/layout/app-workspace-controller.js +3 -0
  311. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  312. package/dist/ssr/layout/index.js +3 -0
  313. package/dist/ssr/layout/index.js.map +1 -1
  314. package/dist/ssr/layout/navigation-model.js +23 -0
  315. package/dist/ssr/layout/navigation-model.js.map +1 -0
  316. package/dist/ssr/layout/scroll-fade.js +100 -0
  317. package/dist/ssr/layout/scroll-fade.js.map +1 -0
  318. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  319. package/dist/ssr/surfaces/StatusBadge.js +2 -1
  320. package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
  321. package/dist/styles.css +1 -1
  322. package/dist/tabler.css +1 -1
  323. package/dist/types/actions/Button.d.ts +4 -0
  324. package/dist/types/actions/Disclosure.d.ts +1 -0
  325. package/dist/types/actions/Dropdown.d.ts +3 -1
  326. package/dist/types/actions/FilterChip.d.ts +4 -0
  327. package/dist/types/actions/SplitButton.d.ts +6 -0
  328. package/dist/types/actions/SpotlightSearch.d.ts +0 -4
  329. package/dist/types/actions/Tabs.d.ts +4 -0
  330. package/dist/types/actions/index.d.ts +1 -1
  331. package/dist/types/chat/ChatComposer.d.ts +20 -2
  332. package/dist/types/chat/ChatContextPopup.d.ts +6 -0
  333. package/dist/types/chat/ChatPrimitives.d.ts +4 -0
  334. package/dist/types/chat/ChatTasks.d.ts +15 -0
  335. package/dist/types/chat/ChatTimeline.d.ts +2 -0
  336. package/dist/types/chat/chat-behavior.d.ts +0 -3
  337. package/dist/types/chat/composer-document.d.ts +14 -0
  338. package/dist/types/chat/index.d.ts +8 -1
  339. package/dist/types/chat/types.d.ts +9 -0
  340. package/dist/types/content/Chart.d.ts +42 -23
  341. package/dist/types/content/ChartExplorer.d.ts +34 -0
  342. package/dist/types/content/ChartExplorerControls.d.ts +10 -0
  343. package/dist/types/content/ChartFilterControls.d.ts +21 -0
  344. package/dist/types/content/ChartSnapshotView.d.ts +11 -0
  345. package/dist/types/content/DataTable.d.ts +4 -0
  346. package/dist/types/content/FileBrowser.d.ts +1 -0
  347. package/dist/types/content/FileGrid.d.ts +21 -0
  348. package/dist/types/content/FileView.d.ts +20 -0
  349. package/dist/types/content/MarkdownView.d.ts +6 -1
  350. package/dist/types/content/PdfPreview.d.ts +8 -1
  351. package/dist/types/content/chart-cursor.d.ts +15 -0
  352. package/dist/types/content/chart-explorer.d.ts +48 -0
  353. package/dist/types/content/chart-inspection.d.ts +40 -0
  354. package/dist/types/content/chart-line-gaps.d.ts +5 -0
  355. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  356. package/dist/types/content/chart-snapshot.d.ts +26 -0
  357. package/dist/types/content/chart-svg.d.ts +21 -0
  358. package/dist/types/content/collection-selection.d.ts +24 -0
  359. package/dist/types/content/delimited-preferences.d.ts +11 -0
  360. package/dist/types/content/file-tree.d.ts +2 -0
  361. package/dist/types/content/file-view-preview.d.ts +4 -1
  362. package/dist/types/content/index.d.ts +15 -1
  363. package/dist/types/feedback/InlineGuidance.d.ts +1 -0
  364. package/dist/types/feedback/dialog-core.d.ts +13 -0
  365. package/dist/types/feedback/prompts.d.ts +2 -0
  366. package/dist/types/feedback/toast.d.ts +7 -1
  367. package/dist/types/feedback/tooltip-position.d.ts +1 -1
  368. package/dist/types/inputs/ChoiceInputs.d.ts +3 -0
  369. package/dist/types/inputs/markdown/MarkdownEditor.d.ts +5 -1
  370. package/dist/types/intl/Format.d.ts +9 -0
  371. package/dist/types/intl/index.d.ts +1 -1
  372. package/dist/types/intl/messages.d.ts +31 -1
  373. package/dist/types/layout/AppWorkspace.d.ts +35 -18
  374. package/dist/types/layout/BottomSheet.d.ts +23 -0
  375. package/dist/types/layout/DetailPanel.d.ts +7 -0
  376. package/dist/types/layout/Navigation.d.ts +8 -0
  377. package/dist/types/layout/PanelDialog.d.ts +14 -1
  378. package/dist/types/layout/ScrollArea.d.ts +4 -0
  379. package/dist/types/layout/Settings.d.ts +1 -1
  380. package/dist/types/layout/SidebarItemPreview.d.ts +11 -0
  381. package/dist/types/layout/index.d.ts +4 -1
  382. package/dist/types/layout/navigation-model.d.ts +48 -0
  383. package/dist/types/layout/scroll-fade.d.ts +3 -0
  384. package/dist/types/surfaces/DescriptionList.d.ts +1 -1
  385. package/dist/types/surfaces/StatusBadge.d.ts +1 -1
  386. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"names":["highlight","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","untrack","createFieldMeta","Field","fieldControlAria","useUiMessages","abbreviations","abbreviationsCompletion","buildSuggestContext","collectKnownLabels","createCompletionBehaviorState","detectQuery","displayLabel","renderWithOverlay","resolveSuggestions","resolveMaybeAccessor","computeActiveFormats","handleListContinuation","handleShortcut","handleSmartPaste","isInCodeZone","Toolbar","MarkdownEditor","props","messages","meta","id","textarea","preview","dropdown","completionAbort","completionTimer","overlayFrame","overlayInitialized","renderPendingOverlay","completionBehavior","textareaSignal","setTextareaSignal","activeFormats","setActiveFormats","Set","composing","setComposing","localValue","setLocalValue","value","error","state","setState","loading","setLoading","completionError","setCompletionError","dropdownOpen","setDropdownOpen","completionId","listboxId","controlId","optionId","index","activeSuggestion","current","suggestions","selectedIndex","mergedCompletions","merged","Object","keys","length","push","completions","undefined","knownLabels","incoming","target","labels","active","ghost","at","context","end","text","slice","anchor","innerHTML","markdown","scrollTop","scrollLeft","matches","positionDropdown","requestAnimationFrame","render","updateActiveFormats","closeDropdown","hidePopover","clearCompletion","abort","clearTimeout","isConnected","querySelector","rect","getBoundingClientRect","maxHeight","spaceBelow","window","innerHeight","bottom","openAbove","top","width","Math","min","innerWidth","left","style","setProperty","max","showPopover","isAbortError","DOMException","name","Boolean","applySuggestionList","normalized","toLowerCase","usable","filter","suggestion","textEdit","start","Number","isInteger","startsWith","previous","retained","findIndex","completion","queueMicrotask","runAsyncCompletion","promise","signal","aborted","Error","message","startCompletionResolution","result","query","kind","data","recomputeCompletion","isExcluded","AbortController","delay","debounceMs","setTimeout","retryCompletion","activateSuggestion","applied","applySuggestion","moveSelection","direction","stats","lines","split","words","match","chars","selectionChange","document","activeElement","reposition","addEventListener","removeEventListener","cancelAnimationFrame","reset","onInput","event","tryExpand","currentTarget","onValueChange","onKeyDown","isComposing","key","metaKey","ctrlKey","altKey","shiftKey","tryRestore","preventDefault","dropdownCompletion","blur","onSubmit","saveControls","_$memo","toolbarTrailing","_$createComponent","when","onSave","children","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","$$click","$$mousedown","_$effect","_p$","_v$","saveShortcut","_v$2","save","_v$3","disabled","saveDisabled","saving","_v$4","e","_$setAttribute","t","a","_$setProperty","o","_$className","_$runHydrationEvents","class","label","description","fill","required","_el$3","_tmpl$6","_el$36","_el$37","_co$1","_$getNextMarker","nextSibling","_el$4","_el$8","_el$9","_co$","_el$6","_el$7","_el$38","_el$39","_co$10","_el$40","_el$41","_co$11","$$keydown","_$insert","noToolbar","trailing","placeholder","_el$5","_tmpl$2","_ref$","_$use","next","relatedTarget","contains","onValueCommit","$$input","element","textareaRef","_$spread","_$mergeProps","spellcheck","maxLength","aria-controls","aria-activedescendant","showStats","_el$0","_tmpl$3","_el$1","_el$11","_el$12","_co$2","_el$10","_el$13","_el$14","_co$3","_el$15","_el$17","_el$18","_co$4","_el$16","_el$19","_el$20","_co$5","_el$21","_el$23","_el$24","_co$6","_el$22","_el$25","_el$26","_co$7","_el$27","_tmpl$5","_el$28","_el$30","_el$31","_co$8","_el$32","_el$33","_co$9","_el$34","_el$35","_co$0","_ref$2","_tmpl$4","_el$42","_tmpl$7","_el$43","_el$44","_el$45","retry","each","_el$46","_tmpl$8","_el$47","_el$48","_el$49","_co$12","focus","hint","_el$50","_tmpl$9","_v$12","_v$13","_v$5","completionSuggestions","_v$6","_v$7","labelId","_v$8","_v$9","_v$0","_v$1","variant","_v$10","_v$11","String","i","n","s","_$setStyleProperty","_$delegateEvents"],"sources":["inputs/markdown/MarkdownEditor.tsx"],"sourcesContent":["import { highlight } from \"@k2b/stdlib\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show, untrack } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../../internal/field\";\nimport { useUiMessages } from \"../../intl/messages\";\nimport {\n abbreviations as abbreviationsCompletion,\n buildSuggestContext,\n type Completion,\n collectKnownLabels,\n createCompletionBehaviorState,\n detectQuery,\n displayLabel,\n type QueryContext,\n renderWithOverlay,\n resolveSuggestions,\n type Suggestion,\n} from \"../completion\";\nimport type { ValueFieldProps } from \"../field-contract\";\nimport { resolveMaybeAccessor } from \"../field-contract\";\nimport { computeActiveFormats } from \"./active-formats\";\nimport { handleListContinuation, handleShortcut, handleSmartPaste } from \"./behaviors\";\nimport { isInCodeZone } from \"./code-zone\";\nimport Toolbar from \"./Toolbar\";\n\nexport type MarkdownEditorProps = ValueFieldProps<string> & {\n onSubmit?: () => void;\n placeholder?: string;\n lines?: number;\n noToolbar?: boolean;\n spellcheck?: boolean;\n name?: string;\n maxLength?: number;\n textareaRef?: (element: HTMLTextAreaElement) => void;\n abbreviations?: Record<string, string>;\n completions?: readonly Completion[];\n showStats?: boolean;\n variant?: \"default\" | \"paper\";\n fill?: boolean;\n onSave?: () => void;\n saveDisabled?: boolean;\n saving?: boolean;\n toolbarTrailing?: JSX.Element;\n};\n\ntype CompletionState = {\n context: QueryContext;\n suggestions: readonly Suggestion[];\n selectedIndex: number;\n};\n\nexport function MarkdownEditor(props: MarkdownEditorProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n let textarea: HTMLTextAreaElement | undefined;\n let preview: HTMLDivElement | undefined;\n let dropdown: HTMLDivElement | undefined;\n let completionAbort: AbortController | null = null;\n let completionTimer: ReturnType<typeof setTimeout> | null = null;\n let overlayFrame: number | undefined;\n let overlayInitialized = false;\n let renderPendingOverlay: (() => void) | undefined;\n const completionBehavior = createCompletionBehaviorState();\n\n const [textareaSignal, setTextareaSignal] = createSignal<HTMLTextAreaElement | null>(null);\n const [activeFormats, setActiveFormats] = createSignal<Set<string>>(new Set());\n const [composing, setComposing] = createSignal(false);\n const [localValue, setLocalValue] = createSignal(resolveMaybeAccessor(props.value) ?? \"\");\n const error = () => resolveMaybeAccessor(props.error);\n const [state, setState] = createSignal<CompletionState | null>(null);\n const [loading, setLoading] = createSignal(false);\n const [completionError, setCompletionError] = createSignal<string | null>(null);\n const [dropdownOpen, setDropdownOpen] = createSignal(false);\n const completionId = createUniqueId();\n const listboxId = `${meta.controlId}-${completionId}-suggestions`;\n const optionId = (index: number): string => `${listboxId}-${index}`;\n const activeSuggestion = (): Suggestion | null => {\n const current = state();\n return current?.suggestions[current.selectedIndex] ?? null;\n };\n\n const mergedCompletions = createMemo<readonly Completion[] | undefined>(() => {\n const merged: Completion[] = [];\n if (props.abbreviations && Object.keys(props.abbreviations).length > 0) {\n merged.push(abbreviationsCompletion(props.abbreviations));\n }\n if (props.completions) merged.push(...props.completions);\n return merged.length > 0 ? merged : undefined;\n });\n const knownLabels = createMemo(() => collectKnownLabels(mergedCompletions()));\n\n createEffect(() => {\n const incoming = resolveMaybeAccessor(props.value);\n if (incoming !== undefined && incoming !== null && incoming !== untrack(localValue)) {\n setLocalValue(incoming);\n }\n });\n\n createEffect(() => {\n const target = localValue();\n if (!composing() && textarea && textarea.value !== target) {\n textarea.value = target;\n }\n });\n\n createEffect(() => {\n if (!preview) return;\n const value = localValue();\n const labels = knownLabels();\n const current = state();\n const active = activeSuggestion();\n const ghost =\n current && active\n ? {\n at: current.context.end,\n text: active.text.slice(current.context.text.length),\n }\n : undefined;\n const anchor = current && !ghost ? { at: current.context.end } : undefined;\n renderPendingOverlay = () => {\n if (!preview) return;\n preview.innerHTML = renderWithOverlay(value, (text) => highlight.markdown(text, { knownLabels: labels }), { ghost, anchor });\n if (textarea) {\n preview.scrollTop = textarea.scrollTop;\n preview.scrollLeft = textarea.scrollLeft;\n }\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n if (!overlayInitialized) {\n overlayInitialized = true;\n renderPendingOverlay();\n renderPendingOverlay = undefined;\n return;\n }\n if (overlayFrame !== undefined) return;\n overlayFrame = requestAnimationFrame(() => {\n overlayFrame = undefined;\n const render = renderPendingOverlay;\n renderPendingOverlay = undefined;\n render?.();\n });\n });\n\n const updateActiveFormats = (): void => {\n if (textarea) setActiveFormats(computeActiveFormats(textarea));\n };\n\n const closeDropdown = (): void => {\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n setDropdownOpen(false);\n };\n\n const clearCompletion = (): void => {\n completionAbort?.abort();\n completionAbort = null;\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n setState(null);\n setLoading(false);\n setCompletionError(null);\n closeDropdown();\n };\n\n const positionDropdown = (): void => {\n if (!dropdown?.isConnected || !preview?.isConnected || !textarea?.isConnected) {\n return;\n }\n const anchor = preview.querySelector<HTMLElement>(\"[data-completion-anchor]\");\n const rect = anchor?.getBoundingClientRect() ?? textarea.getBoundingClientRect();\n const maxHeight = 260;\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < maxHeight && rect.top > spaceBelow;\n const width = Math.min(280, window.innerWidth - 16);\n const left = Math.min(rect.left, window.innerWidth - width - 8);\n dropdown.style.setProperty(\"left\", `${Math.max(8, left)}px`, \"important\");\n dropdown.style.setProperty(\"width\", `${width}px`, \"important\");\n if (openAbove) {\n dropdown.style.setProperty(\"top\", \"auto\", \"important\");\n dropdown.style.setProperty(\"bottom\", `${window.innerHeight - rect.top + 4}px`, \"important\");\n } else {\n dropdown.style.setProperty(\"top\", `${rect.bottom + 4}px`, \"important\");\n dropdown.style.setProperty(\"bottom\", \"auto\", \"important\");\n }\n if (!dropdown.matches(\":popover-open\")) dropdown.showPopover();\n };\n\n const isAbortError = (error: unknown): boolean =>\n error instanceof DOMException\n ? error.name === \"AbortError\"\n : Boolean(error && typeof error === \"object\" && \"name\" in error && (error as { name: string }).name === \"AbortError\");\n\n const applySuggestionList = (context: QueryContext, suggestions: readonly Suggestion[]): void => {\n const value = localValue();\n const normalized = context.text.toLowerCase();\n const usable = suggestions.filter((suggestion) => {\n if (suggestion.textEdit) {\n const { start, end, text } = suggestion.textEdit;\n return (\n Number.isInteger(start) &&\n Number.isInteger(end) &&\n start >= 0 &&\n end >= start &&\n end <= value.length &&\n value.slice(start, end) !== text\n );\n }\n return suggestion.text.toLowerCase().startsWith(normalized) && suggestion.text.length > context.text.length;\n });\n if (usable.length === 0) {\n setState(null);\n closeDropdown();\n return;\n }\n const previous = activeSuggestion()?.text;\n const retained = previous ? usable.findIndex((suggestion) => suggestion.text === previous) : -1;\n setState({\n context,\n suggestions: usable,\n selectedIndex: retained >= 0 ? retained : 0,\n });\n if (context.completion.dropdown) {\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n } else {\n closeDropdown();\n }\n };\n\n const runAsyncCompletion = async (context: QueryContext, promise: Promise<readonly Suggestion[]>, signal: AbortSignal): Promise<void> => {\n try {\n const suggestions = await promise;\n if (signal.aborted) return;\n setLoading(false);\n applySuggestionList(context, suggestions);\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n }\n };\n\n const startCompletionResolution = (context: QueryContext, signal: AbortSignal): void => {\n if (signal.aborted || !textarea) return;\n setLoading(true);\n setCompletionError(null);\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n try {\n const result = resolveSuggestions(context.completion, context.query, buildSuggestContext(textarea, context), signal);\n if (result.kind === \"sync\") {\n setLoading(false);\n applySuggestionList(context, result.data);\n } else {\n void runAsyncCompletion(context, result.promise, signal);\n }\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n queueMicrotask(positionDropdown);\n }\n };\n\n const recomputeCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) {\n clearCompletion();\n return;\n }\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n const current = state();\n if (\n current &&\n (current.context.start !== context.start ||\n current.context.end !== context.end ||\n current.context.text !== context.text ||\n current.context.completion !== context.completion)\n ) {\n setState(null);\n closeDropdown();\n }\n setCompletionError(null);\n const delay = Math.max(0, context.completion.debounceMs ?? 0);\n if (delay === 0) {\n startCompletionResolution(context, completionAbort.signal);\n } else {\n setLoading(false);\n if (!state()) closeDropdown();\n const signal = completionAbort.signal;\n completionTimer = setTimeout(() => {\n completionTimer = null;\n startCompletionResolution(context, signal);\n }, delay);\n }\n };\n\n const retryCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) return clearCompletion();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n startCompletionResolution(context, completionAbort.signal);\n };\n\n const activateSuggestion = (index = state()?.selectedIndex ?? -1): boolean => {\n const current = state();\n const active = current?.suggestions[index];\n if (!textarea || !current || !active) return false;\n if (!active.textEdit && active.text === current.context.text) {\n closeDropdown();\n setState(null);\n return false;\n }\n const applied = completionBehavior.applySuggestion(textarea, current.context, active);\n closeDropdown();\n setState(null);\n return applied;\n };\n\n const moveSelection = (direction: 1 | -1): void => {\n const current = state();\n if (!current || current.suggestions.length === 0) return;\n setState({\n ...current,\n selectedIndex: (current.selectedIndex + direction + current.suggestions.length) % current.suggestions.length,\n });\n };\n\n const stats = createMemo(() => {\n const value = localValue();\n return {\n lines: value.length === 0 ? 0 : value.split(\"\\n\").length,\n words: value.match(/\\S+/g)?.length ?? 0,\n chars: value.length,\n };\n });\n\n onMount(() => {\n if (textarea) setTextareaSignal(textarea);\n updateActiveFormats();\n const selectionChange = (): void => {\n if (document.activeElement === textarea) {\n updateActiveFormats();\n recomputeCompletion();\n }\n };\n // Reposition an OPEN popover only. Calling `positionDropdown` blindly\n // would `showPopover()` a dropdown that is deliberately closed (a\n // ghost-only completion keeps state without a dropdown).\n const reposition = (): void => {\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n document.addEventListener(\"selectionchange\", selectionChange);\n window.addEventListener(\"resize\", reposition);\n onCleanup(() => {\n document.removeEventListener(\"selectionchange\", selectionChange);\n window.removeEventListener(\"resize\", reposition);\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n if (overlayFrame !== undefined) cancelAnimationFrame(overlayFrame);\n overlayFrame = undefined;\n renderPendingOverlay = undefined;\n completionBehavior.reset();\n });\n });\n\n const onInput = (event: InputEvent & { currentTarget: HTMLTextAreaElement }): void => {\n if (\n completionBehavior.tryExpand(event.currentTarget, mergedCompletions(), {\n isExcluded: isInCodeZone,\n })\n ) {\n return;\n }\n setLocalValue(event.currentTarget.value);\n props.onValueChange?.(event.currentTarget.value);\n updateActiveFormats();\n recomputeCompletion();\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n if (!textarea || event.isComposing) return;\n if (\n event.key === \"Backspace\" &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n !event.shiftKey &&\n completionBehavior.tryRestore(textarea)\n ) {\n event.preventDefault();\n return;\n }\n const current = state();\n const dropdownCompletion = current?.context.completion.dropdown === true;\n if (current && dropdownCompletion && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n event.preventDefault();\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1);\n return;\n }\n if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n current &&\n dropdownCompletion &&\n dropdownOpen()\n ) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Tab\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && current) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Escape\") {\n if (current) {\n event.preventDefault();\n closeDropdown();\n setState(null);\n return;\n }\n if ((mergedCompletions()?.length ?? 0) > 0) {\n event.preventDefault();\n textarea.blur();\n return;\n }\n }\n if (event.key === \"Enter\" && (event.metaKey || event.ctrlKey) && props.onSubmit) {\n event.preventDefault();\n props.onSubmit();\n return;\n }\n if (handleShortcut(event, textarea)) {\n event.preventDefault();\n return;\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && handleListContinuation(textarea)) {\n event.preventDefault();\n }\n };\n\n const saveControls = (): JSX.Element => (\n <>\n {props.toolbarTrailing}\n <Show when={props.onSave}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().saveShortcut}\n aria-label={messages().save}\n tabIndex={-1}\n disabled={props.disabled || props.saveDisabled || props.saving}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => props.onSave?.()}\n >\n <i class={props.saving ? \"ti ti-loader-2 k2b-spin\" : \"ti ti-device-floppy\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={props.error}\n fill={props.fill}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-markdown-editor\"\n role=\"group\"\n aria-labelledby={props.label ? meta.labelId : undefined}\n aria-label={!props.label ? props[\"aria-label\"] : undefined}\n data-disabled={props.disabled ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n data-variant={props.variant === \"paper\" ? \"paper\" : undefined}\n data-fill={props.fill ? \"true\" : undefined}\n style={{\n \"--k2b-editor-lines\": String(props.lines ?? 6),\n }}\n onKeyDown={(event) => {\n if (props.onSave && (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"s\") {\n event.preventDefault();\n if (!props.saveDisabled && !props.saving) props.onSave();\n }\n }}\n >\n <Show when={!props.noToolbar}>\n <Toolbar textarea={textareaSignal} activeFormats={activeFormats} disabled={props.disabled} trailing={saveControls()} />\n </Show>\n <div class=\"k2b-markdown-editor__surface\">\n <Show when={!localValue() && props.placeholder}>\n <div class=\"k2b-markdown-editor__placeholder\" aria-hidden=\"true\">\n {props.placeholder}\n </div>\n </Show>\n <div ref={preview} class=\"k2b-markdown-editor__preview\" aria-hidden=\"true\" />\n <textarea\n ref={(element) => {\n textarea = element;\n props.textareaRef?.(element);\n }}\n id={meta.controlId}\n name={props.name}\n class=\"k2b-markdown-editor__input\"\n onInput={onInput}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n onKeyDown={onKeyDown}\n onPaste={(event) => {\n if (textarea && handleSmartPaste(event, textarea)) {\n event.preventDefault();\n }\n }}\n onScroll={(event) => {\n if (preview) {\n preview.scrollTop = event.currentTarget.scrollTop;\n preview.scrollLeft = event.currentTarget.scrollLeft;\n }\n }}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => setComposing(false)}\n onBlur={(event) => {\n const next = event.relatedTarget as HTMLElement | null;\n if (next && dropdown?.contains(next)) return;\n completionBehavior.reset();\n clearCompletion();\n }}\n disabled={props.disabled}\n required={props.required}\n spellcheck={props.spellcheck ?? true}\n maxLength={props.maxLength}\n {...fieldControlAria(meta, props)}\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-controls={dropdownOpen() ? listboxId : undefined}\n aria-activedescendant={dropdownOpen() && state() ? optionId(state()!.selectedIndex) : undefined}\n />\n </div>\n <Show when={(props.showStats ?? true) && !props.disabled}>\n <div class=\"k2b-markdown-editor__stats\" aria-hidden=\"true\" data-empty={stats().chars === 0 ? \"true\" : undefined}>\n <span>\n {stats().lines} {stats().lines === 1 ? \"line\" : \"lines\"}\n </span>\n <span>\n {stats().words} {stats().words === 1 ? \"word\" : \"words\"}\n </span>\n <span>\n {stats().chars} {stats().chars === 1 ? \"char\" : \"chars\"}\n </span>\n </div>\n </Show>\n <Show when={state() || loading() || completionError()}>\n <div\n ref={dropdown}\n popover=\"manual\"\n class=\"k2b-autocomplete__options\"\n role=\"presentation\"\n aria-label={messages().completionSuggestions}\n >\n <div id={listboxId} class=\"k2b-autocomplete__listbox\" role=\"listbox\" aria-label={messages().suggestions}>\n <Show when={loading()}>\n <div class=\"k2b-autocomplete__status\" role=\"status\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n Loading suggestions\n </div>\n </Show>\n <Show when={completionError()}>\n {(message) => (\n <div class=\"k2b-autocomplete__status\" data-error=\"true\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n <span>{message()}</span>\n <button type=\"button\" onMouseDown={(event) => event.preventDefault()} onClick={retryCompletion}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <For each={state()?.suggestions ?? []}>\n {(suggestion, index) => (\n // biome-ignore lint/a11y/useKeyWithClickEvents: the owning textarea handles keyboard activation through aria-activedescendant.\n <div\n id={optionId(index())}\n class=\"k2b-autocomplete__option\"\n role=\"option\"\n aria-selected={index() === state()?.selectedIndex}\n onMouseEnter={() => {\n const current = state();\n if (current) {\n setState({ ...current, selectedIndex: index() });\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n }}\n onClick={() => {\n activateSuggestion(index());\n textarea?.focus();\n }}\n >\n <span>{displayLabel(suggestion, state()!.context.completion)}</span>\n <Show when={suggestion.hint}>{(hint) => <small>{hint()}</small>}</Show>\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type { Completion, SuggestContext, Suggestion } from \"../completion\";\nexport { abbreviations } from \"../completion\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["highlight","createEffect","createMemo","createSignal","createUniqueId","For","onCleanup","onMount","Show","untrack","createFieldMeta","Field","fieldControlAria","useUiMessages","abbreviations","abbreviationsCompletion","buildSuggestContext","collectKnownLabels","createCompletionBehaviorState","detectQuery","displayLabel","renderWithOverlay","resolveSuggestions","resolveMaybeAccessor","computeActiveFormats","handleListContinuation","handleShortcut","handleSmartPaste","isInCodeZone","Toolbar","MarkdownEditor","props","messages","meta","id","textarea","preview","dropdown","completionAbort","completionTimer","overlayFrame","overlayInitialized","renderPendingOverlay","completionBehavior","textareaSignal","setTextareaSignal","activeFormats","setActiveFormats","Set","composing","setComposing","localValue","setLocalValue","value","error","state","setState","loading","setLoading","completionError","setCompletionError","dropdownOpen","setDropdownOpen","completionId","listboxId","controlId","optionId","index","activeSuggestion","current","suggestions","selectedIndex","mergedCompletions","merged","Object","keys","length","push","completions","undefined","knownLabels","incoming","target","labels","active","ghost","at","context","end","text","slice","anchor","innerHTML","markdown","scrollTop","scrollLeft","matches","positionDropdown","requestAnimationFrame","render","updateActiveFormats","closeDropdown","hidePopover","clearCompletion","abort","clearTimeout","isConnected","querySelector","rect","getBoundingClientRect","maxHeight","spaceBelow","window","innerHeight","bottom","openAbove","top","width","Math","min","innerWidth","left","style","setProperty","max","showPopover","isAbortError","DOMException","name","Boolean","applySuggestionList","normalized","toLowerCase","usable","filter","suggestion","textEdit","start","Number","isInteger","startsWith","previous","retained","findIndex","completion","queueMicrotask","runAsyncCompletion","promise","signal","aborted","Error","message","startCompletionResolution","result","query","kind","data","recomputeCompletion","isExcluded","AbortController","delay","debounceMs","setTimeout","retryCompletion","activateSuggestion","applied","applySuggestion","moveSelection","direction","stats","lines","split","words","match","chars","selectionChange","document","activeElement","reposition","addEventListener","removeEventListener","cancelAnimationFrame","reset","onInput","event","tryExpand","currentTarget","onValueChange","onKeyDown","isComposing","key","metaKey","ctrlKey","altKey","shiftKey","tryRestore","preventDefault","dropdownCompletion","blur","onSubmit","saveControls","_$createComponent","when","onSave","children","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","$$click","$$mousedown","_$effect","_p$","_v$","saveShortcut","_v$2","save","_v$3","disabled","saveDisabled","saving","_v$4","saved","e","_$setAttribute","t","a","_$setProperty","o","_$className","_$runHydrationEvents","class","label","description","fill","required","_el$3","_tmpl$6","_el$36","_el$37","_co$1","_$getNextMarker","nextSibling","_el$4","_el$8","_el$9","_co$","_el$6","_el$7","_el$38","_el$39","_co$10","_el$40","_el$41","_co$11","$$keydown","_$insert","noToolbar","trailing","_$memo","toolbarTrailing","onClose","_el$42","_tmpl$7","_v$12","close","_v$13","_v$14","placeholder","_el$5","_tmpl$2","_ref$","_$use","next","relatedTarget","contains","onValueCommit","$$input","element","textareaRef","_$spread","_$mergeProps","spellcheck","maxLength","aria-controls","aria-activedescendant","showStats","_el$0","_tmpl$3","_el$1","_el$11","_el$12","_co$2","_el$10","_el$13","_el$14","_co$3","_el$15","_el$17","_el$18","_co$4","_el$16","_el$19","_el$20","_co$5","_el$21","_el$23","_el$24","_co$6","_el$22","_el$25","_el$26","_co$7","_el$27","_tmpl$5","_el$28","_el$30","_el$31","_co$8","_el$32","_el$33","_co$9","_el$34","_el$35","_co$0","_ref$2","_tmpl$4","_el$43","_tmpl$8","_el$44","_el$45","_el$46","retry","each","_el$47","_tmpl$9","_el$48","_el$49","_el$50","_co$12","focus","hint","_el$51","_tmpl$0","_v$15","_v$16","_v$5","completionSuggestions","_v$6","_v$7","labelId","_v$8","_v$9","_v$0","_v$1","variant","_v$10","_v$11","String","i","n","s","_$setStyleProperty","_$delegateEvents"],"sources":["inputs/markdown/MarkdownEditor.tsx"],"sourcesContent":["import { highlight } from \"@k2b/stdlib\";\nimport { createEffect, createMemo, createSignal, createUniqueId, For, type JSX, onCleanup, onMount, Show, untrack } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../../internal/field\";\nimport { useUiMessages } from \"../../intl/messages\";\nimport {\n abbreviations as abbreviationsCompletion,\n buildSuggestContext,\n type Completion,\n collectKnownLabels,\n createCompletionBehaviorState,\n detectQuery,\n displayLabel,\n type QueryContext,\n renderWithOverlay,\n resolveSuggestions,\n type Suggestion,\n} from \"../completion\";\nimport type { ValueFieldProps } from \"../field-contract\";\nimport { resolveMaybeAccessor } from \"../field-contract\";\nimport { computeActiveFormats } from \"./active-formats\";\nimport { handleListContinuation, handleShortcut, handleSmartPaste } from \"./behaviors\";\nimport { isInCodeZone } from \"./code-zone\";\nimport Toolbar from \"./Toolbar\";\n\nexport type MarkdownEditorProps = ValueFieldProps<string> & {\n onSubmit?: () => void;\n placeholder?: string;\n lines?: number;\n noToolbar?: boolean;\n spellcheck?: boolean;\n name?: string;\n maxLength?: number;\n textareaRef?: (element: HTMLTextAreaElement) => void;\n abbreviations?: Record<string, string>;\n completions?: readonly Completion[];\n showStats?: boolean;\n variant?: \"default\" | \"paper\" | \"embedded\";\n fill?: boolean;\n /** Groups save and close at the end of the toolbar. The caller owns navigation and unsaved-change confirmation. */\n onClose?: () => void;\n onSave?: () => void;\n saveDisabled?: boolean;\n saving?: boolean;\n /** Shows a successful-save check. The caller clears it after a brief delay or the next edit. */\n saved?: boolean;\n toolbarTrailing?: JSX.Element;\n};\n\ntype CompletionState = {\n context: QueryContext;\n suggestions: readonly Suggestion[];\n selectedIndex: number;\n};\n\nexport function MarkdownEditor(props: MarkdownEditorProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n let textarea: HTMLTextAreaElement | undefined;\n let preview: HTMLDivElement | undefined;\n let dropdown: HTMLDivElement | undefined;\n let completionAbort: AbortController | null = null;\n let completionTimer: ReturnType<typeof setTimeout> | null = null;\n let overlayFrame: number | undefined;\n let overlayInitialized = false;\n let renderPendingOverlay: (() => void) | undefined;\n const completionBehavior = createCompletionBehaviorState();\n\n const [textareaSignal, setTextareaSignal] = createSignal<HTMLTextAreaElement | null>(null);\n const [activeFormats, setActiveFormats] = createSignal<Set<string>>(new Set());\n const [composing, setComposing] = createSignal(false);\n const [localValue, setLocalValue] = createSignal(resolveMaybeAccessor(props.value) ?? \"\");\n const error = () => resolveMaybeAccessor(props.error);\n const [state, setState] = createSignal<CompletionState | null>(null);\n const [loading, setLoading] = createSignal(false);\n const [completionError, setCompletionError] = createSignal<string | null>(null);\n const [dropdownOpen, setDropdownOpen] = createSignal(false);\n const completionId = createUniqueId();\n const listboxId = `${meta.controlId}-${completionId}-suggestions`;\n const optionId = (index: number): string => `${listboxId}-${index}`;\n const activeSuggestion = (): Suggestion | null => {\n const current = state();\n return current?.suggestions[current.selectedIndex] ?? null;\n };\n\n const mergedCompletions = createMemo<readonly Completion[] | undefined>(() => {\n const merged: Completion[] = [];\n if (props.abbreviations && Object.keys(props.abbreviations).length > 0) {\n merged.push(abbreviationsCompletion(props.abbreviations));\n }\n if (props.completions) merged.push(...props.completions);\n return merged.length > 0 ? merged : undefined;\n });\n const knownLabels = createMemo(() => collectKnownLabels(mergedCompletions()));\n\n createEffect(() => {\n const incoming = resolveMaybeAccessor(props.value);\n if (incoming !== undefined && incoming !== null && incoming !== untrack(localValue)) {\n setLocalValue(incoming);\n }\n });\n\n createEffect(() => {\n const target = localValue();\n if (!composing() && textarea && textarea.value !== target) {\n textarea.value = target;\n }\n });\n\n createEffect(() => {\n if (!preview) return;\n const value = localValue();\n const labels = knownLabels();\n const current = state();\n const active = activeSuggestion();\n const ghost =\n current && active\n ? {\n at: current.context.end,\n text: active.text.slice(current.context.text.length),\n }\n : undefined;\n const anchor = current && !ghost ? { at: current.context.end } : undefined;\n renderPendingOverlay = () => {\n if (!preview) return;\n preview.innerHTML = renderWithOverlay(value, (text) => highlight.markdown(text, { knownLabels: labels }), { ghost, anchor });\n if (textarea) {\n preview.scrollTop = textarea.scrollTop;\n preview.scrollLeft = textarea.scrollLeft;\n }\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n if (!overlayInitialized) {\n overlayInitialized = true;\n renderPendingOverlay();\n renderPendingOverlay = undefined;\n return;\n }\n if (overlayFrame !== undefined) return;\n overlayFrame = requestAnimationFrame(() => {\n overlayFrame = undefined;\n const render = renderPendingOverlay;\n renderPendingOverlay = undefined;\n render?.();\n });\n });\n\n const updateActiveFormats = (): void => {\n if (textarea) setActiveFormats(computeActiveFormats(textarea));\n };\n\n const closeDropdown = (): void => {\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n setDropdownOpen(false);\n };\n\n const clearCompletion = (): void => {\n completionAbort?.abort();\n completionAbort = null;\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n setState(null);\n setLoading(false);\n setCompletionError(null);\n closeDropdown();\n };\n\n const positionDropdown = (): void => {\n if (!dropdown?.isConnected || !preview?.isConnected || !textarea?.isConnected) {\n return;\n }\n const anchor = preview.querySelector<HTMLElement>(\"[data-completion-anchor]\");\n const rect = anchor?.getBoundingClientRect() ?? textarea.getBoundingClientRect();\n const maxHeight = 260;\n const spaceBelow = window.innerHeight - rect.bottom;\n const openAbove = spaceBelow < maxHeight && rect.top > spaceBelow;\n const width = Math.min(280, window.innerWidth - 16);\n const left = Math.min(rect.left, window.innerWidth - width - 8);\n dropdown.style.setProperty(\"left\", `${Math.max(8, left)}px`, \"important\");\n dropdown.style.setProperty(\"width\", `${width}px`, \"important\");\n if (openAbove) {\n dropdown.style.setProperty(\"top\", \"auto\", \"important\");\n dropdown.style.setProperty(\"bottom\", `${window.innerHeight - rect.top + 4}px`, \"important\");\n } else {\n dropdown.style.setProperty(\"top\", `${rect.bottom + 4}px`, \"important\");\n dropdown.style.setProperty(\"bottom\", \"auto\", \"important\");\n }\n if (!dropdown.matches(\":popover-open\")) dropdown.showPopover();\n };\n\n const isAbortError = (error: unknown): boolean =>\n error instanceof DOMException\n ? error.name === \"AbortError\"\n : Boolean(error && typeof error === \"object\" && \"name\" in error && (error as { name: string }).name === \"AbortError\");\n\n const applySuggestionList = (context: QueryContext, suggestions: readonly Suggestion[]): void => {\n const value = localValue();\n const normalized = context.text.toLowerCase();\n const usable = suggestions.filter((suggestion) => {\n if (suggestion.textEdit) {\n const { start, end, text } = suggestion.textEdit;\n return (\n Number.isInteger(start) &&\n Number.isInteger(end) &&\n start >= 0 &&\n end >= start &&\n end <= value.length &&\n value.slice(start, end) !== text\n );\n }\n return suggestion.text.toLowerCase().startsWith(normalized) && suggestion.text.length > context.text.length;\n });\n if (usable.length === 0) {\n setState(null);\n closeDropdown();\n return;\n }\n const previous = activeSuggestion()?.text;\n const retained = previous ? usable.findIndex((suggestion) => suggestion.text === previous) : -1;\n setState({\n context,\n suggestions: usable,\n selectedIndex: retained >= 0 ? retained : 0,\n });\n if (context.completion.dropdown) {\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n } else {\n closeDropdown();\n }\n };\n\n const runAsyncCompletion = async (context: QueryContext, promise: Promise<readonly Suggestion[]>, signal: AbortSignal): Promise<void> => {\n try {\n const suggestions = await promise;\n if (signal.aborted) return;\n setLoading(false);\n applySuggestionList(context, suggestions);\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n }\n };\n\n const startCompletionResolution = (context: QueryContext, signal: AbortSignal): void => {\n if (signal.aborted || !textarea) return;\n setLoading(true);\n setCompletionError(null);\n setDropdownOpen(true);\n queueMicrotask(positionDropdown);\n try {\n const result = resolveSuggestions(context.completion, context.query, buildSuggestContext(textarea, context), signal);\n if (result.kind === \"sync\") {\n setLoading(false);\n applySuggestionList(context, result.data);\n } else {\n void runAsyncCompletion(context, result.promise, signal);\n }\n } catch (error) {\n if (signal.aborted || isAbortError(error)) return;\n setLoading(false);\n setState(null);\n setCompletionError(error instanceof Error ? error.message : \"Suggestions could not be loaded\");\n queueMicrotask(positionDropdown);\n }\n };\n\n const recomputeCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) {\n clearCompletion();\n return;\n }\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n const current = state();\n if (\n current &&\n (current.context.start !== context.start ||\n current.context.end !== context.end ||\n current.context.text !== context.text ||\n current.context.completion !== context.completion)\n ) {\n setState(null);\n closeDropdown();\n }\n setCompletionError(null);\n const delay = Math.max(0, context.completion.debounceMs ?? 0);\n if (delay === 0) {\n startCompletionResolution(context, completionAbort.signal);\n } else {\n setLoading(false);\n if (!state()) closeDropdown();\n const signal = completionAbort.signal;\n completionTimer = setTimeout(() => {\n completionTimer = null;\n startCompletionResolution(context, signal);\n }, delay);\n }\n };\n\n const retryCompletion = (): void => {\n if (!textarea) return;\n const context = detectQuery(textarea, mergedCompletions(), {\n isExcluded: isInCodeZone,\n });\n if (!context) return clearCompletion();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n completionTimer = null;\n completionAbort = new AbortController();\n startCompletionResolution(context, completionAbort.signal);\n };\n\n const activateSuggestion = (index = state()?.selectedIndex ?? -1): boolean => {\n const current = state();\n const active = current?.suggestions[index];\n if (!textarea || !current || !active) return false;\n if (!active.textEdit && active.text === current.context.text) {\n closeDropdown();\n setState(null);\n return false;\n }\n const applied = completionBehavior.applySuggestion(textarea, current.context, active);\n closeDropdown();\n setState(null);\n return applied;\n };\n\n const moveSelection = (direction: 1 | -1): void => {\n const current = state();\n if (!current || current.suggestions.length === 0) return;\n setState({\n ...current,\n selectedIndex: (current.selectedIndex + direction + current.suggestions.length) % current.suggestions.length,\n });\n };\n\n const stats = createMemo(() => {\n const value = localValue();\n return {\n lines: value.length === 0 ? 0 : value.split(\"\\n\").length,\n words: value.match(/\\S+/g)?.length ?? 0,\n chars: value.length,\n };\n });\n\n onMount(() => {\n if (textarea) setTextareaSignal(textarea);\n updateActiveFormats();\n const selectionChange = (): void => {\n if (document.activeElement === textarea) {\n updateActiveFormats();\n recomputeCompletion();\n }\n };\n // Reposition an OPEN popover only. Calling `positionDropdown` blindly\n // would `showPopover()` a dropdown that is deliberately closed (a\n // ghost-only completion keeps state without a dropdown).\n const reposition = (): void => {\n if (dropdown?.matches(\":popover-open\")) positionDropdown();\n };\n document.addEventListener(\"selectionchange\", selectionChange);\n window.addEventListener(\"resize\", reposition);\n onCleanup(() => {\n document.removeEventListener(\"selectionchange\", selectionChange);\n window.removeEventListener(\"resize\", reposition);\n if (dropdown?.matches(\":popover-open\")) dropdown.hidePopover();\n completionAbort?.abort();\n if (completionTimer) clearTimeout(completionTimer);\n if (overlayFrame !== undefined) cancelAnimationFrame(overlayFrame);\n overlayFrame = undefined;\n renderPendingOverlay = undefined;\n completionBehavior.reset();\n });\n });\n\n const onInput = (event: InputEvent & { currentTarget: HTMLTextAreaElement }): void => {\n if (\n completionBehavior.tryExpand(event.currentTarget, mergedCompletions(), {\n isExcluded: isInCodeZone,\n })\n ) {\n return;\n }\n setLocalValue(event.currentTarget.value);\n props.onValueChange?.(event.currentTarget.value);\n updateActiveFormats();\n recomputeCompletion();\n };\n\n const onKeyDown = (event: KeyboardEvent): void => {\n if (!textarea || event.isComposing) return;\n if (\n event.key === \"Backspace\" &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n !event.shiftKey &&\n completionBehavior.tryRestore(textarea)\n ) {\n event.preventDefault();\n return;\n }\n const current = state();\n const dropdownCompletion = current?.context.completion.dropdown === true;\n if (current && dropdownCompletion && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n event.preventDefault();\n moveSelection(event.key === \"ArrowDown\" ? 1 : -1);\n return;\n }\n if (\n event.key === \"Enter\" &&\n !event.shiftKey &&\n !event.metaKey &&\n !event.ctrlKey &&\n !event.altKey &&\n current &&\n dropdownCompletion &&\n dropdownOpen()\n ) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Tab\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && current) {\n event.preventDefault();\n activateSuggestion();\n return;\n }\n if (event.key === \"Escape\") {\n if (current) {\n event.preventDefault();\n closeDropdown();\n setState(null);\n return;\n }\n if ((mergedCompletions()?.length ?? 0) > 0) {\n event.preventDefault();\n textarea.blur();\n return;\n }\n }\n if (event.key === \"Enter\" && (event.metaKey || event.ctrlKey) && props.onSubmit) {\n event.preventDefault();\n props.onSubmit();\n return;\n }\n if (handleShortcut(event, textarea)) {\n event.preventDefault();\n return;\n }\n if (event.key === \"Enter\" && !event.shiftKey && !event.metaKey && !event.ctrlKey && !event.altKey && handleListContinuation(textarea)) {\n event.preventDefault();\n }\n };\n\n const saveControls = (): JSX.Element => (\n <>\n <Show when={props.onSave}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().saveShortcut}\n aria-label={messages().save}\n tabIndex={-1}\n disabled={props.disabled || props.saveDisabled || props.saving}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => props.onSave?.()}\n >\n <i class={props.saving ? \"ti ti-loader-2 k2b-spin\" : props.saved ? \"ti ti-check\" : \"ti ti-device-floppy\"} aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={props.error}\n fill={props.fill}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-markdown-editor\"\n role=\"group\"\n aria-labelledby={props.label ? meta.labelId : undefined}\n aria-label={!props.label ? props[\"aria-label\"] : undefined}\n data-disabled={props.disabled ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n data-variant={props.variant === \"default\" ? undefined : props.variant}\n data-fill={props.fill ? \"true\" : undefined}\n style={{\n \"--k2b-editor-lines\": String(props.lines ?? 6),\n }}\n onKeyDown={(event) => {\n if (props.onSave && (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === \"s\") {\n event.preventDefault();\n if (!props.disabled && !props.saveDisabled && !props.saving) props.onSave();\n }\n }}\n >\n <Show when={!props.noToolbar}>\n <Toolbar\n textarea={textareaSignal}\n activeFormats={activeFormats}\n disabled={props.disabled}\n trailing={\n <>\n {props.toolbarTrailing}\n {saveControls()}\n <Show when={props.onClose}>\n <button\n type=\"button\"\n class=\"k2b-markdown-editor__tool\"\n title={messages().close}\n aria-label={messages().close}\n tabIndex={props.disabled ? 0 : -1}\n onClick={() => props.onClose?.()}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </>\n }\n />\n </Show>\n <div class=\"k2b-markdown-editor__surface\">\n <Show when={!localValue() && props.placeholder}>\n <div class=\"k2b-markdown-editor__placeholder\" aria-hidden=\"true\">\n {props.placeholder}\n </div>\n </Show>\n <div ref={preview} class=\"k2b-markdown-editor__preview\" aria-hidden=\"true\" />\n <textarea\n ref={(element) => {\n textarea = element;\n props.textareaRef?.(element);\n }}\n id={meta.controlId}\n name={props.name}\n class=\"k2b-markdown-editor__input\"\n onInput={onInput}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n onKeyDown={onKeyDown}\n onPaste={(event) => {\n if (textarea && handleSmartPaste(event, textarea)) {\n event.preventDefault();\n }\n }}\n onScroll={(event) => {\n if (preview) {\n preview.scrollTop = event.currentTarget.scrollTop;\n preview.scrollLeft = event.currentTarget.scrollLeft;\n }\n }}\n onCompositionStart={() => setComposing(true)}\n onCompositionEnd={() => setComposing(false)}\n onBlur={(event) => {\n const next = event.relatedTarget as HTMLElement | null;\n if (next && dropdown?.contains(next)) return;\n completionBehavior.reset();\n clearCompletion();\n }}\n disabled={props.disabled}\n required={props.required}\n spellcheck={props.spellcheck ?? true}\n maxLength={props.maxLength}\n {...fieldControlAria(meta, props)}\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-controls={dropdownOpen() ? listboxId : undefined}\n aria-activedescendant={dropdownOpen() && state() ? optionId(state()!.selectedIndex) : undefined}\n />\n </div>\n <Show when={(props.showStats ?? true) && !props.disabled}>\n <div class=\"k2b-markdown-editor__stats\" aria-hidden=\"true\" data-empty={stats().chars === 0 ? \"true\" : undefined}>\n <span>\n {stats().lines} {stats().lines === 1 ? \"line\" : \"lines\"}\n </span>\n <span>\n {stats().words} {stats().words === 1 ? \"word\" : \"words\"}\n </span>\n <span>\n {stats().chars} {stats().chars === 1 ? \"char\" : \"chars\"}\n </span>\n </div>\n </Show>\n <Show when={state() || loading() || completionError()}>\n <div\n ref={dropdown}\n popover=\"manual\"\n class=\"k2b-autocomplete__options\"\n role=\"presentation\"\n aria-label={messages().completionSuggestions}\n >\n <div id={listboxId} class=\"k2b-autocomplete__listbox\" role=\"listbox\" aria-label={messages().suggestions}>\n <Show when={loading()}>\n <div class=\"k2b-autocomplete__status\" role=\"status\">\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n Loading suggestions\n </div>\n </Show>\n <Show when={completionError()}>\n {(message) => (\n <div class=\"k2b-autocomplete__status\" data-error=\"true\" role=\"alert\">\n <i class=\"ti ti-alert-circle\" aria-hidden=\"true\" />\n <span>{message()}</span>\n <button type=\"button\" onMouseDown={(event) => event.preventDefault()} onClick={retryCompletion}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <For each={state()?.suggestions ?? []}>\n {(suggestion, index) => (\n // biome-ignore lint/a11y/useKeyWithClickEvents: the owning textarea handles keyboard activation through aria-activedescendant.\n <div\n id={optionId(index())}\n class=\"k2b-autocomplete__option\"\n role=\"option\"\n aria-selected={index() === state()?.selectedIndex}\n onMouseEnter={() => {\n const current = state();\n if (current) {\n setState({ ...current, selectedIndex: index() });\n }\n }}\n onMouseDown={(event) => {\n event.preventDefault();\n }}\n onClick={() => {\n activateSuggestion(index());\n textarea?.focus();\n }}\n >\n <span>{displayLabel(suggestion, state()!.context.completion)}</span>\n <Show when={suggestion.hint}>{(hint) => <small>{hint()}</small>}</Show>\n </div>\n )}\n </For>\n </div>\n </div>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type { Completion, SuggestContext, Suggestion } from \"../completion\";\nexport { abbreviations } from \"../completion\";\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,7 @@ export const getK2bPortalRoot = scope => {
10
10
  const root = document.createElement("div");
11
11
  root.setAttribute(PORTAL_ATTRIBUTE, "");
12
12
  root.classList.add("k2b-ui-portal");
13
- if (owner === document.body) root.classList.add("k2b-ui");
13
+ if (owner === document.body && !owner.classList.contains("k2b-ui")) root.classList.add("k2b-ui");
14
14
  owner.appendChild(root);
15
15
  return root;
16
16
  };
@@ -1 +1 @@
1
- {"version":3,"names":["PORTAL_ATTRIBUTE","activeScope","active","document","activeElement","Element","closest","undefined","getK2bPortalRoot","scope","owner","querySelector","body","existing","Array","from","children","find","child","HTMLElement","hasAttribute","root","createElement","setAttribute","classList","add","appendChild"],"sources":["internal/portal.ts"],"sourcesContent":["const PORTAL_ATTRIBUTE = \"data-k2b-ui-portal\";\n\nconst activeScope = (): HTMLElement | undefined => {\n const active = document.activeElement;\n return active instanceof Element ? ((active.closest(\".k2b-ui\") as HTMLElement | null) ?? undefined) : undefined;\n};\n\nexport const getK2bPortalRoot = (scope?: HTMLElement | null): HTMLElement => {\n const owner = scope ?? activeScope() ?? document.querySelector<HTMLElement>(\".k2b-ui\") ?? document.body;\n const existing = Array.from(owner.children).find((child) => child instanceof HTMLElement && child.hasAttribute(PORTAL_ATTRIBUTE));\n if (existing instanceof HTMLElement) return existing;\n\n const root = document.createElement(\"div\");\n root.setAttribute(PORTAL_ATTRIBUTE, \"\");\n root.classList.add(\"k2b-ui-portal\");\n if (owner === document.body) root.classList.add(\"k2b-ui\");\n owner.appendChild(root);\n return root;\n};\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG,oBAAoB;AAE7C,MAAMC,WAAW,GAAGA,CAAA,KAA+B;EACjD,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa;EACrC,OAAOF,MAAM,YAAYG,OAAO,GAAKH,MAAM,CAACI,OAAO,CAAC,SAAS,CAAC,IAA2BC,SAAS,GAAIA,SAAS;AACjH,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,KAA0B,IAAkB;EAC3E,MAAMC,KAAK,GAAGD,KAAK,IAAIR,WAAW,CAAC,CAAC,IAAIE,QAAQ,CAACQ,aAAa,CAAc,SAAS,CAAC,IAAIR,QAAQ,CAACS,IAAI;EACvG,MAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,YAAYC,WAAW,IAAID,KAAK,CAACE,YAAY,CAACpB,gBAAgB,CAAC,CAAC;EACjI,IAAIa,QAAQ,YAAYM,WAAW,EAAE,OAAON,QAAQ;EAEpD,MAAMQ,IAAI,GAAGlB,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;EAC1CD,IAAI,CAACE,YAAY,CAACvB,gBAAgB,EAAE,EAAE,CAAC;EACvCqB,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,eAAe,CAAC;EACnC,IAAIf,KAAK,KAAKP,QAAQ,CAACS,IAAI,EAAES,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;EACzDf,KAAK,CAACgB,WAAW,CAACL,IAAI,CAAC;EACvB,OAAOA,IAAI;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["PORTAL_ATTRIBUTE","activeScope","active","document","activeElement","Element","closest","undefined","getK2bPortalRoot","scope","owner","querySelector","body","existing","Array","from","children","find","child","HTMLElement","hasAttribute","root","createElement","setAttribute","classList","add","contains","appendChild"],"sources":["internal/portal.ts"],"sourcesContent":["const PORTAL_ATTRIBUTE = \"data-k2b-ui-portal\";\n\nconst activeScope = (): HTMLElement | undefined => {\n const active = document.activeElement;\n return active instanceof Element ? ((active.closest(\".k2b-ui\") as HTMLElement | null) ?? undefined) : undefined;\n};\n\nexport const getK2bPortalRoot = (scope?: HTMLElement | null): HTMLElement => {\n const owner = scope ?? activeScope() ?? document.querySelector<HTMLElement>(\".k2b-ui\") ?? document.body;\n const existing = Array.from(owner.children).find((child) => child instanceof HTMLElement && child.hasAttribute(PORTAL_ATTRIBUTE));\n if (existing instanceof HTMLElement) return existing;\n\n const root = document.createElement(\"div\");\n root.setAttribute(PORTAL_ATTRIBUTE, \"\");\n root.classList.add(\"k2b-ui-portal\");\n if (owner === document.body && !owner.classList.contains(\"k2b-ui\")) root.classList.add(\"k2b-ui\");\n owner.appendChild(root);\n return root;\n};\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG,oBAAoB;AAE7C,MAAMC,WAAW,GAAGA,CAAA,KAA+B;EACjD,MAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa;EACrC,OAAOF,MAAM,YAAYG,OAAO,GAAKH,MAAM,CAACI,OAAO,CAAC,SAAS,CAAC,IAA2BC,SAAS,GAAIA,SAAS;AACjH,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAIC,KAA0B,IAAkB;EAC3E,MAAMC,KAAK,GAAGD,KAAK,IAAIR,WAAW,CAAC,CAAC,IAAIE,QAAQ,CAACQ,aAAa,CAAc,SAAS,CAAC,IAAIR,QAAQ,CAACS,IAAI;EACvG,MAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAACL,KAAK,CAACM,QAAQ,CAAC,CAACC,IAAI,CAAEC,KAAK,IAAKA,KAAK,YAAYC,WAAW,IAAID,KAAK,CAACE,YAAY,CAACpB,gBAAgB,CAAC,CAAC;EACjI,IAAIa,QAAQ,YAAYM,WAAW,EAAE,OAAON,QAAQ;EAEpD,MAAMQ,IAAI,GAAGlB,QAAQ,CAACmB,aAAa,CAAC,KAAK,CAAC;EAC1CD,IAAI,CAACE,YAAY,CAACvB,gBAAgB,EAAE,EAAE,CAAC;EACvCqB,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,eAAe,CAAC;EACnC,IAAIf,KAAK,KAAKP,QAAQ,CAACS,IAAI,IAAI,CAACF,KAAK,CAACc,SAAS,CAACE,QAAQ,CAAC,QAAQ,CAAC,EAAEL,IAAI,CAACG,SAAS,CAACC,GAAG,CAAC,QAAQ,CAAC;EAChGf,KAAK,CAACiB,WAAW,CAACN,IAAI,CAAC;EACvB,OAAOA,IAAI;AACb,CAAC","ignoreList":[]}
@@ -170,6 +170,78 @@ const FormatRelativeTime = props => {
170
170
  })()
171
171
  });
172
172
  };
173
+
174
+ // Encode calendar dates as UTC day ordinals, not elapsed local-midnight time:
175
+ // a calendar day remains one day across 23-hour and 25-hour DST transitions.
176
+ const calendarDay = value => {
177
+ if (!value || !/^\d{4}-\d{2}-\d{2}$/.test(value) || value.startsWith("0000")) return null;
178
+ const instant = new Date(`${value}T00:00:00Z`);
179
+ if (!Number.isFinite(instant.getTime()) || instant.toISOString().slice(0, 10) !== value) return null;
180
+ return instant.getTime() / 86_400_000;
181
+ };
182
+ const FormatRelativeDate = props => {
183
+ const [own, rest] = splitProps(props, ["value", "locale", "base", "timeZone", "fallback"]);
184
+ const locale = useLocale();
185
+ const relative = () => {
186
+ const targetDay = calendarDay(own.value);
187
+ const zone = own.timeZone ?? "UTC";
188
+ if (targetDay === null || !dates.isValidTimeZone(zone)) return null;
189
+ const base = own.base ?? new Date();
190
+ let baseDay;
191
+ if (typeof base === "string" && /^\d{4}-\d{2}-\d{2}$/.test(base)) {
192
+ baseDay = calendarDay(base);
193
+ } else {
194
+ // Offsetless timestamps depend on the host timezone and cannot hydrate reliably.
195
+ if (typeof base === "string" && !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/.test(base)) return null;
196
+ if (typeof base === "string" && calendarDay(base.slice(0, 10)) === null) return null;
197
+ const instant = toDate(base);
198
+ if (!instant) return null;
199
+ const parts = new Intl.DateTimeFormat("en-US", {
200
+ calendar: "gregory",
201
+ numberingSystem: "latn",
202
+ timeZone: zone,
203
+ year: "numeric",
204
+ month: "2-digit",
205
+ day: "2-digit",
206
+ era: "short"
207
+ }).formatToParts(instant);
208
+ const part = type => parts.find(item => item.type === type)?.value;
209
+ if (part("era") !== "AD") return null;
210
+ baseDay = calendarDay(`${part("year")?.padStart(4, "0")}-${part("month")}-${part("day")}`);
211
+ }
212
+ if (baseDay === null) return null;
213
+ return {
214
+ label: new Intl.RelativeTimeFormat(own.locale ?? locale(), {
215
+ numeric: "auto"
216
+ }).format(targetDay - baseDay, "day")
217
+ };
218
+ };
219
+ return _$createComponent(Show, {
220
+ get when() {
221
+ return relative();
222
+ },
223
+ get fallback() {
224
+ return (() => {
225
+ var _el$9 = _$getNextElement(_tmpl$);
226
+ _$spread(_el$9, rest, false, true);
227
+ _$insert(_el$9, () => own.fallback ?? FALLBACK);
228
+ _$runHydrationEvents();
229
+ return _el$9;
230
+ })();
231
+ },
232
+ children: value => (() => {
233
+ var _el$0 = _$getNextElement(_tmpl$2);
234
+ _$spread(_el$0, _$mergeProps(rest, {
235
+ get datetime() {
236
+ return own.value ?? undefined;
237
+ }
238
+ }), false, true);
239
+ _$insert(_el$0, () => value().label);
240
+ _$runHydrationEvents();
241
+ return _el$0;
242
+ })()
243
+ });
244
+ };
173
245
  const FormatDuration = props => {
174
246
  const [own, rest] = splitProps(props, ["from", "to", "locale", "fallback"]);
175
247
  const locale = useLocale();
@@ -187,25 +259,25 @@ const FormatDuration = props => {
187
259
  },
188
260
  get fallback() {
189
261
  return (() => {
190
- var _el$9 = _$getNextElement(_tmpl$);
191
- _$spread(_el$9, rest, false, true);
192
- _$insert(_el$9, () => own.fallback ?? FALLBACK);
262
+ var _el$1 = _$getNextElement(_tmpl$);
263
+ _$spread(_el$1, rest, false, true);
264
+ _$insert(_el$1, () => own.fallback ?? FALLBACK);
193
265
  _$runHydrationEvents();
194
- return _el$9;
266
+ return _el$1;
195
267
  })();
196
268
  },
197
269
  children: value => (() => {
198
- var _el$0 = _$getNextElement(_tmpl$2);
199
- _$spread(_el$0, _$mergeProps(rest, {
270
+ var _el$10 = _$getNextElement(_tmpl$2);
271
+ _$spread(_el$10, _$mergeProps(rest, {
200
272
  get datetime() {
201
273
  return isoDuration(Math.abs(value().to.getTime() - value().from.getTime()));
202
274
  }
203
275
  }), false, true);
204
- _$insert(_el$0, () => dates.formatDuration(value().from, value().to, {
276
+ _$insert(_el$10, () => dates.formatDuration(value().from, value().to, {
205
277
  locale: own.locale ?? locale()
206
278
  }));
207
279
  _$runHydrationEvents();
208
- return _el$0;
280
+ return _el$10;
209
281
  })()
210
282
  });
211
283
  };
@@ -225,25 +297,25 @@ const FormatDurationMs = props => {
225
297
  },
226
298
  get fallback() {
227
299
  return (() => {
228
- var _el$1 = _$getNextElement(_tmpl$);
229
- _$spread(_el$1, rest, false, true);
230
- _$insert(_el$1, () => own.fallback ?? FALLBACK);
300
+ var _el$11 = _$getNextElement(_tmpl$);
301
+ _$spread(_el$11, rest, false, true);
302
+ _$insert(_el$11, () => own.fallback ?? FALLBACK);
231
303
  _$runHydrationEvents();
232
- return _el$1;
304
+ return _el$11;
233
305
  })();
234
306
  },
235
307
  children: duration => (() => {
236
- var _el$10 = _$getNextElement(_tmpl$2);
237
- _$spread(_el$10, _$mergeProps(rest, {
308
+ var _el$12 = _$getNextElement(_tmpl$2);
309
+ _$spread(_el$12, _$mergeProps(rest, {
238
310
  get datetime() {
239
311
  return isoDuration(duration().ms);
240
312
  }
241
313
  }), false, true);
242
- _$insert(_el$10, () => text.pprintDurationMs(duration().ms, {
314
+ _$insert(_el$12, () => text.pprintDurationMs(duration().ms, {
243
315
  locale: own.locale ?? locale()
244
316
  }));
245
317
  _$runHydrationEvents();
246
- return _el$10;
318
+ return _el$12;
247
319
  })()
248
320
  });
249
321
  };
@@ -267,6 +339,7 @@ export const Format = {
267
339
  Time: FormatTime,
268
340
  DateTime: FormatDateTime,
269
341
  RelativeTime: FormatRelativeTime,
342
+ RelativeDate: FormatRelativeDate,
270
343
  Duration: FormatDuration,
271
344
  DurationMs: FormatDurationMs
272
345
  };
@@ -1 +1 @@
1
- {"version":3,"names":["dates","text","Show","splitProps","useLocale","FALLBACK","toDate","value","date","Date","Number","isNaN","getTime","isoDuration","ms","totalMilliseconds","Math","round","totalSeconds","floor","milliseconds","days","hours","minutes","seconds","fractionalSeconds","String","padStart","replace","time","FormatNumber","props","own","rest","locale","_el$","_$getNextElement","_tmpl$","_$spread","_$insert","pprintNumber","compact","decimals","fallback","_$runHydrationEvents","FormatPercent","_el$2","pprintPercent","clamp","FormatCurrency","_el$3","pprintCurrency","currency","FormatBytes","_el$4","_c$","_$memo","isFinite","pprintBytes","mode","temporalComponent","format","_$createComponent","when","_el$5","children","_el$6","_tmpl$2","_$mergeProps","datetime","toISOString","timeZone","FormatDate","context","formatDate","FormatTime","formatTime","FormatDateTime","formatDateTime","FormatRelativeTime","_el$7","_el$8","formatTimeSpan","base","FormatDuration","range","from","to","_el$9","_el$0","abs","formatDuration","FormatDurationMs","valid","_el$1","duration","_el$10","pprintDurationMs","Format","Percent","Currency","Bytes","Time","DateTime","RelativeTime","Duration","DurationMs"],"sources":["intl/Format.tsx"],"sourcesContent":["import { type ByteMode, dates, text } from \"@k2b/stdlib\";\nimport { type JSX, Show, splitProps } from \"solid-js\";\nimport { useLocale } from \"./locale\";\n\nconst FALLBACK = \"—\";\n\ntype SpanProps = JSX.HTMLAttributes<HTMLSpanElement>;\n// Temporal components render `<time>` for valid values and a `<span>` fallback\n// otherwise, so their native attributes are typed against the shared element\n// base; `ref` is excluded because its value form is element-specific. The\n// `datetime` attribute is owned by the component itself.\ntype TimeElementProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"ref\">;\n\ntype LocaleProp = {\n /** Explicit locale override; defaults to the inherited render locale. */\n locale?: string;\n};\n\ntype FallbackProp = {\n /** Text rendered for null or invalid input. Defaults to `\"—\"`. */\n fallback?: string;\n};\n\nexport type FormatNumberProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** Use deterministic compact suffixes (`k`, `M`, `B`, `T`). */\n compact?: boolean;\n /** Fixed fraction digits. */\n decimals?: number;\n };\n\nexport type FormatPercentProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n /** Ratio input: `0.12` renders as `12%`. */\n value: number | null | undefined;\n /** Fixed fraction digits. Defaults to 0. */\n decimals?: number;\n /** Clamp the ratio to 0..1 before formatting. */\n clamp?: boolean;\n };\n\nexport type FormatCurrencyProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** ISO 4217 currency code, e.g. `\"EUR\"` or `\"USD\"`. */\n currency: string;\n /** Fixed fraction digits. Defaults to the currency's standard digits. */\n decimals?: number;\n };\n\nexport type FormatBytesProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** `\"iec\"` (default, 1024-base) or `\"si\"` (1000-base). */\n mode?: ByteMode;\n };\n\nexport type FormatDateProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** IANA timezone. Defaults to `\"UTC\"` so server and browser text agree. */\n timeZone?: string;\n };\n\nexport type FormatTimeProps = FormatDateProps;\nexport type FormatDateTimeProps = FormatDateProps;\n\nexport type FormatRelativeTimeProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** Deterministic base timestamp; defaults to now. */\n base?: Date | string;\n /** IANA timezone used to select calendar-relative labels. Defaults to `\"UTC\"`. */\n timeZone?: string;\n };\n\nexport type FormatDurationProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n };\n\nexport type FormatDurationMsProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n /** Duration in milliseconds. */\n value: number | null | undefined;\n };\n\nconst toDate = (value: Date | string | null | undefined): Date | null => {\n if (value == null) return null;\n const date = typeof value === \"string\" ? new Date(value) : value;\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\n/** ISO 8601 duration for the `<time datetime>` attribute, e.g. `\"PT2H30M\"`. */\nconst isoDuration = (ms: number): string => {\n const totalMilliseconds = Math.round(ms);\n if (totalMilliseconds <= 0) return \"PT0S\";\n const totalSeconds = Math.floor(totalMilliseconds / 1000);\n const milliseconds = totalMilliseconds % 1000;\n const days = Math.floor(totalSeconds / 86_400);\n const hours = Math.floor((totalSeconds % 86_400) / 3_600);\n const minutes = Math.floor((totalSeconds % 3_600) / 60);\n const seconds = totalSeconds % 60;\n const fractionalSeconds = milliseconds ? `${seconds}.${String(milliseconds).padStart(3, \"0\").replace(/0+$/, \"\")}S` : \"\";\n const time = `${hours ? `${hours}H` : \"\"}${minutes ? `${minutes}M` : \"\"}${fractionalSeconds || (seconds ? `${seconds}S` : \"\")}`;\n return `P${days ? `${days}D` : \"\"}${time ? `T${time}` : \"\"}`;\n};\n\nconst FormatNumber = (props: FormatNumberProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"compact\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintNumber(own.value, {\n locale: own.locale ?? locale(),\n compact: own.compact,\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatPercent = (props: FormatPercentProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"decimals\", \"clamp\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintPercent(own.value, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n clamp: own.clamp,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatCurrency = (props: FormatCurrencyProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"currency\", \"locale\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintCurrency(own.value, own.currency, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatBytes = (props: FormatBytesProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"mode\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {typeof own.value === \"number\" && Number.isFinite(own.value)\n ? text.pprintBytes(own.value, { locale: own.locale ?? locale(), mode: own.mode })\n : (own.fallback ?? FALLBACK)}\n </span>\n );\n};\n\ntype TemporalFormatter = (date: Date, context: { locale: string; timeZone: string }) => string;\n\nconst temporalComponent =\n (format: TemporalFormatter) =>\n (props: FormatDateProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {format(date(), { locale: own.locale ?? locale(), timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n };\n\nconst FormatDate = temporalComponent((date, context) => dates.formatDate(date, context));\nconst FormatTime = temporalComponent((date, context) => dates.formatTime(date, context));\nconst FormatDateTime = temporalComponent((date, context) => dates.formatDateTime(date, context));\n\nconst FormatRelativeTime = (props: FormatRelativeTimeProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"base\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {dates.formatTimeSpan(date(), { locale: own.locale ?? locale(), base: own.base, timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDuration = (props: FormatDurationProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"from\", \"to\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n const range = () => {\n const from = toDate(own.from);\n const to = toDate(own.to);\n return from && to ? { from, to } : null;\n };\n return (\n <Show when={range()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(value) => (\n <time {...rest} datetime={isoDuration(Math.abs(value().to.getTime() - value().from.getTime()))}>\n {dates.formatDuration(value().from, value().to, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDurationMs = (props: FormatDurationMsProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n // Wrapped in an object because a valid duration of 0ms is falsy.\n const valid = (): { ms: number } | null => {\n const value = own.value;\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? { ms: value } : null;\n };\n return (\n <Show when={valid()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(duration) => (\n <time {...rest} datetime={isoDuration(duration().ms)}>\n {text.pprintDurationMs(duration().ms, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\n/**\n * Unstyled semantic formatter components backed by `@k2b/stdlib`.\n *\n * Numeric components render a plain `<span>`; date/time components render\n * `<time>` with a canonical `datetime` attribute. All components inherit the\n * render locale (see `LocaleProvider` / `useLocale`) and accept an explicit\n * `locale` override. Date, Time, and DateTime format in UTC unless an\n * explicit `timeZone` is given, so server and browser output never diverge\n * with the runtime timezone.\n */\nexport const Format = {\n Number: FormatNumber,\n Percent: FormatPercent,\n Currency: FormatCurrency,\n Bytes: FormatBytes,\n Date: FormatDate,\n Time: FormatTime,\n DateTime: FormatDateTime,\n RelativeTime: FormatRelativeTime,\n Duration: FormatDuration,\n DurationMs: FormatDurationMs,\n} as const;\n"],"mappings":";;;;;;;;;;AAAA,SAAwBA,KAAK,EAAEC,IAAI,QAAQ,aAAa;AACxD,SAAmBC,IAAI,EAAEC,UAAU,QAAQ,UAAU;AACrD,SAASC,SAAS,QAAQ,UAAU;AAEpC,MAAMC,QAAQ,GAAG,GAAG;;AAGpB;AACA;AACA;AACA;;AAuFA,MAAMC,MAAM,GAAIC,KAAuC,IAAkB;EACvE,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9B,MAAMC,IAAI,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAG,IAAIE,IAAI,CAACF,KAAK,CAAC,GAAGA,KAAK;EAChE,OAAOG,MAAM,CAACC,KAAK,CAACH,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAGJ,IAAI;AACnD,CAAC;;AAED;AACA,MAAMK,WAAW,GAAIC,EAAU,IAAa;EAC1C,MAAMC,iBAAiB,GAAGC,IAAI,CAACC,KAAK,CAACH,EAAE,CAAC;EACxC,IAAIC,iBAAiB,IAAI,CAAC,EAAE,OAAO,MAAM;EACzC,MAAMG,YAAY,GAAGF,IAAI,CAACG,KAAK,CAACJ,iBAAiB,GAAG,IAAI,CAAC;EACzD,MAAMK,YAAY,GAAGL,iBAAiB,GAAG,IAAI;EAC7C,MAAMM,IAAI,GAAGL,IAAI,CAACG,KAAK,CAACD,YAAY,GAAG,MAAM,CAAC;EAC9C,MAAMI,KAAK,GAAGN,IAAI,CAACG,KAAK,CAAED,YAAY,GAAG,MAAM,GAAI,KAAK,CAAC;EACzD,MAAMK,OAAO,GAAGP,IAAI,CAACG,KAAK,CAAED,YAAY,GAAG,KAAK,GAAI,EAAE,CAAC;EACvD,MAAMM,OAAO,GAAGN,YAAY,GAAG,EAAE;EACjC,MAAMO,iBAAiB,GAAGL,YAAY,GAAG,GAAGI,OAAO,IAAIE,MAAM,CAACN,YAAY,CAAC,CAACO,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE;EACvH,MAAMC,IAAI,GAAG,GAAGP,KAAK,GAAG,GAAGA,KAAK,GAAG,GAAG,EAAE,GAAGC,OAAO,GAAG,GAAGA,OAAO,GAAG,GAAG,EAAE,GAAGE,iBAAiB,KAAKD,OAAO,GAAG,GAAGA,OAAO,GAAG,GAAG,EAAE,CAAC,EAAE;EAC/H,OAAO,IAAIH,IAAI,GAAG,GAAGA,IAAI,GAAG,GAAG,EAAE,GAAGQ,IAAI,GAAG,IAAIA,IAAI,EAAE,GAAG,EAAE,EAAE;AAC9D,CAAC;AAED,MAAMC,YAAY,GAAIC,KAAwB,IAAkB;EAC9D,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;EAC7F,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B;IAAA,IAAA+B,IAAA,GAAAC,gBAAA,CAAAC,MAAA;IAAAC,QAAA,CAAAH,IAAA,EACYF,IAAI;IAAAM,QAAA,CAAAJ,IAAA,QACXlC,IAAI,CAACuC,YAAY,CAACR,GAAG,CAACzB,KAAK,EAAE;MAC5B2B,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC,CAAC;MAC9BO,OAAO,EAAET,GAAG,CAACS,OAAO;MACpBC,QAAQ,EAAEV,GAAG,CAACU,QAAQ;MACtBC,QAAQ,EAAEX,GAAG,CAACW;IAChB,CAAC,CAAC;IAAAC,oBAAA;IAAA,OAAAT,IAAA;EAAA;AAGR,CAAC;AAED,MAAMU,aAAa,GAAId,KAAyB,IAAkB;EAChE,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;EAC3F,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B;IAAA,IAAA0C,KAAA,GAAAV,gBAAA,CAAAC,MAAA;IAAAC,QAAA,CAAAQ,KAAA,EACYb,IAAI;IAAAM,QAAA,CAAAO,KAAA,QACX7C,IAAI,CAAC8C,aAAa,CAACf,GAAG,CAACzB,KAAK,EAAE;MAC7B2B,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC,CAAC;MAC9BQ,QAAQ,EAAEV,GAAG,CAACU,QAAQ;MACtBM,KAAK,EAAEhB,GAAG,CAACgB,KAAK;MAChBL,QAAQ,EAAEX,GAAG,CAACW;IAChB,CAAC,CAAC;IAAAC,oBAAA;IAAA,OAAAE,KAAA;EAAA;AAGR,CAAC;AAED,MAAMG,cAAc,GAAIlB,KAA0B,IAAkB;EAClE,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;EAC9F,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B;IAAA,IAAA8C,KAAA,GAAAd,gBAAA,CAAAC,MAAA;IAAAC,QAAA,CAAAY,KAAA,EACYjB,IAAI;IAAAM,QAAA,CAAAW,KAAA,QACXjD,IAAI,CAACkD,cAAc,CAACnB,GAAG,CAACzB,KAAK,EAAEyB,GAAG,CAACoB,QAAQ,EAAE;MAC5ClB,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC,CAAC;MAC9BQ,QAAQ,EAAEV,GAAG,CAACU,QAAQ;MACtBC,QAAQ,EAAEX,GAAG,CAACW;IAChB,CAAC,CAAC;IAAAC,oBAAA;IAAA,OAAAM,KAAA;EAAA;AAGR,CAAC;AAED,MAAMG,WAAW,GAAItB,KAAuB,IAAkB;EAC5D,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;EAC9E,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B;IAAA,IAAAkD,KAAA,GAAAlB,gBAAA,CAAAC,MAAA;IAAAC,QAAA,CAAAgB,KAAA,EACYrB,IAAI;IAAAM,QAAA,CAAAe,KAAA;MAAA,IAAAC,GAAA,GAAAC,MAAA,UACX,OAAOxB,GAAG,CAACzB,KAAK,KAAK,QAAQ,IAAIG,MAAM,CAAC+C,QAAQ,CAACzB,GAAG,CAACzB,KAAK,CAAC;MAAA,aAA3DgD,GAAA,KACGtD,IAAI,CAACyD,WAAW,CAAC1B,GAAG,CAACzB,KAAK,EAAE;QAAE2B,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC,CAAC;QAAEyB,IAAI,EAAE3B,GAAG,CAAC2B;MAAK,CAAC,CAAC,GAC9E3B,GAAG,CAACW,QAAQ,IAAItC,QAAS;IAAA;IAAAuC,oBAAA;IAAA,OAAAU,KAAA;EAAA;AAGpC,CAAC;AAID,MAAMM,iBAAiB,GACpBC,MAAyB,IACzB9B,KAAsB,IAAkB;EACvC,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;EAClF,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B,OAAA0D,iBAAA,CACG5D,IAAI;IAAA,IAAC6D,IAAIA,CAAA;MAAA,OAAEzD,MAAM,CAAC0B,GAAG,CAACzB,KAAK,CAAC;IAAA;IAAA,IAAEoC,QAAQA,CAAA;MAAA;QAAA,IAAAqB,KAAA,GAAA5B,gBAAA,CAAAC,MAAA;QAAAC,QAAA,CAAA0B,KAAA,EAAY/B,IAAI;QAAAM,QAAA,CAAAyB,KAAA,QAAGhC,GAAG,CAACW,QAAQ,IAAItC,QAAQ;QAAAuC,oBAAA;QAAA,OAAAoB,KAAA;MAAA;IAAA;IAAAC,QAAA,EAC9EzD,IAAI;MAAA,IAAA0D,KAAA,GAAA9B,gBAAA,CAAA+B,OAAA;MAAA7B,QAAA,CAAA4B,KAAA,EAAAE,YAAA,CACMnC,IAAI;QAAA,IAAEoC,QAAQA,CAAA;UAAA,OAAE7D,IAAI,CAAC,CAAC,CAAC8D,WAAW,CAAC,CAAC;QAAA;MAAA;MAAA/B,QAAA,CAAA2B,KAAA,QAC3CL,MAAM,CAACrD,IAAI,CAAC,CAAC,EAAE;QAAE0B,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC,CAAC;QAAEqC,QAAQ,EAAEvC,GAAG,CAACuC,QAAQ,IAAI;MAAM,CAAC,CAAC;MAAA3B,oBAAA;MAAA,OAAAsB,KAAA;IAAA;EAEvF;AAGP,CAAC;AAEH,MAAMM,UAAU,GAAGZ,iBAAiB,CAAC,CAACpD,IAAI,EAAEiE,OAAO,KAAKzE,KAAK,CAAC0E,UAAU,CAAClE,IAAI,EAAEiE,OAAO,CAAC,CAAC;AACxF,MAAME,UAAU,GAAGf,iBAAiB,CAAC,CAACpD,IAAI,EAAEiE,OAAO,KAAKzE,KAAK,CAAC4E,UAAU,CAACpE,IAAI,EAAEiE,OAAO,CAAC,CAAC;AACxF,MAAMI,cAAc,GAAGjB,iBAAiB,CAAC,CAACpD,IAAI,EAAEiE,OAAO,KAAKzE,KAAK,CAAC8E,cAAc,CAACtE,IAAI,EAAEiE,OAAO,CAAC,CAAC;AAEhG,MAAMM,kBAAkB,GAAIhD,KAA8B,IAAkB;EAC1E,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;EAC1F,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B,OAAA0D,iBAAA,CACG5D,IAAI;IAAA,IAAC6D,IAAIA,CAAA;MAAA,OAAEzD,MAAM,CAAC0B,GAAG,CAACzB,KAAK,CAAC;IAAA;IAAA,IAAEoC,QAAQA,CAAA;MAAA;QAAA,IAAAqC,KAAA,GAAA5C,gBAAA,CAAAC,MAAA;QAAAC,QAAA,CAAA0C,KAAA,EAAY/C,IAAI;QAAAM,QAAA,CAAAyC,KAAA,QAAGhD,GAAG,CAACW,QAAQ,IAAItC,QAAQ;QAAAuC,oBAAA;QAAA,OAAAoC,KAAA;MAAA;IAAA;IAAAf,QAAA,EAC9EzD,IAAI;MAAA,IAAAyE,KAAA,GAAA7C,gBAAA,CAAA+B,OAAA;MAAA7B,QAAA,CAAA2C,KAAA,EAAAb,YAAA,CACMnC,IAAI;QAAA,IAAEoC,QAAQA,CAAA;UAAA,OAAE7D,IAAI,CAAC,CAAC,CAAC8D,WAAW,CAAC,CAAC;QAAA;MAAA;MAAA/B,QAAA,CAAA0C,KAAA,QAC3CjF,KAAK,CAACkF,cAAc,CAAC1E,IAAI,CAAC,CAAC,EAAE;QAAE0B,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC,CAAC;QAAEiD,IAAI,EAAEnD,GAAG,CAACmD,IAAI;QAAEZ,QAAQ,EAAEvC,GAAG,CAACuC,QAAQ,IAAI;MAAM,CAAC,CAAC;MAAA3B,oBAAA;MAAA,OAAAqC,KAAA;IAAA;EAErH;AAGP,CAAC;AAED,MAAMG,cAAc,GAAIrD,KAA0B,IAAkB;EAClE,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;EAC3E,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B,MAAMiF,KAAK,GAAGA,CAAA,KAAM;IAClB,MAAMC,IAAI,GAAGhF,MAAM,CAAC0B,GAAG,CAACsD,IAAI,CAAC;IAC7B,MAAMC,EAAE,GAAGjF,MAAM,CAAC0B,GAAG,CAACuD,EAAE,CAAC;IACzB,OAAOD,IAAI,IAAIC,EAAE,GAAG;MAAED,IAAI;MAAEC;IAAG,CAAC,GAAG,IAAI;EACzC,CAAC;EACD,OAAAzB,iBAAA,CACG5D,IAAI;IAAA,IAAC6D,IAAIA,CAAA;MAAA,OAAEsB,KAAK,CAAC,CAAC;IAAA;IAAA,IAAE1C,QAAQA,CAAA;MAAA;QAAA,IAAA6C,KAAA,GAAApD,gBAAA,CAAAC,MAAA;QAAAC,QAAA,CAAAkD,KAAA,EAAYvD,IAAI;QAAAM,QAAA,CAAAiD,KAAA,QAAGxD,GAAG,CAACW,QAAQ,IAAItC,QAAQ;QAAAuC,oBAAA;QAAA,OAAA4C,KAAA;MAAA;IAAA;IAAAvB,QAAA,EACpE1D,KAAK;MAAA,IAAAkF,KAAA,GAAArD,gBAAA,CAAA+B,OAAA;MAAA7B,QAAA,CAAAmD,KAAA,EAAArB,YAAA,CACKnC,IAAI;QAAA,IAAEoC,QAAQA,CAAA;UAAA,OAAExD,WAAW,CAACG,IAAI,CAAC0E,GAAG,CAACnF,KAAK,CAAC,CAAC,CAACgF,EAAE,CAAC3E,OAAO,CAAC,CAAC,GAAGL,KAAK,CAAC,CAAC,CAAC+E,IAAI,CAAC1E,OAAO,CAAC,CAAC,CAAC,CAAC;QAAA;MAAA;MAAA2B,QAAA,CAAAkD,KAAA,QAC3FzF,KAAK,CAAC2F,cAAc,CAACpF,KAAK,CAAC,CAAC,CAAC+E,IAAI,EAAE/E,KAAK,CAAC,CAAC,CAACgF,EAAE,EAAE;QAAErD,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC;MAAE,CAAC,CAAC;MAAAU,oBAAA;MAAA,OAAA6C,KAAA;IAAA;EAEtF;AAGP,CAAC;AAED,MAAMG,gBAAgB,GAAI7D,KAA4B,IAAkB;EACtE,MAAM,CAACC,GAAG,EAAEC,IAAI,CAAC,GAAG9B,UAAU,CAAC4B,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;EACtE,MAAMG,MAAM,GAAG9B,SAAS,CAAC,CAAC;EAC1B;EACA,MAAMyF,KAAK,GAAGA,CAAA,KAA6B;IACzC,MAAMtF,KAAK,GAAGyB,GAAG,CAACzB,KAAK;IACvB,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIG,MAAM,CAAC+C,QAAQ,CAAClD,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,GAAG;MAAEO,EAAE,EAAEP;IAAM,CAAC,GAAG,IAAI;EACjG,CAAC;EACD,OAAAuD,iBAAA,CACG5D,IAAI;IAAA,IAAC6D,IAAIA,CAAA;MAAA,OAAE8B,KAAK,CAAC,CAAC;IAAA;IAAA,IAAElD,QAAQA,CAAA;MAAA;QAAA,IAAAmD,KAAA,GAAA1D,gBAAA,CAAAC,MAAA;QAAAC,QAAA,CAAAwD,KAAA,EAAY7D,IAAI;QAAAM,QAAA,CAAAuD,KAAA,QAAG9D,GAAG,CAACW,QAAQ,IAAItC,QAAQ;QAAAuC,oBAAA;QAAA,OAAAkD,KAAA;MAAA;IAAA;IAAA7B,QAAA,EACpE8B,QAAQ;MAAA,IAAAC,MAAA,GAAA5D,gBAAA,CAAA+B,OAAA;MAAA7B,QAAA,CAAA0D,MAAA,EAAA5B,YAAA,CACEnC,IAAI;QAAA,IAAEoC,QAAQA,CAAA;UAAA,OAAExD,WAAW,CAACkF,QAAQ,CAAC,CAAC,CAACjF,EAAE,CAAC;QAAA;MAAA;MAAAyB,QAAA,CAAAyD,MAAA,QACjD/F,IAAI,CAACgG,gBAAgB,CAACF,QAAQ,CAAC,CAAC,CAACjF,EAAE,EAAE;QAAEoB,MAAM,EAAEF,GAAG,CAACE,MAAM,IAAIA,MAAM,CAAC;MAAE,CAAC,CAAC;MAAAU,oBAAA;MAAA,OAAAoD,MAAA;IAAA;EAE5E;AAGP,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,MAAM,GAAG;EACpBxF,MAAM,EAAEoB,YAAY;EACpBqE,OAAO,EAAEtD,aAAa;EACtBuD,QAAQ,EAAEnD,cAAc;EACxBoD,KAAK,EAAEhD,WAAW;EAClB5C,IAAI,EAAE+D,UAAU;EAChB8B,IAAI,EAAE3B,UAAU;EAChB4B,QAAQ,EAAE1B,cAAc;EACxB2B,YAAY,EAAEzB,kBAAkB;EAChC0B,QAAQ,EAAErB,cAAc;EACxBsB,UAAU,EAAEd;AACd,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["dates","text","Show","splitProps","useLocale","FALLBACK","toDate","value","date","Date","Number","isNaN","getTime","isoDuration","ms","totalMilliseconds","Math","round","totalSeconds","floor","milliseconds","days","hours","minutes","seconds","fractionalSeconds","String","padStart","replace","time","FormatNumber","props","own","rest","locale","_el$","_$getNextElement","_tmpl$","_$spread","_$insert","pprintNumber","compact","decimals","fallback","_$runHydrationEvents","FormatPercent","_el$2","pprintPercent","clamp","FormatCurrency","_el$3","pprintCurrency","currency","FormatBytes","_el$4","_c$","_$memo","isFinite","pprintBytes","mode","temporalComponent","format","_$createComponent","when","_el$5","children","_el$6","_tmpl$2","_$mergeProps","datetime","toISOString","timeZone","FormatDate","context","formatDate","FormatTime","formatTime","FormatDateTime","formatDateTime","FormatRelativeTime","_el$7","_el$8","formatTimeSpan","base","calendarDay","test","startsWith","instant","slice","FormatRelativeDate","relative","targetDay","zone","isValidTimeZone","baseDay","parts","Intl","DateTimeFormat","calendar","numberingSystem","year","month","day","era","formatToParts","part","type","find","item","label","RelativeTimeFormat","numeric","_el$9","_el$0","undefined","FormatDuration","range","from","to","_el$1","_el$10","abs","formatDuration","FormatDurationMs","valid","_el$11","duration","_el$12","pprintDurationMs","Format","Percent","Currency","Bytes","Time","DateTime","RelativeTime","RelativeDate","Duration","DurationMs"],"sources":["intl/Format.tsx"],"sourcesContent":["import { type ByteMode, dates, text } from \"@k2b/stdlib\";\nimport { type JSX, Show, splitProps } from \"solid-js\";\nimport { useLocale } from \"./locale\";\n\nconst FALLBACK = \"—\";\n\ntype SpanProps = JSX.HTMLAttributes<HTMLSpanElement>;\n// Temporal components render `<time>` for valid values and a `<span>` fallback\n// otherwise, so their native attributes are typed against the shared element\n// base; `ref` is excluded because its value form is element-specific. The\n// `datetime` attribute is owned by the component itself.\ntype TimeElementProps = Omit<JSX.HTMLAttributes<HTMLElement>, \"ref\">;\n\ntype LocaleProp = {\n /** Explicit locale override; defaults to the inherited render locale. */\n locale?: string;\n};\n\ntype FallbackProp = {\n /** Text rendered for null or invalid input. Defaults to `\"—\"`. */\n fallback?: string;\n};\n\nexport type FormatNumberProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** Use deterministic compact suffixes (`k`, `M`, `B`, `T`). */\n compact?: boolean;\n /** Fixed fraction digits. */\n decimals?: number;\n };\n\nexport type FormatPercentProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n /** Ratio input: `0.12` renders as `12%`. */\n value: number | null | undefined;\n /** Fixed fraction digits. Defaults to 0. */\n decimals?: number;\n /** Clamp the ratio to 0..1 before formatting. */\n clamp?: boolean;\n };\n\nexport type FormatCurrencyProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** ISO 4217 currency code, e.g. `\"EUR\"` or `\"USD\"`. */\n currency: string;\n /** Fixed fraction digits. Defaults to the currency's standard digits. */\n decimals?: number;\n };\n\nexport type FormatBytesProps = SpanProps &\n LocaleProp &\n FallbackProp & {\n value: number | null | undefined;\n /** `\"iec\"` (default, 1024-base) or `\"si\"` (1000-base). */\n mode?: ByteMode;\n };\n\nexport type FormatDateProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** IANA timezone. Defaults to `\"UTC\"` so server and browser text agree. */\n timeZone?: string;\n };\n\nexport type FormatTimeProps = FormatDateProps;\nexport type FormatDateTimeProps = FormatDateProps;\n\nexport type FormatRelativeTimeProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n value: Date | string | null | undefined;\n /** Deterministic base timestamp; defaults to now. */\n base?: Date | string;\n /** IANA timezone used to select calendar-relative labels. Defaults to `\"UTC\"`. */\n timeZone?: string;\n };\n\nexport type FormatRelativeDateProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n /** A Gregorian calendar date in strict YYYY-MM-DD format, never timezone-shifted. */\n value: string | null | undefined;\n /** Calendar date, Date, or ISO timestamp with an explicit offset. Defaults to now. */\n base?: Date | string;\n /** Zone used to read the base instant as a calendar day. Defaults to UTC. */\n timeZone?: string;\n };\n\nexport type FormatDurationProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n };\n\nexport type FormatDurationMsProps = TimeElementProps &\n LocaleProp &\n FallbackProp & {\n /** Duration in milliseconds. */\n value: number | null | undefined;\n };\n\nconst toDate = (value: Date | string | null | undefined): Date | null => {\n if (value == null) return null;\n const date = typeof value === \"string\" ? new Date(value) : value;\n return Number.isNaN(date.getTime()) ? null : date;\n};\n\n/** ISO 8601 duration for the `<time datetime>` attribute, e.g. `\"PT2H30M\"`. */\nconst isoDuration = (ms: number): string => {\n const totalMilliseconds = Math.round(ms);\n if (totalMilliseconds <= 0) return \"PT0S\";\n const totalSeconds = Math.floor(totalMilliseconds / 1000);\n const milliseconds = totalMilliseconds % 1000;\n const days = Math.floor(totalSeconds / 86_400);\n const hours = Math.floor((totalSeconds % 86_400) / 3_600);\n const minutes = Math.floor((totalSeconds % 3_600) / 60);\n const seconds = totalSeconds % 60;\n const fractionalSeconds = milliseconds ? `${seconds}.${String(milliseconds).padStart(3, \"0\").replace(/0+$/, \"\")}S` : \"\";\n const time = `${hours ? `${hours}H` : \"\"}${minutes ? `${minutes}M` : \"\"}${fractionalSeconds || (seconds ? `${seconds}S` : \"\")}`;\n return `P${days ? `${days}D` : \"\"}${time ? `T${time}` : \"\"}`;\n};\n\nconst FormatNumber = (props: FormatNumberProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"compact\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintNumber(own.value, {\n locale: own.locale ?? locale(),\n compact: own.compact,\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatPercent = (props: FormatPercentProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"decimals\", \"clamp\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintPercent(own.value, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n clamp: own.clamp,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatCurrency = (props: FormatCurrencyProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"currency\", \"locale\", \"decimals\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {text.pprintCurrency(own.value, own.currency, {\n locale: own.locale ?? locale(),\n decimals: own.decimals,\n fallback: own.fallback,\n })}\n </span>\n );\n};\n\nconst FormatBytes = (props: FormatBytesProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"mode\", \"fallback\"]);\n const locale = useLocale();\n return (\n <span {...rest}>\n {typeof own.value === \"number\" && Number.isFinite(own.value)\n ? text.pprintBytes(own.value, { locale: own.locale ?? locale(), mode: own.mode })\n : (own.fallback ?? FALLBACK)}\n </span>\n );\n};\n\ntype TemporalFormatter = (date: Date, context: { locale: string; timeZone: string }) => string;\n\nconst temporalComponent =\n (format: TemporalFormatter) =>\n (props: FormatDateProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {format(date(), { locale: own.locale ?? locale(), timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n };\n\nconst FormatDate = temporalComponent((date, context) => dates.formatDate(date, context));\nconst FormatTime = temporalComponent((date, context) => dates.formatTime(date, context));\nconst FormatDateTime = temporalComponent((date, context) => dates.formatDateTime(date, context));\n\nconst FormatRelativeTime = (props: FormatRelativeTimeProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"base\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n return (\n <Show when={toDate(own.value)} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(date) => (\n <time {...rest} datetime={date().toISOString()}>\n {dates.formatTimeSpan(date(), { locale: own.locale ?? locale(), base: own.base, timeZone: own.timeZone ?? \"UTC\" })}\n </time>\n )}\n </Show>\n );\n};\n\n// Encode calendar dates as UTC day ordinals, not elapsed local-midnight time:\n// a calendar day remains one day across 23-hour and 25-hour DST transitions.\nconst calendarDay = (value: string | null | undefined): number | null => {\n if (!value || !/^\\d{4}-\\d{2}-\\d{2}$/.test(value) || value.startsWith(\"0000\")) return null;\n const instant = new Date(`${value}T00:00:00Z`);\n if (!Number.isFinite(instant.getTime()) || instant.toISOString().slice(0, 10) !== value) return null;\n return instant.getTime() / 86_400_000;\n};\n\nconst FormatRelativeDate = (props: FormatRelativeDateProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"base\", \"timeZone\", \"fallback\"]);\n const locale = useLocale();\n const relative = () => {\n const targetDay = calendarDay(own.value);\n const zone = own.timeZone ?? \"UTC\";\n if (targetDay === null || !dates.isValidTimeZone(zone)) return null;\n const base = own.base ?? new Date();\n let baseDay: number | null;\n if (typeof base === \"string\" && /^\\d{4}-\\d{2}-\\d{2}$/.test(base)) {\n baseDay = calendarDay(base);\n } else {\n // Offsetless timestamps depend on the host timezone and cannot hydrate reliably.\n if (typeof base === \"string\" && !/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?(?:Z|[+-]\\d{2}:\\d{2})$/.test(base)) return null;\n if (typeof base === \"string\" && calendarDay(base.slice(0, 10)) === null) return null;\n const instant = toDate(base);\n if (!instant) return null;\n const parts = new Intl.DateTimeFormat(\"en-US\", {\n calendar: \"gregory\",\n numberingSystem: \"latn\",\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n era: \"short\",\n }).formatToParts(instant);\n const part = (type: Intl.DateTimeFormatPartTypes) => parts.find((item) => item.type === type)?.value;\n if (part(\"era\") !== \"AD\") return null;\n baseDay = calendarDay(`${part(\"year\")?.padStart(4, \"0\")}-${part(\"month\")}-${part(\"day\")}`);\n }\n if (baseDay === null) return null;\n return { label: new Intl.RelativeTimeFormat(own.locale ?? locale(), { numeric: \"auto\" }).format(targetDay - baseDay, \"day\") };\n };\n return (\n <Show when={relative()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(value) => (\n <time {...rest} datetime={own.value ?? undefined}>\n {value().label}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDuration = (props: FormatDurationProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"from\", \"to\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n const range = () => {\n const from = toDate(own.from);\n const to = toDate(own.to);\n return from && to ? { from, to } : null;\n };\n return (\n <Show when={range()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(value) => (\n <time {...rest} datetime={isoDuration(Math.abs(value().to.getTime() - value().from.getTime()))}>\n {dates.formatDuration(value().from, value().to, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\nconst FormatDurationMs = (props: FormatDurationMsProps): JSX.Element => {\n const [own, rest] = splitProps(props, [\"value\", \"locale\", \"fallback\"]);\n const locale = useLocale();\n // Wrapped in an object because a valid duration of 0ms is falsy.\n const valid = (): { ms: number } | null => {\n const value = own.value;\n return typeof value === \"number\" && Number.isFinite(value) && value >= 0 ? { ms: value } : null;\n };\n return (\n <Show when={valid()} fallback={<span {...rest}>{own.fallback ?? FALLBACK}</span>}>\n {(duration) => (\n <time {...rest} datetime={isoDuration(duration().ms)}>\n {text.pprintDurationMs(duration().ms, { locale: own.locale ?? locale() })}\n </time>\n )}\n </Show>\n );\n};\n\n/**\n * Unstyled semantic formatter components backed by `@k2b/stdlib`.\n *\n * Numeric components render a plain `<span>`; date/time components render\n * `<time>` with a canonical `datetime` attribute. All components inherit the\n * render locale (see `LocaleProvider` / `useLocale`) and accept an explicit\n * `locale` override. Date, Time, and DateTime format in UTC unless an\n * explicit `timeZone` is given, so server and browser output never diverge\n * with the runtime timezone.\n */\nexport const Format = {\n Number: FormatNumber,\n Percent: FormatPercent,\n Currency: FormatCurrency,\n Bytes: FormatBytes,\n Date: FormatDate,\n Time: FormatTime,\n DateTime: FormatDateTime,\n RelativeTime: FormatRelativeTime,\n RelativeDate: FormatRelativeDate,\n Duration: FormatDuration,\n DurationMs: FormatDurationMs,\n} as const;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Format","LocaleProvider","useLocale"],"sources":["intl/index.ts"],"sourcesContent":["export type {\n FormatBytesProps,\n FormatCurrencyProps,\n FormatDateProps,\n FormatDateTimeProps,\n FormatDurationMsProps,\n FormatDurationProps,\n FormatNumberProps,\n FormatPercentProps,\n FormatRelativeTimeProps,\n FormatTimeProps,\n} from \"./Format\";\nexport { Format } from \"./Format\";\nexport type { LocaleProviderProps } from \"./locale\";\nexport { LocaleProvider, useLocale } from \"./locale\";\n"],"mappings":"AAYA,SAASA,MAAM,QAAQ,UAAU;AAEjC,SAASC,cAAc,EAAEC,SAAS,QAAQ,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["Format","LocaleProvider","useLocale"],"sources":["intl/index.ts"],"sourcesContent":["export type {\n FormatBytesProps,\n FormatCurrencyProps,\n FormatDateProps,\n FormatDateTimeProps,\n FormatDurationMsProps,\n FormatDurationProps,\n FormatNumberProps,\n FormatPercentProps,\n FormatRelativeDateProps,\n FormatRelativeTimeProps,\n FormatTimeProps,\n} from \"./Format\";\nexport { Format } from \"./Format\";\nexport type { LocaleProviderProps } from \"./locale\";\nexport { LocaleProvider, useLocale } from \"./locale\";\n"],"mappings":"AAaA,SAASA,MAAM,QAAQ,UAAU;AAEjC,SAASC,cAAc,EAAEC,SAAS,QAAQ,UAAU","ignoreList":[]}