@viveksinghind/narrative-form-react 1.0.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/index.css ADDED
@@ -0,0 +1,571 @@
1
+ /* src/styles/base.css */
2
+ :root {
3
+ --ns-bg: #faf9f7;
4
+ --ns-text: #1a1a1a;
5
+ --ns-primary: #3b82f6;
6
+ --ns-error: #ef4444;
7
+ --ns-muted: #888888;
8
+ --ns-border: #d4d4d4;
9
+ --ns-filled-color: #3b82f6;
10
+ --ns-cursor-color: #3b82f6;
11
+ --ns-success-color: #22c55e;
12
+ --ns-loading-color: #3b82f6;
13
+ --ns-placeholder-color: #9ca3af;
14
+ --ns-font-family:
15
+ "Georgia",
16
+ "Times New Roman",
17
+ serif;
18
+ --ns-ui-font:
19
+ ui-sans-serif,
20
+ system-ui,
21
+ -apple-system,
22
+ BlinkMacSystemFont,
23
+ "Segoe UI",
24
+ Roboto,
25
+ "Helvetica Neue",
26
+ Arial,
27
+ sans-serif;
28
+ --ns-font-size: 1.25rem;
29
+ --ns-mobile-font-size: 1.1rem;
30
+ --ns-input-font-style: italic;
31
+ --ns-line-height: 1.8;
32
+ --ns-line-gap: 1rem;
33
+ --ns-page-padding: 2rem;
34
+ --ns-btn-radius: 6px;
35
+ --ns-btn-bg: #3b82f6;
36
+ --ns-btn-color: #ffffff;
37
+ --ns-enter-size: 1.5em;
38
+ --ns-chip-radius: 100px;
39
+ --ns-chip-border: #d4d4d4;
40
+ --ns-chip-active-bg: #3b82f6;
41
+ --ns-chip-active-color: #ffffff;
42
+ --ns-chip-font-style: italic;
43
+ --ns-transition: 0.2s ease-in-out;
44
+ }
45
+ .ns-root {
46
+ font-family: var(--ns-font-family);
47
+ font-size: var(--ns-font-size);
48
+ color: var(--ns-text);
49
+ background: var(--ns-bg);
50
+ line-height: var(--ns-line-height);
51
+ padding: var(--ns-page-padding);
52
+ max-width: 800px;
53
+ margin: 0 auto;
54
+ }
55
+ @media (max-width: 640px) {
56
+ .ns-root {
57
+ font-size: var(--ns-mobile-font-size);
58
+ padding: 1.25rem;
59
+ }
60
+ }
61
+ .ns-letter {
62
+ display: flex;
63
+ flex-direction: column;
64
+ gap: var(--ns-line-gap);
65
+ }
66
+ .ns-line {
67
+ display: inline-flex;
68
+ flex-wrap: wrap;
69
+ align-items: center;
70
+ gap: 0.4em;
71
+ transition: opacity var(--ns-transition);
72
+ }
73
+ .ns-line--confirmed {
74
+ opacity: 0.8;
75
+ }
76
+ .ns-line--shake {
77
+ animation: ns-shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
78
+ }
79
+ .ns-prose {
80
+ display: inline;
81
+ }
82
+ .ns-cursor {
83
+ display: inline-block;
84
+ width: 1ch;
85
+ animation: ns-blink 1s step-end infinite;
86
+ color: var(--ns-cursor-color);
87
+ opacity: 0.7;
88
+ }
89
+ .ns-input-wrap {
90
+ display: inline-flex;
91
+ align-items: center;
92
+ position: relative;
93
+ }
94
+ .ns-input {
95
+ font-family: inherit;
96
+ font-size: inherit;
97
+ font-style: var(--ns-input-font-style);
98
+ color: inherit;
99
+ background: transparent;
100
+ border: none;
101
+ border-bottom: 2px solid var(--ns-border);
102
+ padding: 0 0.2em;
103
+ outline: none;
104
+ transition: border-color var(--ns-transition);
105
+ min-width: 8ch;
106
+ max-width: 100%;
107
+ }
108
+ .ns-input::placeholder {
109
+ color: var(--ns-placeholder-color);
110
+ font-style: var(--ns-input-font-style);
111
+ }
112
+ .ns-input:focus {
113
+ border-bottom-color: var(--ns-primary);
114
+ }
115
+ .ns-enter-btn {
116
+ background: transparent;
117
+ border: none;
118
+ color: var(--ns-primary);
119
+ font-size: var(--ns-enter-size);
120
+ cursor: pointer;
121
+ margin-left: 0.4em;
122
+ opacity: 0;
123
+ transform: translateY(4px);
124
+ transition: all var(--ns-transition);
125
+ }
126
+ .ns-input:focus + .ns-enter-btn,
127
+ .ns-input:not(:placeholder-shown) + .ns-enter-btn,
128
+ .ns-enter-btn:focus {
129
+ opacity: 1;
130
+ transform: translateY(0);
131
+ }
132
+ .ns-filled-wrap {
133
+ display: inline-flex;
134
+ align-items: center;
135
+ font-weight: 600;
136
+ color: var(--ns-filled-color);
137
+ }
138
+ .ns-edit-btn {
139
+ background: transparent;
140
+ border: none;
141
+ cursor: pointer;
142
+ margin-left: 0.4em;
143
+ padding: 0.2em;
144
+ opacity: 0.5;
145
+ transition: opacity var(--ns-transition);
146
+ display: inline-flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ }
150
+ .ns-edit-btn:hover,
151
+ .ns-edit-btn:focus {
152
+ opacity: 1;
153
+ }
154
+ .ns-edit-icon {
155
+ width: 1em;
156
+ height: 1em;
157
+ fill: currentColor;
158
+ }
159
+ .ns-chips-wrap {
160
+ display: inline-flex;
161
+ flex-wrap: wrap;
162
+ gap: 0.5em;
163
+ align-items: center;
164
+ }
165
+ .ns-chip {
166
+ font-family: var(--ns-ui-font);
167
+ font-size: 0.9em;
168
+ font-style: var(--ns-chip-font-style);
169
+ padding: 0.2em 0.8em;
170
+ border: 1px solid var(--ns-chip-border);
171
+ border-radius: var(--ns-chip-radius);
172
+ background: transparent;
173
+ color: inherit;
174
+ cursor: pointer;
175
+ transition: all var(--ns-transition);
176
+ }
177
+ .ns-chip--hover,
178
+ .ns-chip:hover,
179
+ .ns-chip:focus {
180
+ border-color: var(--ns-primary);
181
+ outline: none;
182
+ }
183
+ .ns-chip--active {
184
+ background: var(--ns-chip-active-bg);
185
+ border-color: var(--ns-chip-active-bg);
186
+ color: var(--ns-chip-active-color);
187
+ font-style: normal;
188
+ }
189
+ .ns-select-wrap {
190
+ display: inline-flex;
191
+ align-items: center;
192
+ }
193
+ .ns-select {
194
+ font-family: inherit;
195
+ font-size: inherit;
196
+ color: inherit;
197
+ background: transparent;
198
+ border: none;
199
+ border-bottom: 2px solid var(--ns-primary);
200
+ padding: 0 1.2em 0 0.2em;
201
+ outline: none;
202
+ cursor: pointer;
203
+ appearance: none;
204
+ background-image: url('data:image/svg+xml;utf8,<svg fill="none" stroke="%233b82f6" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg>');
205
+ background-repeat: no-repeat;
206
+ background-position: right center;
207
+ background-size: 1em;
208
+ }
209
+ .ns-otp-wrap {
210
+ display: inline-flex;
211
+ flex-direction: column;
212
+ gap: 0.5em;
213
+ }
214
+ .ns-otp-boxes {
215
+ display: inline-flex;
216
+ gap: 0.4em;
217
+ }
218
+ .ns-otp-box {
219
+ width: 2em;
220
+ height: 2.5em;
221
+ font-family: inherit;
222
+ font-size: inherit;
223
+ text-align: center;
224
+ border: 1px solid var(--ns-border);
225
+ border-radius: 4px;
226
+ background: transparent;
227
+ color: inherit;
228
+ transition: border-color var(--ns-transition);
229
+ }
230
+ .ns-otp-box:focus {
231
+ border-color: var(--ns-primary);
232
+ outline: none;
233
+ }
234
+ .ns-otp-resend-wrap {
235
+ font-size: 0.8em;
236
+ }
237
+ .ns-otp-resend {
238
+ background: transparent;
239
+ border: none;
240
+ color: var(--ns-primary);
241
+ cursor: pointer;
242
+ text-decoration: underline;
243
+ padding: 0;
244
+ }
245
+ .ns-otp-resend--disabled {
246
+ color: var(--ns-muted);
247
+ cursor: not-allowed;
248
+ text-decoration: none;
249
+ }
250
+ .ns-error-wrap {
251
+ display: flex;
252
+ width: 100%;
253
+ }
254
+ .ns-error-wrap--inline {
255
+ margin-top: -0.2em;
256
+ margin-bottom: 0.5em;
257
+ }
258
+ .ns-error-wrap--tooltip {
259
+ position: absolute;
260
+ top: 100%;
261
+ left: 0;
262
+ z-index: 10;
263
+ background: var(--ns-bg);
264
+ border: 1px solid var(--ns-error);
265
+ padding: 0.4em 0.8em;
266
+ border-radius: 4px;
267
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
268
+ }
269
+ .ns-error-text {
270
+ font-size: 0.85em;
271
+ color: var(--ns-error);
272
+ font-style: italic;
273
+ }
274
+ .ns-error-text--shake {
275
+ animation: ns-shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
276
+ }
277
+ .ns-loading-indicator {
278
+ display: inline-block;
279
+ width: 1em;
280
+ height: 1em;
281
+ border: 2px solid transparent;
282
+ border-top-color: var(--ns-loading-color);
283
+ border-radius: 50%;
284
+ animation: ns-spin 0.6s linear infinite;
285
+ margin-left: 0.4em;
286
+ }
287
+ .ns-success-indicator {
288
+ color: var(--ns-success-color);
289
+ margin-left: 0.4em;
290
+ font-size: 1.1em;
291
+ }
292
+ .ns-toast-container {
293
+ position: fixed;
294
+ bottom: 2rem;
295
+ left: 50%;
296
+ transform: translateX(-50%);
297
+ display: flex;
298
+ flex-direction: column;
299
+ gap: 0.5rem;
300
+ z-index: 9999;
301
+ }
302
+ .ns-toast {
303
+ background: #222;
304
+ color: #fff;
305
+ padding: 0.75rem 1.25rem;
306
+ border-radius: 8px;
307
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
308
+ display: flex;
309
+ align-items: center;
310
+ gap: 0.75rem;
311
+ font-size: 1rem;
312
+ font-family: var(--ns-ui-font);
313
+ }
314
+ .ns-toast-close {
315
+ background: transparent;
316
+ border: none;
317
+ color: #aaa;
318
+ cursor: pointer;
319
+ font-size: 1.25rem;
320
+ padding: 0;
321
+ margin-left: auto;
322
+ }
323
+ .ns-toast-close:hover {
324
+ color: #fff;
325
+ }
326
+ .ns-welcome {
327
+ display: flex;
328
+ flex-direction: column;
329
+ align-items: flex-start;
330
+ gap: 1.5rem;
331
+ padding: 2rem 0;
332
+ animation: ns-fade-up 0.5s ease-out forwards;
333
+ }
334
+ .ns-welcome-heading {
335
+ font-family: var(--ns-font-family);
336
+ font-size: 2em;
337
+ font-weight: 700;
338
+ color: var(--ns-text);
339
+ line-height: 1.3;
340
+ margin: 0;
341
+ }
342
+ .ns-welcome-subtext {
343
+ font-family: var(--ns-font-family);
344
+ font-size: 1.1em;
345
+ color: var(--ns-muted);
346
+ line-height: 1.6;
347
+ margin: 0;
348
+ max-width: 36em;
349
+ opacity: 0;
350
+ animation: ns-fade-up 0.5s ease-out 0.3s forwards;
351
+ }
352
+ .ns-welcome-cta {
353
+ font-family: var(--ns-ui-font);
354
+ font-size: 1em;
355
+ font-weight: 600;
356
+ color: var(--ns-btn-color);
357
+ background: var(--ns-btn-bg);
358
+ border: none;
359
+ border-radius: var(--ns-btn-radius);
360
+ padding: 0.75em 2em;
361
+ cursor: pointer;
362
+ transition: all var(--ns-transition);
363
+ opacity: 0;
364
+ animation: ns-fade-up 0.5s ease-out 0.6s forwards;
365
+ }
366
+ .ns-welcome-cta:hover {
367
+ opacity: 0.9;
368
+ transform: translateY(-1px);
369
+ }
370
+ .ns-welcome-cta:active {
371
+ transform: translateY(0);
372
+ }
373
+ .ns-done {
374
+ display: flex;
375
+ flex-direction: column;
376
+ align-items: flex-start;
377
+ gap: 1.5rem;
378
+ padding: 1.5rem 0;
379
+ margin-top: 0.5rem;
380
+ animation: ns-fade-up 0.4s ease-out forwards;
381
+ }
382
+ .ns-done-message {
383
+ font-family: var(--ns-font-family);
384
+ font-size: 1.1em;
385
+ color: var(--ns-text);
386
+ line-height: 1.6;
387
+ margin: 0;
388
+ }
389
+ .ns-done-cta {
390
+ font-family: var(--ns-ui-font);
391
+ font-size: 1em;
392
+ font-weight: 600;
393
+ color: var(--ns-btn-color);
394
+ background: var(--ns-btn-bg);
395
+ border: none;
396
+ border-radius: var(--ns-btn-radius);
397
+ padding: 0.75em 2em;
398
+ cursor: pointer;
399
+ transition: all var(--ns-transition);
400
+ display: inline-flex;
401
+ align-items: center;
402
+ gap: 0.5em;
403
+ min-width: 10em;
404
+ justify-content: center;
405
+ }
406
+ .ns-done-cta:hover {
407
+ opacity: 0.9;
408
+ transform: translateY(-1px);
409
+ }
410
+ .ns-done-cta:active {
411
+ transform: translateY(0);
412
+ }
413
+ .ns-done-cta--loading {
414
+ opacity: 0.7;
415
+ cursor: not-allowed;
416
+ pointer-events: none;
417
+ }
418
+ .ns-done-cta--success {
419
+ background: var(--ns-success-color);
420
+ cursor: default;
421
+ pointer-events: none;
422
+ }
423
+ .ns-done-cta--error {
424
+ background: var(--ns-error);
425
+ }
426
+ .ns-done-error {
427
+ font-size: 0.85em;
428
+ color: var(--ns-error);
429
+ font-style: italic;
430
+ margin-top: -0.5rem;
431
+ }
432
+ .ns-progress-wrap {
433
+ display: flex;
434
+ gap: 0.4em;
435
+ align-items: center;
436
+ padding: 1rem 0;
437
+ }
438
+ .ns-progress-dot {
439
+ width: 0.5em;
440
+ height: 0.5em;
441
+ border-radius: 50%;
442
+ background: var(--ns-border);
443
+ transition: all var(--ns-transition);
444
+ }
445
+ .ns-progress-dot--done {
446
+ background: var(--ns-primary);
447
+ }
448
+ .ns-progress-dot--active {
449
+ background: var(--ns-primary);
450
+ transform: scale(1.3);
451
+ }
452
+ .ns-root--dark {
453
+ --ns-bg: #1a1a2e;
454
+ --ns-text: #e2e8f0;
455
+ --ns-primary: #60a5fa;
456
+ --ns-error: #f87171;
457
+ --ns-muted: #94a3b8;
458
+ --ns-border: #334155;
459
+ --ns-filled-color: #60a5fa;
460
+ --ns-cursor-color: #60a5fa;
461
+ --ns-success-color: #4ade80;
462
+ --ns-loading-color: #60a5fa;
463
+ --ns-placeholder-color: #64748b;
464
+ --ns-chip-border: #475569;
465
+ --ns-chip-active-bg: #60a5fa;
466
+ --ns-chip-active-color: #0f172a;
467
+ --ns-btn-bg: #60a5fa;
468
+ --ns-btn-color: #0f172a;
469
+ }
470
+ @keyframes ns-blink {
471
+ 0%, 100% {
472
+ opacity: 1;
473
+ }
474
+ 50% {
475
+ opacity: 0;
476
+ }
477
+ }
478
+ @keyframes ns-shake {
479
+ 10%, 90% {
480
+ transform: translate3d(-1px, 0, 0);
481
+ }
482
+ 20%, 80% {
483
+ transform: translate3d(2px, 0, 0);
484
+ }
485
+ 30%, 50%, 70% {
486
+ transform: translate3d(-4px, 0, 0);
487
+ }
488
+ 40%, 60% {
489
+ transform: translate3d(4px, 0, 0);
490
+ }
491
+ }
492
+ @keyframes ns-fade-up {
493
+ from {
494
+ opacity: 0;
495
+ transform: translateY(10px);
496
+ }
497
+ to {
498
+ opacity: 1;
499
+ transform: translateY(0);
500
+ }
501
+ }
502
+ @keyframes ns-slide-down {
503
+ from {
504
+ opacity: 0;
505
+ transform: translateY(-10px);
506
+ }
507
+ to {
508
+ opacity: 1;
509
+ transform: translateY(0);
510
+ }
511
+ }
512
+ @keyframes ns-spin {
513
+ to {
514
+ transform: rotate(360deg);
515
+ }
516
+ }
517
+ .ns-animate-fade-up {
518
+ animation: ns-fade-up 0.3s ease-out forwards;
519
+ }
520
+ .ns-animate-slide-down {
521
+ animation: ns-slide-down 0.3s ease-out forwards;
522
+ }
523
+ [dir=rtl] .ns-line {
524
+ flex-direction: row-reverse;
525
+ }
526
+ [dir=rtl] .ns-input {
527
+ text-align: right;
528
+ }
529
+ [dir=rtl] .ns-edit-btn {
530
+ margin-left: 0;
531
+ margin-right: 0.4em;
532
+ }
533
+ [dir=rtl] .ns-enter-btn {
534
+ margin-left: 0;
535
+ margin-right: 0.4em;
536
+ }
537
+ [dir=rtl] .ns-filled-wrap {
538
+ flex-direction: row-reverse;
539
+ }
540
+ [dir=rtl] .ns-chips-wrap {
541
+ flex-direction: row-reverse;
542
+ }
543
+ [dir=rtl] .ns-welcome,
544
+ [dir=rtl] .ns-done {
545
+ align-items: flex-end;
546
+ text-align: right;
547
+ }
548
+ .ns-root--submitting {
549
+ pointer-events: none;
550
+ opacity: 0.85;
551
+ }
552
+ .ns-root--loading .ns-letter {
553
+ opacity: 0.7;
554
+ }
555
+ @media (prefers-reduced-motion: reduce) {
556
+ .ns-cursor,
557
+ .ns-line--shake,
558
+ .ns-error-text--shake,
559
+ .ns-loading-indicator,
560
+ .ns-welcome,
561
+ .ns-welcome-subtext,
562
+ .ns-welcome-cta,
563
+ .ns-done,
564
+ .ns-animate-fade-up,
565
+ .ns-animate-slide-down {
566
+ animation: none !important;
567
+ opacity: 1 !important;
568
+ transform: none !important;
569
+ }
570
+ }
571
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles/base.css"],"sourcesContent":["/*\n * narrative-form Base CSS\n *\n * Implements the \"letter being written\" aesthetic.\n * All classes are prefixed with `ns-`.\n * CSS variables map 1:1 to NarrativeTheme tokens for full theming.\n */\n\n:root {\n /* ── Colors ── */\n --ns-bg: #faf9f7;\n --ns-text: #1a1a1a;\n --ns-primary: #3b82f6;\n --ns-error: #ef4444;\n --ns-muted: #888888;\n --ns-border: #d4d4d4;\n --ns-filled-color: #3b82f6;\n --ns-cursor-color: #3b82f6;\n --ns-success-color: #22c55e;\n --ns-loading-color: #3b82f6;\n --ns-placeholder-color: #9ca3af;\n\n /* ── Typography ── */\n --ns-font-family: \"Georgia\", \"Times New Roman\", serif;\n --ns-ui-font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n --ns-font-size: 1.25rem;\n --ns-mobile-font-size: 1.1rem;\n --ns-input-font-style: italic;\n --ns-line-height: 1.8;\n\n /* ── Spacing ── */\n --ns-line-gap: 1rem;\n --ns-page-padding: 2rem;\n\n /* ── Buttons ── */\n --ns-btn-radius: 6px;\n --ns-btn-bg: #3b82f6;\n --ns-btn-color: #ffffff;\n --ns-enter-size: 1.5em;\n\n /* ── Chips ── */\n --ns-chip-radius: 100px;\n --ns-chip-border: #d4d4d4;\n --ns-chip-active-bg: #3b82f6;\n --ns-chip-active-color: #ffffff;\n --ns-chip-font-style: italic;\n\n /* ── Animations ── */\n --ns-transition: 0.2s ease-in-out;\n}\n\n/* ── Root Layout ── */\n.ns-root {\n font-family: var(--ns-font-family);\n font-size: var(--ns-font-size);\n color: var(--ns-text);\n background: var(--ns-bg);\n line-height: var(--ns-line-height);\n padding: var(--ns-page-padding);\n max-width: 800px;\n margin: 0 auto;\n}\n\n@media (max-width: 640px) {\n .ns-root {\n font-size: var(--ns-mobile-font-size);\n padding: 1.25rem;\n }\n}\n\n/* The continuous letter body */\n.ns-letter {\n display: flex;\n flex-direction: column;\n gap: var(--ns-line-gap);\n}\n\n/* ── Lines (Sentences) ── */\n.ns-line {\n display: inline-flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.4em;\n transition: opacity var(--ns-transition);\n}\n\n.ns-line--confirmed {\n opacity: 0.8;\n}\n\n.ns-line--shake {\n animation: ns-shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n}\n\n/* ── Prose (Text) ── */\n.ns-prose {\n display: inline;\n}\n\n/* Blinking cursor */\n.ns-cursor {\n display: inline-block;\n width: 1ch;\n animation: ns-blink 1s step-end infinite;\n color: var(--ns-cursor-color);\n opacity: 0.7;\n}\n\n/* ── Inputs ── */\n.ns-input-wrap {\n display: inline-flex;\n align-items: center;\n position: relative;\n}\n\n.ns-input {\n font-family: inherit;\n font-size: inherit;\n font-style: var(--ns-input-font-style);\n color: inherit;\n background: transparent;\n border: none;\n border-bottom: 2px solid var(--ns-border);\n padding: 0 0.2em;\n outline: none;\n transition: border-color var(--ns-transition);\n min-width: 8ch;\n max-width: 100%;\n}\n\n.ns-input::placeholder {\n color: var(--ns-placeholder-color);\n font-style: var(--ns-input-font-style);\n}\n\n.ns-input:focus {\n border-bottom-color: var(--ns-primary);\n}\n\n.ns-enter-btn {\n background: transparent;\n border: none;\n color: var(--ns-primary);\n font-size: var(--ns-enter-size);\n cursor: pointer;\n margin-left: 0.4em;\n opacity: 0;\n transform: translateY(4px);\n transition: all var(--ns-transition);\n}\n\n.ns-input:focus + .ns-enter-btn,\n.ns-input:not(:placeholder-shown) + .ns-enter-btn,\n.ns-enter-btn:focus {\n opacity: 1;\n transform: translateY(0);\n}\n\n/* ── Filled Value ── */\n.ns-filled-wrap {\n display: inline-flex;\n align-items: center;\n font-weight: 600;\n color: var(--ns-filled-color);\n}\n\n.ns-edit-btn {\n background: transparent;\n border: none;\n cursor: pointer;\n margin-left: 0.4em;\n padding: 0.2em;\n opacity: 0.5;\n transition: opacity var(--ns-transition);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.ns-edit-btn:hover,\n.ns-edit-btn:focus {\n opacity: 1;\n}\n\n.ns-edit-icon {\n width: 1em;\n height: 1em;\n fill: currentColor;\n}\n\n/* ── Chips ── */\n.ns-chips-wrap {\n display: inline-flex;\n flex-wrap: wrap;\n gap: 0.5em;\n align-items: center;\n}\n\n.ns-chip {\n font-family: var(--ns-ui-font);\n font-size: 0.9em;\n font-style: var(--ns-chip-font-style);\n padding: 0.2em 0.8em;\n border: 1px solid var(--ns-chip-border);\n border-radius: var(--ns-chip-radius);\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: all var(--ns-transition);\n}\n\n.ns-chip--hover,\n.ns-chip:hover,\n.ns-chip:focus {\n border-color: var(--ns-primary);\n outline: none;\n}\n\n.ns-chip--active {\n background: var(--ns-chip-active-bg);\n border-color: var(--ns-chip-active-bg);\n color: var(--ns-chip-active-color);\n font-style: normal;\n}\n\n/* ── Select ── */\n.ns-select-wrap {\n display: inline-flex;\n align-items: center;\n}\n\n.ns-select {\n font-family: inherit;\n font-size: inherit;\n color: inherit;\n background: transparent;\n border: none;\n border-bottom: 2px solid var(--ns-primary);\n padding: 0 1.2em 0 0.2em;\n outline: none;\n cursor: pointer;\n appearance: none;\n background-image: url('data:image/svg+xml;utf8,<svg fill=\"none\" stroke=\"%233b82f6\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M19 9l-7 7-7-7\"></path></svg>');\n background-repeat: no-repeat;\n background-position: right center;\n background-size: 1em;\n}\n\n/* ── OTP Field ── */\n.ns-otp-wrap {\n display: inline-flex;\n flex-direction: column;\n gap: 0.5em;\n}\n\n.ns-otp-boxes {\n display: inline-flex;\n gap: 0.4em;\n}\n\n.ns-otp-box {\n width: 2em;\n height: 2.5em;\n font-family: inherit;\n font-size: inherit;\n text-align: center;\n border: 1px solid var(--ns-border);\n border-radius: 4px;\n background: transparent;\n color: inherit;\n transition: border-color var(--ns-transition);\n}\n\n.ns-otp-box:focus {\n border-color: var(--ns-primary);\n outline: none;\n}\n\n.ns-otp-resend-wrap {\n font-size: 0.8em;\n}\n\n.ns-otp-resend {\n background: transparent;\n border: none;\n color: var(--ns-primary);\n cursor: pointer;\n text-decoration: underline;\n padding: 0;\n}\n\n.ns-otp-resend--disabled {\n color: var(--ns-muted);\n cursor: not-allowed;\n text-decoration: none;\n}\n\n/* ── Error Messages ── */\n.ns-error-wrap {\n display: flex;\n width: 100%;\n}\n\n.ns-error-wrap--inline {\n margin-top: -0.2em;\n margin-bottom: 0.5em;\n}\n\n.ns-error-wrap--tooltip {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 10;\n background: var(--ns-bg);\n border: 1px solid var(--ns-error);\n padding: 0.4em 0.8em;\n border-radius: 4px;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n.ns-error-text {\n font-size: 0.85em;\n color: var(--ns-error);\n font-style: italic;\n}\n\n.ns-error-text--shake {\n animation: ns-shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;\n}\n\n/* ── Loading / Success Indicators ── */\n.ns-loading-indicator {\n display: inline-block;\n width: 1em;\n height: 1em;\n border: 2px solid transparent;\n border-top-color: var(--ns-loading-color);\n border-radius: 50%;\n animation: ns-spin 0.6s linear infinite;\n margin-left: 0.4em;\n}\n\n.ns-success-indicator {\n color: var(--ns-success-color);\n margin-left: 0.4em;\n font-size: 1.1em;\n}\n\n/* ── Toasts ── */\n.ns-toast-container {\n position: fixed;\n bottom: 2rem;\n left: 50%;\n transform: translateX(-50%);\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n z-index: 9999;\n}\n\n.ns-toast {\n background: #222;\n color: #fff;\n padding: 0.75rem 1.25rem;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 1rem;\n font-family: var(--ns-ui-font);\n}\n\n.ns-toast-close {\n background: transparent;\n border: none;\n color: #aaa;\n cursor: pointer;\n font-size: 1.25rem;\n padding: 0;\n margin-left: auto;\n}\n\n.ns-toast-close:hover {\n color: #fff;\n}\n\n/* ── Welcome Screen ── */\n.ns-welcome {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 1.5rem;\n padding: 2rem 0;\n animation: ns-fade-up 0.5s ease-out forwards;\n}\n\n.ns-welcome-heading {\n font-family: var(--ns-font-family);\n font-size: 2em;\n font-weight: 700;\n color: var(--ns-text);\n line-height: 1.3;\n margin: 0;\n}\n\n.ns-welcome-subtext {\n font-family: var(--ns-font-family);\n font-size: 1.1em;\n color: var(--ns-muted);\n line-height: 1.6;\n margin: 0;\n max-width: 36em;\n opacity: 0;\n animation: ns-fade-up 0.5s ease-out 0.3s forwards;\n}\n\n.ns-welcome-cta {\n font-family: var(--ns-ui-font);\n font-size: 1em;\n font-weight: 600;\n color: var(--ns-btn-color);\n background: var(--ns-btn-bg);\n border: none;\n border-radius: var(--ns-btn-radius);\n padding: 0.75em 2em;\n cursor: pointer;\n transition: all var(--ns-transition);\n opacity: 0;\n animation: ns-fade-up 0.5s ease-out 0.6s forwards;\n}\n\n.ns-welcome-cta:hover {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n\n.ns-welcome-cta:active {\n transform: translateY(0);\n}\n\n/* ── Done Screen ── */\n.ns-done {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 1.5rem;\n padding: 1.5rem 0;\n margin-top: 0.5rem;\n animation: ns-fade-up 0.4s ease-out forwards;\n}\n\n.ns-done-message {\n font-family: var(--ns-font-family);\n font-size: 1.1em;\n color: var(--ns-text);\n line-height: 1.6;\n margin: 0;\n}\n\n.ns-done-cta {\n font-family: var(--ns-ui-font);\n font-size: 1em;\n font-weight: 600;\n color: var(--ns-btn-color);\n background: var(--ns-btn-bg);\n border: none;\n border-radius: var(--ns-btn-radius);\n padding: 0.75em 2em;\n cursor: pointer;\n transition: all var(--ns-transition);\n display: inline-flex;\n align-items: center;\n gap: 0.5em;\n min-width: 10em;\n justify-content: center;\n}\n\n.ns-done-cta:hover {\n opacity: 0.9;\n transform: translateY(-1px);\n}\n\n.ns-done-cta:active {\n transform: translateY(0);\n}\n\n.ns-done-cta--loading {\n opacity: 0.7;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.ns-done-cta--success {\n background: var(--ns-success-color);\n cursor: default;\n pointer-events: none;\n}\n\n.ns-done-cta--error {\n background: var(--ns-error);\n}\n\n.ns-done-error {\n font-size: 0.85em;\n color: var(--ns-error);\n font-style: italic;\n margin-top: -0.5rem;\n}\n\n/* ── Progress Dots ── */\n.ns-progress-wrap {\n display: flex;\n gap: 0.4em;\n align-items: center;\n padding: 1rem 0;\n}\n\n.ns-progress-dot {\n width: 0.5em;\n height: 0.5em;\n border-radius: 50%;\n background: var(--ns-border);\n transition: all var(--ns-transition);\n}\n\n.ns-progress-dot--done {\n background: var(--ns-primary);\n}\n\n.ns-progress-dot--active {\n background: var(--ns-primary);\n transform: scale(1.3);\n}\n\n/* ── Dark Mode ── */\n.ns-root--dark {\n --ns-bg: #1a1a2e;\n --ns-text: #e2e8f0;\n --ns-primary: #60a5fa;\n --ns-error: #f87171;\n --ns-muted: #94a3b8;\n --ns-border: #334155;\n --ns-filled-color: #60a5fa;\n --ns-cursor-color: #60a5fa;\n --ns-success-color: #4ade80;\n --ns-loading-color: #60a5fa;\n --ns-placeholder-color: #64748b;\n --ns-chip-border: #475569;\n --ns-chip-active-bg: #60a5fa;\n --ns-chip-active-color: #0f172a;\n --ns-btn-bg: #60a5fa;\n --ns-btn-color: #0f172a;\n}\n\n/* ── Animations ── */\n@keyframes ns-blink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0; }\n}\n\n@keyframes ns-shake {\n 10%, 90% { transform: translate3d(-1px, 0, 0); }\n 20%, 80% { transform: translate3d(2px, 0, 0); }\n 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }\n 40%, 60% { transform: translate3d(4px, 0, 0); }\n}\n\n@keyframes ns-fade-up {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes ns-slide-down {\n from { opacity: 0; transform: translateY(-10px); }\n to { opacity: 1; transform: translateY(0); }\n}\n\n@keyframes ns-spin {\n to { transform: rotate(360deg); }\n}\n\n.ns-animate-fade-up {\n animation: ns-fade-up 0.3s ease-out forwards;\n}\n\n.ns-animate-slide-down {\n animation: ns-slide-down 0.3s ease-out forwards;\n}\n\n/* ── RTL Layout ── */\n[dir=\"rtl\"] .ns-line {\n flex-direction: row-reverse;\n}\n\n[dir=\"rtl\"] .ns-input {\n text-align: right;\n}\n\n[dir=\"rtl\"] .ns-edit-btn {\n margin-left: 0;\n margin-right: 0.4em;\n}\n\n[dir=\"rtl\"] .ns-enter-btn {\n margin-left: 0;\n margin-right: 0.4em;\n}\n\n[dir=\"rtl\"] .ns-filled-wrap {\n flex-direction: row-reverse;\n}\n\n[dir=\"rtl\"] .ns-chips-wrap {\n flex-direction: row-reverse;\n}\n\n[dir=\"rtl\"] .ns-welcome,\n[dir=\"rtl\"] .ns-done {\n align-items: flex-end;\n text-align: right;\n}\n\n/* ── Root State Classes ── */\n.ns-root--submitting {\n pointer-events: none;\n opacity: 0.85;\n}\n\n.ns-root--loading .ns-letter {\n opacity: 0.7;\n}\n\n/* ── Reduced Motion ── */\n@media (prefers-reduced-motion: reduce) {\n .ns-cursor,\n .ns-line--shake,\n .ns-error-text--shake,\n .ns-loading-indicator,\n .ns-welcome,\n .ns-welcome-subtext,\n .ns-welcome-cta,\n .ns-done,\n .ns-animate-fade-up,\n .ns-animate-slide-down {\n animation: none !important;\n opacity: 1 !important;\n transform: none !important;\n }\n}\n"],"mappings":"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","names":[]}