@inshapardaz/likhari-react 0.1.28 → 0.1.29-dev.265

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.
@@ -19,19 +19,12 @@
19
19
  its own height so only the canvas below scrolls. */
20
20
  .likhari-toolbar {
21
21
  display: flex;
22
- /* Containing block for the hidden width-measuring clone (Toolbar.tsx):
23
- without this, its position: absolute would resolve against the
24
- viewport instead, and its intentionally-unwrapped (possibly very wide)
25
- content could inflate the host page's scroll area instead of being
26
- clipped by .likhari-root's overflow: hidden. */
27
- position: relative;
28
22
  flex-shrink: 0;
29
23
  align-items: center;
30
24
  gap: 8px;
31
25
  min-height: 46px;
32
26
  padding: 4px 8px;
33
27
  background: var(--editor-paper-dim);
34
- border-bottom: 1px solid var(--editor-line);
35
28
  /* Wrap instead of scroll: an overflow container would clip menus and grow
36
29
  a scrollbar. Dropdowns (Select/Menu) portal out, so nothing needs to
37
30
  escape this box. */
@@ -57,55 +50,6 @@
57
50
  pointer-events: auto;
58
51
  }
59
52
 
60
- .likhari-toolbar-group {
61
- display: flex;
62
- align-items: center;
63
- gap: 2px;
64
- padding: 0 6px;
65
- border-inline-end: 0.5px solid var(--editor-line);
66
- }
67
-
68
- .likhari-toolbar-group:last-child {
69
- border-inline-end: none;
70
- }
71
-
72
- .likhari-toolbar-button {
73
- display: inline-flex;
74
- align-items: center;
75
- justify-content: center;
76
- min-width: 30px;
77
- height: 30px;
78
- padding: 0 6px;
79
- border-radius: 6px;
80
- border: none;
81
- background: transparent;
82
- color: var(--editor-ink);
83
- cursor: pointer;
84
- }
85
-
86
- .likhari-toolbar-button svg {
87
- display: block;
88
- }
89
-
90
- .likhari-toolbar-button:hover {
91
- background: var(--editor-line);
92
- }
93
-
94
- .likhari-toolbar-button[data-active='true'] {
95
- background: var(--editor-accent-soft);
96
- color: var(--editor-accent);
97
- }
98
-
99
- .likhari-toolbar-button:focus-visible {
100
- outline: 2px solid var(--editor-accent);
101
- outline-offset: 1px;
102
- }
103
-
104
- .likhari-toolbar-button:disabled {
105
- opacity: 0.4;
106
- cursor: not-allowed;
107
- }
108
-
109
53
  /* Mantine Select inside the toolbar — sized to the 30px control height and
110
54
  themed from the --editor-* tokens (the closed input only; the dropdown is
111
55
  portaled to <body>, outside the token scope, so it uses Mantine's own
@@ -125,35 +69,44 @@
125
69
  cursor: not-allowed;
126
70
  }
127
71
 
128
- .likhari-overflow-item[data-active='true'] {
129
- background: var(--mantine-primary-color-light);
130
- color: var(--mantine-primary-color-filled);
72
+ /* A cluster of related buttons (undo/redo, bold/italic/underline/strikethrough, ...) reads as one control. */
73
+ .likhari-toolbar--plain .likhari-toolbar-cluster {
74
+ border: none;
75
+ background: transparent;
131
76
  }
132
77
 
133
- /* Responsive collapse — editor-ui-design-spec.md §3.3. These groups hold
134
- only not-yet-implemented placeholders, so hiding them below the tablet
135
- breakpoint costs nothing functional while keeping the primary row usable
136
- on small screens; the toolbar wraps onto a second row if the
137
- still-visible controls alone overflow a narrow viewport. */
138
- @media (max-width: 900px) {
139
- .likhari-toolbar-group--collapse-tablet {
140
- display: none;
141
- }
78
+ .likhari-toolbar--plain .likhari-toolbar-cluster [data-toolbar-toggle] + [data-toolbar-toggle] {
79
+ border-inline-start: none;
80
+ }
81
+
82
+ .likhari-toolbar-cluster {
83
+ border: 1px solid var(--editor-line-strong);
84
+ border-radius: 6px;
85
+ background: var(--editor-paper);
86
+ overflow: hidden;
87
+ }
88
+
89
+ .likhari-toolbar-cluster [data-toolbar-toggle] {
90
+ border: none;
91
+ border-radius: 0;
92
+ }
93
+
94
+ .likhari-toolbar-cluster [data-toolbar-toggle] + [data-toolbar-toggle] {
95
+ border-inline-start: 1px solid var(--editor-line);
142
96
  }
143
97
 
144
- /* Save (icon-only ToolbarButton): filled accent while there are unsaved
145
- changes, back to the plain outline once saved — editor-ui-design-spec.md §7. */
146
- .likhari-toolbar-button[data-dirty='true'] {
98
+ /* Save: filled accent while there are unsaved changes, back to the plain outline once saved. */
99
+ .likhari-toolbar [data-dirty='true'] {
147
100
  background: var(--editor-accent);
148
101
  color: var(--editor-paper);
149
102
  }
150
103
 
151
- .likhari-toolbar-button[data-dirty='true']:hover {
104
+ .likhari-toolbar [data-dirty='true']:hover {
152
105
  background: var(--editor-accent);
153
106
  filter: brightness(1.1);
154
107
  }
155
108
 
156
- .likhari-toolbar-button[data-dirty='false'] {
109
+ .likhari-toolbar [data-dirty='false'] {
157
110
  color: var(--editor-accent);
158
111
  }
159
112
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inshapardaz/likhari-react",
3
- "version": "0.1.28",
3
+ "version": "0.1.29-dev.265",
4
4
  "description": "React implementation of the Likhari editor, built on @lexical/react.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -47,14 +47,14 @@
47
47
  "nspell": "^2.1.5"
48
48
  },
49
49
  "peerDependencies": {
50
- "@mantine/core": "^9.6.3",
51
- "@mantine/hooks": "^9.6.3",
50
+ "@mantine/core": "^9.7.0",
51
+ "@mantine/hooks": "^9.7.0",
52
52
  "react": "^19.2.0",
53
53
  "react-dom": "^19.2.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@mantine/core": "^9.6.3",
57
- "@mantine/hooks": "^9.6.3",
56
+ "@mantine/core": "^9.7.0",
57
+ "@mantine/hooks": "^9.7.0",
58
58
  "@types/nspell": "^2.1.6"
59
59
  }
60
60
  }