@canonical/react-ds-app-launchpad 0.15.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/lib/DiffChangeMarker/icons.js +3 -3
- package/dist/esm/lib/DiffChangeMarker/icons.js.map +1 -1
- package/dist/esm/lib/FileTree/common/SearchBox/styles.css +1 -0
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/CodeDiffViewer.js +2 -2
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/CodeDiffViewer.js.map +1 -1
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/DiffLine.js +1 -1
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/DiffLine.js.map +1 -1
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/styles.css +45 -45
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/common/icons.js +1 -1
- package/dist/esm/lib/GitDiffViewer/common/CodeDiffViewer/common/icons.js.map +1 -1
- package/dist/esm/lib/MarkdownEditor/styles.css +1 -0
- package/package.json +10 -10
- package/dist/esm/ui/DiffChangeMarker/DiffChangeMarker.js +0 -47
- package/dist/esm/ui/DiffChangeMarker/DiffChangeMarker.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/DetailedChangeMarker.js +0 -8
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/DetailedChangeMarker.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/index.js +0 -4
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/index.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/styles.css +0 -21
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/types.js +0 -2
- package/dist/esm/ui/DiffChangeMarker/common/DetailedChangeMarker/types.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/SimpleChangeMarker.js +0 -11
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/SimpleChangeMarker.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/index.js +0 -4
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/index.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/styles.css +0 -29
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/types.js +0 -2
- package/dist/esm/ui/DiffChangeMarker/common/SimpleChangeMarker/types.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/common/index.js +0 -3
- package/dist/esm/ui/DiffChangeMarker/common/index.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/icons.js +0 -5
- package/dist/esm/ui/DiffChangeMarker/icons.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/index.js +0 -4
- package/dist/esm/ui/DiffChangeMarker/index.js.map +0 -1
- package/dist/esm/ui/DiffChangeMarker/styles.css +0 -30
- package/dist/esm/ui/DiffChangeMarker/types.js +0 -2
- package/dist/esm/ui/DiffChangeMarker/types.js.map +0 -1
- package/dist/esm/ui/EditableBlock/Context.js +0 -4
- package/dist/esm/ui/EditableBlock/Context.js.map +0 -1
- package/dist/esm/ui/EditableBlock/EditableBlock.js +0 -37
- package/dist/esm/ui/EditableBlock/EditableBlock.js.map +0 -1
- package/dist/esm/ui/EditableBlock/hooks/index.js +0 -2
- package/dist/esm/ui/EditableBlock/hooks/index.js.map +0 -1
- package/dist/esm/ui/EditableBlock/hooks/useEditableBlock.js +0 -11
- package/dist/esm/ui/EditableBlock/hooks/useEditableBlock.js.map +0 -1
- package/dist/esm/ui/EditableBlock/index.js +0 -3
- package/dist/esm/ui/EditableBlock/index.js.map +0 -1
- package/dist/esm/ui/EditableBlock/styles.css +0 -38
- package/dist/esm/ui/EditableBlock/types.js +0 -2
- package/dist/esm/ui/EditableBlock/types.js.map +0 -1
- package/dist/esm/ui/FileTree/Context.js +0 -4
- package/dist/esm/ui/FileTree/Context.js.map +0 -1
- package/dist/esm/ui/FileTree/Provider.js +0 -74
- package/dist/esm/ui/FileTree/Provider.js.map +0 -1
- package/dist/esm/ui/FileTree/common/File/File.js +0 -12
- package/dist/esm/ui/FileTree/common/File/File.js.map +0 -1
- package/dist/esm/ui/FileTree/common/File/index.js +0 -4
- package/dist/esm/ui/FileTree/common/File/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/File/styles.css +0 -4
- package/dist/esm/ui/FileTree/common/File/types.js +0 -2
- package/dist/esm/ui/FileTree/common/File/types.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Folder/Folder.js +0 -12
- package/dist/esm/ui/FileTree/common/Folder/Folder.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Folder/index.js +0 -4
- package/dist/esm/ui/FileTree/common/Folder/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Folder/styles.css +0 -4
- package/dist/esm/ui/FileTree/common/Folder/types.js +0 -2
- package/dist/esm/ui/FileTree/common/Folder/types.js.map +0 -1
- package/dist/esm/ui/FileTree/common/IndentationBlock/IndentationBlock.js +0 -16
- package/dist/esm/ui/FileTree/common/IndentationBlock/IndentationBlock.js.map +0 -1
- package/dist/esm/ui/FileTree/common/IndentationBlock/index.js +0 -4
- package/dist/esm/ui/FileTree/common/IndentationBlock/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/IndentationBlock/styles.css +0 -32
- package/dist/esm/ui/FileTree/common/IndentationBlock/types.js +0 -2
- package/dist/esm/ui/FileTree/common/IndentationBlock/types.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Node/Context.js +0 -10
- package/dist/esm/ui/FileTree/common/Node/Context.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Node/Provider.js +0 -165
- package/dist/esm/ui/FileTree/common/Node/Provider.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Node/hooks/index.js +0 -2
- package/dist/esm/ui/FileTree/common/Node/hooks/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Node/hooks/useNode.js +0 -12
- package/dist/esm/ui/FileTree/common/Node/hooks/useNode.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Node/index.js +0 -4
- package/dist/esm/ui/FileTree/common/Node/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/Node/styles.css +0 -56
- package/dist/esm/ui/FileTree/common/Node/types.js +0 -2
- package/dist/esm/ui/FileTree/common/Node/types.js.map +0 -1
- package/dist/esm/ui/FileTree/common/SearchBox/SearchBox.js +0 -31
- package/dist/esm/ui/FileTree/common/SearchBox/SearchBox.js.map +0 -1
- package/dist/esm/ui/FileTree/common/SearchBox/index.js +0 -4
- package/dist/esm/ui/FileTree/common/SearchBox/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/SearchBox/styles.css +0 -65
- package/dist/esm/ui/FileTree/common/SearchBox/types.js +0 -2
- package/dist/esm/ui/FileTree/common/SearchBox/types.js.map +0 -1
- package/dist/esm/ui/FileTree/common/TreeView/TreeView.js +0 -60
- package/dist/esm/ui/FileTree/common/TreeView/TreeView.js.map +0 -1
- package/dist/esm/ui/FileTree/common/TreeView/index.js +0 -4
- package/dist/esm/ui/FileTree/common/TreeView/index.js.map +0 -1
- package/dist/esm/ui/FileTree/common/TreeView/types.js +0 -2
- package/dist/esm/ui/FileTree/common/TreeView/types.js.map +0 -1
- package/dist/esm/ui/FileTree/common/index.js +0 -5
- package/dist/esm/ui/FileTree/common/index.js.map +0 -1
- package/dist/esm/ui/FileTree/hooks/index.js +0 -2
- package/dist/esm/ui/FileTree/hooks/index.js.map +0 -1
- package/dist/esm/ui/FileTree/hooks/useFileTree.js +0 -11
- package/dist/esm/ui/FileTree/hooks/useFileTree.js.map +0 -1
- package/dist/esm/ui/FileTree/index.js +0 -10
- package/dist/esm/ui/FileTree/index.js.map +0 -1
- package/dist/esm/ui/FileTree/styles.css +0 -59
- package/dist/esm/ui/FileTree/types.js +0 -2
- package/dist/esm/ui/FileTree/types.js.map +0 -1
- package/dist/esm/ui/FileTree/utils/hashNodeName.js +0 -11
- package/dist/esm/ui/FileTree/utils/hashNodeName.js.map +0 -1
- package/dist/esm/ui/FileTree/utils/index.js +0 -2
- package/dist/esm/ui/FileTree/utils/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/Context.js +0 -4
- package/dist/esm/ui/GitDiffViewer/Context.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/Provider.js +0 -27
- package/dist/esm/ui/GitDiffViewer/Provider.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/CodeDiffViewer.js +0 -74
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/CodeDiffViewer.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/HighlighTheme.css +0 -171
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/AnnotatedDiffLine.js +0 -38
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/AnnotatedDiffLine.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/index.js +0 -4
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/styles.css +0 -15
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/types.js +0 -3
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/types.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/DiffLine.js +0 -36
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/DiffLine.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/index.js +0 -4
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/styles.css +0 -118
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/types.js +0 -2
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/types.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/icons.js +0 -5
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/icons.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/index.js +0 -2
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/common/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/constants.js +0 -2
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/constants.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/index.js +0 -5
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/styles.css +0 -27
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/types.js +0 -2
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/types.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/FileHeader.js +0 -36
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/FileHeader.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/index.js +0 -4
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/styles.css +0 -56
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/types.js +0 -2
- package/dist/esm/ui/GitDiffViewer/common/FileHeader/types.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/common/index.js +0 -3
- package/dist/esm/ui/GitDiffViewer/common/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/hooks/index.js +0 -2
- package/dist/esm/ui/GitDiffViewer/hooks/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/hooks/useGitDiffViewer.js +0 -11
- package/dist/esm/ui/GitDiffViewer/hooks/useGitDiffViewer.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/index.js +0 -9
- package/dist/esm/ui/GitDiffViewer/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/styles.css +0 -26
- package/dist/esm/ui/GitDiffViewer/types.js +0 -2
- package/dist/esm/ui/GitDiffViewer/types.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/utils/highlightDiffHunkLines.js +0 -83
- package/dist/esm/ui/GitDiffViewer/utils/highlightDiffHunkLines.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/utils/index.js +0 -3
- package/dist/esm/ui/GitDiffViewer/utils/index.js.map +0 -1
- package/dist/esm/ui/GitDiffViewer/utils/parseGitDiff.js +0 -96
- package/dist/esm/ui/GitDiffViewer/utils/parseGitDiff.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/MarkdownEditor.js +0 -75
- package/dist/esm/ui/MarkdownEditor/MarkdownEditor.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/Toolbar.js +0 -52
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/Toolbar.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/Button.js +0 -19
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/Button.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/styles.css +0 -17
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/types.js +0 -2
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Button/types.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/Group.js +0 -13
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/Group.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/styles.css +0 -7
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/types.js +0 -2
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Group/types.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/Separator.js +0 -11
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/Separator.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/styles.css +0 -7
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/types.js +0 -2
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/Separator/types.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/common/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/index.js +0 -9
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/styles.css +0 -16
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/types.js +0 -2
- package/dist/esm/ui/MarkdownEditor/common/Toolbar/types.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/ViewModeTabs.js +0 -34
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/ViewModeTabs.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/styles.css +0 -42
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/types.js +0 -2
- package/dist/esm/ui/MarkdownEditor/common/ViewModeTabs/types.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/icons.js +0 -10
- package/dist/esm/ui/MarkdownEditor/common/icons.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/common/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/common/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/hooks/index.js +0 -2
- package/dist/esm/ui/MarkdownEditor/hooks/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/hooks/useEditor.js +0 -274
- package/dist/esm/ui/MarkdownEditor/hooks/useEditor.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/index.js +0 -4
- package/dist/esm/ui/MarkdownEditor/index.js.map +0 -1
- package/dist/esm/ui/MarkdownEditor/styles.css +0 -85
- package/dist/esm/ui/MarkdownEditor/types.js +0 -2
- package/dist/esm/ui/MarkdownEditor/types.js.map +0 -1
- package/dist/esm/ui/RelativeTime/RelativeTime.js +0 -66
- package/dist/esm/ui/RelativeTime/RelativeTime.js.map +0 -1
- package/dist/esm/ui/RelativeTime/index.js +0 -4
- package/dist/esm/ui/RelativeTime/index.js.map +0 -1
- package/dist/esm/ui/RelativeTime/types.js +0 -2
- package/dist/esm/ui/RelativeTime/types.js.map +0 -1
- package/dist/esm/ui/RelativeTime/utils/constants.js +0 -6
- package/dist/esm/ui/RelativeTime/utils/constants.js.map +0 -1
- package/dist/esm/ui/RelativeTime/utils/formatHumanTime.js +0 -43
- package/dist/esm/ui/RelativeTime/utils/formatHumanTime.js.map +0 -1
- package/dist/esm/ui/RelativeTime/utils/getOptimalUpdateInterval.js +0 -24
- package/dist/esm/ui/RelativeTime/utils/getOptimalUpdateInterval.js.map +0 -1
- package/dist/esm/ui/RelativeTime/utils/index.js +0 -4
- package/dist/esm/ui/RelativeTime/utils/index.js.map +0 -1
- package/dist/esm/ui/RelativeTime/utils/parseInstant.js +0 -22
- package/dist/esm/ui/RelativeTime/utils/parseInstant.js.map +0 -1
- package/dist/esm/ui/index.js +0 -7
- package/dist/esm/ui/index.js.map +0 -1
- package/dist/types/ui/DiffChangeMarker/DiffChangeMarker.d.ts +0 -11
- package/dist/types/ui/DiffChangeMarker/DiffChangeMarker.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/DetailedChangeMarker/DetailedChangeMarker.d.ts +0 -6
- package/dist/types/ui/DiffChangeMarker/common/DetailedChangeMarker/DetailedChangeMarker.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/DetailedChangeMarker/index.d.ts +0 -3
- package/dist/types/ui/DiffChangeMarker/common/DetailedChangeMarker/index.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/DetailedChangeMarker/types.d.ts +0 -10
- package/dist/types/ui/DiffChangeMarker/common/DetailedChangeMarker/types.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/SimpleChangeMarker/SimpleChangeMarker.d.ts +0 -6
- package/dist/types/ui/DiffChangeMarker/common/SimpleChangeMarker/SimpleChangeMarker.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/SimpleChangeMarker/index.d.ts +0 -3
- package/dist/types/ui/DiffChangeMarker/common/SimpleChangeMarker/index.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/SimpleChangeMarker/types.d.ts +0 -9
- package/dist/types/ui/DiffChangeMarker/common/SimpleChangeMarker/types.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/common/index.d.ts +0 -3
- package/dist/types/ui/DiffChangeMarker/common/index.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/icons.d.ts +0 -4
- package/dist/types/ui/DiffChangeMarker/icons.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/index.d.ts +0 -3
- package/dist/types/ui/DiffChangeMarker/index.d.ts.map +0 -1
- package/dist/types/ui/DiffChangeMarker/types.d.ts +0 -18
- package/dist/types/ui/DiffChangeMarker/types.d.ts.map +0 -1
- package/dist/types/ui/EditableBlock/Context.d.ts +0 -4
- package/dist/types/ui/EditableBlock/Context.d.ts.map +0 -1
- package/dist/types/ui/EditableBlock/EditableBlock.d.ts +0 -10
- package/dist/types/ui/EditableBlock/EditableBlock.d.ts.map +0 -1
- package/dist/types/ui/EditableBlock/hooks/index.d.ts +0 -2
- package/dist/types/ui/EditableBlock/hooks/index.d.ts.map +0 -1
- package/dist/types/ui/EditableBlock/hooks/useEditableBlock.d.ts +0 -4
- package/dist/types/ui/EditableBlock/hooks/useEditableBlock.d.ts.map +0 -1
- package/dist/types/ui/EditableBlock/index.d.ts +0 -3
- package/dist/types/ui/EditableBlock/index.d.ts.map +0 -1
- package/dist/types/ui/EditableBlock/types.d.ts +0 -26
- package/dist/types/ui/EditableBlock/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/Context.d.ts +0 -4
- package/dist/types/ui/FileTree/Context.d.ts.map +0 -1
- package/dist/types/ui/FileTree/Provider.d.ts +0 -7
- package/dist/types/ui/FileTree/Provider.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/File/File.d.ts +0 -10
- package/dist/types/ui/FileTree/common/File/File.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/File/index.d.ts +0 -3
- package/dist/types/ui/FileTree/common/File/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/File/types.d.ts +0 -16
- package/dist/types/ui/FileTree/common/File/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Folder/Folder.d.ts +0 -10
- package/dist/types/ui/FileTree/common/Folder/Folder.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Folder/index.d.ts +0 -3
- package/dist/types/ui/FileTree/common/Folder/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Folder/types.d.ts +0 -16
- package/dist/types/ui/FileTree/common/Folder/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/IndentationBlock/IndentationBlock.d.ts +0 -10
- package/dist/types/ui/FileTree/common/IndentationBlock/IndentationBlock.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/IndentationBlock/index.d.ts +0 -3
- package/dist/types/ui/FileTree/common/IndentationBlock/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/IndentationBlock/types.d.ts +0 -12
- package/dist/types/ui/FileTree/common/IndentationBlock/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Node/Context.d.ts +0 -5
- package/dist/types/ui/FileTree/common/Node/Context.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Node/Provider.d.ts +0 -6
- package/dist/types/ui/FileTree/common/Node/Provider.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Node/hooks/index.d.ts +0 -2
- package/dist/types/ui/FileTree/common/Node/hooks/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Node/hooks/useNode.d.ts +0 -3
- package/dist/types/ui/FileTree/common/Node/hooks/useNode.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Node/index.d.ts +0 -5
- package/dist/types/ui/FileTree/common/Node/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/Node/types.d.ts +0 -28
- package/dist/types/ui/FileTree/common/Node/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/SearchBox/SearchBox.d.ts +0 -10
- package/dist/types/ui/FileTree/common/SearchBox/SearchBox.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/SearchBox/index.d.ts +0 -3
- package/dist/types/ui/FileTree/common/SearchBox/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/SearchBox/types.d.ts +0 -10
- package/dist/types/ui/FileTree/common/SearchBox/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/TreeView/TreeView.d.ts +0 -16
- package/dist/types/ui/FileTree/common/TreeView/TreeView.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/TreeView/index.d.ts +0 -3
- package/dist/types/ui/FileTree/common/TreeView/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/TreeView/types.d.ts +0 -20
- package/dist/types/ui/FileTree/common/TreeView/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/common/index.d.ts +0 -5
- package/dist/types/ui/FileTree/common/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/hooks/index.d.ts +0 -2
- package/dist/types/ui/FileTree/hooks/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/hooks/useFileTree.d.ts +0 -3
- package/dist/types/ui/FileTree/hooks/useFileTree.d.ts.map +0 -1
- package/dist/types/ui/FileTree/index.d.ts +0 -5
- package/dist/types/ui/FileTree/index.d.ts.map +0 -1
- package/dist/types/ui/FileTree/types.d.ts +0 -73
- package/dist/types/ui/FileTree/types.d.ts.map +0 -1
- package/dist/types/ui/FileTree/utils/hashNodeName.d.ts +0 -3
- package/dist/types/ui/FileTree/utils/hashNodeName.d.ts.map +0 -1
- package/dist/types/ui/FileTree/utils/index.d.ts +0 -2
- package/dist/types/ui/FileTree/utils/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/Context.d.ts +0 -4
- package/dist/types/ui/GitDiffViewer/Context.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/Provider.d.ts +0 -5
- package/dist/types/ui/GitDiffViewer/Provider.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/CodeDiffViewer.d.ts +0 -7
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/CodeDiffViewer.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/AnnotatedDiffLine.d.ts +0 -10
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/AnnotatedDiffLine.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/index.d.ts +0 -3
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/types.d.ts +0 -21
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/AnnotatedDiffLine/types.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/DiffLine.d.ts +0 -11
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/DiffLine.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/index.d.ts +0 -3
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/types.d.ts +0 -34
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/DiffLine/types.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/icons.d.ts +0 -2
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/icons.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/index.d.ts +0 -2
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/common/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/constants.d.ts +0 -2
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/constants.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/index.d.ts +0 -4
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/types.d.ts +0 -34
- package/dist/types/ui/GitDiffViewer/common/CodeDiffViewer/types.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/FileHeader/FileHeader.d.ts +0 -15
- package/dist/types/ui/GitDiffViewer/common/FileHeader/FileHeader.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/FileHeader/index.d.ts +0 -3
- package/dist/types/ui/GitDiffViewer/common/FileHeader/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/FileHeader/types.d.ts +0 -17
- package/dist/types/ui/GitDiffViewer/common/FileHeader/types.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/common/index.d.ts +0 -3
- package/dist/types/ui/GitDiffViewer/common/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/hooks/index.d.ts +0 -2
- package/dist/types/ui/GitDiffViewer/hooks/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/hooks/useGitDiffViewer.d.ts +0 -3
- package/dist/types/ui/GitDiffViewer/hooks/useGitDiffViewer.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/index.d.ts +0 -10
- package/dist/types/ui/GitDiffViewer/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/types.d.ts +0 -75
- package/dist/types/ui/GitDiffViewer/types.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/utils/highlightDiffHunkLines.d.ts +0 -4
- package/dist/types/ui/GitDiffViewer/utils/highlightDiffHunkLines.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/utils/index.d.ts +0 -3
- package/dist/types/ui/GitDiffViewer/utils/index.d.ts.map +0 -1
- package/dist/types/ui/GitDiffViewer/utils/parseGitDiff.d.ts +0 -4
- package/dist/types/ui/GitDiffViewer/utils/parseGitDiff.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/MarkdownEditor.d.ts +0 -10
- package/dist/types/ui/MarkdownEditor/MarkdownEditor.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/Toolbar.d.ts +0 -8
- package/dist/types/ui/MarkdownEditor/common/Toolbar/Toolbar.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Button/Button.d.ts +0 -9
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Button/Button.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Button/index.d.ts +0 -3
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Button/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Button/types.d.ts +0 -14
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Button/types.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Group/Group.d.ts +0 -9
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Group/Group.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Group/index.d.ts +0 -3
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Group/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Group/types.d.ts +0 -14
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Group/types.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Separator/Separator.d.ts +0 -9
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Separator/Separator.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Separator/index.d.ts +0 -3
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Separator/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Separator/types.d.ts +0 -10
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/Separator/types.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/index.d.ts +0 -4
- package/dist/types/ui/MarkdownEditor/common/Toolbar/common/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/index.d.ts +0 -4
- package/dist/types/ui/MarkdownEditor/common/Toolbar/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/Toolbar/types.d.ts +0 -20
- package/dist/types/ui/MarkdownEditor/common/Toolbar/types.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/ViewModeTabs/ViewModeTabs.d.ts +0 -9
- package/dist/types/ui/MarkdownEditor/common/ViewModeTabs/ViewModeTabs.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/ViewModeTabs/index.d.ts +0 -3
- package/dist/types/ui/MarkdownEditor/common/ViewModeTabs/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/ViewModeTabs/types.d.ts +0 -14
- package/dist/types/ui/MarkdownEditor/common/ViewModeTabs/types.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/icons.d.ts +0 -9
- package/dist/types/ui/MarkdownEditor/common/icons.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/common/index.d.ts +0 -4
- package/dist/types/ui/MarkdownEditor/common/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/hooks/index.d.ts +0 -2
- package/dist/types/ui/MarkdownEditor/hooks/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/hooks/useEditor.d.ts +0 -40
- package/dist/types/ui/MarkdownEditor/hooks/useEditor.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/index.d.ts +0 -3
- package/dist/types/ui/MarkdownEditor/index.d.ts.map +0 -1
- package/dist/types/ui/MarkdownEditor/types.d.ts +0 -47
- package/dist/types/ui/MarkdownEditor/types.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/RelativeTime.d.ts +0 -11
- package/dist/types/ui/RelativeTime/RelativeTime.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/index.d.ts +0 -3
- package/dist/types/ui/RelativeTime/index.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/types.d.ts +0 -36
- package/dist/types/ui/RelativeTime/types.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/utils/constants.d.ts +0 -6
- package/dist/types/ui/RelativeTime/utils/constants.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/utils/formatHumanTime.d.ts +0 -21
- package/dist/types/ui/RelativeTime/utils/formatHumanTime.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/utils/getOptimalUpdateInterval.d.ts +0 -8
- package/dist/types/ui/RelativeTime/utils/getOptimalUpdateInterval.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/utils/index.d.ts +0 -4
- package/dist/types/ui/RelativeTime/utils/index.d.ts.map +0 -1
- package/dist/types/ui/RelativeTime/utils/parseInstant.d.ts +0 -9
- package/dist/types/ui/RelativeTime/utils/parseInstant.d.ts.map +0 -1
- package/dist/types/ui/index.d.ts +0 -7
- package/dist/types/ui/index.d.ts.map +0 -1
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect } from "react";
|
|
2
|
-
const useEditor = (textareaRef) => {
|
|
3
|
-
const wrapText = useCallback((character) => {
|
|
4
|
-
const textarea = textareaRef.current;
|
|
5
|
-
if (!textarea)
|
|
6
|
-
return;
|
|
7
|
-
const { selectionStart, selectionEnd } = textarea;
|
|
8
|
-
const isSelected = selectionStart !== selectionEnd;
|
|
9
|
-
textarea.focus();
|
|
10
|
-
if (isSelected) {
|
|
11
|
-
const selectedText = textarea.value.slice(selectionStart, selectionEnd);
|
|
12
|
-
const wrappedText = character + selectedText + character;
|
|
13
|
-
document.execCommand("insertText", false, wrappedText);
|
|
14
|
-
// Adjust selection to exclude the wrapping characters
|
|
15
|
-
const newStart = selectionStart + character.length;
|
|
16
|
-
const newEnd = selectionEnd + character.length;
|
|
17
|
-
textarea.setSelectionRange(newStart, newEnd);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
const insertText = character + character;
|
|
21
|
-
document.execCommand("insertText", false, insertText);
|
|
22
|
-
// Move cursor between the characters
|
|
23
|
-
textarea.setSelectionRange(selectionStart + character.length, selectionStart + character.length);
|
|
24
|
-
}
|
|
25
|
-
}, [textareaRef]);
|
|
26
|
-
const prefixLines = useCallback((prefix) => {
|
|
27
|
-
const textarea = textareaRef.current;
|
|
28
|
-
if (!textarea)
|
|
29
|
-
return;
|
|
30
|
-
const { selectionStart, selectionEnd } = textarea;
|
|
31
|
-
const isSelected = selectionStart !== selectionEnd;
|
|
32
|
-
const text = textarea.value;
|
|
33
|
-
const lines = text.split("\n");
|
|
34
|
-
const lineStartIndex = text.substring(0, selectionStart).split("\n").length - 1;
|
|
35
|
-
const lineEndIndex = text.substring(0, selectionEnd).split("\n").length;
|
|
36
|
-
// Extract selected lines and apply prefix
|
|
37
|
-
const selectedLines = lines.slice(lineStartIndex, lineEndIndex);
|
|
38
|
-
const wrappedLines = selectedLines.map((line, index) => {
|
|
39
|
-
const prefixString = typeof prefix === "function" ? prefix(index) : prefix;
|
|
40
|
-
return `${prefixString}${line}`;
|
|
41
|
-
});
|
|
42
|
-
// Calculate start and end positions of the selected lines
|
|
43
|
-
let startPos = 0;
|
|
44
|
-
for (let i = 0; i < lineStartIndex; i++) {
|
|
45
|
-
startPos += lines[i].length + 1; // +1 for newline
|
|
46
|
-
}
|
|
47
|
-
let endPos = startPos;
|
|
48
|
-
for (let i = lineStartIndex; i < lineEndIndex; i++) {
|
|
49
|
-
endPos += lines[i].length + 1;
|
|
50
|
-
}
|
|
51
|
-
endPos -= 1;
|
|
52
|
-
textarea.focus();
|
|
53
|
-
textarea.setSelectionRange(startPos, endPos);
|
|
54
|
-
document.execCommand("insertText", false, wrappedLines.join("\n"));
|
|
55
|
-
if (isSelected) {
|
|
56
|
-
const newEnd = startPos + wrappedLines.join("\n").length;
|
|
57
|
-
textarea.setSelectionRange(startPos, newEnd);
|
|
58
|
-
}
|
|
59
|
-
}, [textareaRef]);
|
|
60
|
-
const handleItalic = useCallback(() => wrapText("*"), [wrapText]);
|
|
61
|
-
const handleBold = useCallback(() => wrapText("**"), [wrapText]);
|
|
62
|
-
const handleTitle = useCallback(() => prefixLines("### "), [prefixLines]);
|
|
63
|
-
const handleQuote = useCallback(() => prefixLines("> "), [prefixLines]);
|
|
64
|
-
const handleCode = useCallback(() => wrapText("`"), [wrapText]);
|
|
65
|
-
const handleUList = useCallback(() => prefixLines("- "), [prefixLines]);
|
|
66
|
-
const handleOList = useCallback(() => prefixLines((index) => `${index + 1}. `), [prefixLines]);
|
|
67
|
-
const handleLink = useCallback(() => {
|
|
68
|
-
const textarea = textareaRef.current;
|
|
69
|
-
if (!textarea)
|
|
70
|
-
return;
|
|
71
|
-
const { selectionStart, selectionEnd } = textarea;
|
|
72
|
-
const isSelected = selectionStart !== selectionEnd;
|
|
73
|
-
textarea.focus();
|
|
74
|
-
const linkPlaceholder = "url";
|
|
75
|
-
const placeholderLength = linkPlaceholder.length;
|
|
76
|
-
if (isSelected) {
|
|
77
|
-
const selectedText = textarea.value.slice(selectionStart, selectionEnd);
|
|
78
|
-
const newText = `[${selectedText}](${linkPlaceholder})`;
|
|
79
|
-
document.execCommand("insertText", false, newText);
|
|
80
|
-
// Adjust selection to the URL part
|
|
81
|
-
const newStart = selectionEnd + placeholderLength;
|
|
82
|
-
const newEnd = newStart + placeholderLength;
|
|
83
|
-
textarea.setSelectionRange(newStart, newEnd);
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
const insertText = "[](url)";
|
|
87
|
-
const originalStart = selectionStart;
|
|
88
|
-
document.execCommand("insertText", false, insertText);
|
|
89
|
-
// Position cursor between the square brackets
|
|
90
|
-
textarea.setSelectionRange(originalStart + 1, originalStart + 1);
|
|
91
|
-
}
|
|
92
|
-
}, [textareaRef]);
|
|
93
|
-
const formatShortcut = (key, { isShift = false, isCtrl = false }) => {
|
|
94
|
-
const isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0;
|
|
95
|
-
const ctrlKey = isMac ? "⌘" : "^";
|
|
96
|
-
const shiftKey = "⇧";
|
|
97
|
-
return [isCtrl && ctrlKey, isShift && shiftKey, key.toUpperCase()]
|
|
98
|
-
.filter(Boolean)
|
|
99
|
-
.join(" ");
|
|
100
|
-
};
|
|
101
|
-
// To be called when a user types Enter in the textarea
|
|
102
|
-
// Will insert the appropriate Markdown syntax for the next line
|
|
103
|
-
// In case of lists, code block.
|
|
104
|
-
const handleMarkdownSyntaxAutoComplete = useCallback((event) => {
|
|
105
|
-
const textarea = textareaRef.current;
|
|
106
|
-
if (!textarea)
|
|
107
|
-
return false;
|
|
108
|
-
if (event.key !== "Enter")
|
|
109
|
-
return false;
|
|
110
|
-
const { selectionStart, selectionEnd } = textarea;
|
|
111
|
-
const hasSelection = selectionStart !== selectionEnd;
|
|
112
|
-
if (hasSelection)
|
|
113
|
-
return false;
|
|
114
|
-
const textBeforeCursor = textarea.value.substring(0, selectionStart);
|
|
115
|
-
const linesBeforeCursor = textBeforeCursor.split("\n");
|
|
116
|
-
const currentLine = linesBeforeCursor[linesBeforeCursor.length - 1];
|
|
117
|
-
// list autocompletion
|
|
118
|
-
const listRegex = /^(\s*)([-*]|\d+\.)\s/; // matches "- ", "* ", "1. "
|
|
119
|
-
const listMatch = currentLine.match(listRegex);
|
|
120
|
-
if (listMatch) {
|
|
121
|
-
const leadingWhitespace = listMatch[1];
|
|
122
|
-
const marker = listMatch[2];
|
|
123
|
-
const restOfLine = currentLine.substring(listMatch[0].length).trim();
|
|
124
|
-
// If the line is empty, exit list
|
|
125
|
-
// and replace current line with empty line
|
|
126
|
-
if (restOfLine.length === 0 || restOfLine === "[ ]") {
|
|
127
|
-
const lineStart = selectionStart - currentLine.length;
|
|
128
|
-
textarea.selectionStart = lineStart;
|
|
129
|
-
textarea.selectionEnd = selectionStart;
|
|
130
|
-
document.execCommand("insertText", false, "\n");
|
|
131
|
-
return true;
|
|
132
|
-
}
|
|
133
|
-
// Determine next marker based on type
|
|
134
|
-
const isCheckbox = /^\[([ xX])\]/.test(restOfLine);
|
|
135
|
-
const isOrdered = /\d/.test(marker);
|
|
136
|
-
let nextMarker;
|
|
137
|
-
if (isCheckbox) {
|
|
138
|
-
nextMarker = `${leadingWhitespace}- [ ]`;
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
nextMarker = isOrdered
|
|
142
|
-
? `${Number.parseInt(marker, 10) + 1}.`
|
|
143
|
-
: `${marker}`;
|
|
144
|
-
}
|
|
145
|
-
const nextLine = `\n${leadingWhitespace}${nextMarker} `;
|
|
146
|
-
document.execCommand("insertText", false, nextLine);
|
|
147
|
-
return true;
|
|
148
|
-
}
|
|
149
|
-
// code block autocompletion
|
|
150
|
-
const codeBlockRegex = /^(\s*)```/;
|
|
151
|
-
const codeBlockMatch = currentLine.match(codeBlockRegex);
|
|
152
|
-
if (codeBlockMatch) {
|
|
153
|
-
const occurrences = (textBeforeCursor.match(/```/g) || []).length;
|
|
154
|
-
if (occurrences % 2 === 1) {
|
|
155
|
-
const newText = `${textBeforeCursor}\n\n\`\`\`${textarea.value.substring(selectionStart)}`;
|
|
156
|
-
textarea.value = newText;
|
|
157
|
-
textarea.selectionStart = selectionStart + 1;
|
|
158
|
-
textarea.selectionEnd = selectionStart + 1;
|
|
159
|
-
return true;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return false;
|
|
163
|
-
}, [textareaRef]);
|
|
164
|
-
const handleShortcuts = useCallback((event) => {
|
|
165
|
-
const textarea = textareaRef.current;
|
|
166
|
-
if (!textarea)
|
|
167
|
-
return;
|
|
168
|
-
const isMac = navigator.platform.toUpperCase().indexOf("MAC") >= 0;
|
|
169
|
-
const isCtrl = isMac ? event.metaKey : event.ctrlKey;
|
|
170
|
-
const isShift = event.shiftKey;
|
|
171
|
-
let shortcutHandled = false;
|
|
172
|
-
// Ctrl + b
|
|
173
|
-
if (isCtrl && event.key === "b") {
|
|
174
|
-
handleBold();
|
|
175
|
-
shortcutHandled = true;
|
|
176
|
-
}
|
|
177
|
-
// Ctrl + i
|
|
178
|
-
if (isCtrl && event.key === "i") {
|
|
179
|
-
handleItalic();
|
|
180
|
-
shortcutHandled = true;
|
|
181
|
-
}
|
|
182
|
-
// Ctrl + k
|
|
183
|
-
if (isCtrl && event.key === "k") {
|
|
184
|
-
handleLink();
|
|
185
|
-
shortcutHandled = true;
|
|
186
|
-
}
|
|
187
|
-
// Ctrl + .
|
|
188
|
-
if (isCtrl && event.key === ".") {
|
|
189
|
-
handleQuote();
|
|
190
|
-
shortcutHandled = true;
|
|
191
|
-
}
|
|
192
|
-
// Ctrl + e
|
|
193
|
-
if (isCtrl && event.key === "e") {
|
|
194
|
-
handleCode();
|
|
195
|
-
shortcutHandled = true;
|
|
196
|
-
}
|
|
197
|
-
// Ctrl + Shift + 7
|
|
198
|
-
if (isCtrl && isShift && event.key === "7") {
|
|
199
|
-
handleOList();
|
|
200
|
-
shortcutHandled = true;
|
|
201
|
-
}
|
|
202
|
-
// Ctrl + Shift + 8
|
|
203
|
-
if (isCtrl && isShift && event.key === "8") {
|
|
204
|
-
handleUList();
|
|
205
|
-
shortcutHandled = true;
|
|
206
|
-
}
|
|
207
|
-
if (!shortcutHandled) {
|
|
208
|
-
shortcutHandled = handleMarkdownSyntaxAutoComplete(event);
|
|
209
|
-
}
|
|
210
|
-
if (shortcutHandled) {
|
|
211
|
-
event.preventDefault();
|
|
212
|
-
}
|
|
213
|
-
}, [
|
|
214
|
-
textareaRef,
|
|
215
|
-
handleBold,
|
|
216
|
-
handleItalic,
|
|
217
|
-
handleLink,
|
|
218
|
-
handleQuote,
|
|
219
|
-
handleCode,
|
|
220
|
-
handleOList,
|
|
221
|
-
handleUList,
|
|
222
|
-
handleMarkdownSyntaxAutoComplete,
|
|
223
|
-
]);
|
|
224
|
-
useEffect(() => {
|
|
225
|
-
if (!textareaRef.current)
|
|
226
|
-
return;
|
|
227
|
-
textareaRef.current.addEventListener("keydown", handleShortcuts);
|
|
228
|
-
return () => {
|
|
229
|
-
if (!textareaRef.current)
|
|
230
|
-
return;
|
|
231
|
-
textareaRef.current.removeEventListener("keydown", handleShortcuts);
|
|
232
|
-
};
|
|
233
|
-
}, [textareaRef, handleShortcuts]);
|
|
234
|
-
if (typeof window === "undefined")
|
|
235
|
-
return {};
|
|
236
|
-
return {
|
|
237
|
-
toolbar: {
|
|
238
|
-
italic: {
|
|
239
|
-
shortcut: formatShortcut("i", { isCtrl: true }),
|
|
240
|
-
handler: handleItalic,
|
|
241
|
-
},
|
|
242
|
-
bold: {
|
|
243
|
-
shortcut: formatShortcut("b", { isCtrl: true }),
|
|
244
|
-
handler: handleBold,
|
|
245
|
-
},
|
|
246
|
-
title: {
|
|
247
|
-
shortcut: undefined,
|
|
248
|
-
handler: handleTitle,
|
|
249
|
-
},
|
|
250
|
-
quote: {
|
|
251
|
-
shortcut: formatShortcut(".", { isCtrl: true }),
|
|
252
|
-
handler: handleQuote,
|
|
253
|
-
},
|
|
254
|
-
code: {
|
|
255
|
-
shortcut: formatShortcut("e", { isCtrl: true }),
|
|
256
|
-
handler: handleCode,
|
|
257
|
-
},
|
|
258
|
-
uList: {
|
|
259
|
-
shortcut: formatShortcut("8", { isCtrl: true, isShift: true }),
|
|
260
|
-
handler: handleUList,
|
|
261
|
-
},
|
|
262
|
-
oList: {
|
|
263
|
-
shortcut: formatShortcut("7", { isCtrl: true, isShift: true }),
|
|
264
|
-
handler: handleOList,
|
|
265
|
-
},
|
|
266
|
-
link: {
|
|
267
|
-
shortcut: formatShortcut("k", { isCtrl: true }),
|
|
268
|
-
handler: handleLink,
|
|
269
|
-
},
|
|
270
|
-
},
|
|
271
|
-
};
|
|
272
|
-
};
|
|
273
|
-
export default useEditor;
|
|
274
|
-
//# sourceMappingURL=useEditor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useEditor.js","sourceRoot":"","sources":["../../../../../src/ui/MarkdownEditor/hooks/useEditor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/MarkdownEditor/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,cAAc,YAAY,CAAC"}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/* @canonical/generator-ds 0.9.0-experimental.4 */
|
|
2
|
-
.ds.markdown-editor {
|
|
3
|
-
--markdown-editor-editor-background-color: white;
|
|
4
|
-
--markdown-editor-editor-color: black;
|
|
5
|
-
--markdown-editor-editor-border-color: #7b7b7b;
|
|
6
|
-
|
|
7
|
-
--markdown-editor-top-bar-background-color: white;
|
|
8
|
-
|
|
9
|
-
--markdown-editor-tabs-hover-color: black;
|
|
10
|
-
--markdown-editor-tabs-hover-background-color: #f2f2f2;
|
|
11
|
-
--markdown-editor-tabs-inactive-color: #737373;
|
|
12
|
-
--markdown-editor-tabs-inactive-border-color: transparent;
|
|
13
|
-
--markdown-editor-tabs-inactive-background-color: #ebeaeb;
|
|
14
|
-
--markdown-editor-tabs-horizontal-padding: 12px;
|
|
15
|
-
--markdown-editor-tabs-vert-padding: 8px;
|
|
16
|
-
|
|
17
|
-
--markdown-editor-toolbar-hover-background-color: #f2f2f2;
|
|
18
|
-
--markdown-editor-toolbar-separator-color: rgba(0, 0, 0, 0.2);
|
|
19
|
-
--markdown-editor-toolbar-button-size: 27px;
|
|
20
|
-
--markdown-editor-toolbar-buttons-gap: 4px;
|
|
21
|
-
--markdown-editor-toolbar-horizontal-padding: 8px;
|
|
22
|
-
--markdown-editor-toolbar-vert-padding: 4px;
|
|
23
|
-
|
|
24
|
-
--markdown-editor-input-horizontal-padding: 8px;
|
|
25
|
-
--markdown-editor-input-vert-padding: 6px;
|
|
26
|
-
|
|
27
|
-
container-type: inline-size;
|
|
28
|
-
display: flex;
|
|
29
|
-
flex-direction: column;
|
|
30
|
-
|
|
31
|
-
& > .top-bar {
|
|
32
|
-
display: flex;
|
|
33
|
-
justify-content: space-between;
|
|
34
|
-
align-items: center;
|
|
35
|
-
flex-wrap: nowrap;
|
|
36
|
-
margin-bottom: -1px;
|
|
37
|
-
background-color: var(--markdown-editor-top-bar-background-color);
|
|
38
|
-
|
|
39
|
-
> .preview-switch {
|
|
40
|
-
display: flex;
|
|
41
|
-
align-items: center;
|
|
42
|
-
gap: 0.25rem;
|
|
43
|
-
font-size: 0.75rem;
|
|
44
|
-
font-weight: 550;
|
|
45
|
-
cursor: pointer;
|
|
46
|
-
padding: var(--markdown-editor-toolbar-vert-padding)
|
|
47
|
-
var(--markdown-editor-toolbar-horizontal-padding);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
& > .editor-content {
|
|
52
|
-
color: var(--markdown-editor-editor-color);
|
|
53
|
-
background-color: var(--markdown-editor-editor-background-color);
|
|
54
|
-
border: 1px solid transparent;
|
|
55
|
-
ul.contains-task-list {
|
|
56
|
-
& li.task-list-item {
|
|
57
|
-
list-style: none;
|
|
58
|
-
}
|
|
59
|
-
& input[type="checkbox"] {
|
|
60
|
-
margin-inline-start: -1.25em;
|
|
61
|
-
margin-right: 0.313em;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
&.bordered {
|
|
67
|
-
/* biome-ignore lint/style/noDescendingSpecificity: legacy code */
|
|
68
|
-
> .editor-content {
|
|
69
|
-
border-color: var(--markdown-editor-editor-border-color);
|
|
70
|
-
padding: var(--markdown-editor-input-vert-padding)
|
|
71
|
-
var(--markdown-editor-input-horizontal-padding);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
& > textarea {
|
|
76
|
-
resize: vertical;
|
|
77
|
-
outline: none;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
&:has(textarea:focus) {
|
|
81
|
-
outline: 1px solid Highlight;
|
|
82
|
-
/* biome-ignore lint/suspicious/noDuplicateProperties:legacy code */
|
|
83
|
-
outline: 1px solid -webkit-focus-ring-color;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/MarkdownEditor/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { formatHumanTime, getOptimalUpdateInterval, parseInstant, } from "./utils/index.js";
|
|
4
|
-
const componentCssClassName = "ds relative-time";
|
|
5
|
-
/**
|
|
6
|
-
* The RelativeTime component displays timestamps in a human-readable relative format (like "2 hours ago" or "in 3 days").
|
|
7
|
-
*
|
|
8
|
-
* It features automatic live updates with interval optimization based on time distance, configurable "now" threshold,
|
|
9
|
-
* and renders as proper semantic HTML using the <time> element. The component leverages the Temporal API for calculations and Intl.RelativeTimeFormat for localization.
|
|
10
|
-
*/
|
|
11
|
-
const RelativeTime = ({ id, className, style, time, relativeTimeFormat, nowThreshold = 10, disableLiveUpdate = false, nowKeyword = "now", invalidDateKeyword = "invalid date", }) => {
|
|
12
|
-
const [relativeTime, setRelativeTime] = useState("");
|
|
13
|
-
const [localeTimeString, setLocaleTimeString] = useState("");
|
|
14
|
-
const [stringTime, setStringTime] = useState("");
|
|
15
|
-
const intervalRef = useRef(null);
|
|
16
|
-
const instantTime = useMemo(() => {
|
|
17
|
-
try {
|
|
18
|
-
return parseInstant(time);
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
console.error(error);
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}, [time]);
|
|
25
|
-
const updateRelativeTime = useCallback(() => {
|
|
26
|
-
if (instantTime === null) {
|
|
27
|
-
setRelativeTime(invalidDateKeyword);
|
|
28
|
-
setLocaleTimeString("");
|
|
29
|
-
setStringTime("");
|
|
30
|
-
return null;
|
|
31
|
-
}
|
|
32
|
-
const timeFormatter = relativeTimeFormat ||
|
|
33
|
-
new Intl.RelativeTimeFormat(undefined, { numeric: "auto" });
|
|
34
|
-
setRelativeTime(formatHumanTime(instantTime, {
|
|
35
|
-
nowThreshold,
|
|
36
|
-
nowKeyword,
|
|
37
|
-
relativeTimeFormat: timeFormatter,
|
|
38
|
-
}));
|
|
39
|
-
setLocaleTimeString(instantTime.toLocaleString());
|
|
40
|
-
setStringTime(instantTime.toString());
|
|
41
|
-
}, [
|
|
42
|
-
instantTime,
|
|
43
|
-
relativeTimeFormat,
|
|
44
|
-
nowThreshold,
|
|
45
|
-
nowKeyword,
|
|
46
|
-
invalidDateKeyword,
|
|
47
|
-
]);
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
// initial calculation
|
|
50
|
-
updateRelativeTime();
|
|
51
|
-
if (disableLiveUpdate || instantTime === null)
|
|
52
|
-
return;
|
|
53
|
-
const updateInterval = getOptimalUpdateInterval(instantTime);
|
|
54
|
-
// SSR check
|
|
55
|
-
if (typeof window === "undefined")
|
|
56
|
-
return;
|
|
57
|
-
intervalRef.current = window.setInterval(updateRelativeTime, updateInterval);
|
|
58
|
-
return () => {
|
|
59
|
-
if (intervalRef.current)
|
|
60
|
-
window.clearInterval(intervalRef.current);
|
|
61
|
-
};
|
|
62
|
-
}, [instantTime, disableLiveUpdate, updateRelativeTime]);
|
|
63
|
-
return (_jsx("time", { id: id, style: style, className: [componentCssClassName, className].filter(Boolean).join(" "), title: localeTimeString, dateTime: stringTime, children: relativeTime }));
|
|
64
|
-
};
|
|
65
|
-
export default RelativeTime;
|
|
66
|
-
//# sourceMappingURL=RelativeTime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RelativeTime.js","sourceRoot":"","sources":["../../../../src/ui/RelativeTime/RelativeTime.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/RelativeTime/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/RelativeTime/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export const MINUTE_IN_SECONDS = 60;
|
|
2
|
-
export const HOUR_IN_SECONDS = MINUTE_IN_SECONDS * 60;
|
|
3
|
-
export const DAY_IN_SECONDS = HOUR_IN_SECONDS * 24;
|
|
4
|
-
export const MONTH_IN_SECONDS = DAY_IN_SECONDS * 30;
|
|
5
|
-
export const YEAR_IN_SECONDS = DAY_IN_SECONDS * 365;
|
|
6
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/ui/RelativeTime/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,GAAG,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,GAAG,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,GAAG,EAAE,CAAC;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,GAAG,GAAG,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
/**
|
|
3
|
-
* Formats a given instant as a human-readable time relative to the current time.
|
|
4
|
-
* @param instant The instant to format.
|
|
5
|
-
* @param options The options to use for formatting.
|
|
6
|
-
* @returns A human-readable relative time string
|
|
7
|
-
*/
|
|
8
|
-
function formatHumanTime(instant, options) {
|
|
9
|
-
const now = Temporal.Now.instant();
|
|
10
|
-
const deltaSeconds = (instant.epochMilliseconds - now.epochMilliseconds) / 1000;
|
|
11
|
-
const absDeltaSeconds = Math.abs(deltaSeconds);
|
|
12
|
-
if (absDeltaSeconds < options.nowThreshold) {
|
|
13
|
-
return options.nowKeyword;
|
|
14
|
-
}
|
|
15
|
-
const timeZone = Temporal.Now.timeZoneId() || "UTC";
|
|
16
|
-
const instantZDT = instant.toZonedDateTimeISO(timeZone);
|
|
17
|
-
const nowZDT = now.toZonedDateTimeISO(timeZone);
|
|
18
|
-
const diff = instantZDT.since(nowZDT, { largestUnit: "years" });
|
|
19
|
-
const units = [
|
|
20
|
-
"years",
|
|
21
|
-
"months",
|
|
22
|
-
"days",
|
|
23
|
-
"hours",
|
|
24
|
-
"minutes",
|
|
25
|
-
"seconds",
|
|
26
|
-
];
|
|
27
|
-
let rtfUnit = "seconds";
|
|
28
|
-
let rtfValue = 0;
|
|
29
|
-
for (const unit of units) {
|
|
30
|
-
const value = diff[unit];
|
|
31
|
-
if (value !== 0) {
|
|
32
|
-
rtfUnit = unit;
|
|
33
|
-
rtfValue = value;
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (rtfValue === 0) {
|
|
38
|
-
return options.nowKeyword;
|
|
39
|
-
}
|
|
40
|
-
return options.relativeTimeFormat.format(rtfValue, rtfUnit);
|
|
41
|
-
}
|
|
42
|
-
export default formatHumanTime;
|
|
43
|
-
//# sourceMappingURL=formatHumanTime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formatHumanTime.js","sourceRoot":"","sources":["../../../../../src/ui/RelativeTime/utils/formatHumanTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAgBjD;;;;;GAKG;AACH,SAAS,eAAe,CACtB,OAAyB,EACzB,OAAyB;IAEzB,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE/C,IAAI,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,UAAU,CAAC;IAC5B,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG;QACZ,OAAO;QACP,QAAQ;QACR,MAAM;QACN,OAAO;QACP,SAAS;QACT,SAAS;KAC8B,CAAC;IAE1C,IAAI,OAAO,GAAgC,SAAS,CAAC;IACrD,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;YACf,QAAQ,GAAG,KAAK,CAAC;YACjB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,UAAU,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
import * as constants from "./constants.js";
|
|
3
|
-
/**
|
|
4
|
-
* Calcualte the optimal update interval for a given instant based on the time distance from now.
|
|
5
|
-
* @returns The optimal update interval in milliseconds.
|
|
6
|
-
*/
|
|
7
|
-
function getOptimalUpdateInterval(instant) {
|
|
8
|
-
const now = Temporal.Now.instant();
|
|
9
|
-
const deltaSeconds = (instant.epochMilliseconds - now.epochMilliseconds) / 1000;
|
|
10
|
-
const absDeltaSeconds = Math.abs(deltaSeconds);
|
|
11
|
-
if (absDeltaSeconds < constants.MINUTE_IN_SECONDS) {
|
|
12
|
-
return 1000;
|
|
13
|
-
}
|
|
14
|
-
if (absDeltaSeconds < constants.HOUR_IN_SECONDS) {
|
|
15
|
-
return constants.MINUTE_IN_SECONDS * 1000;
|
|
16
|
-
}
|
|
17
|
-
if (absDeltaSeconds < constants.DAY_IN_SECONDS) {
|
|
18
|
-
return constants.HOUR_IN_SECONDS * 1000;
|
|
19
|
-
}
|
|
20
|
-
// for any other time distance, update once a day
|
|
21
|
-
return constants.DAY_IN_SECONDS * 1000;
|
|
22
|
-
}
|
|
23
|
-
export default getOptimalUpdateInterval;
|
|
24
|
-
//# sourceMappingURL=getOptimalUpdateInterval.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getOptimalUpdateInterval.js","sourceRoot":"","sources":["../../../../../src/ui/RelativeTime/utils/getOptimalUpdateInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAE5C;;;GAGG;AACH,SAAS,wBAAwB,CAAC,OAAyB;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAChB,CAAC,OAAO,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE/C,IAAI,eAAe,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,eAAe,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED,IAAI,eAAe,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC;IAC1C,CAAC;IACD,iDAAiD;IACjD,OAAO,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;AACzC,CAAC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/ui/RelativeTime/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Temporal } from "@js-temporal/polyfill";
|
|
2
|
-
/**
|
|
3
|
-
* Parser for Temporal.Instant.
|
|
4
|
-
* @param time - instance, date or string to parse
|
|
5
|
-
* @throws Error if time is invalid
|
|
6
|
-
*/
|
|
7
|
-
function parseInstant(time) {
|
|
8
|
-
if (time instanceof Temporal.Instant) {
|
|
9
|
-
return time;
|
|
10
|
-
}
|
|
11
|
-
if (time instanceof Date) {
|
|
12
|
-
return Temporal.Instant.fromEpochMilliseconds(time.getTime());
|
|
13
|
-
}
|
|
14
|
-
try {
|
|
15
|
-
return Temporal.Instant.from(time);
|
|
16
|
-
}
|
|
17
|
-
catch (_e) {
|
|
18
|
-
throw new Error(`Invalid time string (ISO string or Date object expected): ${time}`);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export default parseInstant;
|
|
22
|
-
//# sourceMappingURL=parseInstant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseInstant.js","sourceRoot":"","sources":["../../../../../src/ui/RelativeTime/utils/parseInstant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAsC;IAC1D,IAAI,IAAI,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,6DAA6D,IAAI,EAAE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,eAAe,YAAY,CAAC"}
|
package/dist/esm/ui/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from "./DiffChangeMarker/index.js";
|
|
2
|
-
export * from "./EditableBlock/index.js";
|
|
3
|
-
export * from "./FileTree/index.js";
|
|
4
|
-
export * from "./GitDiffViewer/index.js";
|
|
5
|
-
export * from "./MarkdownEditor/index.js";
|
|
6
|
-
export * from "./RelativeTime/index.js";
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
package/dist/esm/ui/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type React from "react";
|
|
2
|
-
import "./styles.css";
|
|
3
|
-
import type { DiffChangeMarkerProps } from "./types.js";
|
|
4
|
-
/**
|
|
5
|
-
* Displays a visual indicator for file changes in a diff (added, modified, deleted)
|
|
6
|
-
* Can be displayed in detailed or simple style
|
|
7
|
-
* @returns {React.ReactElement} - Rendered DiffChangeMarker
|
|
8
|
-
*/
|
|
9
|
-
declare const DiffChangeMarker: ({ id, className, style, markerStyle, ...markerOptions }: DiffChangeMarkerProps) => React.ReactElement;
|
|
10
|
-
export default DiffChangeMarker;
|
|
11
|
-
//# sourceMappingURL=DiffChangeMarker.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DiffChangeMarker.d.ts","sourceRoot":"","sources":["../../../../src/ui/DiffChangeMarker/DiffChangeMarker.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,YAAY,CAAC;AAIxE;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,GAAI,yDAMvB,qBAAqB,KAAG,KAAK,CAAC,YAgEhC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|