@k2b/ui 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (364) hide show
  1. package/dist/browser/actions/Button.js.map +1 -1
  2. package/dist/browser/actions/ContextMenu.js.map +1 -1
  3. package/dist/browser/actions/CopyButton.js.map +1 -1
  4. package/dist/browser/actions/Disclosure.js.map +1 -1
  5. package/dist/browser/actions/Dropdown.js.map +1 -1
  6. package/dist/browser/actions/FilterChip.js.map +1 -1
  7. package/dist/browser/actions/RemoveButton.js.map +1 -1
  8. package/dist/browser/actions/SegmentedControl.js.map +1 -1
  9. package/dist/browser/actions/SplitButton.js.map +1 -1
  10. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  11. package/dist/browser/actions/Tabs.js.map +1 -1
  12. package/dist/browser/actions/Toolbar.js.map +1 -1
  13. package/dist/browser/actions/index.js.map +1 -1
  14. package/dist/browser/chat/ChatComposer.js.map +1 -1
  15. package/dist/browser/chat/ChatContextPopup.js.map +1 -1
  16. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  17. package/dist/browser/chat/ChatRoot.js.map +1 -1
  18. package/dist/browser/chat/ChatTasks.js +1 -1
  19. package/dist/browser/chat/ChatTasks.js.map +1 -1
  20. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  21. package/dist/browser/chat/chat-behavior.js.map +1 -1
  22. package/dist/browser/chat/composer-document.js.map +1 -1
  23. package/dist/browser/chat/index.js.map +1 -1
  24. package/dist/browser/content/Calendar.js.map +1 -1
  25. package/dist/browser/content/Chart.js.map +1 -1
  26. package/dist/browser/content/ChartExplorer.js.map +1 -1
  27. package/dist/browser/content/ChartExplorerControls.js.map +1 -1
  28. package/dist/browser/content/ChartFilterControls.js +1 -1
  29. package/dist/browser/content/ChartFilterControls.js.map +1 -1
  30. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  31. package/dist/browser/content/CodeDisplay.js.map +1 -1
  32. package/dist/browser/content/DataTable.js.map +1 -1
  33. package/dist/browser/content/Docs.js.map +1 -1
  34. package/dist/browser/content/FileBrowser.js.map +1 -1
  35. package/dist/browser/content/FileGrid.js.map +1 -1
  36. package/dist/browser/content/FileTree.js.map +1 -1
  37. package/dist/browser/content/FileView.js.map +1 -1
  38. package/dist/browser/content/Lightbox.js.map +1 -1
  39. package/dist/browser/content/LogEntriesTable.js.map +1 -1
  40. package/dist/browser/content/MarkdownView.js.map +1 -1
  41. package/dist/browser/content/Pagination.js.map +1 -1
  42. package/dist/browser/content/PdfPreview.js.map +1 -1
  43. package/dist/browser/content/RangePicker.js.map +1 -1
  44. package/dist/browser/content/StructuredDataPreview.js.map +1 -1
  45. package/dist/browser/content/calendar-event-layout.js.map +1 -1
  46. package/dist/browser/content/calendar-pointer.js.map +1 -1
  47. package/dist/browser/content/chart-cursor.js.map +1 -1
  48. package/dist/browser/content/chart-explorer.js.map +1 -1
  49. package/dist/browser/content/chart-inspection.js.map +1 -1
  50. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  51. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  52. package/dist/browser/content/chart-snapshot.js.map +1 -1
  53. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  54. package/dist/browser/content/chart-svg.js.map +1 -1
  55. package/dist/browser/content/code-highlight.js.map +1 -1
  56. package/dist/browser/content/collection-selection.js.map +1 -1
  57. package/dist/browser/content/delimited-preferences.js.map +1 -1
  58. package/dist/browser/content/file-tree.js.map +1 -1
  59. package/dist/browser/content/file-view-preview.js.map +1 -1
  60. package/dist/browser/content/index.js.map +1 -1
  61. package/dist/browser/feedback/InlineGuidance.js.map +1 -1
  62. package/dist/browser/feedback/Tooltip.js.map +1 -1
  63. package/dist/browser/feedback/dialog-core.js.map +1 -1
  64. package/dist/browser/feedback/index.js.map +1 -1
  65. package/dist/browser/feedback/prompts.js.map +1 -1
  66. package/dist/browser/feedback/toast.js.map +1 -1
  67. package/dist/browser/feedback/tooltip-position.js.map +1 -1
  68. package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
  69. package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
  70. package/dist/browser/inputs/Checkbox.js.map +1 -1
  71. package/dist/browser/inputs/CheckboxCard.js.map +1 -1
  72. package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
  73. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  74. package/dist/browser/inputs/Combobox.js.map +1 -1
  75. package/dist/browser/inputs/DatePicker.js.map +1 -1
  76. package/dist/browser/inputs/FileInputs.js.map +1 -1
  77. package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
  78. package/dist/browser/inputs/NumberInput.js.map +1 -1
  79. package/dist/browser/inputs/Select.js.map +1 -1
  80. package/dist/browser/inputs/SelectChip.js.map +1 -1
  81. package/dist/browser/inputs/SpecialInputs.js.map +1 -1
  82. package/dist/browser/inputs/Switch.js.map +1 -1
  83. package/dist/browser/inputs/TagEditor.js.map +1 -1
  84. package/dist/browser/inputs/TagsInput.js.map +1 -1
  85. package/dist/browser/inputs/TemplateEditor.js.map +1 -1
  86. package/dist/browser/inputs/TextInput.js.map +1 -1
  87. package/dist/browser/inputs/choice.js.map +1 -1
  88. package/dist/browser/inputs/completion/behaviors.js.map +1 -1
  89. package/dist/browser/inputs/completion/engine.js.map +1 -1
  90. package/dist/browser/inputs/completion/index.js.map +1 -1
  91. package/dist/browser/inputs/completion/overlay.js.map +1 -1
  92. package/dist/browser/inputs/date-picker.js.map +1 -1
  93. package/dist/browser/inputs/editor-dom.js.map +1 -1
  94. package/dist/browser/inputs/field-contract.js.map +1 -1
  95. package/dist/browser/inputs/icon-options.js.map +1 -1
  96. package/dist/browser/inputs/image-crop.js.map +1 -1
  97. package/dist/browser/inputs/index.js.map +1 -1
  98. package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
  99. package/dist/browser/inputs/markdown/Toolbar.js.map +1 -1
  100. package/dist/browser/inputs/markdown/actions.js.map +1 -1
  101. package/dist/browser/inputs/markdown/active-formats.js.map +1 -1
  102. package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
  103. package/dist/browser/inputs/markdown/code-zone.js.map +1 -1
  104. package/dist/browser/internal/color.js.map +1 -1
  105. package/dist/browser/internal/field.js.map +1 -1
  106. package/dist/browser/internal/portal.js.map +1 -1
  107. package/dist/browser/intl/Format.js.map +1 -1
  108. package/dist/browser/intl/index.js.map +1 -1
  109. package/dist/browser/intl/locale.js.map +1 -1
  110. package/dist/browser/intl/messages.js.map +1 -1
  111. package/dist/browser/layout/AppOverview.js.map +1 -1
  112. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  113. package/dist/browser/layout/BottomSheet.js.map +1 -1
  114. package/dist/browser/layout/DataPanel.js.map +1 -1
  115. package/dist/browser/layout/DetailPanel.js.map +1 -1
  116. package/dist/browser/layout/Discussion.js.map +1 -1
  117. package/dist/browser/layout/FloatingWindow.js.map +1 -1
  118. package/dist/browser/layout/Navigation.js.map +1 -1
  119. package/dist/browser/layout/PanelDialog.js.map +1 -1
  120. package/dist/browser/layout/PanelHeader.js.map +1 -1
  121. package/dist/browser/layout/Panes.js.map +1 -1
  122. package/dist/browser/layout/PullToRefresh.js.map +1 -1
  123. package/dist/browser/layout/ScrollArea.js.map +1 -1
  124. package/dist/browser/layout/Settings.js.map +1 -1
  125. package/dist/browser/layout/SettingsCollection.js.map +1 -1
  126. package/dist/browser/layout/SettingsModal.js.map +1 -1
  127. package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
  128. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  129. package/dist/browser/layout/app-workspace-state.js.map +1 -1
  130. package/dist/browser/layout/floating-window-geometry.js.map +1 -1
  131. package/dist/browser/layout/index.js.map +1 -1
  132. package/dist/browser/layout/navigation-model.js.map +1 -1
  133. package/dist/browser/layout/panes-layout.js.map +1 -1
  134. package/dist/browser/layout/scroll-fade.js.map +1 -1
  135. package/dist/browser/layout/stable-id.js.map +1 -1
  136. package/dist/browser/surfaces/Avatar.js.map +1 -1
  137. package/dist/browser/surfaces/DescriptionList.js.map +1 -1
  138. package/dist/browser/surfaces/LinkCard.js.map +1 -1
  139. package/dist/browser/surfaces/NotFoundState.js.map +1 -1
  140. package/dist/browser/surfaces/NoticeCard.js.map +1 -1
  141. package/dist/browser/surfaces/Paper.js.map +1 -1
  142. package/dist/browser/surfaces/Placeholder.js.map +1 -1
  143. package/dist/browser/surfaces/ProgressBar.js.map +1 -1
  144. package/dist/browser/surfaces/StatCell.js.map +1 -1
  145. package/dist/browser/surfaces/StatGrid.js.map +1 -1
  146. package/dist/browser/surfaces/StatusBadge.js.map +1 -1
  147. package/dist/browser/surfaces/Tag.js.map +1 -1
  148. package/dist/browser/surfaces/index.js.map +1 -1
  149. package/dist/browser/widgets/Widget.js.map +1 -1
  150. package/dist/browser/widgets/WidgetHero.js.map +1 -1
  151. package/dist/browser/widgets/WidgetList.js.map +1 -1
  152. package/dist/browser/widgets/WidgetPills.js.map +1 -1
  153. package/dist/browser/widgets/WidgetStat.js.map +1 -1
  154. package/dist/browser/widgets/WidgetStatus.js.map +1 -1
  155. package/dist/ssr/actions/Button.js +5 -4
  156. package/dist/ssr/actions/Button.js.map +1 -1
  157. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  158. package/dist/ssr/actions/CopyButton.js +2 -1
  159. package/dist/ssr/actions/CopyButton.js.map +1 -1
  160. package/dist/ssr/actions/Disclosure.js.map +1 -1
  161. package/dist/ssr/actions/Dropdown.js +7 -6
  162. package/dist/ssr/actions/Dropdown.js.map +1 -1
  163. package/dist/ssr/actions/FilterChip.js +5 -4
  164. package/dist/ssr/actions/FilterChip.js.map +1 -1
  165. package/dist/ssr/actions/RemoveButton.js +1 -0
  166. package/dist/ssr/actions/RemoveButton.js.map +1 -1
  167. package/dist/ssr/actions/SegmentedControl.js.map +1 -1
  168. package/dist/ssr/actions/SplitButton.js +1 -0
  169. package/dist/ssr/actions/SplitButton.js.map +1 -1
  170. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  171. package/dist/ssr/actions/Tabs.js.map +1 -1
  172. package/dist/ssr/actions/Toolbar.js.map +1 -1
  173. package/dist/ssr/actions/index.js.map +1 -1
  174. package/dist/ssr/chat/ChatComposer.js +6 -5
  175. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  176. package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
  177. package/dist/ssr/chat/ChatPrimitives.js +6 -5
  178. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  179. package/dist/ssr/chat/ChatRoot.js.map +1 -1
  180. package/dist/ssr/chat/ChatTasks.js +1 -1
  181. package/dist/ssr/chat/ChatTasks.js.map +1 -1
  182. package/dist/ssr/chat/ChatTimeline.js +5 -4
  183. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  184. package/dist/ssr/chat/chat-behavior.js.map +1 -1
  185. package/dist/ssr/chat/composer-document.js.map +1 -1
  186. package/dist/ssr/chat/index.js.map +1 -1
  187. package/dist/ssr/content/Calendar.js +2 -1
  188. package/dist/ssr/content/Calendar.js.map +1 -1
  189. package/dist/ssr/content/Chart.js.map +1 -1
  190. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  191. package/dist/ssr/content/ChartExplorerControls.js +5 -4
  192. package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
  193. package/dist/ssr/content/ChartFilterControls.js +3 -2
  194. package/dist/ssr/content/ChartFilterControls.js.map +1 -1
  195. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  196. package/dist/ssr/content/CodeDisplay.js.map +1 -1
  197. package/dist/ssr/content/DataTable.js +1 -0
  198. package/dist/ssr/content/DataTable.js.map +1 -1
  199. package/dist/ssr/content/Docs.js +1 -0
  200. package/dist/ssr/content/Docs.js.map +1 -1
  201. package/dist/ssr/content/FileBrowser.js +2 -1
  202. package/dist/ssr/content/FileBrowser.js.map +1 -1
  203. package/dist/ssr/content/FileGrid.js.map +1 -1
  204. package/dist/ssr/content/FileTree.js +2 -1
  205. package/dist/ssr/content/FileTree.js.map +1 -1
  206. package/dist/ssr/content/FileView.js +5 -4
  207. package/dist/ssr/content/FileView.js.map +1 -1
  208. package/dist/ssr/content/Lightbox.js +2 -1
  209. package/dist/ssr/content/Lightbox.js.map +1 -1
  210. package/dist/ssr/content/LogEntriesTable.js.map +1 -1
  211. package/dist/ssr/content/MarkdownView.js.map +1 -1
  212. package/dist/ssr/content/Pagination.js +2 -1
  213. package/dist/ssr/content/Pagination.js.map +1 -1
  214. package/dist/ssr/content/PdfPreview.js.map +1 -1
  215. package/dist/ssr/content/RangePicker.js.map +1 -1
  216. package/dist/ssr/content/StructuredDataPreview.js.map +1 -1
  217. package/dist/ssr/content/calendar-event-layout.js.map +1 -1
  218. package/dist/ssr/content/calendar-pointer.js.map +1 -1
  219. package/dist/ssr/content/chart-cursor.js.map +1 -1
  220. package/dist/ssr/content/chart-explorer.js.map +1 -1
  221. package/dist/ssr/content/chart-inspection.js.map +1 -1
  222. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  223. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  224. package/dist/ssr/content/chart-snapshot.js.map +1 -1
  225. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  226. package/dist/ssr/content/chart-svg.js.map +1 -1
  227. package/dist/ssr/content/code-highlight.js.map +1 -1
  228. package/dist/ssr/content/collection-selection.js.map +1 -1
  229. package/dist/ssr/content/delimited-preferences.js.map +1 -1
  230. package/dist/ssr/content/file-tree.js.map +1 -1
  231. package/dist/ssr/content/file-view-preview.js.map +1 -1
  232. package/dist/ssr/content/index.js.map +1 -1
  233. package/dist/ssr/feedback/InlineGuidance.js.map +1 -1
  234. package/dist/ssr/feedback/Tooltip.js.map +1 -1
  235. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  236. package/dist/ssr/feedback/index.js.map +1 -1
  237. package/dist/ssr/feedback/prompts.js +3 -2
  238. package/dist/ssr/feedback/prompts.js.map +1 -1
  239. package/dist/ssr/feedback/toast.js.map +1 -1
  240. package/dist/ssr/feedback/tooltip-position.js.map +1 -1
  241. package/dist/ssr/inputs/AutocompleteEditor.js +3 -2
  242. package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
  243. package/dist/ssr/inputs/AutocompleteSelect.js +5 -4
  244. package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
  245. package/dist/ssr/inputs/Checkbox.js +1 -0
  246. package/dist/ssr/inputs/Checkbox.js.map +1 -1
  247. package/dist/ssr/inputs/CheckboxCard.js.map +1 -1
  248. package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
  249. package/dist/ssr/inputs/ChoiceInputs.js +1 -0
  250. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  251. package/dist/ssr/inputs/Combobox.js +2 -1
  252. package/dist/ssr/inputs/Combobox.js.map +1 -1
  253. package/dist/ssr/inputs/DatePicker.js +4 -3
  254. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  255. package/dist/ssr/inputs/FileInputs.js +2 -1
  256. package/dist/ssr/inputs/FileInputs.js.map +1 -1
  257. package/dist/ssr/inputs/MultiSelectInput.js +4 -3
  258. package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
  259. package/dist/ssr/inputs/NumberInput.js +2 -1
  260. package/dist/ssr/inputs/NumberInput.js.map +1 -1
  261. package/dist/ssr/inputs/Select.js +4 -3
  262. package/dist/ssr/inputs/Select.js.map +1 -1
  263. package/dist/ssr/inputs/SelectChip.js +3 -2
  264. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  265. package/dist/ssr/inputs/SpecialInputs.js +1 -0
  266. package/dist/ssr/inputs/SpecialInputs.js.map +1 -1
  267. package/dist/ssr/inputs/Switch.js.map +1 -1
  268. package/dist/ssr/inputs/TagEditor.js +3 -2
  269. package/dist/ssr/inputs/TagEditor.js.map +1 -1
  270. package/dist/ssr/inputs/TagsInput.js.map +1 -1
  271. package/dist/ssr/inputs/TemplateEditor.js +1 -0
  272. package/dist/ssr/inputs/TemplateEditor.js.map +1 -1
  273. package/dist/ssr/inputs/TextInput.js +4 -3
  274. package/dist/ssr/inputs/TextInput.js.map +1 -1
  275. package/dist/ssr/inputs/choice.js.map +1 -1
  276. package/dist/ssr/inputs/completion/behaviors.js.map +1 -1
  277. package/dist/ssr/inputs/completion/engine.js.map +1 -1
  278. package/dist/ssr/inputs/completion/index.js.map +1 -1
  279. package/dist/ssr/inputs/completion/overlay.js.map +1 -1
  280. package/dist/ssr/inputs/date-picker.js.map +1 -1
  281. package/dist/ssr/inputs/editor-dom.js.map +1 -1
  282. package/dist/ssr/inputs/field-contract.js.map +1 -1
  283. package/dist/ssr/inputs/icon-options.js.map +1 -1
  284. package/dist/ssr/inputs/image-crop.js.map +1 -1
  285. package/dist/ssr/inputs/index.js.map +1 -1
  286. package/dist/ssr/inputs/markdown/MarkdownEditor.js +3 -2
  287. package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
  288. package/dist/ssr/inputs/markdown/Toolbar.js.map +1 -1
  289. package/dist/ssr/inputs/markdown/actions.js.map +1 -1
  290. package/dist/ssr/inputs/markdown/active-formats.js.map +1 -1
  291. package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
  292. package/dist/ssr/inputs/markdown/code-zone.js.map +1 -1
  293. package/dist/ssr/internal/color.js.map +1 -1
  294. package/dist/ssr/internal/field.js.map +1 -1
  295. package/dist/ssr/internal/portal.js.map +1 -1
  296. package/dist/ssr/intl/Format.js.map +1 -1
  297. package/dist/ssr/intl/index.js.map +1 -1
  298. package/dist/ssr/intl/locale.js.map +1 -1
  299. package/dist/ssr/intl/messages.js.map +1 -1
  300. package/dist/ssr/layout/AppOverview.js +2 -1
  301. package/dist/ssr/layout/AppOverview.js.map +1 -1
  302. package/dist/ssr/layout/AppWorkspace.js +7 -6
  303. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  304. package/dist/ssr/layout/BottomSheet.js.map +1 -1
  305. package/dist/ssr/layout/DataPanel.js +1 -0
  306. package/dist/ssr/layout/DataPanel.js.map +1 -1
  307. package/dist/ssr/layout/DetailPanel.js +1 -0
  308. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  309. package/dist/ssr/layout/Discussion.js +3 -2
  310. package/dist/ssr/layout/Discussion.js.map +1 -1
  311. package/dist/ssr/layout/FloatingWindow.js +1 -0
  312. package/dist/ssr/layout/FloatingWindow.js.map +1 -1
  313. package/dist/ssr/layout/Navigation.js +3 -2
  314. package/dist/ssr/layout/Navigation.js.map +1 -1
  315. package/dist/ssr/layout/PanelDialog.js +1 -0
  316. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  317. package/dist/ssr/layout/PanelHeader.js.map +1 -1
  318. package/dist/ssr/layout/Panes.js.map +1 -1
  319. package/dist/ssr/layout/PullToRefresh.js.map +1 -1
  320. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  321. package/dist/ssr/layout/Settings.js +2 -1
  322. package/dist/ssr/layout/Settings.js.map +1 -1
  323. package/dist/ssr/layout/SettingsCollection.js +1 -0
  324. package/dist/ssr/layout/SettingsCollection.js.map +1 -1
  325. package/dist/ssr/layout/SettingsModal.js.map +1 -1
  326. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
  327. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  328. package/dist/ssr/layout/app-workspace-state.js.map +1 -1
  329. package/dist/ssr/layout/floating-window-geometry.js.map +1 -1
  330. package/dist/ssr/layout/index.js.map +1 -1
  331. package/dist/ssr/layout/navigation-model.js.map +1 -1
  332. package/dist/ssr/layout/panes-layout.js.map +1 -1
  333. package/dist/ssr/layout/scroll-fade.js.map +1 -1
  334. package/dist/ssr/layout/stable-id.js.map +1 -1
  335. package/dist/ssr/surfaces/Avatar.js +2 -1
  336. package/dist/ssr/surfaces/Avatar.js.map +1 -1
  337. package/dist/ssr/surfaces/DescriptionList.js.map +1 -1
  338. package/dist/ssr/surfaces/LinkCard.js.map +1 -1
  339. package/dist/ssr/surfaces/NotFoundState.js.map +1 -1
  340. package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
  341. package/dist/ssr/surfaces/Paper.js +2 -1
  342. package/dist/ssr/surfaces/Paper.js.map +1 -1
  343. package/dist/ssr/surfaces/Placeholder.js +2 -1
  344. package/dist/ssr/surfaces/Placeholder.js.map +1 -1
  345. package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
  346. package/dist/ssr/surfaces/StatCell.js +2 -1
  347. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  348. package/dist/ssr/surfaces/StatGrid.js +1 -0
  349. package/dist/ssr/surfaces/StatGrid.js.map +1 -1
  350. package/dist/ssr/surfaces/StatusBadge.js.map +1 -1
  351. package/dist/ssr/surfaces/Tag.js.map +1 -1
  352. package/dist/ssr/surfaces/index.js.map +1 -1
  353. package/dist/ssr/widgets/Widget.js +1 -0
  354. package/dist/ssr/widgets/Widget.js.map +1 -1
  355. package/dist/ssr/widgets/WidgetHero.js.map +1 -1
  356. package/dist/ssr/widgets/WidgetList.js.map +1 -1
  357. package/dist/ssr/widgets/WidgetPills.js.map +1 -1
  358. package/dist/ssr/widgets/WidgetStat.js +1 -0
  359. package/dist/ssr/widgets/WidgetStat.js.map +1 -1
  360. package/dist/ssr/widgets/WidgetStatus.js.map +1 -1
  361. package/dist/styles.css +1 -1
  362. package/dist/types/actions/SpotlightSearch.d.ts +1 -1
  363. package/dist/types/feedback/prompts.d.ts +2 -2
  364. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"names":["For","Show","splitProps","createFieldMeta","Field","fieldControlAria","useUiMessages","commitFieldValue","resolveMaybeAccessor","PinInput","props","messages","meta","id","length","Math","max","inputs","digits","value","replace","slice","error","emit","onValueChange","onValueCommit","updateDigit","index","input","disabled","readOnly","digit","current","focus","select","handleKeyDown","event","key","onSubmit","shiftKey","metaKey","preventDefault","handlePaste","pasted","clipboardData","getData","focused","indexOf","document","activeElement","start","insert","next","min","_$createComponent","class","label","description","labelFor","required","children","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","controlId","data-stretch","stretch","undefined","_$insert","each","Array","from","_","_el$2","_tmpl$2","addEventListener","currentTarget","$$keydown","$$input","_$use","element","_$effect","_p$","_v$","_v$2","password","_v$3","_v$4","_v$5","_v$6","pinDigit","total","e","_$setAttribute","t","a","_$setProperty","o","i","n","_$runHydrationEvents","when","name","_el$3","_tmpl$3","Slider","local","rest","Number","percentage","span","track","position","center","low","high","resetValue","defaultValue","_el$4","_tmpl$5","_el$5","firstChild","_el$7","nextSibling","_el$8","_co$","_$getNextMarker","style","background","valueAsNumber","onDblClick","showValue","_el$6","_tmpl$4","formatValue","ColorInput","currentColor","isTransparent","transparentValue","compact","picker","control","_el$9","_tmpl$6","_el$0","_el$1","onClick","click","_ref$","_v$7","_v$8","_v$9","_el$10","_tmpl$8","_el$11","_el$12","_el$13","_el$16","_el$17","_co$2","_el$15","_c$","_$memo","toUpperCase","transparent","_el$14","_tmpl$7","$$click","onTransparentValueChange","_v$0","useColor","useTransparent","_v$1","_v$10","_ref$2","_v$11","_v$12","_v$13","_v$14","_v$15","_v$16","_v$17","_$style","s","_$delegateEvents"],"sources":["inputs/ChoiceInputs.tsx"],"sourcesContent":["import { For, type JSX, Show, splitProps } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { FieldProps, MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\n\nexport type PinInputProps = ValueFieldProps<string> & {\n length?: number;\n name?: string;\n stretch?: boolean;\n password?: boolean;\n readOnly?: boolean;\n onSubmit?: () => void;\n};\n\nexport function PinInput(props: PinInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const length = () => Math.max(1, props.length ?? 6);\n let inputs: HTMLInputElement[] = [];\n const digits = () => (resolveMaybeAccessor(props.value) ?? \"\").replace(/\\D/g, \"\").slice(0, length());\n const error = () => resolveMaybeAccessor(props.error);\n const emit = (value: string) => {\n props.onValueChange?.(value);\n if (value.length === length()) props.onValueCommit?.(value);\n };\n\n const updateDigit = (index: number, input: string) => {\n if (props.disabled || props.readOnly) return;\n const digit = input.replace(/\\D/g, \"\").slice(-1);\n const current = digits();\n emit(`${current.slice(0, index)}${digit}${current.slice(index + 1)}`);\n if (digit && index < length() - 1) {\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n }\n };\n\n const handleKeyDown = (index: number, event: KeyboardEvent) => {\n if (props.disabled || props.readOnly) return;\n if (event.key === \"Enter\" && props.onSubmit && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n props.onSubmit();\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n event.preventDefault();\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n } else if (event.key === \"ArrowRight\" && index < length() - 1) {\n event.preventDefault();\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n } else if (event.key === \"Backspace\" && !digits()[index] && index > 0) {\n event.preventDefault();\n const current = digits();\n emit(`${current.slice(0, index - 1)}${current.slice(index)}`);\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n }\n };\n\n const handlePaste = (event: ClipboardEvent) => {\n if (props.disabled || props.readOnly) return;\n const pasted = event.clipboardData?.getData(\"text\").replace(/\\D/g, \"\");\n if (!pasted) return;\n event.preventDefault();\n const focused = inputs.indexOf(document.activeElement as HTMLInputElement);\n const start = focused >= 0 ? focused : 0;\n const insert = pasted.slice(0, length() - start);\n const current = digits();\n emit(`${current.slice(0, start)}${insert}${current.slice(start + insert.length)}`.slice(0, length()));\n const next = Math.min(start + insert.length, length() - 1);\n inputs[next]?.focus();\n inputs[next]?.select();\n };\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n labelFor={false}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-pin-input\"\n id={meta.controlId}\n data-stretch={props.stretch ? \"true\" : undefined}\n role=\"group\"\n {...fieldControlAria(meta, props)}\n onPaste={handlePaste}\n >\n <For each={Array.from({ length: length() })}>\n {(_, index) => (\n <input\n ref={(element) => {\n inputs[index()] = element;\n }}\n class=\"k2b-control k2b-pin-input__digit\"\n data-filled={digits()[index()] ? \"true\" : undefined}\n type={props.password ? \"password\" : \"text\"}\n inputmode=\"numeric\"\n autocomplete=\"off\"\n pattern=\"[0-9]\"\n maxlength={1}\n value={digits()[index()] ?? \"\"}\n required={props.required}\n disabled={props.disabled}\n readOnly={props.readOnly}\n aria-label={messages().pinDigit({ index: index() + 1, total: length() })}\n onInput={(event) => updateDigit(index(), event.currentTarget.value)}\n onKeyDown={(event) => handleKeyDown(index(), event)}\n onFocus={(event) => event.currentTarget.select()}\n />\n )}\n </For>\n </div>\n <Show when={props.name}>{(name) => <input type=\"hidden\" name={name()} value={digits()} />}</Show>\n </Field>\n );\n}\n\nexport type SliderProps = FieldProps &\n Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onInput\" | \"onChange\" | keyof FieldProps> &\n ValueFieldProps<number> & {\n value: MaybeAccessor<number>;\n formatValue?: (value: number) => string;\n showValue?: boolean;\n center?: boolean;\n defaultValue?: number;\n };\n\nexport function Slider(props: SliderProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"aria-describedby\",\n \"aria-label\",\n \"center\",\n \"class\",\n \"defaultValue\",\n \"description\",\n \"error\",\n \"id\",\n \"label\",\n \"onValueChange\",\n \"onValueCommit\",\n \"required\",\n \"showValue\",\n \"value\",\n \"formatValue\",\n ]);\n const meta = createFieldMeta(local.id);\n const min = () => Number(rest.min ?? 0);\n const max = () => Number(rest.max ?? 100);\n const value = () => resolveMaybeAccessor(local.value) ?? min();\n const error = () => resolveMaybeAccessor(local.error);\n const percentage = () => {\n const span = max() - min();\n return span <= 0 ? 0 : Math.min(100, Math.max(0, ((value() - min()) / span) * 100));\n };\n const track = () => {\n const position = percentage();\n if (local.center) {\n const low = Math.min(50, position);\n const high = Math.max(50, position);\n return `linear-gradient(to right, var(--k2b-surface-muted) 0 ${low}%, var(--k2b-action) ${low}% ${high}%, var(--k2b-surface-muted) ${high}% 100%)`;\n }\n return `linear-gradient(to right, var(--k2b-action) 0 ${position}%, var(--k2b-surface-muted) ${position}% 100%)`;\n };\n const resetValue = () => local.defaultValue ?? (local.center ? (min() + max()) / 2 : min());\n\n return (\n <Field\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n meta={meta}\n required={local.required}\n disabled={rest.disabled}\n >\n <div class=\"k2b-slider\">\n <input\n {...rest}\n id={meta.controlId}\n type=\"range\"\n value={value()}\n style={{ background: track() }}\n {...fieldControlAria(meta, local)}\n onInput={(event) => local.onValueChange?.(event.currentTarget.valueAsNumber)}\n onChange={(event) => local.onValueCommit?.(event.currentTarget.valueAsNumber)}\n onDblClick={() => {\n const next = resetValue();\n commitFieldValue(local, next);\n }}\n />\n <Show when={local.showValue ?? true}>\n <output for={meta.controlId}>{local.formatValue?.(value()) ?? value()}</output>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type ColorInputProps = ValueFieldProps<string> & {\n name?: string;\n compact?: boolean;\n transparent?: boolean;\n transparentValue?: MaybeAccessor<boolean>;\n onTransparentValueChange?: (value: boolean) => void;\n};\n\nexport function ColorInput(props: ColorInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const currentColor = () => resolveMaybeAccessor(props.value) || \"#3b82f6\";\n const isTransparent = () => resolveMaybeAccessor(props.transparentValue) ?? false;\n const error = () => resolveMaybeAccessor(props.error);\n const compact = () => props.compact ?? !props.label;\n let picker: HTMLInputElement | undefined;\n\n const control = () =>\n compact() ? (\n <span class=\"k2b-color-input k2b-color-input--compact\">\n <button\n type=\"button\"\n class=\"k2b-color-input__swatch\"\n style={{ \"background-color\": currentColor() }}\n disabled={props.disabled}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n />\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </span>\n ) : (\n <div\n class=\"k2b-color-input\"\n data-disabled={props.disabled || isTransparent() ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n >\n <button\n type=\"button\"\n class=\"k2b-color-input__value\"\n disabled={props.disabled || isTransparent()}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n >\n <span\n class=\"k2b-color-input__swatch\"\n data-transparent={isTransparent() ? \"true\" : undefined}\n style={isTransparent() ? undefined : { \"background-color\": currentColor() }}\n />\n <code>{isTransparent() ? \"transparent\" : currentColor().toUpperCase()}</code>\n </button>\n <Show when={props.transparent}>\n <button\n type=\"button\"\n class=\"k2b-color-input__transparent\"\n aria-label={isTransparent() ? messages().useColor : messages().useTransparent}\n aria-pressed={isTransparent()}\n disabled={props.disabled}\n onClick={() => props.onTransparentValueChange?.(!isTransparent())}\n >\n <i class=\"ti ti-grid-dots\" aria-hidden=\"true\" />\n </button>\n </Show>\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled || isTransparent()}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </div>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n {control()}\n </Field>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["inputs/ChoiceInputs.tsx"],"sourcesContent":["import { For, type JSX, Show, splitProps } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { FieldProps, MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\n\nexport type PinInputProps = ValueFieldProps<string> & {\n length?: number;\n name?: string;\n stretch?: boolean;\n password?: boolean;\n readOnly?: boolean;\n onSubmit?: () => void;\n};\n\nexport function PinInput(props: PinInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const length = () => Math.max(1, props.length ?? 6);\n let inputs: HTMLInputElement[] = [];\n const digits = () => (resolveMaybeAccessor(props.value) ?? \"\").replace(/\\D/g, \"\").slice(0, length());\n const error = () => resolveMaybeAccessor(props.error);\n const emit = (value: string) => {\n props.onValueChange?.(value);\n if (value.length === length()) props.onValueCommit?.(value);\n };\n\n const updateDigit = (index: number, input: string) => {\n if (props.disabled || props.readOnly) return;\n const digit = input.replace(/\\D/g, \"\").slice(-1);\n const current = digits();\n emit(`${current.slice(0, index)}${digit}${current.slice(index + 1)}`);\n if (digit && index < length() - 1) {\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n }\n };\n\n const handleKeyDown = (index: number, event: KeyboardEvent) => {\n if (props.disabled || props.readOnly) return;\n if (event.key === \"Enter\" && props.onSubmit && !event.shiftKey && !event.metaKey) {\n event.preventDefault();\n props.onSubmit();\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n event.preventDefault();\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n } else if (event.key === \"ArrowRight\" && index < length() - 1) {\n event.preventDefault();\n inputs[index + 1]?.focus();\n inputs[index + 1]?.select();\n } else if (event.key === \"Backspace\" && !digits()[index] && index > 0) {\n event.preventDefault();\n const current = digits();\n emit(`${current.slice(0, index - 1)}${current.slice(index)}`);\n inputs[index - 1]?.focus();\n inputs[index - 1]?.select();\n }\n };\n\n const handlePaste = (event: ClipboardEvent) => {\n if (props.disabled || props.readOnly) return;\n const pasted = event.clipboardData?.getData(\"text\").replace(/\\D/g, \"\");\n if (!pasted) return;\n event.preventDefault();\n const focused = inputs.indexOf(document.activeElement as HTMLInputElement);\n const start = focused >= 0 ? focused : 0;\n const insert = pasted.slice(0, length() - start);\n const current = digits();\n emit(`${current.slice(0, start)}${insert}${current.slice(start + insert.length)}`.slice(0, length()));\n const next = Math.min(start + insert.length, length() - 1);\n inputs[next]?.focus();\n inputs[next]?.select();\n };\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n labelFor={false}\n required={props.required}\n disabled={props.disabled}\n >\n <div\n class=\"k2b-pin-input\"\n id={meta.controlId}\n data-stretch={props.stretch ? \"true\" : undefined}\n role=\"group\"\n {...fieldControlAria(meta, props)}\n onPaste={handlePaste}\n >\n <For each={Array.from({ length: length() })}>\n {(_, index) => (\n <input\n ref={(element) => {\n inputs[index()] = element;\n }}\n class=\"k2b-control k2b-pin-input__digit\"\n data-filled={digits()[index()] ? \"true\" : undefined}\n type={props.password ? \"password\" : \"text\"}\n inputmode=\"numeric\"\n autocomplete=\"off\"\n pattern=\"[0-9]\"\n maxlength={1}\n value={digits()[index()] ?? \"\"}\n required={props.required}\n disabled={props.disabled}\n readOnly={props.readOnly}\n aria-label={messages().pinDigit({ index: index() + 1, total: length() })}\n onInput={(event) => updateDigit(index(), event.currentTarget.value)}\n onKeyDown={(event) => handleKeyDown(index(), event)}\n onFocus={(event) => event.currentTarget.select()}\n />\n )}\n </For>\n </div>\n <Show when={props.name}>{(name) => <input type=\"hidden\" name={name()} value={digits()} />}</Show>\n </Field>\n );\n}\n\nexport type SliderProps = FieldProps &\n Omit<JSX.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"onInput\" | \"onChange\" | keyof FieldProps> &\n ValueFieldProps<number> & {\n value: MaybeAccessor<number>;\n formatValue?: (value: number) => string;\n showValue?: boolean;\n center?: boolean;\n defaultValue?: number;\n };\n\nexport function Slider(props: SliderProps): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"aria-describedby\",\n \"aria-label\",\n \"center\",\n \"class\",\n \"defaultValue\",\n \"description\",\n \"error\",\n \"id\",\n \"label\",\n \"onValueChange\",\n \"onValueCommit\",\n \"required\",\n \"showValue\",\n \"value\",\n \"formatValue\",\n ]);\n const meta = createFieldMeta(local.id);\n const min = () => Number(rest.min ?? 0);\n const max = () => Number(rest.max ?? 100);\n const value = () => resolveMaybeAccessor(local.value) ?? min();\n const error = () => resolveMaybeAccessor(local.error);\n const percentage = () => {\n const span = max() - min();\n return span <= 0 ? 0 : Math.min(100, Math.max(0, ((value() - min()) / span) * 100));\n };\n const track = () => {\n const position = percentage();\n if (local.center) {\n const low = Math.min(50, position);\n const high = Math.max(50, position);\n return `linear-gradient(to right, var(--k2b-surface-muted) 0 ${low}%, var(--k2b-action) ${low}% ${high}%, var(--k2b-surface-muted) ${high}% 100%)`;\n }\n return `linear-gradient(to right, var(--k2b-action) 0 ${position}%, var(--k2b-surface-muted) ${position}% 100%)`;\n };\n const resetValue = () => local.defaultValue ?? (local.center ? (min() + max()) / 2 : min());\n\n return (\n <Field\n class={local.class}\n label={local.label}\n description={local.description}\n error={error()}\n meta={meta}\n required={local.required}\n disabled={rest.disabled}\n >\n <div class=\"k2b-slider\">\n <input\n {...rest}\n id={meta.controlId}\n type=\"range\"\n value={value()}\n style={{ background: track() }}\n {...fieldControlAria(meta, local)}\n onInput={(event) => local.onValueChange?.(event.currentTarget.valueAsNumber)}\n onChange={(event) => local.onValueCommit?.(event.currentTarget.valueAsNumber)}\n onDblClick={() => {\n const next = resetValue();\n commitFieldValue(local, next);\n }}\n />\n <Show when={local.showValue ?? true}>\n <output for={meta.controlId}>{local.formatValue?.(value()) ?? value()}</output>\n </Show>\n </div>\n </Field>\n );\n}\n\nexport type ColorInputProps = ValueFieldProps<string> & {\n name?: string;\n compact?: boolean;\n transparent?: boolean;\n transparentValue?: MaybeAccessor<boolean>;\n onTransparentValueChange?: (value: boolean) => void;\n};\n\nexport function ColorInput(props: ColorInputProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const currentColor = () => resolveMaybeAccessor(props.value) || \"#3b82f6\";\n const isTransparent = () => resolveMaybeAccessor(props.transparentValue) ?? false;\n const error = () => resolveMaybeAccessor(props.error);\n const compact = () => props.compact ?? !props.label;\n let picker: HTMLInputElement | undefined;\n\n const control = () =>\n compact() ? (\n <span class=\"k2b-color-input k2b-color-input--compact\">\n <button\n type=\"button\"\n class=\"k2b-color-input__swatch\"\n style={{ \"background-color\": currentColor() }}\n disabled={props.disabled}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n />\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </span>\n ) : (\n <div\n class=\"k2b-color-input\"\n data-disabled={props.disabled || isTransparent() ? \"true\" : undefined}\n data-invalid={error() ? \"true\" : undefined}\n >\n <button\n type=\"button\"\n class=\"k2b-color-input__value\"\n disabled={props.disabled || isTransparent()}\n {...fieldControlAria(meta, props)}\n onClick={() => picker?.click()}\n >\n <span\n class=\"k2b-color-input__swatch\"\n data-transparent={isTransparent() ? \"true\" : undefined}\n style={isTransparent() ? undefined : { \"background-color\": currentColor() }}\n />\n <code>{isTransparent() ? \"transparent\" : currentColor().toUpperCase()}</code>\n </button>\n <Show when={props.transparent}>\n <button\n type=\"button\"\n class=\"k2b-color-input__transparent\"\n aria-label={isTransparent() ? messages().useColor : messages().useTransparent}\n aria-pressed={isTransparent()}\n disabled={props.disabled}\n onClick={() => props.onTransparentValueChange?.(!isTransparent())}\n >\n <i class=\"ti ti-grid-dots\" aria-hidden=\"true\" />\n </button>\n </Show>\n <input\n ref={picker}\n id={meta.controlId}\n class=\"k2b-color-input__native\"\n type=\"color\"\n name={props.name}\n value={currentColor()}\n disabled={props.disabled || isTransparent()}\n onInput={(event) => props.onValueChange?.(event.currentTarget.value)}\n onChange={(event) => props.onValueCommit?.(event.currentTarget.value)}\n />\n </div>\n );\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n {control()}\n </Field>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createSignal","For","Show","createFieldMeta","Field","fieldControlAria","useUiMessages","createChoiceLoader","createChoicePopover","nextEnabledChoiceIndex","resolveMaybeAccessor","iconClass","icon","split","includes","Combobox","props","messages","meta","id","listboxId","controlId","localQuery","setLocalQuery","query","setQuery","value","onQueryChange","error","focusedIndex","setFocusedIndex","inputRef","optionRefs","loader","signal","fetchData","map","option","debounceMs","popover","Boolean","disabled","options","focusedOption","focus","index","scrollIntoView","block","open","eager","show","load","reset","cancel","close","hide","select","onSelect","label","description","onKeyDown","event","key","preventDefault","_$createComponent","class","required","children","_el$","_$getNextElement","_tmpl$2","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$6","_el$7","_co$","_$getNextMarker","_el$8","_el$9","_el$0","_el$1","_co$2","_el$10","_el$11","_co$3","_ref$","setTrigger","_$use","element","_$setAttribute","_$spread","_$mergeProps","placeholder","search","aria-expanded","aria-activedescendant","_$memo","undefined","onFocus","onClick","currentTarget","_$insert","when","loading","fallback","_tmpl$3","_tmpl$","_ref$2","setPopover","message","_el$13","_tmpl$4","_el$14","_el$15","_$addEventListener","retry","_$runHydrationEvents","each","_el$16","_tmpl$5","_c$","length","noResultsFound","typeToSearch","_el$17","_tmpl$6","_el$22","_el$23","_co$5","_el$18","_el$19","_el$20","_el$21","_co$4","$$click","$$pointerdown","$$pointermove","_el$24","_tmpl$7","_$effect","_$className","_el$25","_tmpl$8","_p$","_v$","_v$2","_v$3","e","t","a","_$delegateEvents"],"sources":["inputs/Combobox.tsx"],"sourcesContent":["import { createSignal, For, type JSX, Show } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { type ChoiceOption, createChoiceLoader, createChoicePopover, nextEnabledChoiceIndex } from \"./choice\";\nimport type { FieldProps, MaybeAccessor } from \"./field-contract\";\nimport { resolveMaybeAccessor } from \"./field-contract\";\n\nexport type ComboboxOption = { id: string; label: string; description?: string; icon?: string };\nexport type ComboboxProps = FieldProps & {\n query?: MaybeAccessor<string>;\n onQueryChange?: (query: string) => void;\n placeholder?: string;\n fetchData: (query: string, signal: AbortSignal) => Promise<ComboboxOption[]>;\n onSelect: (option: ComboboxOption) => void;\n debounceMs?: number;\n};\n\nconst iconClass = (icon: string) => (icon.split(/\\s+/).includes(\"ti\") ? icon : `ti ${icon}`);\n\nexport function Combobox(props: ComboboxProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const listboxId = `${meta.controlId}-listbox`;\n const [localQuery, setLocalQuery] = createSignal(\"\");\n const query = () => resolveMaybeAccessor(props.query) ?? localQuery();\n const setQuery = (value: string) => {\n setLocalQuery(value);\n props.onQueryChange?.(value);\n };\n const error = () => resolveMaybeAccessor(props.error);\n const [focusedIndex, setFocusedIndex] = createSignal(-1);\n let inputRef: HTMLInputElement | undefined;\n let optionRefs: HTMLButtonElement[] = [];\n const loader = createChoiceLoader(\n () => async (value, signal) => (await props.fetchData(value, signal)).map((option) => ({ ...option, value: option.id })),\n // Cloud debounces at 200ms and then pads the response with a 200ms minimum\n // load time to stop the spinner flickering. The spinner here sits in the\n // chevron slot and stale results stay visible, so there is nothing to pad —\n // 150ms keeps typing responsive without hammering the loader.\n () => props.debounceMs ?? 150,\n );\n const popover = createChoicePopover(() => Boolean(props.disabled));\n const options = loader.options;\n const focusedOption = () => options()[focusedIndex()];\n const focus = (index: number) => {\n setFocusedIndex(index);\n optionRefs[index]?.scrollIntoView({ block: \"nearest\" });\n };\n /** `eager` loads the currently controlled query on open; typing supplies its\n * own query, so opening from `onInput` skips the duplicate request. */\n const open = (eager = true) => {\n if (props.disabled || popover.open()) return;\n popover.show();\n if (eager) loader.load(query(), true);\n focus(-1);\n };\n const reset = () => {\n loader.cancel();\n setQuery(\"\");\n focus(-1);\n };\n const close = () => {\n popover.hide();\n reset();\n };\n const select = (option: ChoiceOption<string>) => {\n popover.hide();\n props.onSelect({ id: option.value, label: option.label, description: option.description, icon: option.icon });\n reset();\n inputRef?.focus();\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n if (!popover.open()) open();\n else focus(nextEnabledChoiceIndex(options(), focusedIndex(), event.key === \"ArrowDown\" ? 1 : -1));\n } else if (event.key === \"Enter\" && popover.open() && options()[focusedIndex()]) {\n event.preventDefault();\n select(options()[focusedIndex()]!);\n } else if ((event.key === \"Escape\" || event.key === \"Tab\") && popover.open()) {\n // Escape is only ours while the list is open; otherwise it has to reach an\n // enclosing dialog or drawer.\n if (event.key === \"Escape\") event.preventDefault();\n close();\n }\n };\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div class=\"k2b-combobox\" data-invalid={error() ? \"true\" : undefined}>\n <div ref={popover.setTrigger} class=\"k2b-combobox__input\">\n <i class=\"ti ti-search\" aria-hidden=\"true\" />\n <input\n ref={(element) => {\n inputRef = element;\n }}\n id={meta.controlId}\n type=\"text\"\n value={query()}\n placeholder={props.placeholder ?? messages().search}\n disabled={props.disabled}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={popover.open()}\n aria-controls={listboxId}\n aria-activedescendant={focusedOption() ? `${listboxId}-${focusedIndex()}` : undefined}\n {...fieldControlAria(meta, props)}\n onFocus={() => open()}\n onClick={() => open()}\n onInput={(event) => {\n setQuery(event.currentTarget.value);\n open(false);\n loader.load(event.currentTarget.value);\n focus(-1);\n }}\n onKeyDown={onKeyDown}\n />\n <Show when={loader.loading()} fallback={<i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />}>\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n </Show>\n </div>\n <div ref={popover.setPopover} popover=\"manual\" class=\"k2b-choice-popover\">\n <div class=\"k2b-choice-options\" role=\"listbox\" id={listboxId}>\n <Show when={loader.error()}>\n {(message) => (\n <div class=\"k2b-choice-status\" data-tone=\"danger\">\n <span>{message()}</span>\n <button type=\"button\" onClick={loader.retry}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <For\n each={loader.error() ? [] : options()}\n fallback={<div class=\"k2b-choice-status\">{query().length >= 2 ? messages().noResultsFound : messages().typeToSearch}</div>}\n >\n {(option, index) => (\n <button\n ref={(element) => (optionRefs[index()] = element)}\n type=\"button\"\n id={`${listboxId}-${index()}`}\n class=\"k2b-choice-option\"\n role=\"option\"\n aria-selected={index() === focusedIndex()}\n data-focused={index() === focusedIndex() ? \"true\" : undefined}\n onPointerMove={() => focus(index())}\n onPointerDown={(event) => event.preventDefault()}\n onClick={() => select(option)}\n >\n <Show when={option.icon}>{(icon) => <i class={iconClass(icon())} aria-hidden=\"true\" />}</Show>\n <span>\n <strong>{option.label}</strong>\n <Show when={option.description}>{(description) => <small>{description()}</small>}</Show>\n </span>\n </button>\n )}\n </For>\n </div>\n </div>\n </div>\n </Field>\n );\n}\n\nexport default Combobox;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["inputs/Combobox.tsx"],"sourcesContent":["import { createSignal, For, type JSX, Show } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { type ChoiceOption, createChoiceLoader, createChoicePopover, nextEnabledChoiceIndex } from \"./choice\";\nimport type { FieldProps, MaybeAccessor } from \"./field-contract\";\nimport { resolveMaybeAccessor } from \"./field-contract\";\n\nexport type ComboboxOption = { id: string; label: string; description?: string; icon?: string };\nexport type ComboboxProps = FieldProps & {\n query?: MaybeAccessor<string>;\n onQueryChange?: (query: string) => void;\n placeholder?: string;\n fetchData: (query: string, signal: AbortSignal) => Promise<ComboboxOption[]>;\n onSelect: (option: ComboboxOption) => void;\n debounceMs?: number;\n};\n\nconst iconClass = (icon: string) => (icon.split(/\\s+/).includes(\"ti\") ? icon : `ti ${icon}`);\n\nexport function Combobox(props: ComboboxProps): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.id);\n const listboxId = `${meta.controlId}-listbox`;\n const [localQuery, setLocalQuery] = createSignal(\"\");\n const query = () => resolveMaybeAccessor(props.query) ?? localQuery();\n const setQuery = (value: string) => {\n setLocalQuery(value);\n props.onQueryChange?.(value);\n };\n const error = () => resolveMaybeAccessor(props.error);\n const [focusedIndex, setFocusedIndex] = createSignal(-1);\n let inputRef: HTMLInputElement | undefined;\n let optionRefs: HTMLButtonElement[] = [];\n const loader = createChoiceLoader(\n () => async (value, signal) => (await props.fetchData(value, signal)).map((option) => ({ ...option, value: option.id })),\n // Cloud debounces at 200ms and then pads the response with a 200ms minimum\n // load time to stop the spinner flickering. The spinner here sits in the\n // chevron slot and stale results stay visible, so there is nothing to pad —\n // 150ms keeps typing responsive without hammering the loader.\n () => props.debounceMs ?? 150,\n );\n const popover = createChoicePopover(() => Boolean(props.disabled));\n const options = loader.options;\n const focusedOption = () => options()[focusedIndex()];\n const focus = (index: number) => {\n setFocusedIndex(index);\n optionRefs[index]?.scrollIntoView({ block: \"nearest\" });\n };\n /** `eager` loads the currently controlled query on open; typing supplies its\n * own query, so opening from `onInput` skips the duplicate request. */\n const open = (eager = true) => {\n if (props.disabled || popover.open()) return;\n popover.show();\n if (eager) loader.load(query(), true);\n focus(-1);\n };\n const reset = () => {\n loader.cancel();\n setQuery(\"\");\n focus(-1);\n };\n const close = () => {\n popover.hide();\n reset();\n };\n const select = (option: ChoiceOption<string>) => {\n popover.hide();\n props.onSelect({ id: option.value, label: option.label, description: option.description, icon: option.icon });\n reset();\n inputRef?.focus();\n };\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n if (!popover.open()) open();\n else focus(nextEnabledChoiceIndex(options(), focusedIndex(), event.key === \"ArrowDown\" ? 1 : -1));\n } else if (event.key === \"Enter\" && popover.open() && options()[focusedIndex()]) {\n event.preventDefault();\n select(options()[focusedIndex()]!);\n } else if ((event.key === \"Escape\" || event.key === \"Tab\") && popover.open()) {\n // Escape is only ours while the list is open; otherwise it has to reach an\n // enclosing dialog or drawer.\n if (event.key === \"Escape\") event.preventDefault();\n close();\n }\n };\n\n return (\n <Field\n class={props.class}\n label={props.label}\n description={props.description}\n error={error()}\n meta={meta}\n required={props.required}\n disabled={props.disabled}\n >\n <div class=\"k2b-combobox\" data-invalid={error() ? \"true\" : undefined}>\n <div ref={popover.setTrigger} class=\"k2b-combobox__input\">\n <i class=\"ti ti-search\" aria-hidden=\"true\" />\n <input\n ref={(element) => {\n inputRef = element;\n }}\n id={meta.controlId}\n type=\"text\"\n value={query()}\n placeholder={props.placeholder ?? messages().search}\n disabled={props.disabled}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-expanded={popover.open()}\n aria-controls={listboxId}\n aria-activedescendant={focusedOption() ? `${listboxId}-${focusedIndex()}` : undefined}\n {...fieldControlAria(meta, props)}\n onFocus={() => open()}\n onClick={() => open()}\n onInput={(event) => {\n setQuery(event.currentTarget.value);\n open(false);\n loader.load(event.currentTarget.value);\n focus(-1);\n }}\n onKeyDown={onKeyDown}\n />\n <Show when={loader.loading()} fallback={<i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />}>\n <i class=\"ti ti-loader-2 k2b-spin\" aria-hidden=\"true\" />\n </Show>\n </div>\n <div ref={popover.setPopover} popover=\"manual\" class=\"k2b-choice-popover\">\n <div class=\"k2b-choice-options\" role=\"listbox\" id={listboxId}>\n <Show when={loader.error()}>\n {(message) => (\n <div class=\"k2b-choice-status\" data-tone=\"danger\">\n <span>{message()}</span>\n <button type=\"button\" onClick={loader.retry}>\n {messages().retry}\n </button>\n </div>\n )}\n </Show>\n <For\n each={loader.error() ? [] : options()}\n fallback={<div class=\"k2b-choice-status\">{query().length >= 2 ? messages().noResultsFound : messages().typeToSearch}</div>}\n >\n {(option, index) => (\n <button\n ref={(element) => (optionRefs[index()] = element)}\n type=\"button\"\n id={`${listboxId}-${index()}`}\n class=\"k2b-choice-option\"\n role=\"option\"\n aria-selected={index() === focusedIndex()}\n data-focused={index() === focusedIndex() ? \"true\" : undefined}\n onPointerMove={() => focus(index())}\n onPointerDown={(event) => event.preventDefault()}\n onClick={() => select(option)}\n >\n <Show when={option.icon}>{(icon) => <i class={iconClass(icon())} aria-hidden=\"true\" />}</Show>\n <span>\n <strong>{option.label}</strong>\n <Show when={option.description}>{(description) => <small>{description()}</small>}</Show>\n </span>\n </button>\n )}\n </For>\n </div>\n </div>\n </div>\n </Field>\n );\n}\n\nexport default Combobox;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,EAAE,GAAG,EAAY,IAAI,QAAQ,UAAU;AAC5D,SAAS,eAAe,EAAE,KAAK,EAAE,gBAAgB,QAAQ,mBAAmB;AAC5E,SAAS,aAAa,QAAQ,kBAAkB;AAChD,SAA4B,kBAAkB,EAAE,mBAAmB,EAAE,sBAAsB,QAAQ,UAAU;AAE7G,SAAS,oBAAoB,QAAQ,kBAAkB;AAYvD,MAAM,SAAS,GAAI,IAAY,IAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,IAAI,EAAG;AAE5F,OAAO,SAAS,QAAQ,CAAC,KAAoB,EAAe;EAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC;EAChC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;EACtC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,SAAS,UAAU;EAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC;EACpD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC;EACrE,MAAM,QAAQ,GAAI,KAAa,IAAK;IAClC,aAAa,CAAC,KAAK,CAAC;IACpB,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;EAC9B,CAAC;EACD,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;EACrD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;EACxD,IAAI,QAAsC;EAC1C,IAAI,UAA+B,GAAG,EAAE;EACxC,MAAM,MAAM,GAAG,kBAAkB,CAC/B,MAAM,OAAO,KAAK,EAAE,MAAM,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,CAAE,MAAM,KAAM;IAAE,GAAG,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;EAAG,CAAC,CAAC,CAAC;EACxH;EACA;EACA;EACA;EACA,MAAM,KAAK,CAAC,UAAU,IAAI,GAC5B,CAAC;EACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;EAClE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;EAC9B,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;EACrD,MAAM,KAAK,GAAI,KAAa,IAAK;IAC/B,eAAe,CAAC,KAAK,CAAC;IACtB,UAAU,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;MAAE,KAAK,EAAE;IAAU,CAAC,CAAC;EACzD,CAAC;EACD;AACF;EACE,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK;IAC7B,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;IACrC,KAAK,CAAC,CAAC,CAAC,CAAC;EACX,CAAC;EACD,MAAM,KAAK,GAAG,MAAM;IAClB,MAAM,CAAC,MAAM,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC;IACZ,KAAK,CAAC,CAAC,CAAC,CAAC;EACX,CAAC;EACD,MAAM,KAAK,GAAG,MAAM;IAClB,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAK,CAAC,CAAC;EACT,CAAC;EACD,MAAM,MAAM,GAAI,MAA4B,IAAK;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAK,CAAC,QAAQ,CAAC;MAAE,EAAE,EAAE,MAAM,CAAC,KAAK;MAAE,KAAK,EAAE,MAAM,CAAC,KAAK;MAAE,WAAW,EAAE,MAAM,CAAC,WAAW;MAAE,IAAI,EAAE,MAAM,CAAC;IAAK,CAAC,CAAC;IAC7G,KAAK,CAAC,CAAC;IACP,QAAQ,EAAE,KAAK,CAAC,CAAC;EACnB,CAAC;EACD,MAAM,SAAS,GAAI,KAAoB,IAAK;IAC1C,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE;MACxD,KAAK,CAAC,cAAc,CAAC,CAAC;MACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KACvB,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;MAC/E,KAAK,CAAC,cAAc,CAAC,CAAC;MACtB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC;IACpC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;MAC5E;MACA;MACA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;MAClD,KAAK,CAAC,CAAC;IACT;EACF,CAAC;EAED,yBACG,KAAK;IAAA;MAAA,OACG,KAAK,CAAC,KAAK;IAAA;IAAA,IAClB,KAAK;MAAA,OAAE,KAAK,CAAC,KAAK;IAAA;IAAA,IAClB,WAAW;MAAA,OAAE,KAAK,CAAC,WAAW;IAAA;IAAA,IAC9B,KAAK;MAAA,OAAE,KAAK,CAAC,CAAC;IAAA;IACd,IAAI,EAAE,IAAI;IAAA,IACV,QAAQ;MAAA,OAAE,KAAK,CAAC,QAAQ;IAAA;IAAA,IACxB,QAAQ;MAAA,OAAE,KAAK,CAAC,QAAQ;IAAA;IAAA;MAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;QAAA;MAAA,YAGZ,OAAO,CAAC,UAAU;MAAA,oDAAlB,OAAO,CAAC,UAAU;MAAA,MAGlB,OAAO,IAAK;QAChB,QAAQ,GAAG,OAAO;MACpB,CAAC;MAAA,uCASc,SAAS;MAAA;QAAA,IARxB,EAAE;UAAA,OAAE,IAAI,CAAC,SAAS;QAAA;QAAA,IAElB,KAAK;UAAA,OAAE,KAAK,CAAC,CAAC;QAAA;QAAA,IACd,WAAW;UAAA,OAAE,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM;QAAA;QAAA,IACnD,QAAQ;UAAA,OAAE,KAAK,CAAC,QAAQ;QAAA;QAAA;UAAA,OAGT,OAAO,CAAC,IAAI,CAAC,CAAC;QAAA;QAAA;UAAA,OAEN,4BAAa,CAAC,CAAC,MAAG,GAAG,SAAS,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,SAAS;QAAA;MAAA,SACjF,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;QAAA,WACxB,MAAM,IAAI,CAAC,CAAC;QAAA,WACZ,MAAM,IAAI,CAAC,CAAC;QAAA,WACX,KAAK,IAAK;UAClB,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;UACnC,IAAI,CAAC,KAAK,CAAC;UACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;UACtC,KAAK,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QAAA,aACU;MAAS;MAAA,kCAErB,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAAA;QAAA,IAAE,QAAQ;UAAA;QAAA;QAAA;UAAA;QAAA;MAAA;MAAA,aAI9B,OAAO,CAAC,UAAU;MAAA,sDAAlB,OAAO,CAAC,UAAU;MAAA,4BACyB,SAAS;MAAA,kCACzD,IAAI;QAAA,IAAC,IAAI;UAAA,OAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAAA;QAAA,UACtB,OAAO;UAAA;YAAA;YAAA;UAAA,iBAEE,OAAO;UAAA,oCACiB,MAAM,CAAC,KAAK;UAAA,uBACxC,QAAQ,CAAC,CAAC,CAAC,KAAK;UAAA;UAAA;QAAA;MAGtB;MAAA,kCAEF,GAAG;QAAA,IACF,IAAI;UAAA,OAAE,qBAAM,CAAC,KAAK,CAAC,CAAC,MAAG,EAAE,GAAG,OAAO,CAAC,CAAC;QAAA;QAAA,IACrC,QAAQ;UAAA;YAAA;YAAA;cAAA,uBAAkC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC;cAAA,aAAnB,QAAsB,QAAQ,CAAC,CAAC,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY;YAAA;YAAA;UAAA;QAAA;QAAA,UAElH,CAAC,MAAM,EAAE,KAAK;UAAA;YAAA;YAAA;YAAA;YAAA;YAAA;YAAA;UAAA,iBAWF,MAAM,MAAM,CAAC,MAAM,CAAC;UAAA,uBADb,KAAK,IAAK,KAAK,CAAC,cAAc,CAAC,CAAC;UAAA,uBADjC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;UAAA,MAP7B,OAAO,IAAM,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,OAAQ;UAAA,mCAWhD,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,MAAM,CAAC,IAAI;YAAA;YAAA,UAAI,IAAI;cAAA;cAAA,mCAAe,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;cAAA;YAAA;UAAuB;UAAA,uBAE3E,MAAM,CAAC,KAAK;UAAA,mCACpB,IAAI;YAAA,IAAC,IAAI;cAAA,OAAE,MAAM,CAAC,WAAW;YAAA;YAAA,UAAI,WAAW;cAAA;cAAA,iBAAa,WAAW;cAAA;YAAA;UAAW;UAAA;YAAA,UAZ9E,GAAG,SAAS,IAAI,KAAK,CAAC,CAAC,EAAE;cAAA,OAGd,KAAK,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC;cAAA,OAC3B,KAAK,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;YAAA;YAAA;YAAA;YAAA;UAAA;YAAA;YAAA;YAAA;UAAA;UAAA;UAAA;QAAA;MAWhE;MAAA,oDAnE+B,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;MAAA;MAAA;IAAA;EAAA;AA0E1E;AAEA,eAAe,QAAQ;AAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["dates","createEffect","createMemo","createSignal","For","onCleanup","onMount","Show","createFieldMeta","Field","fieldControlAria","useDateConfigLocale","useUiMessages","dateKey","displayDate","filterTimeInput","formatDateOnlyRangeDuration","formatDateTimeValue","inRange","isCompleteTime","isRangeEdge","monthDate","monthNames","normalizeTimeInput","orderedRange","parseDateValue","pickerContext","previewRange","resolveFocusDay","splitDateTime","toDateTimeValue","yearMonth","commitFieldValue","resolveMaybeAccessor","popoverIsOpen","popover","matches","placeDatePopover","trigger","wide","margin","gap","rect","getBoundingClientRect","preferredWidth","width","Math","min","window","innerWidth","style","popoverRect","left","max","roomBelow","innerHeight","bottom","roomAbove","top","opensAbove","height","PickerShell","props","messages","meta","owner","id","open","setOpen","error","place","close","hidePopover","show","disabled","onOpen","showPopover","queueMicrotask","initial","querySelector","focus","toggle","syncOpenState","addEventListener","removeEventListener","_$createComponent","class","label","description","required","children","_el$","_$getNextElement","_tmpl$4","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$17","_el$18","_co$5","_$getNextMarker","_el$6","_el$13","_el$14","_co$3","_el$15","_el$16","_co$4","_ref$","_$use","_$spread","_$mergeProps","controlId","data-placeholder","valueLabel","undefined","data-open","aria-expanded","aria-controls","event","key","preventDefault","_$insert","when","fallback","placeholder","pickDate","valueContent","_$memo","clearable","_el$5","_tmpl$","$$click","stopPropagation","clearValue","_$effect","_$setAttribute","clearDate","_$runHydrationEvents","nextOpen","newState","_ref$2","footerMeta","timezone","_el$7","_tmpl$3","_el$8","_el$11","_el$12","_co$2","_el$9","_tmpl$2","_el$0","_el$1","_el$10","_co$","_p$","_v$","_v$2","icon","_v$3","_v$4","datePicker","e","t","_$className","a","o","PresetRail","presets","length","_el$19","_tmpl$5","each","preset","_el$20","_tmpl$6","onSelect","value","datePresets","DatePickerPanel","view","setView","context","dateConfig","month","visibleMonth","weeks","getMonthGrid","year","weekdays","months","dayNameFormatter","Intl","DateTimeFormat","locale","weekday","day","timeZone","dayRows","dateContext","formatter","map","week","formatDateKey","outside","isSameMonth","format","number","formatDayNumber","calendar","monthDayKeys","flat","filter","focusedKey","setFocusedKey","defaultFocus","focusDate","selected","today","moveMonth","delta","setVisibleMonth","addMonths","moveYear","previousLabel","previousMonth","previousYear","nextLabel","nextMonth","nextYear","date","targetKey","handleDayKeyDown","deltas","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","addDays","buttons","Array","from","currentTarget","closest","querySelectorAll","index","indexOf","offset","_el$21","_tmpl$9","_el$22","_el$23","_el$24","_el$25","_el$28","_el$29","_co$6","_ref$3","formatMonthYear","_el$30","_tmpl$0","name","_el$31","_v$8","_v$9","_el$26","_tmpl$7","_el$32","_tmpl$1","_el$27","_tmpl$8","_el$33","_tmpl$10","cell","range","start","end","active","focusable","_el$34","_tmpl$11","onDayPreview","$$keydown","_v$0","_v$1","_v$10","_v$11","_v$12","_v$13","_v$14","i","n","s","_v$5","_v$6","_v$7","TimeInput","_el$35","_tmpl$12","_el$39","_el$40","_co$7","_el$37","_el$38","_el$36","onChange","time","$$input","timeLabel","_$setProperty","DatePicker","Boolean","_el$41","_tmpl$13","_el$42","_el$43","_co$8","_el$44","_el$45","_co$9","DateTimePicker","parts","draftDate","setDraftDate","draftTime","setDraftTime","syncDraft","next","_el$46","_el$47","_el$48","_co$0","_el$49","_el$50","_co$1","_el$51","_tmpl$14","_el$53","_el$54","_co$10","_el$52","DateRangePicker","withTime","draftRange","setDraftRange","previewDate","setPreviewDate","startTime","setStartTime","endTime","setEndTime","displayRange","_el$55","_tmpl$15","_el$56","_el$57","_el$58","_c$","_c$2","selectDate","current","applyDuration","minutes","Date","getTime","toISOString","durationMinutes","round","durationLabel","formatDuration","commit","_el$59","_tmpl$16","_el$60","_el$61","_el$62","_co$11","_el$63","_el$64","_el$65","_co$12","_el$66","_el$67","_co$13","_el$68","_tmpl$17","_el$69","_el$70","_co$14","_el$71","_el$72","_co$15","_el$73","_el$76","_el$77","_co$16","_el$75","durationPresets","_el$74","_tmpl$18","_el$78","_$delegateEvents"],"sources":["inputs/DatePicker.tsx"],"sourcesContent":["import { type DateContext, dates } from \"@k2b/stdlib\";\nimport { createEffect, createMemo, createSignal, For, type JSX, onCleanup, onMount, Show } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useDateConfigLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport {\n type DateRangeValue,\n dateKey,\n displayDate,\n filterTimeInput,\n formatDateOnlyRangeDuration,\n formatDateTimeValue,\n inRange,\n isCompleteTime,\n isRangeEdge,\n monthDate,\n monthNames,\n normalizeTimeInput,\n orderedRange,\n parseDateValue,\n pickerContext,\n previewRange,\n resolveFocusDay,\n splitDateTime,\n toDateTimeValue,\n yearMonth,\n} from \"./date-picker\";\nimport type { MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\n\nexport type { DateRangeValue } from \"./date-picker\";\n\nexport type DatePreset<T> = {\n label: string;\n value: T;\n};\n\nexport type DurationPreset = {\n label: string;\n minutes: number;\n};\n\nexport type DatePickerBaseProps<T> = Omit<ValueFieldProps<T>, \"value\"> & {\n placeholder?: string;\n value: MaybeAccessor<T>;\n presets?: readonly DatePreset<T>[];\n dateConfig?: DateContext;\n clearable?: boolean;\n};\n\nexport type DatePickerProps = DatePickerBaseProps<string | null>;\nexport type DateTimePickerProps = DatePickerBaseProps<string | null>;\nexport type DateRangePickerProps = DatePickerBaseProps<DateRangeValue> & {\n withTime?: boolean;\n datePresets?: readonly DatePreset<string | null>[];\n durationPresets?: readonly DurationPreset[];\n};\n\ntype PanelView = \"days\" | \"months\";\n\nconst popoverIsOpen = (popover: HTMLElement | undefined): boolean => {\n if (!popover) return false;\n try {\n return popover.matches(\":popover-open\");\n } catch {\n return false;\n }\n};\n\nexport const placeDatePopover = (trigger: HTMLElement, popover: HTMLElement, wide: boolean): void => {\n const margin = 8;\n const gap = 4;\n const rect = trigger.getBoundingClientRect();\n // Keep the panel at its designed width instead of stretching to a full-width\n // trigger; it only ever shrinks to fit a narrow viewport.\n const preferredWidth = wide ? 440 : 336;\n const width = Math.min(preferredWidth, window.innerWidth - margin * 2);\n popover.style.width = `${width}px`;\n\n const popoverRect = popover.getBoundingClientRect();\n const left = Math.max(margin, Math.min(rect.left, window.innerWidth - width - margin));\n const roomBelow = window.innerHeight - rect.bottom - gap - margin;\n const roomAbove = rect.top - gap - margin;\n const opensAbove = popoverRect.height > roomBelow && roomAbove > roomBelow;\n const top = opensAbove\n ? Math.max(margin, rect.top - popoverRect.height - gap)\n : Math.min(rect.bottom + gap, window.innerHeight - popoverRect.height - margin);\n\n popover.style.left = `${left}px`;\n popover.style.top = `${Math.max(margin, top)}px`;\n};\n\nfunction PickerShell<T>(props: {\n owner: DatePickerBaseProps<T>;\n icon: string;\n valueLabel: () => string;\n valueContent?: () => JSX.Element;\n children: (close: () => void) => JSX.Element;\n clearValue: T;\n onOpen?: () => void;\n footerMeta?: () => JSX.Element;\n wide?: boolean;\n timezone?: string;\n}): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.owner.id);\n const [open, setOpen] = createSignal(false);\n const error = () => resolveMaybeAccessor(props.owner.error);\n let trigger: HTMLButtonElement | undefined;\n let popover: HTMLDivElement | undefined;\n\n const place = () => {\n if (trigger && popover && open()) placeDatePopover(trigger, popover, props.wide ?? false);\n };\n\n const close = () => {\n if (popoverIsOpen(popover)) popover?.hidePopover();\n setOpen(false);\n };\n\n const show = () => {\n if (props.owner.disabled || !popover || popoverIsOpen(popover)) return;\n props.onOpen?.();\n popover.showPopover();\n setOpen(true);\n queueMicrotask(() => {\n place();\n const initial =\n popover?.querySelector<HTMLElement>('[data-date-focus=\"true\"]') ??\n popover?.querySelector<HTMLElement>('[data-date-day]:not([data-outside=\"true\"])');\n initial?.focus();\n });\n };\n\n const toggle = () => (open() ? close() : show());\n\n onMount(() => {\n const syncOpenState = () => setOpen(popoverIsOpen(popover));\n popover?.addEventListener(\"toggle\", syncOpenState);\n onCleanup(() => popover?.removeEventListener(\"toggle\", syncOpenState));\n });\n\n createEffect(() => {\n if (!open()) return;\n window.addEventListener(\"resize\", place);\n window.addEventListener(\"scroll\", place, true);\n onCleanup(() => {\n window.removeEventListener(\"resize\", place);\n window.removeEventListener(\"scroll\", place, true);\n });\n });\n onCleanup(close);\n\n return (\n <Field\n class={props.owner.class}\n label={props.owner.label}\n description={props.owner.description}\n error={error()}\n required={props.owner.required}\n disabled={props.owner.disabled}\n meta={meta}\n >\n <div class=\"k2b-date-picker\" data-invalid={error() ? \"true\" : undefined}>\n <button\n ref={trigger}\n id={meta.controlId}\n type=\"button\"\n class=\"k2b-date-trigger\"\n data-placeholder={props.valueLabel() ? undefined : \"true\"}\n data-open={open() ? \"true\" : undefined}\n disabled={props.owner.disabled}\n aria-haspopup=\"dialog\"\n aria-expanded={open()}\n aria-controls={`${meta.controlId}-popover`}\n {...fieldControlAria(meta, props.owner)}\n onClick={toggle}\n onKeyDown={(event) => {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n show();\n }\n }}\n >\n <i class={`${props.icon} k2b-date-trigger__icon`} aria-hidden=\"true\" />\n <span class=\"k2b-date-trigger__value\">\n <Show when={props.valueLabel()} fallback={props.owner.placeholder ?? messages().pickDate}>\n {props.valueContent?.() ?? props.valueLabel()}\n </Show>\n </span>\n <i class=\"ti ti-chevron-down k2b-date-trigger__chevron\" aria-hidden=\"true\" />\n </button>\n\n <Show when={props.owner.clearable && props.valueLabel() && !props.owner.disabled}>\n <button\n type=\"button\"\n class=\"k2b-date-trigger__clear k2b-input-clear-action\"\n aria-label={messages().clearDate}\n onClick={(event) => {\n event.stopPropagation();\n close();\n commitFieldValue(props.owner, props.clearValue);\n trigger?.focus();\n }}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n\n <div\n ref={popover}\n id={`${meta.controlId}-popover`}\n class=\"k2b-date-popover\"\n popover=\"auto\"\n role=\"dialog\"\n aria-label={typeof props.owner.label === \"string\" ? props.owner.label : messages().datePicker}\n onToggle={(event) => {\n const nextOpen = event.newState === \"open\";\n setOpen(nextOpen);\n if (nextOpen) queueMicrotask(place);\n }}\n >\n {props.children(close)}\n <Show when={props.footerMeta || props.timezone}>\n <footer class=\"k2b-date-popover__footer\">\n <span>{props.footerMeta?.()}</span>\n <Show when={props.timezone}>\n <span class=\"k2b-date-popover__timezone\">\n <i class=\"ti ti-world\" aria-hidden=\"true\" />\n {props.timezone}\n </span>\n </Show>\n </footer>\n </Show>\n </div>\n </div>\n </Field>\n );\n}\n\nfunction PresetRail<T>(props: { presets?: readonly DatePreset<T>[]; onSelect: (value: T) => void }): JSX.Element {\n const messages = useUiMessages();\n return (\n <Show when={props.presets?.length}>\n <aside class=\"k2b-date-presets\" aria-label={messages().datePresets}>\n <For each={props.presets}>\n {(preset) => (\n <button type=\"button\" onClick={() => props.onSelect(preset.value)}>\n {preset.label}\n </button>\n )}\n </For>\n </aside>\n </Show>\n );\n}\n\nfunction DatePickerPanel(props: {\n visibleMonth: () => Date;\n setVisibleMonth: (date: Date) => void;\n selected?: () => string | null | undefined;\n range?: () => DateRangeValue;\n focusDate?: () => string | null | undefined;\n onSelect: (date: string) => void;\n onDayPreview?: (date: string | null) => void;\n dateConfig?: DateContext;\n}): JSX.Element {\n const messages = useUiMessages();\n const [view, setView] = createSignal<PanelView>(\"days\");\n const context = createMemo(() => pickerContext(props.dateConfig));\n const month = createMemo(() => yearMonth(props.visibleMonth(), context()));\n const weeks = createMemo(() => dates.getMonthGrid(month().year, month().month, context()));\n const weekdays = createMemo(() => dates.weekdays(context()));\n const months = createMemo(() => monthNames(context()));\n const dayNameFormatter = createMemo(\n () =>\n new Intl.DateTimeFormat(context().locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: context().timeZone,\n }),\n );\n const dayRows = createMemo(() => {\n const visibleMonth = props.visibleMonth();\n const dateContext = context();\n const formatter = dayNameFormatter();\n return weeks().map((week) =>\n week.map((day) => ({\n day,\n key: dates.formatDateKey(day, dateContext),\n outside: !dates.isSameMonth(day, visibleMonth, dateContext),\n label: formatter.format(day),\n number: dates.formatDayNumber(day, dateContext),\n })),\n );\n });\n let calendar: HTMLElement | undefined;\n // Days that belong to the visible month; the roving tabindex must land on one\n // of them or the grid becomes unreachable by keyboard after month navigation.\n const monthDayKeys = createMemo(() =>\n dayRows()\n .flat()\n .filter((day) => !day.outside)\n .map((day) => day.key),\n );\n // Remembers where arrow-key navigation left off so Tab returns to that day.\n const [focusedKey, setFocusedKey] = createSignal<string>();\n const defaultFocus = createMemo(() =>\n resolveFocusDay(\n monthDayKeys(),\n focusedKey() || props.focusDate?.() || props.selected?.() || dateKey(dates.today(context()), context()),\n ),\n );\n\n const moveMonth = (delta: number) => props.setVisibleMonth(dates.addMonths(props.visibleMonth(), delta, context()));\n const moveYear = (delta: number) => props.setVisibleMonth(monthDate(month().year + delta, month().month, context()));\n const previousLabel = () => (view() === \"days\" ? messages().previousMonth : messages().previousYear);\n const nextLabel = () => (view() === \"days\" ? messages().nextMonth : messages().nextYear);\n\n const focusDate = (date: Date) => {\n const targetKey = dateKey(date, context());\n if (!dates.isSameMonth(date, props.visibleMonth(), context())) props.setVisibleMonth(date);\n queueMicrotask(() => calendar?.querySelector<HTMLElement>(`[data-date-day=\"${targetKey}\"]`)?.focus());\n };\n\n const handleDayKeyDown = (event: KeyboardEvent, day: Date) => {\n const deltas: Partial<Record<string, number>> = { ArrowLeft: -1, ArrowRight: 1, ArrowUp: -7, ArrowDown: 7 };\n const delta = deltas[event.key];\n if (delta !== undefined) {\n event.preventDefault();\n focusDate(dates.addDays(day, delta, context()));\n return;\n }\n if (event.key === \"PageUp\" || event.key === \"PageDown\") {\n event.preventDefault();\n focusDate(dates.addMonths(day, event.key === \"PageUp\" ? -1 : 1, context()));\n return;\n }\n if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n const buttons = Array.from(\n (event.currentTarget as HTMLButtonElement).closest(\".k2b-date-grid\")!.querySelectorAll<HTMLButtonElement>(\"[data-date-day]\"),\n );\n const index = buttons.indexOf(event.currentTarget as HTMLButtonElement);\n const offset = event.key === \"Home\" ? -(index % 7) : 6 - (index % 7);\n focusDate(dates.addDays(day, offset, context()));\n }\n };\n\n return (\n <section ref={calendar} class=\"k2b-date-calendar\" aria-label={messages().calendar}>\n <header class=\"k2b-date-calendar__header\">\n <button\n type=\"button\"\n class=\"k2b-date-calendar__nav\"\n onClick={() => (view() === \"days\" ? moveMonth(-1) : moveYear(-1))}\n aria-label={previousLabel()}\n >\n <i class=\"ti ti-chevron-left\" aria-hidden=\"true\" />\n </button>\n <button type=\"button\" class=\"k2b-date-calendar__title\" onClick={() => setView(view() === \"days\" ? \"months\" : \"days\")}>\n <Show when={view() === \"days\"} fallback={month().year}>\n {dates.formatMonthYear(props.visibleMonth(), context())}\n </Show>\n </button>\n <button\n type=\"button\"\n class=\"k2b-date-calendar__nav\"\n onClick={() => (view() === \"days\" ? moveMonth(1) : moveYear(1))}\n aria-label={nextLabel()}\n >\n <i class=\"ti ti-chevron-right\" aria-hidden=\"true\" />\n </button>\n </header>\n\n <Show\n when={view() === \"days\"}\n fallback={\n <div class=\"k2b-date-months\" role=\"group\" aria-label={`Months in ${month().year}`}>\n <For each={months()}>\n {(name, index) => (\n <button\n type=\"button\"\n aria-pressed={index() === month().month}\n data-selected={index() === month().month ? \"true\" : undefined}\n onClick={() => {\n props.setVisibleMonth(monthDate(month().year, index(), context()));\n setView(\"days\");\n }}\n >\n {name}\n </button>\n )}\n </For>\n </div>\n }\n >\n <div class=\"k2b-date-weekdays\" aria-hidden=\"true\">\n <For each={weekdays()}>{(day) => <span>{day}</span>}</For>\n </div>\n <div class=\"k2b-date-grid\" role=\"grid\">\n <For each={dayRows()}>\n {(week) => (\n <div class=\"k2b-date-week\" role=\"row\">\n <For each={week}>\n {(cell) => {\n const selected = () => props.selected?.() === cell.key;\n const range = () => props.range?.() ?? { start: null, end: null };\n const active = () => selected() || isRangeEdge(cell.key, range());\n const focusable = () => cell.key === defaultFocus();\n return (\n <button\n type=\"button\"\n role=\"gridcell\"\n data-date-day={cell.key}\n data-date-focus={focusable() ? \"true\" : undefined}\n data-outside={cell.outside ? \"true\" : undefined}\n data-in-range={inRange(cell.key, range()) && !active() ? \"true\" : undefined}\n aria-label={cell.label}\n aria-selected={active()}\n tabIndex={focusable() ? 0 : -1}\n onClick={() => props.onSelect(cell.key)}\n onKeyDown={(event) => handleDayKeyDown(event, cell.day)}\n onBlur={() => props.onDayPreview?.(null)}\n onFocus={() => {\n setFocusedKey(cell.key);\n props.onDayPreview?.(cell.key);\n }}\n onPointerEnter={() => props.onDayPreview?.(cell.key)}\n onPointerLeave={() => props.onDayPreview?.(null)}\n >\n {cell.number}\n </button>\n );\n }}\n </For>\n </div>\n )}\n </For>\n </div>\n </Show>\n </section>\n );\n}\n\nfunction TimeInput(props: { time: string; onChange: (time: string) => void; label?: string }): JSX.Element {\n const messages = useUiMessages();\n return (\n <label class=\"k2b-date-time\">\n <Show when={props.label}>\n <span>{props.label}</span>\n </Show>\n <span class=\"k2b-date-time__control\">\n <input\n type=\"text\"\n inputMode=\"numeric\"\n value={props.time}\n placeholder=\"09:00\"\n onInput={(event) => props.onChange(filterTimeInput(event.currentTarget.value))}\n onBlur={() => props.onChange(normalizeTimeInput(props.time))}\n aria-label={props.label ? messages().timeLabel({ label: props.label }) : messages().time}\n />\n <i class=\"ti ti-clock\" aria-hidden=\"true\" />\n </span>\n </label>\n );\n}\n\nexport function DatePicker(props: DatePickerProps): JSX.Element {\n const value = () => resolveMaybeAccessor(props.value);\n const dateConfig = useDateConfigLocale(() => props.dateConfig);\n const [visibleMonth, setVisibleMonth] = createSignal(parseDateValue(value(), dateConfig()));\n const valueLabel = () => displayDate(value(), dateConfig());\n\n return (\n <PickerShell\n owner={props}\n icon=\"ti ti-calendar\"\n valueLabel={valueLabel}\n clearValue={null}\n onOpen={() => setVisibleMonth(parseDateValue(value(), dateConfig()))}\n wide={Boolean(props.presets?.length)}\n >\n {(close) => (\n <div class=\"k2b-date-popover__body\">\n <PresetRail\n presets={props.presets}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n />\n <DatePickerPanel\n visibleMonth={visibleMonth}\n setVisibleMonth={setVisibleMonth}\n selected={value}\n focusDate={value}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n dateConfig={dateConfig()}\n />\n </div>\n )}\n </PickerShell>\n );\n}\n\nexport function DateTimePicker(props: DateTimePickerProps): JSX.Element {\n const value = () => resolveMaybeAccessor(props.value);\n const dateConfig = useDateConfigLocale(() => props.dateConfig);\n const parts = () => splitDateTime(value(), dateConfig());\n const [visibleMonth, setVisibleMonth] = createSignal(parseDateValue(parts().date, dateConfig()));\n const [draftDate, setDraftDate] = createSignal(parts().date);\n const [draftTime, setDraftTime] = createSignal(parts().time || \"09:00\");\n const valueLabel = () => formatDateTimeValue(value(), dateConfig());\n\n const syncDraft = () => {\n const next = parts();\n setDraftDate(next.date);\n setDraftTime(next.time || \"09:00\");\n setVisibleMonth(parseDateValue(next.date, dateConfig()));\n };\n\n return (\n <PickerShell\n owner={props}\n icon=\"ti ti-calendar-time\"\n valueLabel={valueLabel}\n clearValue={null}\n timezone={dateConfig().timeZone}\n onOpen={syncDraft}\n wide={Boolean(props.presets?.length)}\n >\n {(close) => (\n <>\n <div class=\"k2b-date-popover__body\">\n <PresetRail\n presets={props.presets}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n />\n <DatePickerPanel\n visibleMonth={visibleMonth}\n setVisibleMonth={setVisibleMonth}\n selected={draftDate}\n focusDate={draftDate}\n onSelect={(value) => {\n setDraftDate(value);\n setVisibleMonth(parseDateValue(value, dateConfig()));\n }}\n dateConfig={dateConfig()}\n />\n </div>\n <div class=\"k2b-date-actions\">\n <TimeInput time={draftTime()} onChange={setDraftTime} />\n <button\n type=\"button\"\n class=\"k2b-date-apply\"\n disabled={!draftDate() || !isCompleteTime(draftTime())}\n onClick={() => {\n if (!draftDate() || !isCompleteTime(draftTime())) return;\n const value = toDateTimeValue(draftDate(), draftTime(), dateConfig());\n close();\n commitFieldValue(props, value);\n }}\n >\n Apply\n </button>\n </div>\n </>\n )}\n </PickerShell>\n );\n}\n\nexport function DateRangePicker(props: DateRangePickerProps): JSX.Element {\n const messages = useUiMessages();\n const withTime = () => props.withTime ?? false;\n const value = () => resolveMaybeAccessor(props.value);\n const dateConfig = useDateConfigLocale(() => props.dateConfig);\n const parts = () => ({\n start: withTime() ? splitDateTime(value().start, dateConfig()) : { date: value().start ?? \"\", time: \"09:00\" },\n end: withTime() ? splitDateTime(value().end, dateConfig()) : { date: value().end ?? \"\", time: \"10:00\" },\n });\n const [visibleMonth, setVisibleMonth] = createSignal(parseDateValue(parts().start.date || parts().end.date, dateConfig()));\n const [draftRange, setDraftRange] = createSignal<DateRangeValue>({\n start: parts().start.date || null,\n end: parts().end.date || null,\n });\n const [previewDate, setPreviewDate] = createSignal<string | null>(null);\n const [startTime, setStartTime] = createSignal(parts().start.time || \"09:00\");\n const [endTime, setEndTime] = createSignal(parts().end.time || \"10:00\");\n const displayRange = createMemo(() => previewRange(draftRange(), previewDate()));\n\n const syncDraft = () => {\n const next = parts();\n setDraftRange({ start: next.start.date || null, end: next.end.date || null });\n setPreviewDate(null);\n setStartTime(next.start.time || \"09:00\");\n setEndTime(next.end.time || \"10:00\");\n setVisibleMonth(parseDateValue(next.start.date || next.end.date, dateConfig()));\n };\n\n const valueLabel = () => {\n if (!value().start && !value().end) return \"\";\n const format = withTime() ? formatDateTimeValue : displayDate;\n return `${value().start ? format(value().start, dateConfig()) : \"Start\"} to ${value().end ? format(value().end, dateConfig()) : \"End\"}`;\n };\n\n const valueContent = () => {\n const format = withTime() ? formatDateTimeValue : displayDate;\n return (\n <span class=\"k2b-date-range-value\">\n <span>{value().start ? format(value().start, dateConfig()) : messages().start}</span>\n <i class=\"ti ti-arrow-narrow-right\" aria-hidden=\"true\" />\n <span>{value().end ? format(value().end, dateConfig()) : \"End\"}</span>\n </span>\n );\n };\n\n const selectDate = (value: string) => {\n const current = draftRange();\n if (!current.start || current.end) {\n setDraftRange({ start: value, end: null });\n } else {\n setDraftRange(orderedRange(current.start, value));\n }\n setPreviewDate(null);\n };\n\n const applyDuration = (minutes: number) => {\n const current = draftRange();\n if (!current.start || !isCompleteTime(startTime())) return;\n const start = toDateTimeValue(current.start, startTime(), dateConfig());\n if (!start) return;\n const end = new Date(new Date(start).getTime() + minutes * 60_000).toISOString();\n const next = splitDateTime(end, dateConfig());\n setDraftRange({ start: current.start, end: next.date || current.end || current.start });\n setEndTime(next.time || endTime());\n };\n\n const durationMinutes = createMemo(() => {\n const current = displayRange();\n if (!current.start || !current.end || !isCompleteTime(startTime()) || !isCompleteTime(endTime())) return null;\n const start = toDateTimeValue(current.start, startTime(), dateConfig());\n const end = toDateTimeValue(current.end, endTime(), dateConfig());\n if (!start || !end) return null;\n return Math.round((new Date(end).getTime() - new Date(start).getTime()) / 60_000);\n });\n\n const durationLabel = () => {\n const current = displayRange();\n if (!current.start || !current.end) return \"\";\n if (!withTime()) return formatDateOnlyRangeDuration(current, dateConfig());\n if (!isCompleteTime(startTime()) || !isCompleteTime(endTime())) return \"\";\n const start = toDateTimeValue(current.start, startTime(), dateConfig());\n const end = toDateTimeValue(current.end, endTime(), dateConfig());\n return start && end ? dates.formatDuration(start, end, dateConfig()) : \"\";\n };\n\n const commit = (close: () => void) => {\n const current = draftRange();\n if (!withTime()) {\n close();\n commitFieldValue(props, current);\n return;\n }\n if ((current.start || current.end) && (!isCompleteTime(startTime()) || !isCompleteTime(endTime()))) return;\n const value = {\n start: current.start ? toDateTimeValue(current.start, startTime(), dateConfig()) : null,\n end: current.end ? toDateTimeValue(current.end, endTime(), dateConfig()) : null,\n };\n close();\n commitFieldValue(props, value);\n };\n\n return (\n <PickerShell\n owner={props}\n icon=\"ti ti-calendar-stats\"\n valueLabel={valueLabel}\n valueContent={valueContent}\n clearValue={{ start: null, end: null }}\n timezone={withTime() ? dateConfig().timeZone : undefined}\n footerMeta={() => (\n <Show when={durationLabel()}>\n <span class=\"k2b-date-duration\">\n <i class=\"ti ti-hourglass-low\" aria-hidden=\"true\" />\n {durationLabel()}\n </span>\n </Show>\n )}\n onOpen={syncDraft}\n wide={Boolean(props.datePresets?.length || props.presets?.length)}\n >\n {(close) => (\n <>\n <div class=\"k2b-date-popover__body\">\n <Show\n when={props.datePresets?.length}\n fallback={\n <PresetRail\n presets={props.presets}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n />\n }\n >\n <PresetRail\n presets={props.datePresets}\n onSelect={(value) => {\n setDraftRange(value ? { start: value, end: value } : { start: null, end: null });\n if (value) setVisibleMonth(parseDateValue(value, dateConfig()));\n }}\n />\n </Show>\n <DatePickerPanel\n visibleMonth={visibleMonth}\n setVisibleMonth={setVisibleMonth}\n range={displayRange}\n focusDate={() => draftRange().start}\n onSelect={selectDate}\n onDayPreview={(value) => {\n const current = draftRange();\n setPreviewDate(current.start && !current.end ? value : null);\n }}\n dateConfig={dateConfig()}\n />\n </div>\n\n <Show when={withTime()}>\n <div class=\"k2b-date-range-times\">\n <TimeInput label={messages().start} time={startTime()} onChange={setStartTime} />\n <TimeInput label={messages().end} time={endTime()} onChange={setEndTime} />\n </div>\n </Show>\n\n <div class=\"k2b-date-actions\">\n <Show when={withTime() && props.durationPresets?.length}>\n <div class=\"k2b-date-durations\" role=\"group\" aria-label={messages().durationPresets}>\n <For each={props.durationPresets}>\n {(preset) => (\n <button type=\"button\" aria-pressed={durationMinutes() === preset.minutes} onClick={() => applyDuration(preset.minutes)}>\n {preset.label}\n </button>\n )}\n </For>\n </div>\n </Show>\n {/* Only a half-picked range is uncommittable; an empty draft must stay\n applicable so a \"clear\" date preset can be committed. */}\n <button\n type=\"button\"\n class=\"k2b-date-apply\"\n disabled={\n Boolean(draftRange().start) !== Boolean(draftRange().end) ||\n Boolean(\n withTime() && draftRange().start && draftRange().end && (!isCompleteTime(startTime()) || !isCompleteTime(endTime())),\n )\n }\n onClick={() => commit(close)}\n >\n Apply\n </button>\n </div>\n </>\n )}\n </PickerShell>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["inputs/DatePicker.tsx"],"sourcesContent":["import { type DateContext, dates } from \"@k2b/stdlib\";\nimport { createEffect, createMemo, createSignal, For, type JSX, onCleanup, onMount, Show } from \"solid-js\";\nimport { createFieldMeta, Field, fieldControlAria } from \"../internal/field\";\nimport { useDateConfigLocale } from \"../intl/locale\";\nimport { useUiMessages } from \"../intl/messages\";\nimport {\n type DateRangeValue,\n dateKey,\n displayDate,\n filterTimeInput,\n formatDateOnlyRangeDuration,\n formatDateTimeValue,\n inRange,\n isCompleteTime,\n isRangeEdge,\n monthDate,\n monthNames,\n normalizeTimeInput,\n orderedRange,\n parseDateValue,\n pickerContext,\n previewRange,\n resolveFocusDay,\n splitDateTime,\n toDateTimeValue,\n yearMonth,\n} from \"./date-picker\";\nimport type { MaybeAccessor, ValueFieldProps } from \"./field-contract\";\nimport { commitFieldValue, resolveMaybeAccessor } from \"./field-contract\";\n\nexport type { DateRangeValue } from \"./date-picker\";\n\nexport type DatePreset<T> = {\n label: string;\n value: T;\n};\n\nexport type DurationPreset = {\n label: string;\n minutes: number;\n};\n\nexport type DatePickerBaseProps<T> = Omit<ValueFieldProps<T>, \"value\"> & {\n placeholder?: string;\n value: MaybeAccessor<T>;\n presets?: readonly DatePreset<T>[];\n dateConfig?: DateContext;\n clearable?: boolean;\n};\n\nexport type DatePickerProps = DatePickerBaseProps<string | null>;\nexport type DateTimePickerProps = DatePickerBaseProps<string | null>;\nexport type DateRangePickerProps = DatePickerBaseProps<DateRangeValue> & {\n withTime?: boolean;\n datePresets?: readonly DatePreset<string | null>[];\n durationPresets?: readonly DurationPreset[];\n};\n\ntype PanelView = \"days\" | \"months\";\n\nconst popoverIsOpen = (popover: HTMLElement | undefined): boolean => {\n if (!popover) return false;\n try {\n return popover.matches(\":popover-open\");\n } catch {\n return false;\n }\n};\n\nexport const placeDatePopover = (trigger: HTMLElement, popover: HTMLElement, wide: boolean): void => {\n const margin = 8;\n const gap = 4;\n const rect = trigger.getBoundingClientRect();\n // Keep the panel at its designed width instead of stretching to a full-width\n // trigger; it only ever shrinks to fit a narrow viewport.\n const preferredWidth = wide ? 440 : 336;\n const width = Math.min(preferredWidth, window.innerWidth - margin * 2);\n popover.style.width = `${width}px`;\n\n const popoverRect = popover.getBoundingClientRect();\n const left = Math.max(margin, Math.min(rect.left, window.innerWidth - width - margin));\n const roomBelow = window.innerHeight - rect.bottom - gap - margin;\n const roomAbove = rect.top - gap - margin;\n const opensAbove = popoverRect.height > roomBelow && roomAbove > roomBelow;\n const top = opensAbove\n ? Math.max(margin, rect.top - popoverRect.height - gap)\n : Math.min(rect.bottom + gap, window.innerHeight - popoverRect.height - margin);\n\n popover.style.left = `${left}px`;\n popover.style.top = `${Math.max(margin, top)}px`;\n};\n\nfunction PickerShell<T>(props: {\n owner: DatePickerBaseProps<T>;\n icon: string;\n valueLabel: () => string;\n valueContent?: () => JSX.Element;\n children: (close: () => void) => JSX.Element;\n clearValue: T;\n onOpen?: () => void;\n footerMeta?: () => JSX.Element;\n wide?: boolean;\n timezone?: string;\n}): JSX.Element {\n const messages = useUiMessages();\n const meta = createFieldMeta(props.owner.id);\n const [open, setOpen] = createSignal(false);\n const error = () => resolveMaybeAccessor(props.owner.error);\n let trigger: HTMLButtonElement | undefined;\n let popover: HTMLDivElement | undefined;\n\n const place = () => {\n if (trigger && popover && open()) placeDatePopover(trigger, popover, props.wide ?? false);\n };\n\n const close = () => {\n if (popoverIsOpen(popover)) popover?.hidePopover();\n setOpen(false);\n };\n\n const show = () => {\n if (props.owner.disabled || !popover || popoverIsOpen(popover)) return;\n props.onOpen?.();\n popover.showPopover();\n setOpen(true);\n queueMicrotask(() => {\n place();\n const initial =\n popover?.querySelector<HTMLElement>('[data-date-focus=\"true\"]') ??\n popover?.querySelector<HTMLElement>('[data-date-day]:not([data-outside=\"true\"])');\n initial?.focus();\n });\n };\n\n const toggle = () => (open() ? close() : show());\n\n onMount(() => {\n const syncOpenState = () => setOpen(popoverIsOpen(popover));\n popover?.addEventListener(\"toggle\", syncOpenState);\n onCleanup(() => popover?.removeEventListener(\"toggle\", syncOpenState));\n });\n\n createEffect(() => {\n if (!open()) return;\n window.addEventListener(\"resize\", place);\n window.addEventListener(\"scroll\", place, true);\n onCleanup(() => {\n window.removeEventListener(\"resize\", place);\n window.removeEventListener(\"scroll\", place, true);\n });\n });\n onCleanup(close);\n\n return (\n <Field\n class={props.owner.class}\n label={props.owner.label}\n description={props.owner.description}\n error={error()}\n required={props.owner.required}\n disabled={props.owner.disabled}\n meta={meta}\n >\n <div class=\"k2b-date-picker\" data-invalid={error() ? \"true\" : undefined}>\n <button\n ref={trigger}\n id={meta.controlId}\n type=\"button\"\n class=\"k2b-date-trigger\"\n data-placeholder={props.valueLabel() ? undefined : \"true\"}\n data-open={open() ? \"true\" : undefined}\n disabled={props.owner.disabled}\n aria-haspopup=\"dialog\"\n aria-expanded={open()}\n aria-controls={`${meta.controlId}-popover`}\n {...fieldControlAria(meta, props.owner)}\n onClick={toggle}\n onKeyDown={(event) => {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n show();\n }\n }}\n >\n <i class={`${props.icon} k2b-date-trigger__icon`} aria-hidden=\"true\" />\n <span class=\"k2b-date-trigger__value\">\n <Show when={props.valueLabel()} fallback={props.owner.placeholder ?? messages().pickDate}>\n {props.valueContent?.() ?? props.valueLabel()}\n </Show>\n </span>\n <i class=\"ti ti-chevron-down k2b-date-trigger__chevron\" aria-hidden=\"true\" />\n </button>\n\n <Show when={props.owner.clearable && props.valueLabel() && !props.owner.disabled}>\n <button\n type=\"button\"\n class=\"k2b-date-trigger__clear k2b-input-clear-action\"\n aria-label={messages().clearDate}\n onClick={(event) => {\n event.stopPropagation();\n close();\n commitFieldValue(props.owner, props.clearValue);\n trigger?.focus();\n }}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n\n <div\n ref={popover}\n id={`${meta.controlId}-popover`}\n class=\"k2b-date-popover\"\n popover=\"auto\"\n role=\"dialog\"\n aria-label={typeof props.owner.label === \"string\" ? props.owner.label : messages().datePicker}\n onToggle={(event) => {\n const nextOpen = event.newState === \"open\";\n setOpen(nextOpen);\n if (nextOpen) queueMicrotask(place);\n }}\n >\n {props.children(close)}\n <Show when={props.footerMeta || props.timezone}>\n <footer class=\"k2b-date-popover__footer\">\n <span>{props.footerMeta?.()}</span>\n <Show when={props.timezone}>\n <span class=\"k2b-date-popover__timezone\">\n <i class=\"ti ti-world\" aria-hidden=\"true\" />\n {props.timezone}\n </span>\n </Show>\n </footer>\n </Show>\n </div>\n </div>\n </Field>\n );\n}\n\nfunction PresetRail<T>(props: { presets?: readonly DatePreset<T>[]; onSelect: (value: T) => void }): JSX.Element {\n const messages = useUiMessages();\n return (\n <Show when={props.presets?.length}>\n <aside class=\"k2b-date-presets\" aria-label={messages().datePresets}>\n <For each={props.presets}>\n {(preset) => (\n <button type=\"button\" onClick={() => props.onSelect(preset.value)}>\n {preset.label}\n </button>\n )}\n </For>\n </aside>\n </Show>\n );\n}\n\nfunction DatePickerPanel(props: {\n visibleMonth: () => Date;\n setVisibleMonth: (date: Date) => void;\n selected?: () => string | null | undefined;\n range?: () => DateRangeValue;\n focusDate?: () => string | null | undefined;\n onSelect: (date: string) => void;\n onDayPreview?: (date: string | null) => void;\n dateConfig?: DateContext;\n}): JSX.Element {\n const messages = useUiMessages();\n const [view, setView] = createSignal<PanelView>(\"days\");\n const context = createMemo(() => pickerContext(props.dateConfig));\n const month = createMemo(() => yearMonth(props.visibleMonth(), context()));\n const weeks = createMemo(() => dates.getMonthGrid(month().year, month().month, context()));\n const weekdays = createMemo(() => dates.weekdays(context()));\n const months = createMemo(() => monthNames(context()));\n const dayNameFormatter = createMemo(\n () =>\n new Intl.DateTimeFormat(context().locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: context().timeZone,\n }),\n );\n const dayRows = createMemo(() => {\n const visibleMonth = props.visibleMonth();\n const dateContext = context();\n const formatter = dayNameFormatter();\n return weeks().map((week) =>\n week.map((day) => ({\n day,\n key: dates.formatDateKey(day, dateContext),\n outside: !dates.isSameMonth(day, visibleMonth, dateContext),\n label: formatter.format(day),\n number: dates.formatDayNumber(day, dateContext),\n })),\n );\n });\n let calendar: HTMLElement | undefined;\n // Days that belong to the visible month; the roving tabindex must land on one\n // of them or the grid becomes unreachable by keyboard after month navigation.\n const monthDayKeys = createMemo(() =>\n dayRows()\n .flat()\n .filter((day) => !day.outside)\n .map((day) => day.key),\n );\n // Remembers where arrow-key navigation left off so Tab returns to that day.\n const [focusedKey, setFocusedKey] = createSignal<string>();\n const defaultFocus = createMemo(() =>\n resolveFocusDay(\n monthDayKeys(),\n focusedKey() || props.focusDate?.() || props.selected?.() || dateKey(dates.today(context()), context()),\n ),\n );\n\n const moveMonth = (delta: number) => props.setVisibleMonth(dates.addMonths(props.visibleMonth(), delta, context()));\n const moveYear = (delta: number) => props.setVisibleMonth(monthDate(month().year + delta, month().month, context()));\n const previousLabel = () => (view() === \"days\" ? messages().previousMonth : messages().previousYear);\n const nextLabel = () => (view() === \"days\" ? messages().nextMonth : messages().nextYear);\n\n const focusDate = (date: Date) => {\n const targetKey = dateKey(date, context());\n if (!dates.isSameMonth(date, props.visibleMonth(), context())) props.setVisibleMonth(date);\n queueMicrotask(() => calendar?.querySelector<HTMLElement>(`[data-date-day=\"${targetKey}\"]`)?.focus());\n };\n\n const handleDayKeyDown = (event: KeyboardEvent, day: Date) => {\n const deltas: Partial<Record<string, number>> = { ArrowLeft: -1, ArrowRight: 1, ArrowUp: -7, ArrowDown: 7 };\n const delta = deltas[event.key];\n if (delta !== undefined) {\n event.preventDefault();\n focusDate(dates.addDays(day, delta, context()));\n return;\n }\n if (event.key === \"PageUp\" || event.key === \"PageDown\") {\n event.preventDefault();\n focusDate(dates.addMonths(day, event.key === \"PageUp\" ? -1 : 1, context()));\n return;\n }\n if (event.key === \"Home\" || event.key === \"End\") {\n event.preventDefault();\n const buttons = Array.from(\n (event.currentTarget as HTMLButtonElement).closest(\".k2b-date-grid\")!.querySelectorAll<HTMLButtonElement>(\"[data-date-day]\"),\n );\n const index = buttons.indexOf(event.currentTarget as HTMLButtonElement);\n const offset = event.key === \"Home\" ? -(index % 7) : 6 - (index % 7);\n focusDate(dates.addDays(day, offset, context()));\n }\n };\n\n return (\n <section ref={calendar} class=\"k2b-date-calendar\" aria-label={messages().calendar}>\n <header class=\"k2b-date-calendar__header\">\n <button\n type=\"button\"\n class=\"k2b-date-calendar__nav\"\n onClick={() => (view() === \"days\" ? moveMonth(-1) : moveYear(-1))}\n aria-label={previousLabel()}\n >\n <i class=\"ti ti-chevron-left\" aria-hidden=\"true\" />\n </button>\n <button type=\"button\" class=\"k2b-date-calendar__title\" onClick={() => setView(view() === \"days\" ? \"months\" : \"days\")}>\n <Show when={view() === \"days\"} fallback={month().year}>\n {dates.formatMonthYear(props.visibleMonth(), context())}\n </Show>\n </button>\n <button\n type=\"button\"\n class=\"k2b-date-calendar__nav\"\n onClick={() => (view() === \"days\" ? moveMonth(1) : moveYear(1))}\n aria-label={nextLabel()}\n >\n <i class=\"ti ti-chevron-right\" aria-hidden=\"true\" />\n </button>\n </header>\n\n <Show\n when={view() === \"days\"}\n fallback={\n <div class=\"k2b-date-months\" role=\"group\" aria-label={`Months in ${month().year}`}>\n <For each={months()}>\n {(name, index) => (\n <button\n type=\"button\"\n aria-pressed={index() === month().month}\n data-selected={index() === month().month ? \"true\" : undefined}\n onClick={() => {\n props.setVisibleMonth(monthDate(month().year, index(), context()));\n setView(\"days\");\n }}\n >\n {name}\n </button>\n )}\n </For>\n </div>\n }\n >\n <div class=\"k2b-date-weekdays\" aria-hidden=\"true\">\n <For each={weekdays()}>{(day) => <span>{day}</span>}</For>\n </div>\n <div class=\"k2b-date-grid\" role=\"grid\">\n <For each={dayRows()}>\n {(week) => (\n <div class=\"k2b-date-week\" role=\"row\">\n <For each={week}>\n {(cell) => {\n const selected = () => props.selected?.() === cell.key;\n const range = () => props.range?.() ?? { start: null, end: null };\n const active = () => selected() || isRangeEdge(cell.key, range());\n const focusable = () => cell.key === defaultFocus();\n return (\n <button\n type=\"button\"\n role=\"gridcell\"\n data-date-day={cell.key}\n data-date-focus={focusable() ? \"true\" : undefined}\n data-outside={cell.outside ? \"true\" : undefined}\n data-in-range={inRange(cell.key, range()) && !active() ? \"true\" : undefined}\n aria-label={cell.label}\n aria-selected={active()}\n tabIndex={focusable() ? 0 : -1}\n onClick={() => props.onSelect(cell.key)}\n onKeyDown={(event) => handleDayKeyDown(event, cell.day)}\n onBlur={() => props.onDayPreview?.(null)}\n onFocus={() => {\n setFocusedKey(cell.key);\n props.onDayPreview?.(cell.key);\n }}\n onPointerEnter={() => props.onDayPreview?.(cell.key)}\n onPointerLeave={() => props.onDayPreview?.(null)}\n >\n {cell.number}\n </button>\n );\n }}\n </For>\n </div>\n )}\n </For>\n </div>\n </Show>\n </section>\n );\n}\n\nfunction TimeInput(props: { time: string; onChange: (time: string) => void; label?: string }): JSX.Element {\n const messages = useUiMessages();\n return (\n <label class=\"k2b-date-time\">\n <Show when={props.label}>\n <span>{props.label}</span>\n </Show>\n <span class=\"k2b-date-time__control\">\n <input\n type=\"text\"\n inputMode=\"numeric\"\n value={props.time}\n placeholder=\"09:00\"\n onInput={(event) => props.onChange(filterTimeInput(event.currentTarget.value))}\n onBlur={() => props.onChange(normalizeTimeInput(props.time))}\n aria-label={props.label ? messages().timeLabel({ label: props.label }) : messages().time}\n />\n <i class=\"ti ti-clock\" aria-hidden=\"true\" />\n </span>\n </label>\n );\n}\n\nexport function DatePicker(props: DatePickerProps): JSX.Element {\n const value = () => resolveMaybeAccessor(props.value);\n const dateConfig = useDateConfigLocale(() => props.dateConfig);\n const [visibleMonth, setVisibleMonth] = createSignal(parseDateValue(value(), dateConfig()));\n const valueLabel = () => displayDate(value(), dateConfig());\n\n return (\n <PickerShell\n owner={props}\n icon=\"ti ti-calendar\"\n valueLabel={valueLabel}\n clearValue={null}\n onOpen={() => setVisibleMonth(parseDateValue(value(), dateConfig()))}\n wide={Boolean(props.presets?.length)}\n >\n {(close) => (\n <div class=\"k2b-date-popover__body\">\n <PresetRail\n presets={props.presets}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n />\n <DatePickerPanel\n visibleMonth={visibleMonth}\n setVisibleMonth={setVisibleMonth}\n selected={value}\n focusDate={value}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n dateConfig={dateConfig()}\n />\n </div>\n )}\n </PickerShell>\n );\n}\n\nexport function DateTimePicker(props: DateTimePickerProps): JSX.Element {\n const value = () => resolveMaybeAccessor(props.value);\n const dateConfig = useDateConfigLocale(() => props.dateConfig);\n const parts = () => splitDateTime(value(), dateConfig());\n const [visibleMonth, setVisibleMonth] = createSignal(parseDateValue(parts().date, dateConfig()));\n const [draftDate, setDraftDate] = createSignal(parts().date);\n const [draftTime, setDraftTime] = createSignal(parts().time || \"09:00\");\n const valueLabel = () => formatDateTimeValue(value(), dateConfig());\n\n const syncDraft = () => {\n const next = parts();\n setDraftDate(next.date);\n setDraftTime(next.time || \"09:00\");\n setVisibleMonth(parseDateValue(next.date, dateConfig()));\n };\n\n return (\n <PickerShell\n owner={props}\n icon=\"ti ti-calendar-time\"\n valueLabel={valueLabel}\n clearValue={null}\n timezone={dateConfig().timeZone}\n onOpen={syncDraft}\n wide={Boolean(props.presets?.length)}\n >\n {(close) => (\n <>\n <div class=\"k2b-date-popover__body\">\n <PresetRail\n presets={props.presets}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n />\n <DatePickerPanel\n visibleMonth={visibleMonth}\n setVisibleMonth={setVisibleMonth}\n selected={draftDate}\n focusDate={draftDate}\n onSelect={(value) => {\n setDraftDate(value);\n setVisibleMonth(parseDateValue(value, dateConfig()));\n }}\n dateConfig={dateConfig()}\n />\n </div>\n <div class=\"k2b-date-actions\">\n <TimeInput time={draftTime()} onChange={setDraftTime} />\n <button\n type=\"button\"\n class=\"k2b-date-apply\"\n disabled={!draftDate() || !isCompleteTime(draftTime())}\n onClick={() => {\n if (!draftDate() || !isCompleteTime(draftTime())) return;\n const value = toDateTimeValue(draftDate(), draftTime(), dateConfig());\n close();\n commitFieldValue(props, value);\n }}\n >\n Apply\n </button>\n </div>\n </>\n )}\n </PickerShell>\n );\n}\n\nexport function DateRangePicker(props: DateRangePickerProps): JSX.Element {\n const messages = useUiMessages();\n const withTime = () => props.withTime ?? false;\n const value = () => resolveMaybeAccessor(props.value);\n const dateConfig = useDateConfigLocale(() => props.dateConfig);\n const parts = () => ({\n start: withTime() ? splitDateTime(value().start, dateConfig()) : { date: value().start ?? \"\", time: \"09:00\" },\n end: withTime() ? splitDateTime(value().end, dateConfig()) : { date: value().end ?? \"\", time: \"10:00\" },\n });\n const [visibleMonth, setVisibleMonth] = createSignal(parseDateValue(parts().start.date || parts().end.date, dateConfig()));\n const [draftRange, setDraftRange] = createSignal<DateRangeValue>({\n start: parts().start.date || null,\n end: parts().end.date || null,\n });\n const [previewDate, setPreviewDate] = createSignal<string | null>(null);\n const [startTime, setStartTime] = createSignal(parts().start.time || \"09:00\");\n const [endTime, setEndTime] = createSignal(parts().end.time || \"10:00\");\n const displayRange = createMemo(() => previewRange(draftRange(), previewDate()));\n\n const syncDraft = () => {\n const next = parts();\n setDraftRange({ start: next.start.date || null, end: next.end.date || null });\n setPreviewDate(null);\n setStartTime(next.start.time || \"09:00\");\n setEndTime(next.end.time || \"10:00\");\n setVisibleMonth(parseDateValue(next.start.date || next.end.date, dateConfig()));\n };\n\n const valueLabel = () => {\n if (!value().start && !value().end) return \"\";\n const format = withTime() ? formatDateTimeValue : displayDate;\n return `${value().start ? format(value().start, dateConfig()) : \"Start\"} to ${value().end ? format(value().end, dateConfig()) : \"End\"}`;\n };\n\n const valueContent = () => {\n const format = withTime() ? formatDateTimeValue : displayDate;\n return (\n <span class=\"k2b-date-range-value\">\n <span>{value().start ? format(value().start, dateConfig()) : messages().start}</span>\n <i class=\"ti ti-arrow-narrow-right\" aria-hidden=\"true\" />\n <span>{value().end ? format(value().end, dateConfig()) : \"End\"}</span>\n </span>\n );\n };\n\n const selectDate = (value: string) => {\n const current = draftRange();\n if (!current.start || current.end) {\n setDraftRange({ start: value, end: null });\n } else {\n setDraftRange(orderedRange(current.start, value));\n }\n setPreviewDate(null);\n };\n\n const applyDuration = (minutes: number) => {\n const current = draftRange();\n if (!current.start || !isCompleteTime(startTime())) return;\n const start = toDateTimeValue(current.start, startTime(), dateConfig());\n if (!start) return;\n const end = new Date(new Date(start).getTime() + minutes * 60_000).toISOString();\n const next = splitDateTime(end, dateConfig());\n setDraftRange({ start: current.start, end: next.date || current.end || current.start });\n setEndTime(next.time || endTime());\n };\n\n const durationMinutes = createMemo(() => {\n const current = displayRange();\n if (!current.start || !current.end || !isCompleteTime(startTime()) || !isCompleteTime(endTime())) return null;\n const start = toDateTimeValue(current.start, startTime(), dateConfig());\n const end = toDateTimeValue(current.end, endTime(), dateConfig());\n if (!start || !end) return null;\n return Math.round((new Date(end).getTime() - new Date(start).getTime()) / 60_000);\n });\n\n const durationLabel = () => {\n const current = displayRange();\n if (!current.start || !current.end) return \"\";\n if (!withTime()) return formatDateOnlyRangeDuration(current, dateConfig());\n if (!isCompleteTime(startTime()) || !isCompleteTime(endTime())) return \"\";\n const start = toDateTimeValue(current.start, startTime(), dateConfig());\n const end = toDateTimeValue(current.end, endTime(), dateConfig());\n return start && end ? dates.formatDuration(start, end, dateConfig()) : \"\";\n };\n\n const commit = (close: () => void) => {\n const current = draftRange();\n if (!withTime()) {\n close();\n commitFieldValue(props, current);\n return;\n }\n if ((current.start || current.end) && (!isCompleteTime(startTime()) || !isCompleteTime(endTime()))) return;\n const value = {\n start: current.start ? toDateTimeValue(current.start, startTime(), dateConfig()) : null,\n end: current.end ? toDateTimeValue(current.end, endTime(), dateConfig()) : null,\n };\n close();\n commitFieldValue(props, value);\n };\n\n return (\n <PickerShell\n owner={props}\n icon=\"ti ti-calendar-stats\"\n valueLabel={valueLabel}\n valueContent={valueContent}\n clearValue={{ start: null, end: null }}\n timezone={withTime() ? dateConfig().timeZone : undefined}\n footerMeta={() => (\n <Show when={durationLabel()}>\n <span class=\"k2b-date-duration\">\n <i class=\"ti ti-hourglass-low\" aria-hidden=\"true\" />\n {durationLabel()}\n </span>\n </Show>\n )}\n onOpen={syncDraft}\n wide={Boolean(props.datePresets?.length || props.presets?.length)}\n >\n {(close) => (\n <>\n <div class=\"k2b-date-popover__body\">\n <Show\n when={props.datePresets?.length}\n fallback={\n <PresetRail\n presets={props.presets}\n onSelect={(value) => {\n close();\n commitFieldValue(props, value);\n }}\n />\n }\n >\n <PresetRail\n presets={props.datePresets}\n onSelect={(value) => {\n setDraftRange(value ? { start: value, end: value } : { start: null, end: null });\n if (value) setVisibleMonth(parseDateValue(value, dateConfig()));\n }}\n />\n </Show>\n <DatePickerPanel\n visibleMonth={visibleMonth}\n setVisibleMonth={setVisibleMonth}\n range={displayRange}\n focusDate={() => draftRange().start}\n onSelect={selectDate}\n onDayPreview={(value) => {\n const current = draftRange();\n setPreviewDate(current.start && !current.end ? value : null);\n }}\n dateConfig={dateConfig()}\n />\n </div>\n\n <Show when={withTime()}>\n <div class=\"k2b-date-range-times\">\n <TimeInput label={messages().start} time={startTime()} onChange={setStartTime} />\n <TimeInput label={messages().end} time={endTime()} onChange={setEndTime} />\n </div>\n </Show>\n\n <div class=\"k2b-date-actions\">\n <Show when={withTime() && props.durationPresets?.length}>\n <div class=\"k2b-date-durations\" role=\"group\" aria-label={messages().durationPresets}>\n <For each={props.durationPresets}>\n {(preset) => (\n <button type=\"button\" aria-pressed={durationMinutes() === preset.minutes} onClick={() => applyDuration(preset.minutes)}>\n {preset.label}\n </button>\n )}\n </For>\n </div>\n </Show>\n {/* Only a half-picked range is uncommittable; an empty draft must stay\n applicable so a \"clear\" date preset can be committed. */}\n <button\n type=\"button\"\n class=\"k2b-date-apply\"\n disabled={\n Boolean(draftRange().start) !== Boolean(draftRange().end) ||\n Boolean(\n withTime() && draftRange().start && draftRange().end && (!isCompleteTime(startTime()) || !isCompleteTime(endTime())),\n )\n }\n onClick={() => commit(close)}\n >\n Apply\n </button>\n </div>\n </>\n )}\n </PickerShell>\n );\n}\n"],"mappings":"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","ignoreList":[]}