@k2b/ui 0.3.0 → 0.4.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 (121) hide show
  1. package/dist/browser/actions/index.js +2 -2
  2. package/dist/browser/actions/index.js.map +1 -1
  3. package/dist/browser/chat/ChatComposer.js +1 -1
  4. package/dist/browser/chat/ChatComposer.js.map +1 -1
  5. package/dist/browser/chat/ChatContextPopup.js.map +1 -1
  6. package/dist/browser/chat/ChatPrimitives.js +2 -2
  7. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  8. package/dist/browser/chat/ChatTasks.js +1 -1
  9. package/dist/browser/chat/ChatTasks.js.map +1 -1
  10. package/dist/browser/chat/ChatTimeline.js +1 -1
  11. package/dist/browser/chat/ChatTimeline.js.map +1 -1
  12. package/dist/browser/chat/composer-document.js.map +1 -1
  13. package/dist/browser/chat/index.js.map +1 -1
  14. package/dist/browser/content/Chart.js +3 -3
  15. package/dist/browser/content/Chart.js.map +1 -1
  16. package/dist/browser/content/ChartExplorer.js +4 -4
  17. package/dist/browser/content/ChartExplorer.js.map +1 -1
  18. package/dist/browser/content/ChartExplorerControls.js +1 -1
  19. package/dist/browser/content/ChartExplorerControls.js.map +1 -1
  20. package/dist/browser/content/ChartFilterControls.js +2 -2
  21. package/dist/browser/content/ChartFilterControls.js.map +1 -1
  22. package/dist/browser/content/ChartSnapshotView.js +2 -1
  23. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  24. package/dist/browser/content/FileView.js +7 -3
  25. package/dist/browser/content/FileView.js.map +1 -1
  26. package/dist/browser/content/MarkdownView.js.map +1 -1
  27. package/dist/browser/content/Pagination.js.map +1 -1
  28. package/dist/browser/content/chart-explorer.js.map +1 -1
  29. package/dist/browser/content/chart-inspection.js.map +1 -1
  30. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  31. package/dist/browser/content/chart-snapshot.js.map +1 -1
  32. package/dist/browser/content/file-view-preview.js.map +1 -1
  33. package/dist/browser/content/index.js +9 -9
  34. package/dist/browser/content/index.js.map +1 -1
  35. package/dist/browser/feedback/toast.js.map +1 -1
  36. package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
  37. package/dist/browser/inputs/NumberInput.js +9 -1
  38. package/dist/browser/inputs/NumberInput.js.map +1 -1
  39. package/dist/browser/inputs/Select.js.map +1 -1
  40. package/dist/browser/inputs/markdown/behaviors.js +1 -1
  41. package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
  42. package/dist/browser/layout/AppWorkspace.js +264 -248
  43. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  44. package/dist/browser/layout/DetailPanel.js +1 -1
  45. package/dist/browser/layout/DetailPanel.js.map +1 -1
  46. package/dist/browser/layout/ScrollArea.js.map +1 -1
  47. package/dist/browser/layout/SidebarItemPreview.js +1 -1
  48. package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
  49. package/dist/browser/layout/app-workspace-controller.js +1 -1
  50. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  51. package/dist/browser/layout/app-workspace-state.js.map +1 -1
  52. package/dist/browser/layout/index.js +3 -3
  53. package/dist/browser/layout/index.js.map +1 -1
  54. package/dist/ssr/actions/index.js +2 -2
  55. package/dist/ssr/actions/index.js.map +1 -1
  56. package/dist/ssr/chat/ChatComposer.js +1 -1
  57. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  58. package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
  59. package/dist/ssr/chat/ChatPrimitives.js +2 -2
  60. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  61. package/dist/ssr/chat/ChatTasks.js +1 -1
  62. package/dist/ssr/chat/ChatTasks.js.map +1 -1
  63. package/dist/ssr/chat/ChatTimeline.js +1 -1
  64. package/dist/ssr/chat/ChatTimeline.js.map +1 -1
  65. package/dist/ssr/chat/composer-document.js.map +1 -1
  66. package/dist/ssr/chat/index.js.map +1 -1
  67. package/dist/ssr/content/Chart.js +3 -3
  68. package/dist/ssr/content/Chart.js.map +1 -1
  69. package/dist/ssr/content/ChartExplorer.js +4 -4
  70. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  71. package/dist/ssr/content/ChartExplorerControls.js +1 -1
  72. package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
  73. package/dist/ssr/content/ChartFilterControls.js +2 -2
  74. package/dist/ssr/content/ChartFilterControls.js.map +1 -1
  75. package/dist/ssr/content/ChartSnapshotView.js +2 -1
  76. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  77. package/dist/ssr/content/FileView.js +7 -3
  78. package/dist/ssr/content/FileView.js.map +1 -1
  79. package/dist/ssr/content/MarkdownView.js.map +1 -1
  80. package/dist/ssr/content/Pagination.js.map +1 -1
  81. package/dist/ssr/content/chart-explorer.js.map +1 -1
  82. package/dist/ssr/content/chart-inspection.js.map +1 -1
  83. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  84. package/dist/ssr/content/chart-snapshot.js.map +1 -1
  85. package/dist/ssr/content/file-view-preview.js.map +1 -1
  86. package/dist/ssr/content/index.js +9 -9
  87. package/dist/ssr/content/index.js.map +1 -1
  88. package/dist/ssr/feedback/toast.js.map +1 -1
  89. package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
  90. package/dist/ssr/inputs/NumberInput.js +9 -1
  91. package/dist/ssr/inputs/NumberInput.js.map +1 -1
  92. package/dist/ssr/inputs/Select.js.map +1 -1
  93. package/dist/ssr/inputs/markdown/behaviors.js +1 -1
  94. package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
  95. package/dist/ssr/layout/AppWorkspace.js +74 -62
  96. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  97. package/dist/ssr/layout/DetailPanel.js +1 -1
  98. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  99. package/dist/ssr/layout/ScrollArea.js.map +1 -1
  100. package/dist/ssr/layout/SidebarItemPreview.js +1 -1
  101. package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
  102. package/dist/ssr/layout/app-workspace-controller.js +1 -1
  103. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  104. package/dist/ssr/layout/app-workspace-state.js.map +1 -1
  105. package/dist/ssr/layout/index.js +3 -3
  106. package/dist/ssr/layout/index.js.map +1 -1
  107. package/dist/styles.css +1 -1
  108. package/dist/types/actions/index.d.ts +4 -4
  109. package/dist/types/chat/ChatComposer.d.ts +1 -1
  110. package/dist/types/chat/index.d.ts +1 -1
  111. package/dist/types/content/Chart.d.ts +2 -2
  112. package/dist/types/content/ChartExplorer.d.ts +2 -2
  113. package/dist/types/content/ChartExplorerControls.d.ts +1 -1
  114. package/dist/types/content/ChartSnapshotView.d.ts +1 -1
  115. package/dist/types/content/chart-inspection.d.ts +1 -1
  116. package/dist/types/content/index.d.ts +15 -15
  117. package/dist/types/inputs/NumberInput.d.ts +2 -0
  118. package/dist/types/layout/AppWorkspace.d.ts +1 -1
  119. package/dist/types/layout/SidebarItemPreview.d.ts +1 -1
  120. package/dist/types/layout/index.d.ts +3 -3
  121. package/package.json +2 -4
@@ -1 +1 @@
1
- {"version":3,"names":["insertLink","toggleBold","toggleBulletList","toggleCode","toggleHeading","toggleItalic","toggleNumberedList","replaceTextareaRange","isMac","navigator","test","platform","INLINE_ACTIONS","Map","BLOCK_ACTIONS","element","handleShortcut","event","textarea","isComposing","altKey","metaKey","ctrlKey","action","shiftKey","get","code","key","toLowerCase","LIST_RE","handleListContinuation","value","selectionStart","selectionEnd","lineStart","lastIndexOf","nextNewline","indexOf","lineEnd","length","match","exec","slice","indent","marker","spaces","content","markerEnd","trim","numbered","nextMarker","Number","parseInt","URL_RE","validUrl","URL","handleSmartPaste","clipboardData","getData","replace"],"sources":["inputs/markdown/behaviors.ts"],"sourcesContent":["import { insertLink, toggleBold, toggleBulletList, toggleCode, toggleHeading, toggleItalic, toggleNumberedList } from \"./actions\";\nimport { replaceTextareaRange } from \"../editor-dom\";\n\nconst isMac = (): boolean => typeof navigator !== \"undefined\" && /Mac|iPhone|iPad|iPod/i.test(navigator.platform);\n\ntype EditorAction = (element: HTMLTextAreaElement) => void;\n\n/** Keyed by `event.key.toLowerCase()`. A `Map` (not an object literal) so a\n * key that collides with an `Object.prototype` member — `constructor`,\n * `__proto__`, `valueOf`, … — resolves to \"no shortcut\" instead of picking\n * up an inherited value and throwing inside the keydown handler. */\nconst INLINE_ACTIONS = new Map<string, EditorAction>([\n [\"b\", toggleBold],\n [\"i\", toggleItalic],\n [\"e\", toggleCode],\n [\"k\", insertLink],\n]);\n\n/** Keyed by `event.code` (layout-independent physical key), so Shift+1 maps\n * to H1 on QWERTY, AZERTY and German layouts alike. Same `Map` rationale. */\nconst BLOCK_ACTIONS = new Map<string, EditorAction>([\n [\"Digit1\", (element) => toggleHeading(element, 1)],\n [\"Digit2\", (element) => toggleHeading(element, 2)],\n [\"Digit3\", (element) => toggleHeading(element, 3)],\n [\"Digit7\", toggleNumberedList],\n [\"Digit8\", toggleBulletList],\n]);\n\nexport const handleShortcut = (event: KeyboardEvent, textarea: HTMLTextAreaElement): boolean => {\n if (event.isComposing || event.altKey) return false;\n if (!(isMac() ? event.metaKey : event.ctrlKey)) return false;\n const action = event.shiftKey ? BLOCK_ACTIONS.get(event.code) : INLINE_ACTIONS.get(event.key.toLowerCase());\n if (!action) return false;\n action(textarea);\n return true;\n};\n\nconst LIST_RE = /^(\\s*)([-*+]|\\d+\\.)(\\s+)(.*)$/;\n\nexport const handleListContinuation = (textarea: HTMLTextAreaElement): boolean => {\n const { value, selectionStart, selectionEnd } = textarea;\n if (selectionStart !== selectionEnd) return false;\n const lineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const nextNewline = value.indexOf(\"\\n\", selectionStart);\n const lineEnd = nextNewline === -1 ? value.length : nextNewline;\n const match = LIST_RE.exec(value.slice(lineStart, lineEnd));\n if (!match) return false;\n\n const [, indent = \"\", marker = \"-\", spaces = \" \", content = \"\"] = match;\n const markerEnd = lineStart + indent.length + marker.length + spaces.length;\n if (selectionStart < markerEnd) return false;\n if (content.trim() === \"\") {\n replaceTextareaRange(textarea, lineStart, lineEnd, \"\");\n return true;\n }\n const numbered = /^(\\d+)\\.$/.exec(marker);\n const nextMarker = numbered ? `${Number.parseInt(numbered[1]!, 10) + 1}.` : marker;\n replaceTextareaRange(textarea, selectionStart, selectionStart, `\\n${indent}${nextMarker}${spaces}`);\n return true;\n};\n\nconst URL_RE = /^https?:\\/\\/\\S+$/;\nconst validUrl = (value: string): boolean => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const handleSmartPaste = (event: ClipboardEvent, textarea: HTMLTextAreaElement): boolean => {\n const value = event.clipboardData?.getData(\"text/plain\").trim();\n if (!value || !URL_RE.test(value) || !validUrl(value) || textarea.selectionStart === textarea.selectionEnd) {\n return false;\n }\n insertLink(textarea, value.replace(/\\(/g, \"%28\").replace(/\\)/g, \"%29\"));\n return true;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["replaceTextareaRange","insertLink","toggleBold","toggleBulletList","toggleCode","toggleHeading","toggleItalic","toggleNumberedList","isMac","navigator","test","platform","INLINE_ACTIONS","Map","BLOCK_ACTIONS","element","handleShortcut","event","textarea","isComposing","altKey","metaKey","ctrlKey","action","shiftKey","get","code","key","toLowerCase","LIST_RE","handleListContinuation","value","selectionStart","selectionEnd","lineStart","lastIndexOf","nextNewline","indexOf","lineEnd","length","match","exec","slice","indent","marker","spaces","content","markerEnd","trim","numbered","nextMarker","Number","parseInt","URL_RE","validUrl","URL","handleSmartPaste","clipboardData","getData","replace"],"sources":["inputs/markdown/behaviors.ts"],"sourcesContent":["import { replaceTextareaRange } from \"../editor-dom\";\nimport { insertLink, toggleBold, toggleBulletList, toggleCode, toggleHeading, toggleItalic, toggleNumberedList } from \"./actions\";\n\nconst isMac = (): boolean => typeof navigator !== \"undefined\" && /Mac|iPhone|iPad|iPod/i.test(navigator.platform);\n\ntype EditorAction = (element: HTMLTextAreaElement) => void;\n\n/** Keyed by `event.key.toLowerCase()`. A `Map` (not an object literal) so a\n * key that collides with an `Object.prototype` member — `constructor`,\n * `__proto__`, `valueOf`, … — resolves to \"no shortcut\" instead of picking\n * up an inherited value and throwing inside the keydown handler. */\nconst INLINE_ACTIONS = new Map<string, EditorAction>([\n [\"b\", toggleBold],\n [\"i\", toggleItalic],\n [\"e\", toggleCode],\n [\"k\", insertLink],\n]);\n\n/** Keyed by `event.code` (layout-independent physical key), so Shift+1 maps\n * to H1 on QWERTY, AZERTY and German layouts alike. Same `Map` rationale. */\nconst BLOCK_ACTIONS = new Map<string, EditorAction>([\n [\"Digit1\", (element) => toggleHeading(element, 1)],\n [\"Digit2\", (element) => toggleHeading(element, 2)],\n [\"Digit3\", (element) => toggleHeading(element, 3)],\n [\"Digit7\", toggleNumberedList],\n [\"Digit8\", toggleBulletList],\n]);\n\nexport const handleShortcut = (event: KeyboardEvent, textarea: HTMLTextAreaElement): boolean => {\n if (event.isComposing || event.altKey) return false;\n if (!(isMac() ? event.metaKey : event.ctrlKey)) return false;\n const action = event.shiftKey ? BLOCK_ACTIONS.get(event.code) : INLINE_ACTIONS.get(event.key.toLowerCase());\n if (!action) return false;\n action(textarea);\n return true;\n};\n\nconst LIST_RE = /^(\\s*)([-*+]|\\d+\\.)(\\s+)(.*)$/;\n\nexport const handleListContinuation = (textarea: HTMLTextAreaElement): boolean => {\n const { value, selectionStart, selectionEnd } = textarea;\n if (selectionStart !== selectionEnd) return false;\n const lineStart = value.lastIndexOf(\"\\n\", selectionStart - 1) + 1;\n const nextNewline = value.indexOf(\"\\n\", selectionStart);\n const lineEnd = nextNewline === -1 ? value.length : nextNewline;\n const match = LIST_RE.exec(value.slice(lineStart, lineEnd));\n if (!match) return false;\n\n const [, indent = \"\", marker = \"-\", spaces = \" \", content = \"\"] = match;\n const markerEnd = lineStart + indent.length + marker.length + spaces.length;\n if (selectionStart < markerEnd) return false;\n if (content.trim() === \"\") {\n replaceTextareaRange(textarea, lineStart, lineEnd, \"\");\n return true;\n }\n const numbered = /^(\\d+)\\.$/.exec(marker);\n const nextMarker = numbered ? `${Number.parseInt(numbered[1]!, 10) + 1}.` : marker;\n replaceTextareaRange(textarea, selectionStart, selectionStart, `\\n${indent}${nextMarker}${spaces}`);\n return true;\n};\n\nconst URL_RE = /^https?:\\/\\/\\S+$/;\nconst validUrl = (value: string): boolean => {\n try {\n new URL(value);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const handleSmartPaste = (event: ClipboardEvent, textarea: HTMLTextAreaElement): boolean => {\n const value = event.clipboardData?.getData(\"text/plain\").trim();\n if (!value || !URL_RE.test(value) || !validUrl(value) || textarea.selectionStart === textarea.selectionEnd) {\n return false;\n }\n insertLink(textarea, value.replace(/\\(/g, \"%28\").replace(/\\)/g, \"%29\"));\n return true;\n};\n"],"mappings":"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","ignoreList":[]}