@haklex/rich-editor-ui 0.0.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 (37) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +152 -0
  3. package/dist/components/color-picker/index.d.ts +7 -0
  4. package/dist/components/color-picker/index.d.ts.map +1 -0
  5. package/dist/components/color-picker/styles.css.d.ts +11 -0
  6. package/dist/components/color-picker/styles.css.d.ts.map +1 -0
  7. package/dist/components/dialog/index.d.ts +28 -0
  8. package/dist/components/dialog/index.d.ts.map +1 -0
  9. package/dist/components/dialog/stack.d.ts +3 -0
  10. package/dist/components/dialog/stack.d.ts.map +1 -0
  11. package/dist/components/dialog/store.d.ts +24 -0
  12. package/dist/components/dialog/store.d.ts.map +1 -0
  13. package/dist/components/dialog/styles.css.d.ts +8 -0
  14. package/dist/components/dialog/styles.css.d.ts.map +1 -0
  15. package/dist/components/dropdown-menu/index.d.ts +37 -0
  16. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  17. package/dist/components/dropdown-menu/styles.css.d.ts +7 -0
  18. package/dist/components/dropdown-menu/styles.css.d.ts.map +1 -0
  19. package/dist/components/popover/index.d.ts +36 -0
  20. package/dist/components/popover/index.d.ts.map +1 -0
  21. package/dist/components/popover/styles.css.d.ts +5 -0
  22. package/dist/components/popover/styles.css.d.ts.map +1 -0
  23. package/dist/components/segmented-control/index.d.ts +16 -0
  24. package/dist/components/segmented-control/index.d.ts.map +1 -0
  25. package/dist/components/segmented-control/styles.css.d.ts +11 -0
  26. package/dist/components/segmented-control/styles.css.d.ts.map +1 -0
  27. package/dist/components/tooltip/index.d.ts +25 -0
  28. package/dist/components/tooltip/index.d.ts.map +1 -0
  29. package/dist/components/tooltip/styles.css.d.ts +2 -0
  30. package/dist/components/tooltip/styles.css.d.ts.map +1 -0
  31. package/dist/index.d.ts +17 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.mjs +743 -0
  34. package/dist/lib/get-strict-context.d.ts +9 -0
  35. package/dist/lib/get-strict-context.d.ts.map +1 -0
  36. package/dist/rich-editor-ui.css +487 -0
  37. package/package.json +47 -0
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export declare function getStrictContext<T>(name?: string): readonly [
3
+ (props: {
4
+ value: T;
5
+ children?: ReactNode;
6
+ }) => ReactNode,
7
+ () => T
8
+ ];
9
+ //# sourceMappingURL=get-strict-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-strict-context.d.ts","sourceRoot":"","sources":["../../src/lib/get-strict-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,CAAC,EAAE,MAAM,GACZ,SAAS;IACV,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,KAAK,SAAS;IACxD,MAAM,CAAC;CACR,CAoBA"}
@@ -0,0 +1,487 @@
1
+ @keyframes f2q44l0 {
2
+ from {
3
+ opacity: 0;
4
+ transform: translateY(2px) scale(0.96);
5
+ }
6
+ to {
7
+ opacity: 1;
8
+ transform: translateY(0) scale(1);
9
+ }
10
+ }
11
+ @keyframes f2q44l1 {
12
+ from {
13
+ opacity: 1;
14
+ transform: translateY(0) scale(1);
15
+ }
16
+ to {
17
+ opacity: 0;
18
+ transform: translateY(2px) scale(0.96);
19
+ }
20
+ }
21
+ .f2q44l2 {
22
+ z-index: 50;
23
+ width: 288px;
24
+ border-radius: 0.5rem;
25
+ border: 1px solid var(--rc-border);
26
+ padding: 1rem;
27
+ background-color: var(--rc-bg);
28
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
29
+ outline: none;
30
+ transition: opacity 150ms ease-out, transform 150ms ease-out;
31
+ }
32
+ .f2q44l2[data-open] {
33
+ animation: f2q44l0 150ms ease-out;
34
+ }
35
+ .f2q44l2[data-ending-style] {
36
+ opacity: 0;
37
+ transform: translateY(2px) scale(0.96);
38
+ }
39
+ .f2q44l2[data-closed] {
40
+ animation: f2q44l1 150ms ease-in;
41
+ }
42
+ .f2q44l3 {
43
+ width: 10px;
44
+ height: 10px;
45
+ transform-origin: center;
46
+ }
47
+ .f2q44l3 > polygon {
48
+ fill: var(--rc-bg);
49
+ }
50
+ .f2q44l3 > polyline {
51
+ stroke: var(--rc-border);
52
+ fill: none;
53
+ }
54
+ .f2q44l4 {
55
+ font-size: 0.875rem;
56
+ font-weight: 600;
57
+ line-height: 1;
58
+ color: var(--rc-text);
59
+ }
60
+ .f2q44l5 {
61
+ font-size: 0.875rem;
62
+ line-height: 1.25rem;
63
+ color: var(--rc-text-secondary);
64
+ margin-top: 0.25rem;
65
+ }@keyframes _17r50hf0 {
66
+ from {
67
+ opacity: 0;
68
+ transform: scale(0.95);
69
+ }
70
+ to {
71
+ opacity: 1;
72
+ transform: scale(1);
73
+ }
74
+ }
75
+ ._17r50hf1 {
76
+ display: flex;
77
+ align-items: center;
78
+ gap: 2px;
79
+ height: 32px;
80
+ padding: 0 6px;
81
+ border: none;
82
+ background: none;
83
+ border-radius: 8px;
84
+ cursor: pointer;
85
+ color: var(--rc-text-secondary);
86
+ transition: color 0.1s, background-color 0.1s;
87
+ }
88
+ ._17r50hf1:hover {
89
+ color: var(--rc-text);
90
+ background-color: color-mix(in srgb, var(--rc-text) 4%, transparent);
91
+ }
92
+ ._17r50hf2 {
93
+ display: flex;
94
+ flex-direction: column;
95
+ align-items: center;
96
+ }
97
+ ._17r50hf3 {
98
+ font-size: 12px;
99
+ font-weight: 600;
100
+ line-height: 1;
101
+ }
102
+ ._17r50hf4 {
103
+ margin-top: 2px;
104
+ height: 2px;
105
+ width: 14px;
106
+ border-radius: 1px;
107
+ }
108
+ ._17r50hf5 {
109
+ width: 12px;
110
+ height: 12px;
111
+ transition: transform 0.15s;
112
+ }
113
+ ._17r50hf6 {
114
+ padding: 8px;
115
+ width: auto;
116
+ }
117
+ ._17r50hf6[data-open] {
118
+ animation: _17r50hf0 120ms ease-out;
119
+ }
120
+ ._17r50hf7 {
121
+ display: grid;
122
+ grid-template-columns: repeat(5, 1fr);
123
+ gap: 4px;
124
+ }
125
+ ._17r50hf8 {
126
+ position: relative;
127
+ display: flex;
128
+ align-items: center;
129
+ justify-content: center;
130
+ width: 28px;
131
+ height: 28px;
132
+ border: none;
133
+ background: none;
134
+ border-radius: 8px;
135
+ cursor: pointer;
136
+ padding: 0;
137
+ transition: background-color 0.1s;
138
+ }
139
+ ._17r50hf8:hover {
140
+ background-color: color-mix(in srgb, var(--rc-text) 4%, transparent);
141
+ }
142
+ ._17r50hf9 {
143
+ width: 16px;
144
+ height: 16px;
145
+ border-radius: 50%;
146
+ border: 1px solid color-mix(in srgb, var(--rc-text) 10%, transparent);
147
+ }
148
+ ._17r50hfa {
149
+ position: absolute;
150
+ width: 10px;
151
+ height: 10px;
152
+ color: var(--rc-bg);
153
+ }@keyframes vwlngv0 {
154
+ from {
155
+ opacity: 0;
156
+ }
157
+ to {
158
+ opacity: 1;
159
+ }
160
+ }
161
+ @keyframes vwlngv1 {
162
+ from {
163
+ opacity: 1;
164
+ }
165
+ to {
166
+ opacity: 0;
167
+ }
168
+ }
169
+ @keyframes vwlngv2 {
170
+ from {
171
+ opacity: 0;
172
+ transform: translate(-50%, -48%) scale(0.95);
173
+ }
174
+ to {
175
+ opacity: 1;
176
+ transform: translate(-50%, -50%) scale(1);
177
+ }
178
+ }
179
+ @keyframes vwlngv3 {
180
+ from {
181
+ opacity: 1;
182
+ transform: translate(-50%, -50%) scale(1);
183
+ }
184
+ to {
185
+ opacity: 0;
186
+ transform: translate(-50%, -48%) scale(0.95);
187
+ }
188
+ }
189
+ .vwlngv4 {
190
+ position: fixed;
191
+ inset: 0;
192
+ z-index: 50;
193
+ background-color: rgba(0, 0, 0, 0.8);
194
+ }
195
+ .vwlngv4[data-open] {
196
+ animation: vwlngv0 150ms ease-out;
197
+ }
198
+ .vwlngv4[data-closed] {
199
+ animation: vwlngv1 100ms ease-in;
200
+ }
201
+ .vwlngv5 {
202
+ position: fixed;
203
+ top: 50%;
204
+ left: 50%;
205
+ transform: translate(-50%, -50%);
206
+ z-index: 50;
207
+ display: grid;
208
+ width: 100%;
209
+ max-width: calc(100% - 2rem);
210
+ gap: 1rem;
211
+ border-radius: 0.75rem;
212
+ border: 1px solid var(--rc-border);
213
+ padding: 1.5rem;
214
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
215
+ font-size: 0.875rem;
216
+ line-height: 1.43;
217
+ color: var(--rc-text);
218
+ background-color: var(--rc-bg);
219
+ box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
220
+ outline: none;
221
+ }
222
+ .vwlngv5[data-open] {
223
+ animation: vwlngv2 150ms ease-out;
224
+ }
225
+ .vwlngv5[data-closed] {
226
+ animation: vwlngv3 100ms ease-in;
227
+ }
228
+ .vwlngv6 {
229
+ position: absolute;
230
+ top: 1rem;
231
+ right: 1rem;
232
+ display: inline-flex;
233
+ align-items: center;
234
+ justify-content: center;
235
+ width: 24px;
236
+ height: 24px;
237
+ border-radius: 0.25rem;
238
+ border: none;
239
+ background: none;
240
+ cursor: pointer;
241
+ opacity: 0.7;
242
+ color: var(--rc-text-secondary);
243
+ transition: opacity 0.2s ease, color 0.2s ease;
244
+ }
245
+ .vwlngv6:hover {
246
+ opacity: 1;
247
+ color: var(--rc-text);
248
+ }
249
+ .vwlngv6:focus-visible {
250
+ outline: none;
251
+ box-shadow: 0 0 0 2px var(--rc-bg), 0 0 0 4px var(--rc-text-secondary);
252
+ }
253
+ .vwlngv6:disabled {
254
+ pointer-events: none;
255
+ opacity: 0.5;
256
+ }
257
+ .vwlngv6 svg {
258
+ width: 16px;
259
+ height: 16px;
260
+ pointer-events: none;
261
+ flex-shrink: 0;
262
+ }
263
+ .vwlngv7 {
264
+ display: flex;
265
+ flex-direction: column;
266
+ gap: 0.375rem;
267
+ text-align: center;
268
+ }
269
+ .vwlngv8 {
270
+ display: flex;
271
+ flex-direction: column-reverse;
272
+ gap: 0.5rem;
273
+ padding-top: 0.25rem;
274
+ }
275
+ .vwlngv9 {
276
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
277
+ font-size: 1.125rem;
278
+ font-weight: 600;
279
+ line-height: 1.33;
280
+ letter-spacing: -0.015em;
281
+ color: var(--rc-text);
282
+ }
283
+ .vwlngva {
284
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
285
+ font-size: 0.875rem;
286
+ line-height: 1.43;
287
+ color: var(--rc-text-secondary);
288
+ }
289
+ @media (min-width: 640px) {
290
+ .vwlngv5 {
291
+ max-width: 28rem;
292
+ }
293
+ .vwlngv7 {
294
+ text-align: left;
295
+ }
296
+ .vwlngv8 {
297
+ flex-direction: row;
298
+ justify-content: flex-end;
299
+ }
300
+ }.oih0op0 {
301
+ min-width: 8rem;
302
+ border-radius: 0.5rem;
303
+ padding: 0.25rem;
304
+ background-color: var(--rc-bg);
305
+ box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
306
+ outline: none;
307
+ border: 1px solid var(--rc-border);
308
+ z-index: 50;
309
+ max-height: var(--available-height);
310
+ overflow-y: auto;
311
+ transform-origin: var(--transform-origin);
312
+ transition: opacity 100ms, transform 100ms;
313
+ }
314
+ .oih0op0[data-open] {
315
+ opacity: 1;
316
+ transform: scale(1);
317
+ }
318
+ .oih0op0[data-closed] {
319
+ opacity: 0;
320
+ transform: scale(0.95);
321
+ }
322
+ .oih0op1 {
323
+ display: flex;
324
+ align-items: center;
325
+ gap: 0.375rem;
326
+ border-radius: 0.375rem;
327
+ padding: 0.25rem 0.375rem;
328
+ font-size: 0.875rem;
329
+ line-height: 1.25rem;
330
+ outline: none;
331
+ user-select: none;
332
+ cursor: default;
333
+ color: var(--rc-text);
334
+ }
335
+ .oih0op1[data-highlighted] {
336
+ background-color: color-mix(in srgb, var(--rc-text) 4%, transparent);
337
+ }
338
+ .oih0op1[data-disabled] {
339
+ opacity: 0.5;
340
+ pointer-events: none;
341
+ }
342
+ .oih0op1 svg {
343
+ pointer-events: none;
344
+ flex-shrink: 0;
345
+ width: 16px;
346
+ height: 16px;
347
+ }
348
+ .oih0op2 {
349
+ height: 1px;
350
+ background-color: var(--rc-border);
351
+ margin: 0.25rem -0.25rem;
352
+ }
353
+ .oih0op3 {
354
+ font-size: 0.75rem;
355
+ font-weight: 500;
356
+ color: var(--rc-text-secondary);
357
+ padding: 0.25rem 0.375rem;
358
+ }
359
+ .oih0op4 {
360
+ display: inline-flex;
361
+ align-items: center;
362
+ justify-content: center;
363
+ width: 16px;
364
+ height: 16px;
365
+ flex-shrink: 0;
366
+ }
367
+ .oih0op5 {
368
+ display: inline-flex;
369
+ align-items: center;
370
+ justify-content: center;
371
+ width: 16px;
372
+ height: 16px;
373
+ flex-shrink: 0;
374
+ }._6d8tz20 {
375
+ position: relative;
376
+ display: inline-flex;
377
+ align-items: center;
378
+ border-radius: 0.5rem;
379
+ background-color: var(--rc-bg-secondary);
380
+ padding: 0.25rem;
381
+ }
382
+ ._6d8tz21 {
383
+ width: 100%;
384
+ }
385
+ ._6d8tz22 {
386
+ height: 2rem;
387
+ font-size: 0.75rem;
388
+ }
389
+ ._6d8tz23 {
390
+ height: 2.5rem;
391
+ font-size: 0.875rem;
392
+ }
393
+ ._6d8tz24 {
394
+ position: absolute;
395
+ top: 0.25rem;
396
+ bottom: 0.25rem;
397
+ border-radius: 0.375rem;
398
+ background-color: var(--rc-bg);
399
+ box-shadow: 0 1px 2px 0 rgba(0,0,0,0.05);
400
+ transition: all 300ms cubic-bezier(0.25, 1, 0.5, 1);
401
+ pointer-events: none;
402
+ }
403
+ ._6d8tz25 {
404
+ opacity: 0;
405
+ }
406
+ ._6d8tz26 {
407
+ position: relative;
408
+ z-index: 10;
409
+ display: flex;
410
+ align-items: center;
411
+ justify-content: center;
412
+ white-space: nowrap;
413
+ border-radius: 0.375rem;
414
+ font-weight: 500;
415
+ outline: none;
416
+ border: none;
417
+ background: transparent;
418
+ cursor: pointer;
419
+ transition: color 200ms;
420
+ color: var(--rc-text-secondary);
421
+ }
422
+ ._6d8tz26:focus-visible {
423
+ outline: 2px solid var(--rc-accent);
424
+ outline-offset: 1px;
425
+ }
426
+ ._6d8tz27 {
427
+ color: var(--rc-text);
428
+ }
429
+ ._6d8tz28 {
430
+ pointer-events: none;
431
+ opacity: 0.4;
432
+ }
433
+ ._6d8tz29 {
434
+ flex: 1;
435
+ }
436
+ ._6d8tz2a {
437
+ padding: 0 0.75rem;
438
+ }
439
+ ._6d8tz2b {
440
+ padding: 0 1rem;
441
+ }@keyframes _1cspf2m0 {
442
+ from {
443
+ opacity: 0;
444
+ transform: translateY(2px);
445
+ }
446
+ to {
447
+ opacity: 1;
448
+ transform: translateY(0);
449
+ }
450
+ }
451
+ @keyframes _1cspf2m1 {
452
+ from {
453
+ opacity: 1;
454
+ transform: translateY(0);
455
+ }
456
+ to {
457
+ opacity: 0;
458
+ transform: translateY(2px);
459
+ }
460
+ }
461
+ ._1cspf2m2 {
462
+ z-index: 50;
463
+ max-width: 320px;
464
+ padding: 6px 10px;
465
+ font-size: var(--rc-font-size-small);
466
+ line-height: 1.4;
467
+ color: var(--rc-text);
468
+ background-color: var(--rc-bg);
469
+ border: 1px solid var(--rc-border);
470
+ border-radius: var(--rc-radius-md);
471
+ box-shadow: 0 1px 3px rgba(0,0,0,0.06);
472
+ outline: none;
473
+ white-space: normal;
474
+ word-break: break-word;
475
+ pointer-events: none;
476
+ transition: opacity 120ms ease-out, transform 120ms ease-out;
477
+ }
478
+ ._1cspf2m2[data-open] {
479
+ animation: _1cspf2m0 120ms ease-out;
480
+ }
481
+ ._1cspf2m2[data-ending-style] {
482
+ opacity: 0;
483
+ transform: translateY(2px);
484
+ }
485
+ ._1cspf2m2[data-closed] {
486
+ animation: _1cspf2m1 120ms ease-in;
487
+ }
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@haklex/rich-editor-ui",
3
+ "version": "0.0.1",
4
+ "description": "UI components for haklex rich editor",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.mjs",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./style.css": "./dist/rich-editor-ui.css"
13
+ },
14
+ "main": "./dist/index.mjs",
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "dependencies": {
19
+ "@base-ui/react": "^1.1.0",
20
+ "lucide-react": "^0.574.0"
21
+ },
22
+ "devDependencies": {
23
+ "@types/react": "^19.0.0",
24
+ "@types/react-dom": "^19.0.0",
25
+ "@vanilla-extract/css": "^1.17.1",
26
+ "@vanilla-extract/vite-plugin": "^4.0.20",
27
+ "react": "19.2.4",
28
+ "react-dom": "19.2.4",
29
+ "typescript": "^5.9.0",
30
+ "vite": "^7.3.1",
31
+ "vite-plugin-dts": "^4.5.0",
32
+ "@haklex/rich-style-token": "0.0.1"
33
+ },
34
+ "peerDependencies": {
35
+ "react": ">=19",
36
+ "react-dom": ">=19",
37
+ "@haklex/rich-style-token": "0.0.1"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "scripts": {
43
+ "build": "vite build",
44
+ "dev:build": "vite build --watch"
45
+ },
46
+ "types": "./dist/index.d.ts"
47
+ }