Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
5417526
feat(muya): expose desktop-required public API accessors (#4381)
Jocs Jun 8, 2026
3a4e764
feat(muya): expose themeable CSS variables and diagram theming (#4382)
Jocs Jun 8, 2026
4bb1c8e
feat(muya): add block duplicate/insert/delete public API (#4384)
Jocs Jun 8, 2026
3670009
feat(muya): restore flowchart and sequence diagrams (#4385)
Jocs Jun 8, 2026
f8b8638
feat(muya): add ImagePathPicker floating autocomplete UI (#4386)
Jocs Jun 8, 2026
312182f
fix(muya): unbreak lint:css (stylelint 17 compatibility) (#4388)
Jocs Jun 8, 2026
3a3c092
feat(muya): add cursorCoords + active formats to selection-change (#4…
Jocs Jun 8, 2026
a49c7b7
feat(muya): implement focus mode (dim inactive blocks) (#4389)
Jocs Jun 8, 2026
c2c4a1e
feat(muya): emit format-click and preview-image interaction events (#…
Jocs Jun 8, 2026
166f014
feat(muya): add updateParagraph block-type conversion API (#4391)
Jocs Jun 8, 2026
e67fdbe
feat(muya): add runtime setOptions / setFont / setTabSize / setListIn…
Jocs Jun 8, 2026
c19ef7f
feat(muya): add spellcheck word-replacement API (#4392)
Jocs Jun 8, 2026
8683044
feat(muya): serialize/restore undo history (#4394)
Jocs Jun 8, 2026
8421aec
feat(muya): add invalidateImageCache (#4396)
Jocs Jun 8, 2026
baf81fe
test(muya): port MarkText regression cases (#4341/#4307/#4190) (#4399)
Jocs Jun 8, 2026
945014c
feat(muya): add createTable / insertImage / setCursor API (#4397)
Jocs Jun 8, 2026
efb720b
feat(muya): add clipboardFilePath paste hook (#4398)
Jocs Jun 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
292 changes: 282 additions & 10 deletions packages/muya/.stylelintrc
Original file line number Diff line number Diff line change
@@ -1,8 +1,288 @@
{
"extends": ["stylelint-config-standard"],
"plugins": ["stylelint-order", "stylelint-config-rational-order/plugin"],
"plugins": ["stylelint-order"],
"rules": {
"order/properties-order": [[], { "severity": "warning" }],
"order/properties-order": [
[
{
"groupName": "Special",
"emptyLineBefore": "always",
"properties": [
"composes",
"@import",
"@extend",
"@mixin",
"@at-root"
]
},
{
"groupName": "Positioning",
"emptyLineBefore": "always",
"properties": [
"position",
"top",
"right",
"bottom",
"left",
"z-index"
]
},
{
"groupName": "Box Model",
"emptyLineBefore": "always",
"properties": [
"display",
"flex",
"flex-basis",
"flex-direction",
"flex-flow",
"flex-grow",
"flex-shrink",
"flex-wrap",
"grid",
"grid-area",
"grid-auto-rows",
"grid-auto-columns",
"grid-auto-flow",
"grid-gap",
"grid-row",
"grid-row-start",
"grid-row-end",
"grid-row-gap",
"grid-column",
"grid-column-start",
"grid-column-end",
"grid-column-gap",
"grid-template",
"grid-template-areas",
"grid-template-rows",
"grid-template-columns",
"gap",
"align-content",
"align-items",
"align-self",
"justify-content",
"justify-items",
"justify-self",
"order",
"float",
"clear",
"box-sizing",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"object-fit",
"object-position",
"overflow",
"overflow-x",
"overflow-y"
]
},
{
"groupName": "Typography",
"emptyLineBefore": "always",
"properties": [
"color",
"font",
"font-weight",
"font-size",
"font-family",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-effect",
"font-emphasize",
"font-emphasize-position",
"font-emphasize-style",
"font-smooth",
"line-height",
"direction",
"letter-spacing",
"white-space",
"text-align",
"text-align-last",
"text-transform",
"text-decoration",
"text-emphasis",
"text-emphasis-color",
"text-emphasis-style",
"text-emphasis-position",
"text-indent",
"text-justify",
"text-outline",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-orientation",
"text-shadow",
"vertical-align",
"word-wrap",
"word-break",
"word-spacing",
"overflow-wrap",
"tab-size",
"hyphens",
"unicode-bidi",
"columns",
"column-count",
"column-fill",
"column-gap",
"column-rule",
"column-rule-color",
"column-rule-style",
"column-rule-width",
"column-span",
"column-width",
"page-break-after",
"page-break-before",
"page-break-inside",
"src"
]
},
{
"groupName": "Visual",
"emptyLineBefore": "always",
"properties": [
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"table-layout",
"empty-cells",
"caption-side",
"background",
"background-color",
"background-image",
"background-repeat",
"background-position",
"background-position-x",
"background-position-y",
"background-size",
"background-clip",
"background-origin",
"background-attachment",
"background-blend-mode",
"border",
"border-color",
"border-style",
"border-width",
"border-top",
"border-top-color",
"border-top-width",
"border-top-style",
"border-right",
"border-right-color",
"border-right-width",
"border-right-style",
"border-bottom",
"border-bottom-color",
"border-bottom-width",
"border-bottom-style",
"border-left",
"border-left-color",
"border-left-width",
"border-left-style",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"border-collapse",
"border-spacing",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"box-shadow",
"box-decoration-break",
"transform",
"transform-origin",
"transform-style",
"backface-visibility",
"perspective",
"perspective-origin",
"visibility",
"cursor",
"opacity",
"filter",
"isolation",
"backdrop-filter",
"mix-blend-mode"
]
},
{
"groupName": "Animation",
"emptyLineBefore": "always",
"properties": [
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode"
]
},
{
"groupName": "Misc",
"emptyLineBefore": "always",
"properties": [
"appearance",
"content",
"clip",
"clip-path",
"counter-reset",
"counter-increment",
"resize",
"user-select",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"pointer-events",
"quotes",
"touch-action",
"will-change",
"zoom",
"fill",
"fill-rule",
"clip-rule",
"stroke"
]
}
],
{ "severity": "warning", "unspecified": "bottomAlphabetical" }
],
"declaration-empty-line-before": [
"never",
{
Expand All @@ -15,14 +295,6 @@
]
}
],
"plugin/rational-order": [
true,
{
"border-in-box-model": false,
"empty-line-between-groups": true,
"severity": "warning"
}
],
"unit-no-unknown": [
true,
{
Expand Down
3 changes: 3 additions & 0 deletions packages/muya/e2e/tests/helpers/selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
export const editor = {
container: '#editor',
root: '.mu-editor',
// Editor root carries this class while focus mode is enabled (toggled by
// `Muya#setFocusMode` / applied at construction for `focusMode: true`).
focusModeRoot: '.mu-editor.mu-focus-mode',
paragraph: '.mu-paragraph',
atxHeading: '.mu-atx-heading',
setextHeading: '.mu-setext-heading',
Expand Down
Loading
Loading