@safestrong/ppa-component-library 1.0.0 → 1.1.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.
@@ -0,0 +1,981 @@
1
+ /*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @layer theme, base, components, utilities;
4
+ @layer theme {
5
+ :root, :host {
6
+ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
7
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
+ "Courier New", monospace;
10
+ --color-white: #fff;
11
+ --spacing: 0.25rem;
12
+ --font-weight-semibold: 600;
13
+ --animate-spin: spin 1s linear infinite;
14
+ --default-transition-duration: 150ms;
15
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
16
+ --default-font-family: var(--font-sans);
17
+ --default-mono-font-family: var(--font-mono);
18
+ }
19
+ }
20
+ @layer base {
21
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
22
+ box-sizing: border-box;
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0 solid;
26
+ }
27
+ html, :host {
28
+ line-height: 1.5;
29
+ -webkit-text-size-adjust: 100%;
30
+ tab-size: 4;
31
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
32
+ font-feature-settings: var(--default-font-feature-settings, normal);
33
+ font-variation-settings: var(--default-font-variation-settings, normal);
34
+ -webkit-tap-highlight-color: transparent;
35
+ }
36
+ hr {
37
+ height: 0;
38
+ color: inherit;
39
+ border-top-width: 1px;
40
+ }
41
+ abbr:where([title]) {
42
+ -webkit-text-decoration: underline dotted;
43
+ text-decoration: underline dotted;
44
+ }
45
+ h1, h2, h3, h4, h5, h6 {
46
+ font-size: inherit;
47
+ font-weight: inherit;
48
+ }
49
+ a {
50
+ color: inherit;
51
+ -webkit-text-decoration: inherit;
52
+ text-decoration: inherit;
53
+ }
54
+ b, strong {
55
+ font-weight: bolder;
56
+ }
57
+ code, kbd, samp, pre {
58
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
59
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
60
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
61
+ font-size: 1em;
62
+ }
63
+ small {
64
+ font-size: 80%;
65
+ }
66
+ sub, sup {
67
+ font-size: 75%;
68
+ line-height: 0;
69
+ position: relative;
70
+ vertical-align: baseline;
71
+ }
72
+ sub {
73
+ bottom: -0.25em;
74
+ }
75
+ sup {
76
+ top: -0.5em;
77
+ }
78
+ table {
79
+ text-indent: 0;
80
+ border-color: inherit;
81
+ border-collapse: collapse;
82
+ }
83
+ :-moz-focusring {
84
+ outline: auto;
85
+ }
86
+ progress {
87
+ vertical-align: baseline;
88
+ }
89
+ summary {
90
+ display: list-item;
91
+ }
92
+ ol, ul, menu {
93
+ list-style: none;
94
+ }
95
+ img, svg, video, canvas, audio, iframe, embed, object {
96
+ display: block;
97
+ vertical-align: middle;
98
+ }
99
+ img, video {
100
+ max-width: 100%;
101
+ height: auto;
102
+ }
103
+ button, input, select, optgroup, textarea, ::file-selector-button {
104
+ font: inherit;
105
+ font-feature-settings: inherit;
106
+ font-variation-settings: inherit;
107
+ letter-spacing: inherit;
108
+ color: inherit;
109
+ border-radius: 0;
110
+ background-color: transparent;
111
+ opacity: 1;
112
+ }
113
+ :where(select:is([multiple], [size])) optgroup {
114
+ font-weight: bolder;
115
+ }
116
+ :where(select:is([multiple], [size])) optgroup option {
117
+ padding-inline-start: 20px;
118
+ }
119
+ ::file-selector-button {
120
+ margin-inline-end: 4px;
121
+ }
122
+ ::placeholder {
123
+ opacity: 1;
124
+ }
125
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
126
+ ::placeholder {
127
+ color: currentcolor;
128
+ @supports (color: color-mix(in lab, red, red)) {
129
+ color: color-mix(in oklab, currentcolor 50%, transparent);
130
+ }
131
+ }
132
+ }
133
+ textarea {
134
+ resize: vertical;
135
+ }
136
+ ::-webkit-search-decoration {
137
+ -webkit-appearance: none;
138
+ }
139
+ ::-webkit-date-and-time-value {
140
+ min-height: 1lh;
141
+ text-align: inherit;
142
+ }
143
+ ::-webkit-datetime-edit {
144
+ display: inline-flex;
145
+ }
146
+ ::-webkit-datetime-edit-fields-wrapper {
147
+ padding: 0;
148
+ }
149
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
150
+ padding-block: 0;
151
+ }
152
+ ::-webkit-calendar-picker-indicator {
153
+ line-height: 1;
154
+ }
155
+ :-moz-ui-invalid {
156
+ box-shadow: none;
157
+ }
158
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
159
+ appearance: button;
160
+ }
161
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
162
+ height: auto;
163
+ }
164
+ [hidden]:where(:not([hidden="until-found"])) {
165
+ display: none !important;
166
+ }
167
+ }
168
+ @layer utilities {
169
+ .absolute {
170
+ position: absolute;
171
+ }
172
+ .relative {
173
+ position: relative;
174
+ }
175
+ .static {
176
+ position: static;
177
+ }
178
+ .top-0 {
179
+ top: calc(var(--spacing) * 0);
180
+ }
181
+ .top-\[-0\.2rem\] {
182
+ top: -0.2rem;
183
+ }
184
+ .top-\[2rem\] {
185
+ top: 2rem;
186
+ }
187
+ .top-\[10rem\] {
188
+ top: 10rem;
189
+ }
190
+ .top-\[18rem\] {
191
+ top: 18rem;
192
+ }
193
+ .top-\[26rem\] {
194
+ top: 26rem;
195
+ }
196
+ .top-full {
197
+ top: 100%;
198
+ }
199
+ .right-0 {
200
+ right: calc(var(--spacing) * 0);
201
+ }
202
+ .right-\[2rem\] {
203
+ right: 2rem;
204
+ }
205
+ .right-full {
206
+ right: 100%;
207
+ }
208
+ .bottom-full {
209
+ bottom: 100%;
210
+ }
211
+ .left-full {
212
+ left: 100%;
213
+ }
214
+ .my-\[0\.98rem\] {
215
+ margin-block: 0.98rem;
216
+ }
217
+ .mt-\[1\.5rem\] {
218
+ margin-top: 1.5rem;
219
+ }
220
+ .mt-\[1rem\] {
221
+ margin-top: 1rem;
222
+ }
223
+ .mt-\[2\.2rem\] {
224
+ margin-top: 2.2rem;
225
+ }
226
+ .mt-\[2\.5rem\] {
227
+ margin-top: 2.5rem;
228
+ }
229
+ .mt-\[3rem\] {
230
+ margin-top: 3rem;
231
+ }
232
+ .ml-\[5rem\] {
233
+ margin-left: 5rem;
234
+ }
235
+ .flex {
236
+ display: flex;
237
+ }
238
+ .hidden {
239
+ display: none;
240
+ }
241
+ .inline-block {
242
+ display: inline-block;
243
+ }
244
+ .w-\[2rem\] {
245
+ width: 2rem;
246
+ }
247
+ .w-\[20rem\] {
248
+ width: 20rem;
249
+ }
250
+ .w-\[30rem\] {
251
+ width: 30rem;
252
+ }
253
+ .w-\[max-content\] {
254
+ width: max-content;
255
+ }
256
+ .translate-x-\[-0\.6rem\] {
257
+ --tw-translate-x: -0.6rem;
258
+ translate: var(--tw-translate-x) var(--tw-translate-y);
259
+ }
260
+ .translate-x-\[0\.6rem\] {
261
+ --tw-translate-x: 0.6rem;
262
+ translate: var(--tw-translate-x) var(--tw-translate-y);
263
+ }
264
+ .translate-y-\[-0\.3rem\] {
265
+ --tw-translate-y: -0.3rem;
266
+ translate: var(--tw-translate-x) var(--tw-translate-y);
267
+ }
268
+ .translate-y-\[0\.3rem\] {
269
+ --tw-translate-y: 0.3rem;
270
+ translate: var(--tw-translate-x) var(--tw-translate-y);
271
+ }
272
+ .transform {
273
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
274
+ }
275
+ .animate-spin {
276
+ animation: var(--animate-spin);
277
+ }
278
+ .cursor-pointer {
279
+ cursor: pointer;
280
+ }
281
+ .items-end {
282
+ align-items: flex-end;
283
+ }
284
+ .items-start {
285
+ align-items: flex-start;
286
+ }
287
+ .gap-\[1rem\] {
288
+ gap: 1rem;
289
+ }
290
+ .gap-\[2rem\] {
291
+ gap: 2rem;
292
+ }
293
+ .gap-\[3rem\] {
294
+ gap: 3rem;
295
+ }
296
+ .border {
297
+ border-style: var(--tw-border-style);
298
+ border-width: 1px;
299
+ }
300
+ .border-t {
301
+ border-top-style: var(--tw-border-style);
302
+ border-top-width: 1px;
303
+ }
304
+ .border-t-\[var\(--color-border\)\] {
305
+ border-top-color: var(--color-border);
306
+ }
307
+ .p-\[0\.8rem\] {
308
+ padding: 0.8rem;
309
+ }
310
+ .p-\[0\.75rem\] {
311
+ padding: 0.75rem;
312
+ }
313
+ .px-\[0\.7rem\] {
314
+ padding-inline: 0.7rem;
315
+ }
316
+ .px-\[1rem\] {
317
+ padding-inline: 1rem;
318
+ }
319
+ .py-\[0\.67rem\] {
320
+ padding-block: 0.67rem;
321
+ }
322
+ .pr-\[0\.7rem\] {
323
+ padding-right: 0.7rem;
324
+ }
325
+ .\!pl-0 {
326
+ padding-left: calc(var(--spacing) * 0) !important;
327
+ }
328
+ .text-\[0\.7rem\] {
329
+ font-size: 0.7rem;
330
+ }
331
+ .text-\[1\.1rem\] {
332
+ font-size: 1.1rem;
333
+ }
334
+ .text-\[1\.2rem\] {
335
+ font-size: 1.2rem;
336
+ }
337
+ .leading-\[1\] {
338
+ --tw-leading: 1;
339
+ line-height: 1;
340
+ }
341
+ .text-\[var\(--color-danger\)\] {
342
+ color: var(--color-danger);
343
+ }
344
+ .text-\[var\(--color-icon-input\)\] {
345
+ color: var(--color-icon-input);
346
+ }
347
+ .text-\[var\(--color-primary\)\] {
348
+ color: var(--color-primary);
349
+ }
350
+ .opacity-\[0\] {
351
+ opacity: 0;
352
+ }
353
+ .after\:top-\[-0\.4rem\] {
354
+ &::after {
355
+ content: var(--tw-content);
356
+ top: -0.4rem;
357
+ }
358
+ }
359
+ .after\:top-\[0\.6rem\] {
360
+ &::after {
361
+ content: var(--tw-content);
362
+ top: 0.6rem;
363
+ }
364
+ }
365
+ .after\:right-\[-0\.2rem\] {
366
+ &::after {
367
+ content: var(--tw-content);
368
+ right: -0.2rem;
369
+ }
370
+ }
371
+ .after\:bottom-0 {
372
+ &::after {
373
+ content: var(--tw-content);
374
+ bottom: calc(var(--spacing) * 0);
375
+ }
376
+ }
377
+ .after\:left-\[-0\.2rem\] {
378
+ &::after {
379
+ content: var(--tw-content);
380
+ left: -0.2rem;
381
+ }
382
+ }
383
+ .after\:translate-y-\[0\.2rem\] {
384
+ &::after {
385
+ content: var(--tw-content);
386
+ --tw-translate-y: 0.2rem;
387
+ translate: var(--tw-translate-x) var(--tw-translate-y);
388
+ }
389
+ }
390
+ .after\:translate-y-\[0\.25rem\] {
391
+ &::after {
392
+ content: var(--tw-content);
393
+ --tw-translate-y: 0.25rem;
394
+ translate: var(--tw-translate-x) var(--tw-translate-y);
395
+ }
396
+ }
397
+ }
398
+ body {
399
+ font-size: 14px;
400
+ color: var(--color-text-primary);
401
+ }
402
+ :root {
403
+ --color-bg-surface: #fff;
404
+ --color-bg-input: #fff;
405
+ --color-primary: #0698db;
406
+ --color-surface-hover: #fafafa;
407
+ --color-primary-dark: #046c9d;
408
+ --color-primary-soft: #e6f8ffda;
409
+ --color-text-primary: #343c42;
410
+ --color-text-secondary: #50565b;
411
+ --color-icon-input: #a9b0b7;
412
+ --color-border: #ededed;
413
+ --color-border-soft: #f0f0f0;
414
+ --color-shadow: #e6e9ef78;
415
+ --color-danger: #ff4f60;
416
+ --color-danger-soft: #ffedee;
417
+ --color-info: #1593db;
418
+ --color-info-soft: #ebf8ff;
419
+ --color-warning: #ffa22f;
420
+ --color-warning-soft: #fff1e1;
421
+ --color-success: #2b9a62;
422
+ --color-success-soft: #eafff4;
423
+ }
424
+ @media (prefers-color-scheme: dark) {
425
+ :root {
426
+ --color-bg-surface: #3c4348;
427
+ --color-text-primary: #fafafa;
428
+ }
429
+ }
430
+ @layer components {
431
+ .btn__primary {
432
+ display: flex;
433
+ cursor: pointer;
434
+ align-items: center;
435
+ gap: 0.65rem;
436
+ border-radius: 0.4rem;
437
+ border-style: var(--tw-border-style);
438
+ border-width: 1px;
439
+ border-color: var(--color-primary);
440
+ background-color: var(--color-primary);
441
+ padding: 0.65rem;
442
+ --tw-leading: 1.2;
443
+ line-height: 1.2;
444
+ color: var(--color-white);
445
+ transition-property: all;
446
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
447
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
448
+ &:hover {
449
+ @media (hover: hover) {
450
+ border-color: var(--color-primary-dark);
451
+ }
452
+ }
453
+ &:hover {
454
+ @media (hover: hover) {
455
+ background-color: var(--color-primary-dark);
456
+ }
457
+ }
458
+ }
459
+ .btn__secondary {
460
+ border-color: transparent;
461
+ background-color: var(--color-primary-soft) !important;
462
+ color: var(--color-primary);
463
+ &:hover {
464
+ @media (hover: hover) {
465
+ border-color: var(--color-primary-soft);
466
+ }
467
+ }
468
+ }
469
+ .text-input__wrapper {
470
+ display: flex;
471
+ align-items: center;
472
+ border-radius: 0.4rem;
473
+ border-style: var(--tw-border-style);
474
+ border-width: 1px;
475
+ border-color: var(--color-border);
476
+ background-color: var(--color-bg-input);
477
+ outline-style: var(--tw-outline-style);
478
+ outline-width: 2px;
479
+ outline-color: transparent;
480
+ &:is(:where(.group):has(*:focus) *) {
481
+ outline-color: var(--color-primary);
482
+ }
483
+ }
484
+ .text-input {
485
+ padding: 0.69rem;
486
+ --tw-leading: 1.2;
487
+ line-height: 1.2;
488
+ &:focus {
489
+ --tw-outline-style: none;
490
+ outline-style: none;
491
+ }
492
+ }
493
+ .text-input__label {
494
+ margin-bottom: 0.25rem;
495
+ display: inline-block;
496
+ color: var(--color-text-secondary);
497
+ }
498
+ .slider__wrapper {
499
+ position: relative;
500
+ height: 0.5rem;
501
+ width: 2rem;
502
+ --tw-translate-y: -0.98rem;
503
+ translate: var(--tw-translate-x) var(--tw-translate-y);
504
+ cursor: pointer;
505
+ border-radius: 2rem;
506
+ background-color: var(--color-icon-input);
507
+ &:has(*:checked) {
508
+ background-color: var(--color-primary);
509
+ }
510
+ }
511
+ .slider {
512
+ position: absolute;
513
+ top: calc(var(--spacing) * 0);
514
+ display: flex;
515
+ height: 1.6rem;
516
+ width: 1rem;
517
+ --tw-translate-y: -0.55rem;
518
+ translate: var(--tw-translate-x) var(--tw-translate-y);
519
+ cursor: pointer;
520
+ align-items: center;
521
+ justify-content: center;
522
+ border-radius: 0.25rem;
523
+ border-style: var(--tw-border-style);
524
+ border-width: 1px;
525
+ border-color: var(--color-border);
526
+ background-color: var(--color-bg-surface);
527
+ color: var(--color-border);
528
+ transition-property: all;
529
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
530
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
531
+ &:is(:where(.peer):checked ~ *) {
532
+ --tw-translate-x: 1.2rem;
533
+ translate: var(--tw-translate-x) var(--tw-translate-y);
534
+ }
535
+ &:is(:where(.peer):checked ~ *) {
536
+ border-color: var(--color-primary);
537
+ }
538
+ &:is(:where(.peer):checked ~ *) {
539
+ color: var(--color-primary);
540
+ }
541
+ }
542
+ .select-item__wrapper {
543
+ visibility: hidden;
544
+ position: absolute;
545
+ top: 1rem;
546
+ z-index: -1;
547
+ max-height: 10rem;
548
+ width: 100%;
549
+ --tw-translate-y: 1.5rem;
550
+ translate: var(--tw-translate-x) var(--tw-translate-y);
551
+ overflow: auto;
552
+ border-radius: 0.4rem;
553
+ border-style: var(--tw-border-style);
554
+ border-width: 1px;
555
+ border-color: var(--color-border);
556
+ background-color: var(--color-bg-surface);
557
+ opacity: 0;
558
+ transition-property: all;
559
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
560
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
561
+ &:is(:where(.peer):focus ~ *) {
562
+ visibility: visible;
563
+ }
564
+ &:is(:where(.peer):focus ~ *) {
565
+ z-index: 10000;
566
+ }
567
+ &:is(:where(.peer):focus ~ *) {
568
+ --tw-translate-y: 1.7rem;
569
+ translate: var(--tw-translate-x) var(--tw-translate-y);
570
+ }
571
+ &:is(:where(.peer):focus ~ *) {
572
+ opacity: 1;
573
+ }
574
+ }
575
+ .select-item {
576
+ display: flex;
577
+ width: 100%;
578
+ cursor: pointer;
579
+ align-items: center;
580
+ justify-content: space-between;
581
+ padding-inline: 0.69rem;
582
+ padding-block: 0.4rem;
583
+ &:hover {
584
+ @media (hover: hover) {
585
+ background-color: var(--color-surface-hover);
586
+ }
587
+ }
588
+ }
589
+ .select-multiple__wrapper {
590
+ &:focus-within {
591
+ visibility: visible;
592
+ }
593
+ &:focus-within {
594
+ z-index: 10000;
595
+ }
596
+ &:focus-within {
597
+ --tw-translate-y: 1.7rem;
598
+ translate: var(--tw-translate-x) var(--tw-translate-y);
599
+ }
600
+ &:focus-within {
601
+ opacity: 1;
602
+ }
603
+ }
604
+ .tooltip-text {
605
+ visibility: hidden;
606
+ position: absolute;
607
+ max-width: 15rem;
608
+ border-radius: 0.3rem;
609
+ background-color: var(--color-text-primary);
610
+ padding-inline: 0.5rem;
611
+ padding-block: 0.4rem;
612
+ font-size: 0.7rem;
613
+ --tw-leading: 1.3;
614
+ line-height: 1.3;
615
+ color: var(--color-bg-surface);
616
+ opacity: 0.8;
617
+ transition-property: all;
618
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
619
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
620
+ &:is(:where(.peer):hover ~ *) {
621
+ @media (hover: hover) {
622
+ visibility: visible;
623
+ }
624
+ }
625
+ &::after {
626
+ content: var(--tw-content);
627
+ position: absolute;
628
+ }
629
+ &::after {
630
+ content: var(--tw-content);
631
+ right: 0.6rem;
632
+ }
633
+ &::after {
634
+ content: var(--tw-content);
635
+ width: calc(var(--spacing) * 2);
636
+ height: calc(var(--spacing) * 2);
637
+ }
638
+ &::after {
639
+ content: var(--tw-content);
640
+ rotate: 45deg;
641
+ }
642
+ &::after {
643
+ content: var(--tw-content);
644
+ background-color: var(--color-text-primary);
645
+ }
646
+ &::after {
647
+ content: var(--tw-content);
648
+ --tw-content: '';
649
+ content: var(--tw-content);
650
+ }
651
+ }
652
+ .navtab__wrapper {
653
+ display: flex;
654
+ }
655
+ .navtab__item {
656
+ cursor: pointer;
657
+ border-top-left-radius: 0.4rem;
658
+ border-top-right-radius: 0.4rem;
659
+ border-bottom-style: var(--tw-border-style);
660
+ border-bottom-width: 3px;
661
+ border-bottom-color: transparent;
662
+ padding: 0.52rem;
663
+ padding-inline: 1rem;
664
+ opacity: 0.5;
665
+ &:hover {
666
+ @media (hover: hover) {
667
+ background-color: var(--color-border);
668
+ }
669
+ }
670
+ }
671
+ .navtab__item__active {
672
+ border-bottom-color: var(--color-primary);
673
+ opacity: 1;
674
+ }
675
+ .card {
676
+ border-radius: 0.7rem;
677
+ border-style: var(--tw-border-style);
678
+ border-width: 1px;
679
+ border-color: var(--color-border-soft);
680
+ background-color: var(--color-bg-surface);
681
+ --tw-shadow: 2px 2px 4px 0 var(--tw-shadow-color, var(--color-shadow));
682
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
683
+ }
684
+ .toast__wrapper {
685
+ position: absolute;
686
+ right: 2rem;
687
+ bottom: 2rem;
688
+ height: max-content;
689
+ width: 23rem;
690
+ cursor: default;
691
+ overflow: hidden;
692
+ border-radius: 0.6rem;
693
+ border-style: var(--tw-border-style);
694
+ border-width: 1px;
695
+ border-color: var(--color-border-soft);
696
+ background-color: var(--color-bg-surface);
697
+ --tw-shadow: 2px 2px 8px 0 var(--tw-shadow-color, var(--color-shadow));
698
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
699
+ }
700
+ .toast__title {
701
+ font-size: 1.2rem;
702
+ --tw-leading: 1;
703
+ line-height: 1;
704
+ --tw-font-weight: var(--font-weight-semibold);
705
+ font-weight: var(--font-weight-semibold);
706
+ }
707
+ .toast__body {
708
+ position: relative;
709
+ display: flex;
710
+ gap: 0.9rem;
711
+ padding: 0.9rem;
712
+ }
713
+ .toast__description {
714
+ margin-top: 0.7rem;
715
+ color: var(--color-text-secondary);
716
+ }
717
+ .toast__bar {
718
+ height: 0.35rem;
719
+ width: calc(var(--spacing) * 0);
720
+ transition-property: width;
721
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
722
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
723
+ --tw-duration: 5s;
724
+ transition-duration: 5s;
725
+ --tw-ease: linear;
726
+ transition-timing-function: linear;
727
+ &:is(:where(.group):hover *) {
728
+ @media (hover: hover) {
729
+ width: calc(var(--spacing) * 100);
730
+ }
731
+ }
732
+ }
733
+ .toast-bg__icon {
734
+ position: absolute;
735
+ right: calc(var(--spacing) * 0);
736
+ --tw-translate-x: 1rem;
737
+ translate: var(--tw-translate-x) var(--tw-translate-y);
738
+ font-size: 4rem;
739
+ opacity: 0.1;
740
+ }
741
+ .toast__inline {
742
+ display: inline-flex;
743
+ width: 100%;
744
+ align-items: center;
745
+ gap: 0.9rem;
746
+ border-radius: 0.4rem;
747
+ padding: 0.9rem;
748
+ --tw-leading: 1;
749
+ line-height: 1;
750
+ }
751
+ .expandable {
752
+ position: relative;
753
+ width: 100%;
754
+ overflow: hidden;
755
+ border-radius: 0.5rem;
756
+ border-style: var(--tw-border-style);
757
+ border-width: 1px;
758
+ border-color: var(--color-border);
759
+ background-color: var(--color-bg-surface);
760
+ }
761
+ .expandable__title {
762
+ display: flex;
763
+ width: 100%;
764
+ cursor: pointer;
765
+ align-items: center;
766
+ gap: 0.5rem;
767
+ padding: 0.75rem;
768
+ padding-inline: 1rem;
769
+ --tw-leading: 1;
770
+ line-height: 1;
771
+ --tw-font-weight: var(--font-weight-semibold);
772
+ font-weight: var(--font-weight-semibold);
773
+ -webkit-user-select: none;
774
+ user-select: none;
775
+ }
776
+ .expandable__body {
777
+ max-height: calc(var(--spacing) * 0);
778
+ border-top-style: var(--tw-border-style);
779
+ border-top-width: 1px;
780
+ border-top-color: transparent;
781
+ transition-property: max-height;
782
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
783
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
784
+ --tw-duration: 0.1s;
785
+ transition-duration: 0.1s;
786
+ &:is(:where(.peer):checked ~ *) {
787
+ max-height: 1000rem;
788
+ }
789
+ &:is(:where(.peer):checked ~ *) {
790
+ border-top-color: var(--color-border);
791
+ }
792
+ &:is(:where(.peer):checked ~ *) {
793
+ --tw-duration: 1s;
794
+ transition-duration: 1s;
795
+ }
796
+ }
797
+ .expandable__icon {
798
+ position: absolute;
799
+ top: 0.7rem;
800
+ right: 0.75rem;
801
+ font-size: 1.1rem;
802
+ color: var(--color-icon-input);
803
+ transition-property: rotate;
804
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
805
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
806
+ &:is(:where(.peer):checked ~ *) {
807
+ rotate: 90deg;
808
+ }
809
+ }
810
+ }
811
+ @property --tw-translate-x {
812
+ syntax: "*";
813
+ inherits: false;
814
+ initial-value: 0;
815
+ }
816
+ @property --tw-translate-y {
817
+ syntax: "*";
818
+ inherits: false;
819
+ initial-value: 0;
820
+ }
821
+ @property --tw-translate-z {
822
+ syntax: "*";
823
+ inherits: false;
824
+ initial-value: 0;
825
+ }
826
+ @property --tw-rotate-x {
827
+ syntax: "*";
828
+ inherits: false;
829
+ }
830
+ @property --tw-rotate-y {
831
+ syntax: "*";
832
+ inherits: false;
833
+ }
834
+ @property --tw-rotate-z {
835
+ syntax: "*";
836
+ inherits: false;
837
+ }
838
+ @property --tw-skew-x {
839
+ syntax: "*";
840
+ inherits: false;
841
+ }
842
+ @property --tw-skew-y {
843
+ syntax: "*";
844
+ inherits: false;
845
+ }
846
+ @property --tw-border-style {
847
+ syntax: "*";
848
+ inherits: false;
849
+ initial-value: solid;
850
+ }
851
+ @property --tw-leading {
852
+ syntax: "*";
853
+ inherits: false;
854
+ }
855
+ @property --tw-content {
856
+ syntax: "*";
857
+ initial-value: "";
858
+ inherits: false;
859
+ }
860
+ @property --tw-outline-style {
861
+ syntax: "*";
862
+ inherits: false;
863
+ initial-value: solid;
864
+ }
865
+ @property --tw-shadow {
866
+ syntax: "*";
867
+ inherits: false;
868
+ initial-value: 0 0 #0000;
869
+ }
870
+ @property --tw-shadow-color {
871
+ syntax: "*";
872
+ inherits: false;
873
+ }
874
+ @property --tw-shadow-alpha {
875
+ syntax: "<percentage>";
876
+ inherits: false;
877
+ initial-value: 100%;
878
+ }
879
+ @property --tw-inset-shadow {
880
+ syntax: "*";
881
+ inherits: false;
882
+ initial-value: 0 0 #0000;
883
+ }
884
+ @property --tw-inset-shadow-color {
885
+ syntax: "*";
886
+ inherits: false;
887
+ }
888
+ @property --tw-inset-shadow-alpha {
889
+ syntax: "<percentage>";
890
+ inherits: false;
891
+ initial-value: 100%;
892
+ }
893
+ @property --tw-ring-color {
894
+ syntax: "*";
895
+ inherits: false;
896
+ }
897
+ @property --tw-ring-shadow {
898
+ syntax: "*";
899
+ inherits: false;
900
+ initial-value: 0 0 #0000;
901
+ }
902
+ @property --tw-inset-ring-color {
903
+ syntax: "*";
904
+ inherits: false;
905
+ }
906
+ @property --tw-inset-ring-shadow {
907
+ syntax: "*";
908
+ inherits: false;
909
+ initial-value: 0 0 #0000;
910
+ }
911
+ @property --tw-ring-inset {
912
+ syntax: "*";
913
+ inherits: false;
914
+ }
915
+ @property --tw-ring-offset-width {
916
+ syntax: "<length>";
917
+ inherits: false;
918
+ initial-value: 0px;
919
+ }
920
+ @property --tw-ring-offset-color {
921
+ syntax: "*";
922
+ inherits: false;
923
+ initial-value: #fff;
924
+ }
925
+ @property --tw-ring-offset-shadow {
926
+ syntax: "*";
927
+ inherits: false;
928
+ initial-value: 0 0 #0000;
929
+ }
930
+ @property --tw-font-weight {
931
+ syntax: "*";
932
+ inherits: false;
933
+ }
934
+ @property --tw-duration {
935
+ syntax: "*";
936
+ inherits: false;
937
+ }
938
+ @property --tw-ease {
939
+ syntax: "*";
940
+ inherits: false;
941
+ }
942
+ @keyframes spin {
943
+ to {
944
+ transform: rotate(360deg);
945
+ }
946
+ }
947
+ @layer properties {
948
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
949
+ *, ::before, ::after, ::backdrop {
950
+ --tw-translate-x: 0;
951
+ --tw-translate-y: 0;
952
+ --tw-translate-z: 0;
953
+ --tw-rotate-x: initial;
954
+ --tw-rotate-y: initial;
955
+ --tw-rotate-z: initial;
956
+ --tw-skew-x: initial;
957
+ --tw-skew-y: initial;
958
+ --tw-border-style: solid;
959
+ --tw-leading: initial;
960
+ --tw-content: "";
961
+ --tw-outline-style: solid;
962
+ --tw-shadow: 0 0 #0000;
963
+ --tw-shadow-color: initial;
964
+ --tw-shadow-alpha: 100%;
965
+ --tw-inset-shadow: 0 0 #0000;
966
+ --tw-inset-shadow-color: initial;
967
+ --tw-inset-shadow-alpha: 100%;
968
+ --tw-ring-color: initial;
969
+ --tw-ring-shadow: 0 0 #0000;
970
+ --tw-inset-ring-color: initial;
971
+ --tw-inset-ring-shadow: 0 0 #0000;
972
+ --tw-ring-inset: initial;
973
+ --tw-ring-offset-width: 0px;
974
+ --tw-ring-offset-color: #fff;
975
+ --tw-ring-offset-shadow: 0 0 #0000;
976
+ --tw-font-weight: initial;
977
+ --tw-duration: initial;
978
+ --tw-ease: initial;
979
+ }
980
+ }
981
+ }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "devDependencies": {
3
3
  "@chromatic-com/storybook": "3.2.2",
4
- "@rollup/plugin-commonjs": "^28.0.1",
5
- "@rollup/plugin-node-resolve": "^15.3.0",
4
+ "@rollup/plugin-commonjs": "^28.0.6",
5
+ "@rollup/plugin-node-resolve": "^15.3.1",
6
6
  "@rollup/plugin-terser": "^0.4.4",
7
- "@rollup/plugin-typescript": "^8.3.0",
7
+ "@rollup/plugin-typescript": "^11.1.6",
8
8
  "@storybook/addon-essentials": "8.4.2",
9
9
  "@storybook/addon-interactions": "8.4.2",
10
10
  "@storybook/addon-onboarding": "8.4.2",
@@ -14,20 +14,24 @@
14
14
  "@storybook/react-webpack5": "8.4.2",
15
15
  "@storybook/test": "8.4.2",
16
16
  "@types/react": "^18.3.12",
17
+ "autoprefixer": "^10.4.21",
18
+ "concurrently": "^9.2.0",
19
+ "postscss": "^2.0.0",
17
20
  "react": "^18.3.1",
18
21
  "react-dom": "^18.3.1",
19
- "rollup": "^4.26.0",
20
- "rollup-plugin-dts": "^6.1.1",
22
+ "rollup": "^4.46.2",
23
+ "rollup-plugin-dts": "^6.2.3",
21
24
  "rollup-plugin-peer-deps-external": "^2.2.4",
22
- "storybook": "8.4.2",
23
- "typescript": "^5.6.3"
25
+ "storybook": "^8.4.2",
26
+ "tailwindcss": "^4.1.12",
27
+ "typescript": "^5.9.2"
24
28
  },
25
29
  "peerDependencies": {
26
30
  "react": "^18.2.0",
27
31
  "react-dom": "^18.2.0"
28
32
  },
29
33
  "name": "@safestrong/ppa-component-library",
30
- "version": "1.0.0",
34
+ "version": "1.1.0",
31
35
  "description": "Collection of reusable components for any PPA web applications",
32
36
  "main": "dist/index.js",
33
37
  "module": "dist/index.esm.js",
@@ -39,9 +43,23 @@
39
43
  "author": "SS6 Development",
40
44
  "license": "MIT",
41
45
  "scripts": {
42
- "storybook": "storybook dev -p 6006",
46
+ "storybook": "concurrently \"npm:dev:css\" \"storybook dev -p 6006\"",
43
47
  "build-storybook": "storybook build",
44
- "rollup": "rollup -c --bundleConfigAsCjs",
45
- "rollupclean": "rollup --config --no-cache --bundleConfigAsCjs"
48
+ "build:css": "npx tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify",
49
+ "dev:css": "npx tailwindcss -i ./src/styles.css -o ./dist/styles.css --watch",
50
+ "rollup": "rollup -c --bundleConfigAsCjs"
51
+ },
52
+ "exports": {
53
+ "./styles.css": "./dist/styles.css"
54
+ },
55
+ "sideEffects": [
56
+ "**/*.css"
57
+ ],
58
+ "dependencies": {
59
+ "@fortawesome/fontawesome-svg-core": "^6.7.2",
60
+ "@fortawesome/free-brands-svg-icons": "^6.7.2",
61
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
62
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
63
+ "@fortawesome/react-fontawesome": "^0.2.2"
46
64
  }
47
- }
65
+ }
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- export default function IconButton({ label }: Readonly<IconButtonProps>): React.JSX.Element;
3
- type IconButtonProps = {
4
- label: string;
5
- };
6
- export {};
@@ -1 +0,0 @@
1
- export { default as IconButton } from "./IconButton";
package/dist/index.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
-
3
- declare function IconButton({ label }: Readonly<IconButtonProps>): React.JSX.Element;
4
- type IconButtonProps = {
5
- label: string;
6
- };
7
-
8
- export { IconButton };
package/dist/index.esm.js DELETED
@@ -1,2 +0,0 @@
1
- import t from"react";function e({label:e}){return t.createElement("button",null,e)}export{e as IconButton};
2
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/components/IconButton.tsx"],"sourcesContent":[null],"names":["IconButton","label","React","createElement"],"mappings":"qBAEc,SAAUA,GAAWC,MAAEA,IAClC,OACGC,EAAAC,cAAA,SAAA,KAASF,EAEf"}
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";var t=require("react");exports.IconButton=function({label:e}){return t.createElement("button",null,e)};
2
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/IconButton.tsx"],"sourcesContent":[null],"names":["label","React","createElement"],"mappings":"uDAEc,UAAqBA,MAAEA,IAClC,OACGC,EAAAC,cAAA,SAAA,KAASF,EAEf"}